我收到以下错误:“非专业类模板不能用作模板参数'_Kty'的模板参数,应为真实类型”
我试图编译的代码是这样的:
template <typename T> class TypeX;
template <typename T>
class TypeY
{
...
private:
std::set<TypeX> m_tree;
}
顺便说一句,包括“TypeX.h”(这是一个模板类)而不是前向声明不会改变任何东西。
我从这个错误中收集到的是,由于 TypeX 是“非专业化的”——在“T”未定义且 TypeX 仍处于模板形式的意义上,它不能成为 std::set 的基础。但我真的希望 TypeX 也成为 T 的模板,这样我就可以从 TypeY 中初始化一个新的 TypeX(T 的模板),然后将该新对象插入 m_tree。
这可以做到吗?多谢你们。