问:如何使用概念过滤参数包

时间:2017-03-24 16:18:38

标签: c++ metaprogramming c++-concepts

我正在开发一个实体组件系统库,其中包含一些元编程。我必须管理两种类型:组件类型和管理器(数据存储)类型。

经理是基于政策设计的,我不知道他们将使用多少政策。经理可以与一个或多个组件相关联。

我有一个包含每种组件类型的元组:

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内。这甚至合法吗?对不起,我是元编程和概念的新手。

0 个答案:

没有答案