“Eclipse IDE”中的模板函数无法编译

时间:2013-04-02 13:40:44

标签: c++ eclipse visual-studio-2010 templates

我有这样的功能:

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",我该怎么办?

1 个答案:

答案 0 :(得分:2)

typename之前需要Container<int>::const_iterator,因为这是一种依赖类型:

static void FreeAttributesVS(const Container<int>& arra)
{
    for (typename Container<int>::const_iterator iter = arra.begin(); ...)
    //   ^^^^^^^

}