使用constexpr函数编译错误(Visual Studio 2015)

时间:2018-07-20 18:14:34

标签: visual-studio-2015 constexpr

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

错误消息:

  

错误(活动)的constexpr函数必须恰好包含一个返回值   语句ArmNN_MnistTF_64b c:\ armnn \ armnn-devenv \ armnn \ include \ armnn \ TypesUtils.hpp 22

请注意,我已确保以下设置: 1)在VS 2015中将编译器前端设置为Clang enter image description here

2)我已将C ++标准设置为C ++ 14。

请问您还缺少什么建议?一段时间以来一直在努力解决此错误。

1 个答案:

答案 0 :(得分:1)

Visual Studio 2015尽管有很多功能,但从VS 2015 Update 3开始,甚至还没有完全实现C ++ 14。

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

请参见Visual C++ Language Conformance