模板互相交流

时间:2011-06-08 09:46:19

标签: c++ templates syntax-error

我有一个ResourcePtr<T>课程模板和一个ResouceManager<T>模板。我希望这两个人互相交朋友。如果我执行以下操作,则会出现编译错误;我该如何解决这个问题?

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

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

错误C2059:语法错误:'&lt;'
  错误C2238:';'

之前的意外标记

1 个答案:

答案 0 :(得分:6)

与往常一样:在另一个人的定义之前宣布一个。

template<class T>
class ResourceManager;

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

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