宏“ assert”会在C ++ 20中删除吗?

时间:2018-09-19 02:32:58

标签: c++ standards assert defensive-programming c++20

根据cppreferenceassert将用作C ++属性。

但是,已经存在大量依赖宏assert的项目,会有不好的影响吗?

2 个答案:

答案 0 :(得分:14)

不。引入C ++ 20合同的提案p0542r5说:

  

请注意,尽管assert(expression)可以扩展为具有适当标头的函数式宏,但是assert:不是函数式调用,因此不会扩展。

答案 1 :(得分:7)

assert的新用法不会引起任何问题,因为它后面没有(,因此不会调用函数样式的宏assert(blah)。 / p>