std::string がテンプレートベースになったあたりの話

すみません、traits の定義を関数単位で特殊化するほうが楽なのではないか、ということですね。そういうことであれば、以下の例のように CRTP を使って traits を定義することになるかと思うのですが、

・(仕様制定側の事情として) 当時の環境下でそこまで凝ったことをやるべきだったか
・(ライブラリ実装側の事情として) (最適化のための特殊化が目的なのに) そういう凝ったコードを書くべきか

といったあたりの問題になるのかな、と思いました。

iostream メモ - IT戦記

コメント書いてから思ったんだけど。記憶が正しければ std::string は途中でテンプレートベースに仕様が変更になったので、むしろ、traits の特殊化を用いることで速度を保ちうることが極めて重要*1だったのかなぁ。そういう議論を読んだことがあるようなないような。

*1:その場合、コーディング量の多寡は二の次になるかも