c++ - 模板彼此交友

标签 c++ templates syntax-error

我有一个ResourcePtr<T>类模板和 ResouceManager<T>模板。我希望两个人成为 friend 。如果我执行以下操作,则会出现编译错误;我该如何解决这个问题?

template<class T>
class ResourcePtr
{
    friend class ResourceManager<T>;
};

template<class T>
class ResourceManager
{
    friend class ResourcePtr<T>;
};

error C2059: syntax error : '<'
error C2238: unexpected token(s) preceding ';'

最佳答案

像往常一样,对于共同事物:在定义另一个之前声明一个。

template<class T>
class ResourceManager;

template<class T>
class ResourcePtr
{
    friend class ResourceManager<T>;
};

template<class T>
class ResourceManager
{
    friend class ResourcePtr<T>;
};

关于c++ - 模板彼此交友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276893/

相关文章:

r - 为什么我收到错误 : argument of length 0

javascript - 语法错误: Unexpected token import - reactjs

c++ - vector 成员被重置且不可访问

c++ - 在 std::string 中每隔一定数量的字母添加一个换行符

c++ - 将不同的模板类存储在同一个容器中

html - 为什么在 PC 中使用原始尺寸图像的 Retina-ready 网站?

Python ctypes,将 c_void_p 作为输出参数传递给 c 函数

c++ - 用于 boost::test 的带有海龟模拟的模拟对象

调用模板函数时进行 C++ 模板推导

php - 代码点火器错误?