Unicode APIをC++標準ライブラリに入れる設計的な難しさについての思考整理。 たとえば、以下のような「あるコードポイントが結合文字かを判定する非メンバ関数」をC++標準ライブラリに入れることはできない。 bool is_combining_character(char32_t code_unit); Unicodeのプロパティ取得には超巨大な辞書が必要になる。そしてC++の設計思想としてゼロオーバーヘッド原則というのがあるから(D&E読もう)、こういう設計はできない。 もしやるなら、unicode_propertyのようなクラスを作り、そのインスタンスを経由してプロパティを取得することになる。そして超巨大な辞書をいくつもぽんぽん作られると困るので、ここはシングルトンにするのが適切となる。しかしシングルトンが一般的に嫌われているというのと、C++標準ライブラリにシングルトンを取り入