我正在开发一个实体组件系统库,其中包含一些元编程。我必须管理两种类型:组件类型和管理器(数据存储)类型。
经理是基于政策设计的,我不知道他们将使用多少政策。经理可以与一个或多个组件相关联。
我有一个包含每种组件类型的元组:
template < typename T >
struct FooType {
using type = T;
};
constexpr auto Components = std::make_tuple(FooType<Foo1>{}, FooType<Foo2>{});
所以我将从这样的事情开始:
template < typename T >
concept bool existingComponent() {
return true;
}
template < typename ... existingComponent,
typename ... Policies >
constexpr auto make_type_pack() {
...
}
所以我必须用true
替换概念中的constexpr function
,这必须查看类型是否在Components
内。这甚至合法吗?对不起,我是元编程和概念的新手。