在C++ 20中是否会删除宏`断言`?

xml*_*lmx 4 c++ standards defensive-programming assert c++20

根据cppreference,assert将用作C++属性.

但是,已经有大量项目严重依赖于宏观assert,是否有任何不良影响?

小智 14

没有.引入C++ 20合同的提案p0542r5说:

请注意,虽然assert(expression)将扩展为具有适当标头的类函数宏,但assert:不是类似函数的调用,因此不会扩展.


use*_*751 7

新的使用assert不会导致任何问题,因为它没有后跟a (,因此assert(blah)不会调用函数式宏.