>>621
『コンテナ』が、std::vectorやstd::listやらのことを指してるんなら、
こいつらは、標準の規定ではデフォルトコンストラクタを必要と
しなかったはずだよ。
配列の場合は、数が少ないなら Hoge array[] = {'a','b','c','d'};
って初期値を与えればいいだけだし、そもそも配列を使う状況なら、
たいていはvectorにしておけば代用可能だし。
コピーコンストラクタが初期化関数よりもコストがかかりすぎるのなら、
コンテナはインスタンスへのポインタを持つようにすればいいし。
その場合も、管理の手間を切り離すために、スマートポインタにして。

まあ、俺としては、『デフォルトコンストラクタ+初期化関数』
なんてのは不要(というか、やってはいけない設計)だと思ってるから、
こういうのを駆使して、デフォルトコンストラクタを使わなくてもいいように
してる。『コンパイラが保証してくれる』っていうメリットを、最大限に
享受したいから。

ん? 今ふと思ったけど、コンストラクタが2つ以上の引数をとる場合、
配列の初期化ってどうやるんだろう……? 誰か教えてちょ。