12 #include <type_traits>
43 std::
size_t arity() const;
48 std::
size_t id()
const
59 friend std::ostream&
operator<<(std::ostream& _os,
const Sort& _sort);
62 static_assert(std::is_trivially_copyable<Sort>::value,
"Sort should be trivially copyable.");
63 static_assert(
sizeof(Sort) ==
sizeof(std::size_t),
"Sort should be as large as its id type");
71 return lhs.
id() == rhs.
id();
79 return lhs.
id() != rhs.
id();
87 return lhs.
id() < rhs.
id();
carl is the main namespace for the library.
bool operator<(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
bool operator!=(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
bool operator==(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
Implements a sort (for defining types of variables and functions).
friend std::ostream & operator<<(std::ostream &_os, const Sort &_sort)
Prints the given sort on the given output stream.
std::size_t mId
A unique id to identify this sort in the sort manager.
std::size_t arity() const
Sort(std::size_t id)
Constructs a sort.
std::size_t operator()(const carl::Sort &_sort) const
Implements a manager for sorts, containing the actual contents of these sort and allocating their ids...