影响自动型扣除

时间:2011-05-18 20:26:47

标签: c++ c++11

假设我正在编写一个返回某种代理对象的函数,比如懒惰评估或其他目的。如果我写代码

auto x = func();

然后x将是返回值的类型 - 我想要代理的对象的类型。是否可以更改autodecltype,以便在这种情况下使用它们将返回我想要返回的实际结果,而不是代理对象本身的类型?

2 个答案:

答案 0 :(得分:3)

随机想法:

您可以使用decltype(*func())获取代理对象的类型,或者访问代理对象。除了通常的autoconst等之外,&没有修饰符。

如果这是一个懒惰的评估,你可能现在不想要最终的对象类型,对吗?

如果代理对最终对象有一个cenversion运算符,auto怎么知道它应该被使用?如果有多个怎么办?

答案 1 :(得分:0)

为什么不在func()内输入你在返回时想要的内容?