clx ver 0.17.0 で,これまで個々に実装していた,文字列を何らかの形にエンコードする関数群のインターフェースを統一しました.具体的には,hexdump(), base64::encode(), base64::decode(), html::escape(), html::unescape(), uri::encode(), uri::decode() の 7 つ.そのときの,インターフェースの決め方のメモ. これらのインターフェースを統一する際に,当初は std::transform() を利用する形を考えていました(std::transform() の関数オブジェクトを実装する形).ただ,いろいろやっているうちに,大まかに言って以下の 2 点の問題点が出てきたため std::transform() の関数オブジェクト用クラスと言う形はちょっと辛いと言う結論になりました. 1