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