В моем коде я определил следующий макрос:
Код: Выделить всё
#ifdef DEBUG
#include
#define ASSERT(x) assert(x);
#elifdef RELEASE
#define ASSERT(x) [[assume(x)]];
#else
#define ASSERT(x)
#endif
Я использую это для очень обыденных проверок, которые, возможно, не имеют значения оптимизации, например:
Код: Выделить всё
auto print_values(const std::vector& values) -> void
{
ASSERT(std::ranges::is_sorted(values));
// Print the sorted values...
}
Должен ли я оставить этот макрос как есть или удалить случай, в котором используется атрибут [[assume]]?>
Подробнее здесь: https://stackoverflow.com/questions/798 ... e-problems
Мобильная версия