【发布时间】:2026-01-05 19:25:01
【问题描述】:
为什么 Visual Studio 2013 编译器拒绝第一个静态断言(错误 C2057),而不拒绝第二个?
#include <limits>
typedef int Frequency;
const Frequency minHz{ 0 };
const Frequency maxHz{ std::numeric_limits<Frequency>::max() };
const Frequency invalidHz{ -1 };
static_assert(minHz < maxHz, "minHz must be less than maxHz"); // C2057
static_assert(invalidHz < minHz || invalidHz > maxHz, "invalidHz is valid"); // OK
【问题讨论】:
-
可能是因为VS 2013 compiler doesn't support
constexpr还没有。 -
@DarkFalcon:VS 2013 编译器永远不会! :)
-
在 VS2015 RC 上编译良好。
标签: c++ c++11 visual-studio-2013 static-assert