constexpr 函数编译错误(visual studio 2015)

Compile error with constexpr functions (visual studio 2015)

我正在尝试在 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。

任何人都可以告诉我我还缺少什么吗?一段时间以来一直在为这个错误而苦苦挣扎。

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

具体来说,N3652 Extended constexpr is not implemented until VS 2017. You should upgrade to the latest VS 2017 Community edition update (which at this point is 15.7)

Visual C++ Language Conformance