鉴于 C++11 中引入的新函数声明语法,很容易从以下位置转换成员函数:
std::unique_ptr<...> operator()() const;
至
auto operator()() const -> std::unique_ptr<...>;
我相信要添加覆盖到第一个你会写:
std::uniqe_ptr<...> operator()() const override;
当我写:
auto operator()() const -> std::unique_ptr<...> override;
Clang给出错误:
error: type-id cannot have a name
auto operator()() const -> std::unique_ptr<...> override
^~~~~~~~
当我写:
auto operator()() const override -> std::unique_ptr<...>;
Clang给出错误:
error: 'auto' return without trailing return type
auto operator()() const override -> std::unique_ptr<...>;
^
您将在新语法中的何处放置覆盖?