影响自动类型扣除

Influencing automatic type deduction

本文关键字:类型 影响      更新时间:2023-10-16

假设我正在编写一个返回某种代理对象的函数,比如说是为了惰性计算或其他目的。如果我写的代码像

auto x = func();

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

随机想法:

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

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

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

为什么不在返回时将其键入func()您想要的内容?