0

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

这可以:

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)时,它说

错误:“自动”返回没有尾随返回类型;推导的返回类型是 C++1y 扩展

EDIT2:这似乎是 Qt 而不是 GCC 的错误。在 Qt 之外,我可以编写带有返回类型推导的类函数,它可以在 GCC 4.8.2 和 Clang 3.5.0 中正常编译和运行

4

0 回答 0