你好!
我使用了以下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
other ?
ps:我不能使用 C 编译器,因为我的代码是大型项目的一部分(数百个模块之一)。现在它在 C++ 上。我知道,我可以单独构建我的代码。但这是旧代码,我只想快速移植它。
问题是关于 void* cast ;) 如果不可能,我将用 MACRO_SAFE_CPP 替换 MACRO_SAFE
谢谢你!