为什么不总是使用断言?

时间:2018-03-30 15:10:48

标签: c++

如果static_assert仅限于编译时评估,如果它可以处理编译时和运行时计算表达式,为什么不总是坚持assert

1 个答案:

答案 0 :(得分:6)

assert(...)总是在运行时进行评估,当然你可以用编译时计算表达式来调用它,但是你只能在运行时看到断言。 有时候你想要确保只有当expression truestatic_assert(expression)时才编译某些东西,那就是你使用的时候 list<Izdelki> Kosarica如果未满足则会产生编译器错误。 这是直接的,并且尽早失败&#34; (也可能很难; - )