0

抱歉,这个问题似乎已经被问过很多次了,但我无法得到其他答案来为我的设置工作。我有以下类和函数设置:

namespace ddd {
  template <typename T>
  class A {
    ...
  };

  template <typename T, typename U>
  A<T> a_func(const A<U> &a) {
    ...
  }
}

我想将 a_func 声明为 A 的朋友,并且我希望它是 A 的所有实例的朋友,无论 T 和 U 使用哪种类型名(例如,a_func 可以访问 A)。

谢谢!

4

1 回答 1

1

您可以这样做(看起来就像您拥有它的方式):

template<typename X>
class A {
    template<typename T, typename U>
    friend A<T> a_func(const A<U>& a);
};

template<typename T, typename U>
A<T> a_func(const A<U>& a) {
    // whatever
}

演示

于 2012-05-18T23:49:34.477 回答