1#ifndef PROBFD_LANGUAGE_H
2#define PROBFD_LANGUAGE_H
19 using Ts::operator()...;
26decltype(
auto) select(
auto&&... args)
27 requires(i <
sizeof...(args))
29 return std::get<i>(std::tie(args...));
33decltype(
auto) select_opt(
auto&&... args)
35 if constexpr (i <
sizeof...(args)) {
36 return std::get<i>(std::tie(args...));
42template <
typename Derived>
43class add_postfix_inc_dec {
45 Derived operator++(
int)
46 requires requires(Derived d) { ++d; }
48 auto& self =
static_cast<Derived&
>(*this);
55 Derived operator--(
int)
56 requires requires(Derived d) { --d; }
58 auto& self =
static_cast<Derived&
>(*this);
66template <
typename Derived>
67class add_pm_assignment {
69 Derived& operator+=(
int n)
70 requires requires(Derived d,
int x) {
73 } -> std::convertible_to<Derived>;
76 auto& self =
static_cast<Derived&
>(*this);
81 Derived& operator-=(
int n)
82 requires requires(Derived d,
int x) {
85 } -> std::convertible_to<Derived>;
88 auto& self =
static_cast<Derived&
>(*this);
95concept lvalue_reference = std::is_lvalue_reference_v<T>;
97template <
typename Derived>
98class add_indirection {
102 auto& self =
static_cast<Derived&
>(*this);
107template <
typename Derived>
110 auto& operator[](
int n)
111 requires requires(Derived d,
int x) {
114 } -> std::convertible_to<Derived>;
120 auto& self =
static_cast<Derived&
>(*this);
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8