rtti.h
来自「html-->wml的转换,能实现html到wml的大量转换工作,但是存在」· C头文件 代码 · 共 60 行
H
60 行
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#ifndef rtti_INCLUDED#define rtti_INCLUDED 1#ifdef SP_HAVE_RTTI#define DYNAMIC_CAST_PTR(T, p) dynamic_cast<T *>(p)#define DYNAMIC_CAST_CONST_PTR(T, p) dynamic_cast<const T *>(p)#define RTTI_CLASS#define RTTI_DEF0(T)#define RTTI_DEF1(T, B1)#define RTTI_DEF2(T, B1, B2)#define RTTI_DEF3(T, B1, B2, B3)#else /* not SP_HAVE_RTTI */#include "TypeId.h"#define RTTI_CLASS \public: \ virtual TypeId dynamicType() const; \ static inline TypeId staticType() { return TypeId(RTTI_bases_); } \protected: \ static const void *RTTI_bases_[]; \private:#define RTTI_DEF0(T) \ const void *T::RTTI_bases_[] = { 0 }; \ TypeId T::dynamicType() const { return staticType(); }#define RTTI_DEF1(T, B1) \ const void *T::RTTI_bases_[] = { B1::RTTI_bases_, 0 }; \ TypeId T::dynamicType() const { return staticType(); }#define RTTI_DEF2(T, B1, B2) \ const void *T::RTTI_bases_[] = { B1::RTTI_bases_, B2::RTTI_bases_, 0 }; \ TypeId T::dynamicType() const { return staticType(); }#define RTTI_DEF3(T, B1, B2, B3) \ const void *T::RTTI_bases_[] = { \ B1::RTTI_bases_, B2::RTTI_bases_, B3::RTTI_bases_, 0 }; \ TypeId T::dynamicType() const { return staticType(); }#define DYNAMIC_CAST_PTR(T, p) \((p) && (p)->dynamicType().canCast(T::staticType(), (p)->staticType()) \ ? (T *)(p) \ : 0)#define DYNAMIC_CAST_CONST_PTR(T, p) \((p) && (p)->dynamicType().canCast(T::staticType(), (p)->staticType()) \ ? (const T *)p \ : 0)#endif /* not SP_HAVE_RTTI */#endif /* not rtti_INCLUDED */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?