深さ3のネストされたベクトルを使用するクラスメンバーを使用しようとしています。
vector <vector <vector>> classVariable_;
ただし、classVariable_.clear()のような単純なことを実行しようとすると、コード全体でコンパイラの警告が表示されます。
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_vector.h:メンバー関数内 `std :: vector <_Tp、_Alloc>&std :: vector <_Tp、_Alloc> :: operator =(const std :: vector <_Tp、_Alloc>&)[with _Tp = std :: vector>、_Alloc = std :: allocator >>]':/ usr / lib / gcc / i686-pc-cygwin /3.4.4/include/c++/bits/stl_vector.h:715:警告:'__result'はこの関数で初期化されていない状態で使用される可能性があります/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ビット/stl_uninitialized.h:82:警告:'__cur'はこの関数で初期化されていない状態で使用される可能性があります/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_uninitialized.h:82:警告:'__cur'はこの関数で初期化されていない状態で使用される可能性があります
奇妙なことに、これは深さ2のネストされたベクトルでは機能しますが、深さ3以上のベクトルでは機能しません。これは、stlライブラリにデフォルトの演算子/コンストラクターがないことと関係がありますか?
誰かがこれに関するクリーンな解決策を知っていますか?私はcygwinを使用してこれをコンパイルしていますが、これには影響がないはずです。
ありがとうございました。