我有这样的功能:
template<template <class _Ty, class _A = allocator<_Ty> > class Container>
static void FreeAttributesVS(const Container<int>& arra)
{
for(Container<int>::const_iterator iter = arra.begin();
iter != arra.end(); ++iter)
{
//do smthng
}
}
它在Visual Studio中编译但在Eclipse编译器中说"Invalid template argumetns"
,我该怎么办?
答案 0 :(得分:2)
typename
之前需要Container<int>::const_iterator
,因为这是一种依赖类型:
static void FreeAttributesVS(const Container<int>& arra)
{
for (typename Container<int>::const_iterator iter = arra.begin(); ...)
// ^^^^^^^
}