C-> C ++ Автоматически приводить пустой указатель к указателю типа в C ++ в #define, если тип не указан (стиль C) [MSVS]

Привет!

Я использовал следующееC макрос, но в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/Другой ?

с .: Я не могу использовать компилятор C, потому что мой код является частью (одного из сотен модулей) большого проекта. И теперь это на C ++. Я знаю, я могу построить свой код отдельно. Но это старый код, и я просто хочу его быстро портировать.

Вопрос в том, что такое void * casting;) Если это невозможно, я просто заменю MACRO_SAFE на MACRO_SAFE_CPP.

Благодарю вас!

Ответы на вопрос(4)

Ваш ответ на вопрос