Я не могу использовать ссылку для сравнения (объявленного заранее) класса в качестве шаблона для списка.
Но указатель работает нормально. Для того, что я прочитал, неполные типы разрешены для вектора, списка и списка пересылки (и не разрешены для карты, множества и других)
Вот пример
#include <list>
#include <vector>
class MyClass;
void foo(const MyClass&); //works fine
std::vector<const MyClass&> ref_vec; //error
std::list<const MyClass&> ref_list; //error
std::vector<const MyClass*> p_vec; //works fine
std::list<const MyClass*> p_list; //works fine
class MyClass
{};
void main(){}