我在 c++ 中有一个结构,它是这样的:
struct mystruct {
template <typename T>
T myproc() {
std::cout << "RETURNING T";
return T();
}
};
现在这个结构已经存在(这只是一个精确结构的样本副本),我需要使用它。我想要做的是调用如下方法myproc()
:
int _tmain(int argc, _TCHAR* argv[])
{
mystruct dummystruct;
int y = dummystruct.myproc();
return 0;
}
但它给了我这个编译错误:
error C2783: 'T mystruct::myproc(void)' : could not deduce template argument for 'T'
see declaration of 'mystruct::myproc'
我知道是因为编译器无法知道什么是T
.
所以我的问题是,struct 中的函数声明是否正确?我不这么认为,但这段代码已经存在于我们的一个旧代码中,所以我认为我应该征求其他人的意见。
所以我知道它是错误的,但如果有人认为它是正确的,请解释我如何使用它。