C++ “奇怪”;无法推断';的模板参数;T'&引用;错误
错误代码为: 我已经挣扎了几个小时,但似乎找不到解决办法。我相信这个错误可能很小,但我找不到其他人在类似的情况下遇到这个错误。 非常感谢您的帮助 编辑:Frederik Slijkerman所做的更正修复了一个问题,但造成了另一个问题。这次错误是:C++ “奇怪”;无法推断';的模板参数;T'&引用;错误,c++,templates,functional-programming,lambda,C++,Templates,Functional Programming,Lambda,错误代码为: 我已经挣扎了几个小时,但似乎找不到解决办法。我相信这个错误可能很小,但我找不到其他人在类似的情况下遇到这个错误。 非常感谢您的帮助 编辑:Frederik Slijkerman所做的更正修复了一个问题,但造成了另一个问题。这次错误是: Error 1 error C2783: 'T ConditionalInput(LPSTR,LPSTR,predicate)' : could not deduce template argument for 'T' c_main.
Error 1 error C2783: 'T ConditionalInput(LPSTR,LPSTR,predicate)' :
could not deduce template argument for 'T' c_main.cpp 17 1
Error 1 error LNK2019: unresolved external symbol "int __cdecl ConditionalInput<int,class `anonymous namespace'::<lambda0> >(char *,char *,class `anonymous namespace'::<lambda0>)" (??$ConditionalInput@HV<lambda0>@?A0x109237b6@@@@YAHPAD0V<lambda0>@?A0x109237b6@@@Z) referenced in function _main
错误1错误LNK2019:未解析的外部符号“int\uu cdecl ConditionalInput使用
row=ConditionalInput(…)
显式指定返回类型。C++无法推断函数的返回类型。它仅适用于其参数。
您必须显式调用ConditionalInput(…)
我注意到,如果必须显式调用返回类型为Conditional(…)
,您还需要首先指定返回类型
模板
T函数(A){…}
鉴于以下情况将产生编译错误:
template <class A, class T>
T function (A) { ... }
模板
T函数(A){…}
我不必指定第二种模板类型?在那之后,我遇到了另一个错误,这个错误让我更头疼。它是这样的:错误1错误LNK2019:未解析的外部符号“int\uu cdecl ConditionalInput”你把模板函数ConditionalInput放在了一个.cpp文件中了吗?是的。并在适当的头文件中制作了适当的原型。模板化函数需要放在头文件中,或者如果您希望定义远离声明,则放在.h文件中包含的.hxx文件中。编辑,因为需要在上面答案的注释中替换为lt/gt。正确答案。尽管这个用户拥有它的信用。
row = ConditionalInput<int>(...)
template <class T, class A>
T function (A) { ... }
template <class A, class T>
T function (A) { ... }