AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
multi_feature_plugin.h
1#ifndef PROBFD_PLUGINS_MULTI_FEATURE_PLUGIN_H
2#define PROBFD_PLUGINS_MULTI_FEATURE_PLUGIN_H
3
4#include "downward/cli/plugins/plugin.h"
5
6namespace probfd::cli {
7
8template <template <bool, bool> typename T>
9class MultiCategoryPlugin {
10 static_assert(std::is_base_of_v<
11 downward::cli::plugins::CategoryPlugin,
12 T<false, false>>);
13 static_assert(std::is_base_of_v<
14 downward::cli::plugins::CategoryPlugin,
15 T<false, true>>);
16 static_assert(std::is_base_of_v<
17 downward::cli::plugins::CategoryPlugin,
18 T<true, false>>);
19 static_assert(std::is_base_of_v<
20 downward::cli::plugins::CategoryPlugin,
21 T<true, true>>);
22
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_;
27};
28
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_;
33};
34
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_;
41};
42
43} // namespace probfd::cli
44
45#endif