但在模板编程中,直接使用static_assert(false, "message")可能会导致问题,因为它会在模板定义时就触发断言。 3.4.2 always_false结构体的魔法 为了解决上述问题,我们可以使用always_false这一技巧。这是一个模板结构体,其值始终为false。 template <typename T>struct always_false {static constexpr bool value = ...
The constant expression can of course depend on template parameters, and that's where the checking comes in: if you put astatic_assertin a template then the compilation will fail if the specified condition is not True, and the error message will be a lot clearer than what you would get o...