Согласно cppreference , assert будет использоваться в качестве атрибута C ++.
assert
Однако уже существует множество проектов, сильно зависящих от макроса assert, есть липлохой эффект?
Нет.Предложение p0542r5 , в котором вводятся контракты на C ++ 20, гласит:
Обратите внимание, что хотя assert(expression) будет расширяться как функциональный макрос с соответствующим заголовком, assert: - этоне вызов функции, поэтому не расширяется.
assert(expression)
assert:
Новое использование assert не вызовет никаких проблем, потому что за ним не следует ( и, следовательно, макрос стиля функции assert(blah) не будет вызываться.
(
assert(blah)