#c #exception #gcc
#c #исключение #gcc
Вопрос:
Пожалуйста, скажите мне, где макрос _THROW определен в GCC4 или как определить его вручную
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include <ctype.h>
#include <climits>
#include <stdexcept>
#include <sys/cdefs.h>
#include <sys/types.h>
void test() { _THROW(std::range_error,"Test"); }
Комментарии:
1.
_THROW
не является частью стандартного C . Почему бы вам не написатьthrow std::range_error("Test");
?
Ответ №1:
Если вы хотите создать исключение в C , используйте стандартное ключевое слово C throw
:
throw std::range_error("Test");
Пожалуйста, воздержитесь от использования некоторых специфичных для компилятора внутренних макросов.
Если вы должны определить это, вот и все:
#define _THROW(e, ...) throw e(__VA_ARGS__)