C++11 在特定情况下避免冗余 Return 类型
C++11 Avoiding Redundant Return Type in specific Situation
好的,谢谢所有看到这里的人。我已经在下面的 link 重新创建了准确的场景以便于查看,所以我将注释掉我的原始文本,因为它不清楚。
http://cpp.sh/5lp4l
在评论部分我展示了调用 make_some(32, std::string{"hi"}) 没有指定调用的数据类型声明。我意识到这看起来很疯狂,远远超出了我的预期用例,根据参数自动推断复合类型(推断我想要数据,基于 int/string)是不必要的,或者是一个好主意。
您是否尝试过使用 auto
作为类型声明?
同时 decltype (variable_here) variable_to_inherit_type;
将第二个变量的类型设置为第一个变量的类型。您可以先使用此方法将类型设置为与传入变量相同。
我不确定这是否适用于您的情况,但如果有帮助请告诉我!
编译器是对的。 T
和 Args
之间没有给出任何关系。因此,它无法确定 QueryResult<T>
的含义。
您显然期望 somefn
的 return 类型强制 T
成为 int, int
。由于两个原因,这显然是不可能的:T
表示单一类型,并且 return
语句没有机制以某种方式影响 make_some
.
的模板实例化
好的,谢谢所有看到这里的人。我已经在下面的 link 重新创建了准确的场景以便于查看,所以我将注释掉我的原始文本,因为它不清楚。 http://cpp.sh/5lp4l
在评论部分我展示了调用 make_some(32, std::string{"hi"}) 没有指定调用的数据类型声明。我意识到这看起来很疯狂,远远超出了我的预期用例,根据参数自动推断复合类型(推断我想要数据,基于 int/string)是不必要的,或者是一个好主意。
您是否尝试过使用 auto
作为类型声明?
同时 decltype (variable_here) variable_to_inherit_type;
将第二个变量的类型设置为第一个变量的类型。您可以先使用此方法将类型设置为与传入变量相同。
我不确定这是否适用于您的情况,但如果有帮助请告诉我!
编译器是对的。 T
和 Args
之间没有给出任何关系。因此,它无法确定 QueryResult<T>
的含义。
您显然期望 somefn
的 return 类型强制 T
成为 int, int
。由于两个原因,这显然是不可能的:T
表示单一类型,并且 return
语句没有机制以某种方式影响 make_some
.