我正在尝试在我的 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 来抑制编译错误,但没有奏效。