是否可以创建一个Wrapper
类
void f(void *) {}
Wrapper w;
f(w);
编译,但是
Wrapper w;
if (w) {}
不编译?或者在运行时检测差异?
背景:win32HANDLE
是void *
. Win32 不使用NULL
,而是((HANDLE)(-1))
将其用作错误值,因此任何将 a 隐式转换HANDLE
为 bool 的代码几乎肯定是在测试错误的东西。我有一个包装 a 的类HANDLE
,如果可能的话,我想在使用包装类时消除这种错误机会。