前言
结构内字节对齐时, 可以使用 pragma pack(push/pop) +pragma pack(1/2/4/8/16)
刚才试了一下,警告也可以push.
实验
#pragma warning(push)
#pragma warning(disable : 4290)
// 在vs2017中有警告
// warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
void* operator new(size_t size) throw(std::bad_alloc) {
if (GOOGLE_NAMESPACE::g_new_hook) {
GOOGLE_NAMESPACE::g_new_hook();
}
return malloc(size);
}
void* operator new[](size_t size) throw(std::bad_alloc) {
return ::operator new(size);
}
void operator delete(void* p) throw() {
free(p);
}
void operator delete[](void* p) throw() {
::operator delete(p);
}
#pragma warning(pop)