§12.3.2[class.conv.fct] / 1在C++ 14中:



§12.3.2C++ 1z中的[class.conv.fct] / 1 :(相关更改在下面突出显示)



我想不出没有decl-specifier-seq或没有定义类型说明符的decl-specifier-seq转换函数。据我了解,这意味着一个转换功能ID,其转换类型ID没有类型!

最佳答案

转换类型ID不包含decl-specifier-seq;它包含一个类型说明符序列。

该引用与转换函数的声明/定义中的decl-specifier-seq有关:

struct C {
    constexpr inline explicit operator int() const { return 0; }
//  ^^^^^^^^^^^^^^^^^^^^^^^^^
    operator float() const;
// ^ no decl-specifier-seq here
};

由于明显的原因,它不能包含定义类型说明符。

更改的重点是,当返回类型由conversion-type-id确定时,说“无法指定返回类型”是一种误导。

09-06 09:06