AIToolbox
A library that offers tools for AI problem solving.
TypeTraits.hpp
Go to the documentation of this file.
1 #ifndef AI_TOOLBOX_FACTORED_MDP_TYPE_TRAITS_HEADER_FILE
2 #define AI_TOOLBOX_FACTORED_MDP_TYPE_TRAITS_HEADER_FILE
3 
4 #include <ranges>
5 
8 
9 namespace AIToolbox::Factored::MDP {
15  template <typename QR>
16  concept IsQFunctionRule = Bandit::IsQFunctionRule<QR> && requires (const QR qr) {
17  { qr.state } -> std::convertible_to<PartialState>;
18  };
19 
23  template <typename T>
24  concept QFRuleRange = std::ranges::range<T> && IsQFunctionRule<std::ranges::range_value_t<T>>;
25 }
26 
27 #endif
AIToolbox::Factored::MDP::QFRuleRange
concept QFRuleRange
This concept represents a range of QFunctionRules.
Definition: TypeTraits.hpp:24
AIToolbox::Factored::MDP
Definition: CooperativePrioritizedSweeping.hpp:13
TypeTraits.hpp
AIToolbox::Factored::MDP::IsQFunctionRule
concept IsQFunctionRule
This concept models the interface for a QFunctionRule.
Definition: TypeTraits.hpp:16
Types.hpp