1#ifndef PROBFD_PLUGINS_MULTI_FEATURE_PLUGIN_H
2#define PROBFD_PLUGINS_MULTI_FEATURE_PLUGIN_H
4#include "downward/cli/plugins/plugin.h"
8template <
template <
bool,
bool>
typename T>
9class MultiCategoryPlugin {
10 static_assert(std::is_base_of_v<
11 downward::cli::plugins::CategoryPlugin,
13 static_assert(std::is_base_of_v<
14 downward::cli::plugins::CategoryPlugin,
16 static_assert(std::is_base_of_v<
17 downward::cli::plugins::CategoryPlugin,
19 static_assert(std::is_base_of_v<
20 downward::cli::plugins::CategoryPlugin,
23 T<false, false> category_plugin_1_;
24 T<false, true> category_plugin_2_;
25 T<true, false> category_plugin_3_;
26 T<true, true> category_plugin_4_;
29template <
template <
bool>
typename T>
30class BinaryFeaturePlugin {
31 downward::cli::plugins::FeaturePlugin<T<false>> plugin_1_;
32 downward::cli::plugins::FeaturePlugin<T<true>> plugin_2_;
35template <
template <
bool,
bool>
typename T>
36class MultiFeaturePlugin {
37 downward::cli::plugins::FeaturePlugin<T<false, false>> plugin_1_;
38 downward::cli::plugins::FeaturePlugin<T<false, true>> plugin_2_;
39 downward::cli::plugins::FeaturePlugin<T<true, false>> plugin_3_;
40 downward::cli::plugins::FeaturePlugin<T<true, true>> plugin_4_;