是否可以将 'auto' return 类型的模板函数声明为 class 的友元?
Is it possible to declare a template function with 'auto' return type as a friend of a class?
如何将以下函数声明为class
的友元
template <class T>
inline auto func(T & val)
{
//return ...;
}
class A { friend auto func<A>(A & val); }
合法吗?
是的,您可以从 C++14
开始使用它。
怎么做?
你可以这样做 (see here):
class A;
template <class T>
inline auto func(T& val);
class A
{
friend auto func<A>(A& val);
int j = 6;
};
template <class T>
inline auto func(T& val)
{
return val.j;
}
int main()
{
A a;
return func<A>(a);
}
不过,我同意评论:如果您提供了一个我们可以尝试找到答案的确切问题,问题可能会得到改进。
如何将以下函数声明为class
的友元template <class T>
inline auto func(T & val)
{
//return ...;
}
class A { friend auto func<A>(A & val); }
合法吗?
是的,您可以从 C++14
开始使用它。
怎么做?
你可以这样做 (see here):
class A;
template <class T>
inline auto func(T& val);
class A
{
friend auto func<A>(A& val);
int j = 6;
};
template <class T>
inline auto func(T& val)
{
return val.j;
}
int main()
{
A a;
return func<A>(a);
}
不过,我同意评论:如果您提供了一个我们可以尝试找到答案的确切问题,问题可能会得到改进。