类模板外定义成员函数返回类型中含类中结构如何做

如题编译A<T>::Node A<T>::sfe() 时无法通过;
template<typename T>
class A
{
public:
A() {};
~A() {};
int a;
protected:
struct Node{
T elem;
};
Node sfe();
int aa;
private:
int aaa;
};
template<typename T>
A<T>::Node A<T>::sfe() {
return Node();
}

第1个回答  2017-09-20
C++ 11 还不支持 模板函数返回值 类型自动推导,新的标准可能会支持,目前主流的 编译器 应该都不支持。
此处可使用:
template<class A>
A plus(A a,A b)
{
return a+b;
}

c++:
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。[1] 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性。本回答被网友采纳