相关疑难解决方法(0)

如何在类声明之外声明模板函数

#include <iterator>
#include <map> 
#include <vector>

template <class T1, class T2>
class A
{
public:

    typedef typename std::vector<std::pair<T1,T2> >::iterator iterator;

    std::pair<iterator, bool > foo()
    {
        iterator aIter;
        return std::pair<std::vector<std::pair<T1,T2> >::iterator, bool >(aIter ,false);
    }
};
Run Code Online (Sandbox Code Playgroud)

上面的代码对我来说很好.但是我想在类声明之外移动函数的定义.我试过这个.

template <class T1, class T2>
class A
{
public:

    typedef typename std::vector<std::pair<T1,T2> >::iterator iterator;

    std::pair<iterator, bool > foo();
};

template <class T1, class T2>
std::pair<std::vector<std::pair<T1,T2> >::iterator, bool > A<T1, T2>::foo()
{
    iterator aIter;
    return std::pair<std::vector<std::pair<T1,T2> >::iterator, bool >(aIter ,false);
}
Run Code Online (Sandbox Code Playgroud)

但它没有编译.任何想法怎么做?

c++ templates visual-studio-2008

3
推荐指数
2
解决办法
6599
查看次数

标签 统计

c++ ×1

templates ×1

visual-studio-2008 ×1