elv*_*kaj 2 c++ compiler-errors c++11
我有以下源代码,用MinGW编译.但是当我尝试构建时,我遇到了编译类型错误:
main.cpp:11: error: expected type-specifier
using Iter = MyMap::iterator;
^
main.cpp:12: error: expected type-specifier
using CIter = MyMap::const_iterator;
^
Run Code Online (Sandbox Code Playgroud)
GCC以前期待一个说明者MyMap.但它期望哪个说明符呢?
#include <ctime>
#include <map>
template< typename T >
class MyClass
{
private:
class Inner {};
using MyMap = std::map< time_t, Inner >;
using Iter = MyMap::iterator;
using CIter = MyMap::const_iterator;
};
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*rey 13
你只需要添加typename:
using Iter = typename MyMap::iterator;
Run Code Online (Sandbox Code Playgroud)
否则编译器不知道::iterator引用类型而不是成员变量或方法.