5 #include <boost/container/flat_set.hpp>
12 return p.hash_on_level();
21 template<
typename T,
bool is_flag>
47 template<
typename... Ts>
50 template <
class T,
class... Ts>
55 template <
class T,
class... Ts>
57 if constexpr (!T::is_flag) {
63 template <
class S,
class T,
class... Ts,
typename std::enable_if<!std::is_same<S, T>::value>
::type>
66 prop_insert<S>(base, element);
69 template <
class T,
class... Ts>
71 if constexpr (!T::is_flag) {
78 template <
class S,
class T,
class... Ts,
typename std::enable_if<!std::is_same<S, T>::value>
::type>
81 return prop_has<S>(base, element);
84 template <
class T,
class... Ts>
88 template <
class S,
class T,
class... Ts,
typename std::enable_if<!std::is_same<S, T>::value>
::type>
91 return prop_get<S>(base);
100 template <
class T,
class... Ts>
102 if constexpr (!T::is_flag) {
108 if constexpr(
sizeof...(Ts) > 0) {
111 return merge(base_a, base_b);
void prop_insert(PropertiesT< T, Ts... > &sets, const T &element)
SampledDerivationRef< Properties > merge(std::vector< SampledDerivationRef< Properties >> &derivations)
Merges a set of sampled derivations.
const auto & prop_get(const PropertiesT< T, Ts... > &sets)
boost::container::flat_set< T > PropertiesTSet
bool prop_has(const PropertiesT< T, Ts... > &sets, const T &element)
QuantifierType type(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
PropertiesTContent< T, T::is_flag >::type content
std::size_t operator()(const T &p) const