gpt4 book ai didi

c++ - C++ 中的 'operator auto' 是什么?

转载 作者:行者123 更新时间:2023-12-04 11:00:05 26 4
gpt4 key购买 nike

Clang和 Visual Studio 编译器(但不是 GCC )允许编写如下代码:

struct A
{
operator auto() { return 0; }
};

int main()
{
A a;
a.operator auto();
}
什么是 operator auto ?它是特定编译器的扩展还是标准语言功能,如果是,它是在什么语言标准(例如 C++17)中出现的?

最佳答案

auto用于 user-defined conversion function类型将通过返回类型推导来推导,即 int对于这种情况( 0 )。这是在 C++14 中引入的。

The placeholder auto can be used in conversion-type-id, indicating adeduced return type:

struct X {
operator int(); // OK
operator auto() -> short; // error: trailing return type not part of syntax
operator auto() const { return 10; } // OK: deduced return type
};

关于c++ - C++ 中的 'operator auto' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68266659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com