-1

好的,谢谢所有看过这个的人。我已经重新创建了确切的场景以便在下面的链接中轻松查看,因此我将注释掉我所拥有的原始文本,因为它并不清楚。 http://cpp.sh/5lp4l

在评论部分我显示调用 make_some(32, std::string{"hi"}) 而不指定调用的数据类型声明。我意识到这似乎很疯狂,并且远远超出了我的预期用例,根据参数自动推断复合类型(推断我想要的数据,基于 int/string)不是必需的,或者是一个好主意。

4

2 回答 2

1

编译器是对的。T和之间没有给出任何关系Args。因此,它无法确定是什么QueryResult<T>意思。

您显然期望的是 force 的somefn返回T类型int, int。这显然是不可能的,原因有两个:T表示单一类型,并且没有任何机制可以让return语句以某种方式影响make_some.

于 2016-01-21T07:39:49.037 回答
0

您是否尝试过使用autoas 类型声明?

还将decltype (variable_here) variable_to_inherit_type;第二个变量的类型设置为第一个变量的类型。您可能可以首先使用它设置与传入变量相同的类型。

我不确定这是否适用于您的情况,但如果有帮助,请告诉我!

于 2016-01-21T06:33:14.920 回答