【C++】STL(Standard Template Library)相談室 4at TECH【C++】STL(Standard Template Library)相談室 4 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト700:デフォルトの名無しさん 06/02/06 16:50:32 そんなに気になるならデフォルトコンストラクタをprivateにすればいいやん(;´Д`) 701:デフォルトの名無しさん 06/02/06 17:05:05 >>700 ΣΣ(゚д゚lll)ガガーン そ、そうだった・・・・ 702:デフォルトの名無しさん 06/02/06 17:11:54 >>699 >初期化されないブツが投入されるのがイヤな時には、 ってことはそのTは自前のコンストラクタを持ってるわけでしょ ってことはT::T()が勝手に定義されることはないので 何もしなくてもコンパイルエラーになるよ 703:デフォルトの名無しさん 06/02/06 17:19:35 >>702 うん、で、そういうクラスを std::vector<T> に 格納しようとしたら、std::vector<T> のコンストラクタの 一つが T のデフォルトコンストラクタを要求するので エラーになります。 private にしても同じく。 でも実際にはそのコンストラクタは呼ばれないので、 宣言だけして定義はしなくてもリンク可能です。 実際に使われてるか否か(コードが生成されているか否か) に関わり無く、テンプレートの関数はとりあえず 実体が生成されるものとして構文と識別子のチェックが行われるようです。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch