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
请注意,我已确定以下设置:
- 在 VS 2015 中将编译器前端设置为 Clang:
- 我已将 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 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
请注意,我已确定以下设置:
- 在 VS 2015 中将编译器前端设置为 Clang:
- 我已将 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)