C++ 返回类型推断和函数声明

C++ 返回类型推断和函数声明,c++,c++14,return-type-deduction,C++,C++14,Return Type Deduction,如何在使用返回类型推断的类中声明函数 这很好: auto foo() { return 5; } 但这不起作用: class Test { auto foo(); }; auto Test::foo() { return 5; } 内部编译器错误:在gen_type_die_中使用了_,位于dwarf2out.c:19486 我不知道它是否与此有关,但我正在使用QtCreator 3.3 编辑: 我使用的是Qt5.4和QtCreator 3.3。 我已将CONFIG+

如何在使用返回类型推断的类中声明函数

这很好:

auto foo() {
    return 5;
}
但这不起作用:

class Test {
    auto foo();
};
auto Test::foo() {
    return 5;
}
内部编译器错误:在gen_type_die_中使用了_,位于dwarf2out.c:19486

我不知道它是否与此有关,但我正在使用QtCreator 3.3

编辑: 我使用的是Qt5.4和QtCreator 3.3。 我已将
CONFIG+=c++14
添加到项目文件中。 默认情况下,我使用的是GCC4.8.2,我想这就是我得到错误的原因(我需要)。但是,当我使用Clang3.5(需要)时,它会说

错误:“自动”返回,不带尾随返回类型;导出的返回类型是C++1y扩展


EDIT2:这似乎是Qt的一个bug,而不是GCC的bug。在Qt之外,我可以编写带有返回类型推断的类函数,它可以用GCC 4.8.2和Clang 3.5.0编译并运行得很好

我怀疑“错误1”是您得到的全部。请发布完整的错误日志。@Joachim Pileborg:您是对的,Qt Creator没有将内部编译器错误归类为错误,因此我没有看到它。QtCreator使用的是什么编译器?编译器的哪个版本?您是否传递了正确的标志以便它在C++14模式下编译?不管怎样,您显然发现了一个编译器错误,所以您应该转到编译器错误页面并报告它(如果它还没有报告)。内部编译器错误意味着“编译器遇到了它没有预料到的东西”。这是一个BUG,请将它报告给您正在使用的编译器的制造商。。。