小编Ros*_*iff的帖子

'override'限定符在哪里与尾随返回类型一起使用?

C++ 11具有新的override限定符,可以应用于成员函数以声明它们覆盖基类中的虚函数.C++ 11还允许尾随返回类型,因此可以将函数声明为auto f() -> return_type.当我结合这两个功能时,我不知道是override在之前还是之后->.

例如,假设我们有以下基类:

struct Base {
    virtual auto f () const -> int = 0;
};
Run Code Online (Sandbox Code Playgroud)

派生类的两种可能性是:

struct Derived : public Base {
    virtual auto f () const override -> int { return 0; } // Compiles on g++ 4.7.1
};
Run Code Online (Sandbox Code Playgroud)

要么

struct Derived : public Base {
    virtual auto f () const -> int override { return 0; } // Compiles on clang++ 4.0
};
Run Code Online (Sandbox Code Playgroud)

g ++ …

c++ c++11

33
推荐指数
1
解决办法
2765
查看次数

标签 统计

c++ ×1

c++11 ×1