Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;泛型数据类型 > C++中的“快速< /COD>通用数据类型”的最佳方法。我有一个事件系统,需要能够在程序中传递事件信息 sendEvent(123, "a String", aFloat, aVec3, etc); // sendEvent(EventID, EventArg, EventArg ...); eventData.at(0).asFloat(); eventData.at(1).asInt(); // etc._C++_Boost Any - Fatal编程技术网

C++;泛型数据类型 > C++中的“快速< /COD>通用数据类型”的最佳方法。我有一个事件系统,需要能够在程序中传递事件信息 sendEvent(123, "a String", aFloat, aVec3, etc); // sendEvent(EventID, EventArg, EventArg ...); eventData.at(0).asFloat(); eventData.at(1).asInt(); // etc.

C++;泛型数据类型 > C++中的“快速< /COD>通用数据类型”的最佳方法。我有一个事件系统,需要能够在程序中传递事件信息 sendEvent(123, "a String", aFloat, aVec3, etc); // sendEvent(EventID, EventArg, EventArg ...); eventData.at(0).asFloat(); eventData.at(1).asInt(); // etc.,c++,boost-any,C++,Boost Any,到目前为止,我只需要float/int/ptr,我在一个联合体中处理这个问题。但现在我有了一些大多数的结构,这变得有点复杂,所以我要重温一下 我对boost::any进行了深入研究,但这太慢了,可能有很多数据在四处传播,但这个想法似乎是正确的方向 使用void*data hold时,我做了一个相当简单的尝试,但很快就变得非常糟糕。如果支持的类型集有限,可以尝试使用boost::variant。这或多或少是一个更好的结合。它避免了boost::any正在使用的堆分配,并应提供最大性能 例如: /

到目前为止,我只需要float/int/ptr,我在一个联合体中处理这个问题。但现在我有了一些大多数的结构,这变得有点复杂,所以我要重温一下

我对boost::any进行了深入研究,但这太慢了,可能有很多数据在四处传播,但这个想法似乎是正确的方向


使用void*data hold时,我做了一个相当简单的尝试,但很快就变得非常糟糕。

如果支持的类型集有限,可以尝试使用
boost::variant
。这或多或少是一个更好的结合。它避免了
boost::any
正在使用的堆分配,并应提供最大性能

例如:

// create a variant capable of storing int, float and string
boost::variant<int, float, std::string> eventData;
eventData = 42.f; // store a float
float f = boost::get<float>(eventData); // get the float
//创建一个能够存储int、float和string的变量
变量事件数据;
eventData=42.f;//存放浮子
float f=boost::get(eventData);//拿浮子

如果您只有几个需要传递的指定类型,而不是任何任意类型,那么可能是包含联合的智能指针?