У меня есть шаблон, в котором у меня есть объявление функции друга, и ниже, за пределами класса у меня есть его реализация:Попытки вызвать друг функцию шаблона класса
template<class TreeElement, class Comparator, class Operation>
class AVLTree {
public:
template<class A, class B, class C >
friend AVLTree<A, B, C> createEmptyAVLTree(int n);
...
}
template<class A, class B, class C>
AVLTree<A, B, C> createEmptyAVLTree(int n) { ... }
Что такая подпись называть его где-то в других файлах?
Я пробовал:
AVLTree<Post, postByLikesFunc, emptyFunc>::createEmptyTree();
, но он говорит, что не может решить. Зачем ? Друг-член должен быть замечен именно так, не так ли?
EDIT:
AVLTree<Post, postByLikesFunc, emptyFunc> empty;
empty = createEmptyTreeAVLTree<Post, postByLikesFunc, emptyFunc>(size);
empty.arrayToTree(sorted_posts);
это в Troll.cpp в его функции.
Еще кричит «не был объявлен в этой области», «Функция не может решить», «Символ не мог не решен», «ожидается первичное-выражение прежде», «ожидается первичное-выражение, прежде чем>»
решил. как сказал Слдард. – KittyT2016