C++11 尾随返回类型声明,旧样式定义

C++11 尾随返回类型声明,旧样式定义,c++11,C++11,我在classbar的声明中有一个成员函数原型: auto foo(void) const -> double; 以及源文件中的此定义: double bar::foo(void) const { return 1.0; } 在MSVC2012上编译和链接成功。但是这是标准允许的混合语法吗?语法没有区别。声明中的签名仍然与定义中的签名匹配,因为它们具有相同的参数、相同的返回类型和相同的限定符。(+1)因此在这方面,它与typedef?在某种程度上,是的。如果所有类型都匹配,则是

我在class
bar
的声明中有一个成员函数原型:

auto foo(void) const -> double;
以及源文件中的此定义:

double bar::foo(void) const
{
    return 1.0;
}

在MSVC2012上编译和链接成功。但是这是标准允许的混合语法吗?

语法没有区别。声明中的签名仍然与定义中的签名匹配,因为它们具有相同的参数、相同的返回类型和相同的限定符。

(+1)因此在这方面,它与
typedef
?在某种程度上,是的。如果所有类型都匹配,则是相同的。