返回类型推导和函数声明

时间:2015-01-09 09:20:00

标签: c++ c++14 return-type-deduction

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

这很好:

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进行编译和运行。

0 个答案:

没有答案