Я написал этот класс Node:Серию конструкторов
template<class T>
struct Node{
Node() : content(), col(RED), parent(0), left(0), right(0) {}
Node(const Node& orig) : content(orig.content), col(orig.col), parent(orig.parent), left(orig.left), right(orig.right) {}
virtual ~Node() {}
Node<T>& operator= (const Node<T>& node);
template <class sT>
friend std::ostream& operator<<(std::ostream& out,const Node<sT>&node);
T content;
Color col;
Node<T> *parent,*left,*right;
};
Теперь я бы создать объект Node с внутри узла с в станд :: пары, и я написал это:
Node<Node< pair<int,char> > > n1 (Node<pair<int,char> >(pair<int,char>(45,'a')));
но компилятор выдает мне эту ошибку:
main.cpp:31:84: error: no matching function for call to ‘Node<std::pair<int, char> >::Node(std::pair<int, char>)’
Какой точный синтаксис, чтобы получить то, что я хочу?
Вы должны предоставить конструктор подпись как 'Node (сопзИте T & x);', чтобы быть в состоянии сделать это –
Это компилятор дает вам ошибку, не отладчик – chris