C++ アプリケーションで反復子のベクトルを作成しようとしています。
std::vector<std::list<std::shared_ptr<SelfDefinedType>>::iterator> edge_iters;
SelfDefinedType
このスニペットの上のどこかで宣言したクラスです。
この構成は少し複雑であることは認めざるを得ませんが、テンプレートには階層構造があります。
C++11 でコンパイルすると、次のコンパイル時エラーが発生します。
App.hpp:563:48: error: type/value mismatch at argument 1 in template
parameter list for ‘template<class _Tp, class _Alloc> class std::vector’
これは何を意味するのでしょうか?std::list<std::shared_ptr<SelfDefinedType>>::iterator
型ではなく値として扱っているようです。なんで?
開始ブラケットと終了ブラケットにスペースを追加しようとしましたが、役に立ちませんでした。また、typedef を使用してコンパイル エラーを抑制しようとしましたが、うまくいきませんでした。