我想要一个 C++ 宏,它将变成如下所示的东西:
safe_cast<Type>(object)
进入
Assert(dynamic_cast<Type>(object))
这可能吗?
我可以使用:safe_cast(Type, object)
,但这不是我想要的。
最佳答案
这不能是宏,但函数模板肯定没问题:
template <class U, class T>
U safe_cast(T *const obj) {
auto * const p = dynamic_cast<U>(obj);
assert(p);
return p;
}
像使用指针dynamic_cast
一样调用。
关于c++ - 特定的 C++ 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955275/