0

当我查看 boost 进程间库的示例时,对象总是用字符串名称构造的。

segment.construct<Equipments>("name")("param1", "param2");

是否可以使用整数标识符构造对象,例如

segment.construct<Equipments>(123)("param1", "param2");
4

1 回答 1

1

你为什么想做这个?在任何情况下,你都可以用“有点”肮脏的方式来做:

segment.construct<Equipments>((char*)123)("param1", "param2");

只要 sizeof(char*) >= sizeof(int) 在您的平台上(在 Win32/Win64 上),指针就可以安全地转换回整数而不会丢失信息。只要确保您没有将指针值用作有效char*指针即可。

哦,您必须确保底层库代码不会尝试将该值用作有效的 char 指针。

于 2010-11-03T10:02:12.890 回答