我有这样的功能:
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
}
}
它在 VisualStudio 中编译,但在 Eclipse 中编译器提示 "Invalid template argumetns"
,我该怎么办?
最佳答案
你需要typename
之前 Container<int>::const_iterator
因为这是一个依赖类型:
static void FreeAttributesVS(const Container<int>& arra)
{
for (typename Container<int>::const_iterator iter = arra.begin(); ...)
// ^^^^^^^
}
关于c++ - "Eclipse IDE"中的模板函数无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15765670/