【发布时间】:2012-04-06 14:47:01
【问题描述】:
我正在用 C++ 编写一个基于主题的发布/订阅系统。我的通用“事件”类包含三个部分:
- 事件类型(std::string)
- 实体 ID(无符号整数)- 这是用于游戏引擎的
- 事件数据(std::map<:string>)
要填充“事件数据”映射,我需要能够存储任何数据类型或结构,例如 int、string 或 Vector3 (struct),以提供一些示例。我怎样才能做到这一点?或者,也许有更好的方法可以完全做到这一点......
在不相关的注释中,事件类型和数据名称使用 char* 还是字符串更好?
【问题讨论】:
-
别用
std::string。 -
为什么? (不是质疑你的判断,我只是想知道)
-
它更简单、标准并且可以防止错误。可能在某些极端情况下 char* 更好,但您几乎永远不会有足够好的理由证明在 std::string 上使用 char* 是合理的。
-
carleeto 刚刚向我解释了为什么我不应该在这里使用 char*,但是没关系。