匿名结构作为返回类型

时间:2017-03-19 14:56:10

标签: c++ visual-c++ struct return-type function-declaration

以下代码compiles fine with vc++ 19.00.23506(标记:/Wall /WX /Za)和 vc ++ 19.10.25109.0 (标记:/Wall /WX /Za /permissive-,可在{{3 }}),但是http://webcompiler.cloudapp.net(flags:-std=c++11 -Wall -Wextra -Werror -pedantic-errors)。这是 vc ++ 中的错误,标准是否禁止此类构造?

struct
{
}
foo()
{
    return {};
}

int main()
{
}

2 个答案:

答案 0 :(得分:4)

MSVC出现错误:

  

[dcl.fct] / 9 不应在返回或参数类型中定义类型......

答案 1 :(得分:2)

您可以返回匿名类型,但必须在函数内定义它:

auto foo()
{
    struct {} s;
    return s;
}