c++ - 获取当前类的 typedef

标签 c++ compiler-construction macros typedef

我目前正在将 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 附带的编译器。

提前致谢!

最佳答案

不,这在 C++ 中是不可能的。

关于c++ - 获取当前类的 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692809/

相关文章:

c++ - 宏扩展中忽略警告 C6031 返回值

c - (宏创建)C 中的语法错误

python - 在 Python 和 C++ 之间共享数据

c++ - distcc 中的链接阶段

c++ - 如何从外部将值传递给结构函数?

compiler-construction - Flex编译错误

java - 编译器优化字节码的案例

c - 如何编写递归 for 循环 "repeat"宏以使用 CPP 预处理器生成 C 代码?

c++ - 如何用 C++ 编写程序,使其在执行后会自行删除?

c++ - 将 float 四舍五入到一定精度