是否可以使用'auto'返回类型声明模板函数作为类的朋友?

问题描述 投票:-1回答:1

如何将以下函数声明为类的朋友

template <class T>
inline auto func(T & val)
{
    //return ...;
}

class A { friend auto func<A>(A & val); }
c++ templates auto
1个回答
2
投票

这合法吗?

是的,你可以从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);
}

但是,我同意这些意见:如果您提供了一个我们可以尝试找到答案的确切问题,那么问题就可以得到改善。

© www.soinside.com 2019 - 2024. All rights reserved.