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