Привет!
Я использовал следующий макрос C, но в С++ он не может автоматически отличать void*
до type*
.
#define MALLOC_SAFE(var, size) { \
var = malloc(size); \
if (!var) goto error; \
}
Я знаю, я могу сделать что-то вроде этого:
#define MALLOC_SAFE_CPP(var, type, size) { \
var = (type)malloc(size); \
if (!var) goto error; \
}
Но я не хочу переписывать большую часть кода, где использовался MALLOC_SAFE
.
Есть ли способ сделать это без указания типа макроса? Возможно, некоторые MSVC 2005 #pragma
/__declspec
/other?
p.s.: Я не могу использовать компилятор C, потому что мой код является частью (одним из сотен модулей) большого проекта. А теперь это на С++. Я знаю, я могу создать свой код отдельно. Но это старый код, и я просто хочу его быстро перенести.
Вопрос о void * casting;) Если это невозможно, я просто заменим MACRO_SAFE на MACRO_SAFE_CPP
Спасибо!