Como faço para declarar função de modelo fora da declaração de classe
<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>
O código acima funciona bem para mim. Mas eu quero mover a definição da função fora da declaração da classe. Eu tentei isso.
<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>
Mas não está compilando. Alguma idéia de como fazer isso?