Будет ли макрос `assert` удален в C ++ 20?

В соответствии с cppreference, assert будет использоваться как атрибут C ++.

Тем не менее, уже существуют тонны проектов, сильно зависящих от макроса assertЕсть ли плохой эффект?

4

Решение

Новое использование assert не вызовет никаких проблем, потому что это не сопровождается ( и, следовательно, макрос в стиле функции assert(blah) не будет вызван.

7

Другие решения

Нет. Предложение p0542r5 который вводит C ++ 20 контрактов говорит:

Обратите внимание, что в то время как assert(expression) будет расширяться как функциональный макрос с соответствующим заголовком, assert: не является вызовом, подобным функции, поэтому не расширяется.

14

По вопросам рекламы [email protected]