GCC编译类型错误:期望的类型说明符

时间:2013-10-03 10:45:35

标签: c++ c++11 compiler-errors

我使用MinGW编译了以下源代码。但是当我尝试构建时,我遇到了编译类型错误:

main.cpp:11: error: expected type-specifier
   using Iter = MyMap::iterator;
              ^
main.cpp:12: error: expected type-specifier
   using CIter = MyMap::const_iterator;
               ^

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;
}

1 个答案:

答案 0 :(得分:13)

您只需添加typename

using Iter = typename MyMap::iterator;

否则编译器不知道::iterator是指类型而不是成员变量或方法。