Q : std::function 在同一个数组中有不同的类型
Q : std::function with different type inside the same array
我正在开发一个 Entity Component System 用于学习目的的库,我正在尝试对我的设计进行重大更改。
我打算将 class System
拆分为一个 update
调用多个 update
函数。但是这些函数可以是任何东西,不管是不是函数。所以我以很多不同的 std::function
类型结束。
出于性能原因,我真的不想使用 tuple
(或者它可能真的很有效,告诉我)。我想使用 std::array
,但如何将各种 std::function
放在一起?好吧,实际上它是一个包含 std::function
的 struct
,但因此 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);
总之谢谢
数组是指定类型值的固定长度序列。
元组是指定类型值的固定长度序列。
没有方法的结构是指定类型值的固定长度序列。
这些在检索元素(即常量)和移动/复制(即 sizeof(Thing) 字节)方面都具有相同的性能特征。
你在想什么"performance problems"?
我正在开发一个 Entity Component System 用于学习目的的库,我正在尝试对我的设计进行重大更改。
我打算将 class System
拆分为一个 update
调用多个 update
函数。但是这些函数可以是任何东西,不管是不是函数。所以我以很多不同的 std::function
类型结束。
出于性能原因,我真的不想使用 tuple
(或者它可能真的很有效,告诉我)。我想使用 std::array
,但如何将各种 std::function
放在一起?好吧,实际上它是一个包含 std::function
的 struct
,但因此 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);
总之谢谢
数组是指定类型值的固定长度序列。 元组是指定类型值的固定长度序列。 没有方法的结构是指定类型值的固定长度序列。
这些在检索元素(即常量)和移动/复制(即 sizeof(Thing) 字节)方面都具有相同的性能特征。
你在想什么"performance problems"?