【发布时间】:2012-10-20 01:31:47
【问题描述】:
基本上,我需要知道当前的类,这样我才能制作执行以下操作的宏:
typedef boost::shared_ptr<MyClass> sptr;
typedef boost::shared_ptr<const MyClass> csptr;
//etc
无需将 MyClass 作为参数放入宏。我尝试过各种荒谬的事情,例如:
typedef decltype(*this) this_type;
但它们当然不起作用。没有什么可以让我解决这个问题吗?我希望 C++11 能给我们一些东西,让我们一起破解。
【问题讨论】:
-
什么是“当前班级”?你想把这个放在哪里?
-
"无需将 MyClass 作为宏的参数" -- 宏?什么宏?你为什么使用宏?只需命名类型,这并不难。不要用预处理器偷懒,应该尽量避免,是evil