如何在使用返回类型推导的类中声明函数?
这很好:
auto foo() {
return 5;
}
但这不起作用:
class Test {
auto foo();
};
auto Test::foo() {
return 5;
}
内部编译器错误:在gen_type_die_with_usage中,在dwarf2out.c:19486
我不知道它是否与它有关,但我使用的是QtCreator 3.3。
修改:
我正在使用Qt 5.4和QtCreator 3.3。
我已将CONFIG += c++14
添加到项目文件中。
默认情况下,我使用的是GCC 4.8.2,我猜这就是我收到错误的原因(我需要4.9)。但是,当我使用Clang 3.5时(需要3.4),它说
错误:' auto'返回没有尾随返回类型;推导出的返回类型是C ++ 1y扩展
EDIT2 :这似乎是Qt的一个错误而不是GCC。在Qt之外,我可以编写具有返回类型推导的类函数,并且可以使用GCC 4.8.2和Clang 3.5.0进行编译和运行。