【发布时间】:2011-06-27 06:34:33
【问题描述】:
我有这样的代码:
namespace mymap {
template <class Key,template <typename T > class Allocator> myownmap {
typedef pair<const unsigned int, Key> typename _myPair;
typedef multimap<unsigned int, Key,less<Key> ,Allocator<_myPair> > typename _entriesType;
}
}
它在 MSVC 下编译成功(并且可以工作),但 gcc 抱怨语法无效:
.hpp:20: error: expected nested-name-specifier before ‘_myPair’
.hpp:20: error: two or more data types in declaration of ‘_myPair’
我做错了什么?
【问题讨论】:
-
你真的用 gcc 测试过这段代码吗?您在 myownmap 之前缺少一个类/结构,并且“entriesPair”不会出现在您的 sn-p 中的任何位置。
-
你能告诉我们
entriesPair的定义吗? -
什么是
myownmap?是函数还是类?
标签: c++ templates generic-programming