c++ - 影响自动类型推导

标签 c++ c++11

假设我正在编写一个返回某种代理对象的函数,比如说用于惰性求值或其他目的。如果我写这样的代码

auto x = func();

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

最佳答案

随意的想法:

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

如果它是惰性求值,您现在可能不想要最终对象类型,对吗?

如果代理对最终对象有一个转换运算符,auto 怎么知道应该使用它呢?如果不止一个怎么办?

关于c++ - 影响自动类型推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6050621/

相关文章:

c++ - DirectX 9 固定功能纹理

C++:value_type 与 make_pair,哪个更快用于 map 插入?

c++ - OpenGL 着色器 : uniform variables count incorrect

c++ - 显式转换运算符和常量引用限定

c++ - 在函数模板中使用 lambda,无法推断类型,makeSet() 用例

c++ - 访问 lambda 外部捕获的变量

c++ - 使用递归的数组总和中的错误(编译和运行时)

c++ - 将 std::set 与自定义比较器进行比较

c++ - 嵌套的 std::initializer_lists 的数据元素是否保证是连续的?

c++ - 重载成员函数的 decltype