我目前正在将 boost::intrusive_ptr 与我的 GUI 类一起使用。
虽然这或多或少是一个方便的问题,但是否有正确的方法来获取当前类的类型名?
我问的原因是我有一个用于定义不同指针类型的宏:
#define INTRUSIVE_PTR_TYPEDEFS(CLASSNAME) typedef boost::intrusive_ptr<CLASSNAME> Ptr; \
typedef boost::intrusive_ptr<const CLASSNAME> CPtr; \
typedef CLASSNAME* WeakPtr; \
typedef const CLASSNAME* CWeakPtr;
...
class Widget
{
public:
INTRUSIVE_PTR_TYPEDEFS(Widget);
...
};
class Button : public Widget
{
public:
INTRUSIVE_PTR_TYPEDEFS(Button);
...
};
拥有它会舒服得多CLASSNAME
自动扣除,因此您只需将其复制并粘贴到类正文中即可。我使用的是 Visual Studio 2010 附带的编译器。
提前致谢!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)