Clingo
Loading...
Searching...
No Matches
Immutable Values

Immutable values and arrays with reference counting. More...

Classes

class  CppClingo::Util::immutable_array< T >
 An immutable array with efficient copying. More...
 
class  CppClingo::Util::immutable_value< T >
 An immutable value imlementation. More...
 

Functions

template<class It >
 CppClingo::Util::immutable_array (It, It) -> immutable_array< typename std::iterator_traits< It >::value_type >
 Decduction guide to construct an immutable array from an iterator range.
 
template<class T >
void CppClingo::Util::swap (immutable_array< T > &lhs, immutable_array< T > &rhs) noexcept
 Swap two immutable arrays.
 
template<class T , class... Ts>
auto CppClingo::Util::make_immutable_array (Ts &&...args) -> immutable_array< T >
 Construct an immutable array from the given elements.
 
template<typename U , typename... Args>
auto CppClingo::Util::make_immutable (Args &&...args) -> immutable_value< U >
 Construct an immutable value.
 
template<class X , class Y >
auto operator== (const immutable_value< X > &lhs, const immutable_value< Y > &rhs) -> bool
 Compare two immutable values.
 
template<class X , class Y >
auto operator (const immutable_value< X > &lhs, const immutable_value< Y > &rhs)
 Compare two immutable values.
 

Detailed Description

Immutable values and arrays with reference counting.

Function Documentation

◆ make_immutable_array()

template<class T , class... Ts>
auto CppClingo::Util::make_immutable_array ( Ts &&...  args) -> immutable_array<T>

Construct an immutable array from the given elements.

(Avoids useless copies in initializer lists).