1

我正在尝试在 Visual Studio 2015(社区版)中编译以下代码,但遇到下面进一步显示的错误。

/*****Source Code Start*******/
constexpr char const* GetStatusAsCString(Status compute)
{
    switch (compute)
    {
        case armnn::Status::Success: return "Status::Success";
        case armnn::Status::Failure: return "Status::Failure";
        default:                     return "Unknown";
    }
}
/*****Source Code End*******/

错误信息:

> Error (active)        a constexpr function must contain exactly one return
> statement ArmNN_MnistTF_64b   c:\armnn\armnn-devenv\armnn\include\armnn\TypesUtils.hpp    22

请注意,我已确定以下设置:

  1. 在 VS 2015 中将编译器前端设置为 Clang:

  1. 我已将 C++ 标准设置为 C++14。

谁能告诉我我还缺少什么?一段时间以来一直在努力解决这个错误。

4

1 回答 1

2

即使在 VS 2015 Update 3 中,Visual Studio 2015 也没有完全实现 C++14,尽管它有很多。

具体来说,N3652 Extended constexpr直到 VS 2017 才实现。您应该升级到最新的 VS 2017 社区版更新(此时为15.7

请参阅Visual C++ 语言一致性

于 2018-07-20T18:40:38.633 回答