问:std :: function在同一个数组

时间:2017-01-12 11:07:55

标签: c++ performance caching metaprogramming std-function

我正在研究Entity Component System图书馆用于学习目的,我正在努力对我的设计进行重大修改。

我打算将class Systemupdateupdate调用分成几个std::function个函数。但是这些功能可以是任何功能,也可以是功能性的。所以我结束了很多不同的tuple类型。

出于性能原因,我真的不想使用std::array(或者它真的很有效,请告诉我)。我想使用std::function,但如何将各种struct放在一起?实际上它是std::function,其中包含struct,但正因为如此,//Function to add a function in the list [[Call by User]] addSystemBloc<Position, Speed>(function(ArgIDontKnow, Position, Speed), otherThings); //Function to generate a structure (probably a graph) linked to the array generateGraph(); //Inside the initialization of the System using the function we just add [[ Call by User ]] addArgument(id, arg); //id is not really nice, and this guy know the function he wants to add an arg (with std::bind) //Somwhere in the main loop [[ Call by Library ]] invoke(func, Position, Speed); 会遇到相同类型的问题。

如果数组可以在编译时生成(没有参数),那将是最好的。

有一个例子(不是真实的代码),我希望它能如何运作。

{
  "Result": -1,
  "Message": "E-mail/Mobile number or password is wrong, make sure your Mobile Number is entered with country code.",
  "MessageType": 2,
  "ResponseData": ""
}

无论如何,谢谢

1 个答案:

答案 0 :(得分:2)

数组是指定类型的固定长度值序列。 元组是指定类型的固定长度值序列。 没有方法的结构是指定类型的固定长度值序列。

这些都具有相同的性能特征,包括检索元素(即常量)和移动/复制(即sizeof(Thing)字节)。

您想象的“性能问题”是什么?

请参阅:http://en.cppreference.com/w/cpp/language/object