【发布时间】:2015-11-08 07:29:08
【问题描述】:
所以我要做的是实现消息模式。据我了解,用户将根据我输入的消息类型而不是执行操作的消息类型采取行动。因此,这就是我的处理方式:
我想获取对象的数据类型,以便执行 switch 语句,但我不确定从哪里开始。
我浏览了谷歌并做了一些研究,但没有一个成功。这是我尝试过的:
- Decltype : 甚至不接近我想要的
- typeof : 我不太清楚怎么用
- 动态投射:不接近我想要的
基本上,我最后想要的是这样的:
switch (typeof(a)) {
class_a : //do something
class_b : //do something
}
if 语句对我来说也是一样的。谁能帮我吗?我更喜欢使用标准库。
【问题讨论】:
-
见
boost::variant -
@user1034749 有没有办法在不使用外部库的情况下做到这一点?
-
这可能是XY problem。你想达到什么目的?
-
@bolov 我正在尝试实现消息模式。据我所知,它将基于对象来定义我输入的信息并据此采取行动。
-
你可以在c++11中使用
union来管理不平凡的对象,但实际上你编写的代码与boost::variant或boost::any几乎相同
标签: c++ c++11 design-patterns rtti