Clingo
Loading...
Searching...
No Matches
attributes.hh
1#pragma once
2
3#include <clingo/util/macro.hh>
4#include <clingo/util/record.hh>
5
6namespace CppClingo::Input {
7
11
47
49template <class T> class RecursiveExpression : public CppClingo::Util::Record::Base<T> {
50 public:
51 CLINGO_IGNORE_NON_TEMPLATE_FRIEND_B
53 friend auto operator==(T const &a, T const &b) -> bool;
55 friend auto operator<=>(T const &a, T const &b) -> std::strong_ordering;
56 CLINGO_IGNORE_NON_TEMPLATE_FRIEND_E
57};
58
60template <class T> class Expression : public CppClingo::Util::Record::Base<T> {
61 public:
63 friend auto operator==(T const &a, T const &b) -> bool { return a.equal(b); }
65 friend auto operator<=>(T const &a, T const &b) -> std::strong_ordering { return a.compare(b); }
66};
67
69
70} // namespace CppClingo::Input
A record that friend declares and defines comparison operators.
Definition attributes.hh:60
friend auto operator<=>(T const &a, T const &b) -> std::strong_ordering
Compare two records.
Definition attributes.hh:65
friend auto operator==(T const &a, T const &b) -> bool
Compare two records.
Definition attributes.hh:63
A record that friend declares comparison operators.
Definition attributes.hh:49
friend auto operator<=>(T const &a, T const &b) -> std::strong_ordering
Compare two records.
CLINGO_IGNORE_NON_TEMPLATE_FRIEND_B friend auto operator==(T const &a, T const &b) -> bool
Compare two records.
Record base class to enable keyword argument based record updates.
Definition record.hh:176
constexpr auto a_edges
Definition attributes.hh:22
constexpr auto a_sign
Definition attributes.hh:37
constexpr auto a_elems
Definition attributes.hh:23
constexpr auto a_prio
Definition attributes.hh:35
constexpr auto a_cond
Definition attributes.hh:20
constexpr auto a_lhs
Definition attributes.hh:27
constexpr auto a_atom_defs
Definition attributes.hh:17
constexpr auto a_ops
Definition attributes.hh:33
constexpr auto a_external
Definition attributes.hh:24
constexpr auto a_args
Definition attributes.hh:15
constexpr auto a_dst
Definition attributes.hh:21
constexpr auto a_term_defs
Definition attributes.hh:39
constexpr auto a_op_defs
Definition attributes.hh:31
constexpr auto a_name
Definition attributes.hh:30
constexpr auto a_lit
Definition attributes.hh:28
constexpr auto a_terms
Definition attributes.hh:40
constexpr auto a_head
Definition attributes.hh:26
constexpr auto a_anonymous
Definition attributes.hh:14
constexpr auto a_src
Definition attributes.hh:38
constexpr auto a_rhs
Definition attributes.hh:36
constexpr auto a_tuple
Definition attributes.hh:42
constexpr auto a_weight
Definition attributes.hh:45
constexpr auto a_arity
Definition attributes.hh:16
constexpr auto a_type
Definition attributes.hh:43
constexpr auto a_loc
Definition attributes.hh:29
constexpr auto a_op
Definition attributes.hh:32
constexpr auto a_fun
Definition attributes.hh:25
constexpr auto a_body
Definition attributes.hh:19
constexpr auto a_term
Definition attributes.hh:41
constexpr auto a_value
Definition attributes.hh:44
constexpr auto a_atom
Definition attributes.hh:18
constexpr auto a_pool
Definition attributes.hh:34
A named attribute.
Definition record.hh:30