我希望有一个宏使用它所使用的类的类型,而不将该名称传递给宏。为此,我尝试了typedef decltype(*this) my_type;
,但this
只能在非静态成员函数中使用。有任何想法吗?
编辑(评论副本):
我制作了一个基类和一组宏,它们使用 CRTP 无缝实现类数据的三重缓冲。当一个三重缓冲类从另一个三重缓冲类继承时,复杂性就出现了,实际上有两个基础——隐藏在宏中的 CRTP 基础和显式基础。因为显式基也继承自 CRTP 基的不同实例化,派生类中的成员函数在两个基之间发生冲突。我正在编写一个宏来通过重新实现派生类中的函数来自动解决这个冲突。这种重新实现需要派生类的类型来访问 CRTP 类的正确实例化,因此是原始问题。