我目前正在将boost::invigative_ptr与我的GUI类一起使用。
虽然这或多或少是一个方便的问题,但是有没有一个合适的方法来获取当前类的类型名?
我问的原因是我有一个宏用于typedef不同的指针类型:
#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附带的编译器。
提前谢谢!