我有一个模板化的类和一个别名类型。我想将此类型用作成员函数的返回值,但它不能编译。
//file.h
template<class T>
class Test {
public:
using testing = T;
T value;
testing foo();
};
//file.cpp
template<class T>
testing Test<T>::foo() { //error 'testing' does not name a type
//code
}
我该如何运作?
最佳答案
通过以下方式更改foo
的定义:
template<class T>
typename Test<T>::testing Test<T>::foo() {
}
甚至不像@ Jarod42所建议的那样冗长
template<class T>
auto Test<T>::foo() -> testing {
}
你也应该读Why can templates only be implemented in the header file
关于c++ - 如何返回在类中具有别名的类型的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53907859/