How do I declare template function outside the class declaration

后端 未结 2 1068
臣服心动
臣服心动 2020-12-20 00:19
#include 
#include  
#include 

template 
class A
{
public:

    typedef typename std::vector

        
相关标签:
2条回答
  • 2020-12-20 00:39

    The answer of Naveen is correct, I can add a suggestion: I use extensively typedefs and I'm waiting template typedef and "true type definition" typedef.

    template <class T1, class T2>
    class A
    {
    public:
        typedef typename std::vector<std::pair<T1,T2> >::iterator iterator;
        typedef std::pair<iterator, bool > MyPair;
        MyPair foo();
    };
    
    template <class T1, class T2>
    typename A<T1,T2>::MyPair A<T1, T2>::foo()
    {
        iterator aIter;
        return MyPair(aIter ,false);
    }
    
    0 讨论(0)
  • 2020-12-20 00:55

    You are again missing the typename in the return value. The function should be:

    template <class T1, class T2>
    std::pair<typename 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);
    }
    
    0 讨论(0)
提交回复
热议问题