以下代码在 Windows 上使用 Visual Studio 编译良好:
class_handle(base *ptr) : ptr_m(ptr), name_m(typeid(base).raw_name()) { signature_m = CLASS_HANDLE_SIGNATURE; }
如果我尝试在 Linux 上编译相同的代码,我会得到:
error: ‘const class std::type_info’ has no member named ‘raw_name’
据我了解,raw_name
是微软特定的实现。我必须如何更改我的代码才能在 Windows 和 Linux 系统上编译?
EDIT1我宁愿不修改原始代码,我只需要一个解决方法来用 gcc 编译。那可能吗?
EDIT2会成功#define raw_name name
吗?