0

我有这样的功能:

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

4

1 回答 1

2

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

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

}
于 2013-04-02T13:47:12.167 回答