我有一个可变的Engine模板类:
template <typename ... Components> class Engine;
Run Code Online (Sandbox Code Playgroud)
我想在编译时为每个组件分配一个数字,这相当于它们的排序.拨打以下电话时会返回此信息:
template <typename Component> int ordinal();
Run Code Online (Sandbox Code Playgroud)
例如,如果:
Engine<PositionComponent, PhysicsComponent, InputComponent> engine;
Run Code Online (Sandbox Code Playgroud)
宣布,电话:
engine.ordinal<PhysicsComponent>();
Run Code Online (Sandbox Code Playgroud)
将返回1并且使用InputComponent而不是PhysicsComponent的类似调用将返回2.
是否可能,如果是的话,怎么会这样呢?