Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “奇怪”;无法推断';的模板参数;T'&引用;错误_C++_Templates_Functional Programming_Lambda - Fatal编程技术网

C++ “奇怪”;无法推断';的模板参数;T'&引用;错误

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.

错误代码为:

我已经挣扎了几个小时,但似乎找不到解决办法。我相信这个错误可能很小,但我找不到其他人在类似的情况下遇到这个错误。 非常感谢您的帮助

编辑:Frederik Slijkerman所做的更正修复了一个问题,但造成了另一个问题。这次错误是:

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) { ... }