C ++相当于基于SDL样式联合的事件

时间:2014-06-14 07:42:09

标签: c++ c++11

我遇到了需要定义“需求”类型的情况,其中每种类型的需求都必须携带不同的数据。像:

Requirement1:

  • 类型:BUILDING_AT
  • 数据:建筑类型,建筑位置

Requirement2:

  • 类型:WORKER_AT
  • 数据:工人位置

...

这与用户事件面临的问题基本相同。这些通常使用一个联合来实现,该联合封装了所需的所有可能数据,并使用单个变量来确定类型。 SDLSFML都是这方面的例子,这就是我目前实施这些要求的方式。

尽管这种方法运行正常,但我不禁想到在现代C ++环境中它似乎有些不雅。首先,它删除了默认的构造函数和复制/移动机制,迫使我重新定义所有这些。另一件事(尽管在实践中不是问题)是每个实例都占用尽可能多的内存。我不知道,也许我很傻,但我只是觉得可能有一个更优雅的解决方案。

那么,你们是否知道使用最新的C ++技巧是否有更好的解决方案?预C ++ 11兼容性没有问题。

0 个答案:

没有答案