Jak zadeklarować funkcję szablonu poza deklaracją klasy

<code>#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);
    }
};
</code>

Powyższy kod działa dla mnie dobrze. Ale chcę przenieść definicję funkcji poza deklarację klasy. Próbowałem tego.

<code>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);
}
</code>

Ale to nie jest kompilacja. Każdy pomysł, jak to zrobić?

questionAnswers(2)

yourAnswerToTheQuestion