Ensures () — библиотека поддержки директив

Я пытаюсь понять, как использовать Ensures() в коде. Как указано в пример, если бы я попытался с помощью Ensures() следующее…

int main(void)
{
int result = 0;
// Some calculation
Ensures(result == 255);
return 0;
}

Если result переменная не равна 255программа вылетает со следующим выводом "terminate called without an active exception", Мой вопрос как использовать Ensures() должным образом?

4

Решение

Вы используете Реализация Microsoft GSL? Тогда если вы проверите gsl_assert.h заголовочный файл вы увидите, что если GSL_TERMINATE_ON_CONTRACT_VIOLATION определяется (что по умолчанию), то Ensures позвоню std::terminate что даст вам ошибку, которую вы получите.

Если вы хотите, чтобы было сгенерировано исключение (с информацией о файле и номере строки), вам нужно определить GSL_THROW_ON_CONTRACT_VIOLATION перед включением GSL.

Что касается, если вы используете Ensures правильно, тогда да, вы.

7

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

Других решений пока нет …