【发布时间】:2020-02-24 04:10:51
【问题描述】:
有一个独立的函数(非成员函数)定义为:
template<class T, std::size_t N>
auto foo(T const(&init)[N]) { /* ... */ }
foo() 旨在推导出 N(数组大小)
另外,在同一个命名空间中有一个类定义为:
class Bar {
friend auto foo( Bar const(&)[/* ??? */] ); /* <-------- The goal to make it right */
private:
Bar( void ) { /* ... */ }
};
我的问题是我还没有成功将 foo() 声明为 Bar 类的朋友,以便它可以访问私有成员。
在foo() 声明中,有std::size_t N 模板参数。但是如何让所有N值的友谊呢?
非常感谢任何愿意提供帮助的人。
马丁
【问题讨论】:
标签: c++ templates c++17 friend