jaulib v1.3.0
Jau Support Library (C++, Java, ..)
Classes | Functions
Data Structures

Data structures, notably. More...

Classes

class  jau::cow_darray< Value_type, Size_type, Alloc_type, use_memmove, use_secmem >
 Implementation of a Copy-On-Write (CoW) using jau::darray as the underlying storage, exposing lock-free read operations using SC-DRF atomic synchronization. More...
 
class  jau::cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container >
 Implementation of a Copy-On-Write (CoW) read-onlu iterator over immutable value_type storage. More...
 
class  jau::cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container >
 Implementation of a Copy-On-Write (CoW) read-write iterator over mutable value_type storage. More...
 
class  jau::cow_vector< Value_type, Alloc_type >
 Implementation of a Copy-On-Write (CoW) using std::vector as the underlying storage, exposing lock-free read operations using SC-DRF atomic synchronization. More...
 
class  jau::darray< Value_type, Size_type, Alloc_type, use_memmove, use_secmem >
 Implementation of a dynamic linear array storage, aka vector. More...
 
class  jau::darray_sorted< Value_type, Size_type, Alloc_type, use_memmove, use_secmem >
 Extension to darray resulting in a sorted darray via insert(). More...
 
struct  jau::is_cow_type< class, class >
 template< class T > is_cow_type<T>::value compile-time Type Trait, determining whether the given template class is a CoW type, e.g. More...
 
struct  jau::is_cow_type< T, std::void_t< typename T::cow_container_t > >
 template< class T > is_cow_type<T>::value compile-time Type Trait, determining whether the given template class is a CoW type, e.g. More...
 
struct  jau::is_darray_type< class, class >
 template< class T > is_darray_type<T>::value compile-time Type Trait, determining whether the given template class is a - or has a darray type, e.g. More...
 
struct  jau::is_darray_type< T, std::void_t< typename T::darray_tag > >
 template< class T > is_darray_type<T>::value compile-time Type Trait, determining whether the given template class is a - or has a darray type, e.g. More...
 
class  jau::ringbuffer< Value_type, Size_type, use_memmove, use_memcpy, use_secmem >
 Ring buffer implementation, a.k.a circular buffer, exposing lock-free get*(..) and put*(..) methods. More...
 

Functions

template<typename First , typename... Next>
constexpr cow_darray< First > jau::make_cow_darray (First &&arg1)
 Complement constructor for cow_darray<T> instance, move semantics initializer for one argument. More...
 
template<typename First , typename... Next, std::enable_if_t< std::conjunction_v< std::is_same< First, Next >... >, bool > = true>
constexpr cow_darray< First > jau::make_cow_darray (First &&arg1, Next &&... argsN)
 Construct a cow_darray<T> instance, initialized by move semantics from the variadic (template pack) argument list. More...
 
template<typename First , typename... Next>
constexpr darray< First > jau::make_darray (First &&arg1)
 Complement constructor for darray<T> instance, move semantics initializer for one argument. More...
 
template<typename First , typename... Next, std::enable_if_t< std::conjunction_v< std::is_same< First, Next >... >, bool > = true>
constexpr darray< First > jau::make_darray (First &&arg1, Next &&... argsN)
 Construct a darray<T> instance, initialized by move semantics from the variadic (template pack) argument list. More...
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator!= (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator!= (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator!= (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator!= (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator!= (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr Storage_type::difference_type jau::operator- (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr Storage_type::difference_type jau::operator- (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator< (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator< (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator< (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator< (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator< (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
std::ostream & jau::operator<< (std::ostream &out, const cow_darray< Value_type, Size_type, Alloc_type > &c)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
std::ostream & jau::operator<< (std::ostream &out, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &c)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
std::ostream & jau::operator<< (std::ostream &out, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &c)
 
template<typename Value_type , typename Alloc_type >
std::ostream & jau::operator<< (std::ostream &out, const cow_vector< Value_type, Alloc_type > &c)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
std::ostream & jau::operator<< (std::ostream &out, const darray< Value_type, Size_type, Alloc_type > &c)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator<= (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator<= (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator<= (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator<= (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator<= (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator== (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator== (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator== (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator== (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator== (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator> (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator> (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator> (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator> (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator> (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator>= (const cow_darray< Value_type, Size_type, Alloc_type > &rhs, const cow_darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator>= (const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator>= (const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &lhs, const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &rhs) noexcept
 
template<typename Value_type , typename Alloc_type >
bool jau::operator>= (const cow_vector< Value_type, Alloc_type > &rhs, const cow_vector< Value_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator>= (const darray< Value_type, Size_type, Alloc_type > &rhs, const darray< Value_type, Size_type, Alloc_type > &lhs)
 
template<typename Value_type , typename Size_type , typename Alloc_type >
void jau::swap (cow_darray< Value_type, Size_type, Alloc_type > &rhs, cow_darray< Value_type, Size_type, Alloc_type > &lhs) noexcept
 
template<typename Value_type , typename Alloc_type >
void jau::swap (cow_vector< Value_type, Alloc_type > &rhs, cow_vector< Value_type, Alloc_type > &lhs) noexcept
 
template<typename Value_type , typename Size_type , typename Alloc_type >
void jau::swap (darray< Value_type, Size_type, Alloc_type > &rhs, darray< Value_type, Size_type, Alloc_type > &lhs) noexcept
 

Detailed Description

Data structures, notably.

Function Documentation

◆ make_cow_darray() [1/2]

template<typename First , typename... Next, std::enable_if_t< std::conjunction_v< std::is_same< First, Next >... >, bool > = true>
constexpr cow_darray< First > jau::make_cow_darray ( First &&  arg1,
Next &&...  argsN 
)
constexpr

Construct a cow_darray<T> instance, initialized by move semantics from the variadic (template pack) argument list.

std::initializer_list<T> enforces to copy the created instances into the container, since its iterator references to const value_type.

This alternative template passes the r-value argument references to cow_darray::push_back_list(), hence using std::move without copying semantics.

All argument types must be of same type, i.e. std::is_same. The deduced darray<T> instance also uses same type as its Value_type.

Template Parameters
Firstthe first argument type, must be same
Nextall other argument types, must be same

param arg1 the first r-value

Parameters
argsNthe other r-values
Returns
the new cow_darray
See also
cow_darray::push_back_list()
make_cow_darray()

Definition at line 1117 of file cow_darray.hpp.

◆ make_cow_darray() [2/2]

template<typename First , typename... Next>
constexpr cow_darray< First > jau::make_cow_darray ( First &&  arg1)
constexpr

Complement constructor for cow_darray<T> instance, move semantics initializer for one argument.

Template Parameters
First
Next
Parameters
arg1
Returns
See also
cow_darray::push_back()
cow_darray::push_back_list()
make_cow_darray()

Definition at line 1137 of file cow_darray.hpp.

◆ operator<<() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
std::ostream & jau::operator<< ( std::ostream &  out,
const cow_darray< Value_type, Size_type, Alloc_type > &  c 
)

Definition at line 1148 of file cow_darray.hpp.

◆ operator==() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator== ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1157 of file cow_darray.hpp.

◆ operator!=() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator!= ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1166 of file cow_darray.hpp.

◆ operator<() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator< ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1171 of file cow_darray.hpp.

◆ operator>() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator> ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1180 of file cow_darray.hpp.

◆ operator<=() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator<= ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1184 of file cow_darray.hpp.

◆ operator>=() [1/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator>= ( const cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
const cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1188 of file cow_darray.hpp.

◆ swap() [1/3]

template<typename Value_type , typename Size_type , typename Alloc_type >
void jau::swap ( cow_darray< Value_type, Size_type, Alloc_type > &  rhs,
cow_darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inlinenoexcept

Definition at line 1192 of file cow_darray.hpp.

Here is the caller graph for this function:

◆ operator<<() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
std::ostream & jau::operator<< ( std::ostream &  out,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  c 
)

Definition at line 949 of file cow_iterator.hpp.

◆ operator<<() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
std::ostream & jau::operator<< ( std::ostream &  out,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  c 
)

Definition at line 955 of file cow_iterator.hpp.

◆ operator==() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator== ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 964 of file cow_iterator.hpp.

◆ operator!=() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator!= ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 969 of file cow_iterator.hpp.

◆ operator==() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator== ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 974 of file cow_iterator.hpp.

◆ operator!=() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator!= ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 979 of file cow_iterator.hpp.

◆ operator<=() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator<= ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 984 of file cow_iterator.hpp.

◆ operator<=() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator<= ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 989 of file cow_iterator.hpp.

◆ operator<() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator< ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 994 of file cow_iterator.hpp.

◆ operator<() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator< ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 999 of file cow_iterator.hpp.

◆ operator>=() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator>= ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1004 of file cow_iterator.hpp.

◆ operator>=() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator>= ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1009 of file cow_iterator.hpp.

◆ operator>() [2/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator> ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1014 of file cow_iterator.hpp.

◆ operator>() [3/5]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr bool jau::operator> ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1019 of file cow_iterator.hpp.

◆ operator-() [1/2]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr Storage_type::difference_type jau::operator- ( const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1024 of file cow_iterator.hpp.

◆ operator-() [2/2]

template<typename Storage_type , typename Storage_ref_type , typename CoW_container >
constexpr Storage_type::difference_type jau::operator- ( const cow_rw_iterator< Storage_type, Storage_ref_type, CoW_container > &  lhs,
const cow_ro_iterator< Storage_type, Storage_ref_type, CoW_container > &  rhs 
)
constexprnoexcept

Definition at line 1030 of file cow_iterator.hpp.

◆ operator<<() [4/5]

template<typename Value_type , typename Alloc_type >
std::ostream & jau::operator<< ( std::ostream &  out,
const cow_vector< Value_type, Alloc_type > &  c 
)

Definition at line 653 of file cow_vector.hpp.

◆ operator==() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator== ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 662 of file cow_vector.hpp.

◆ operator!=() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator!= ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 671 of file cow_vector.hpp.

◆ operator<() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator< ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 676 of file cow_vector.hpp.

◆ operator>() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator> ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 685 of file cow_vector.hpp.

◆ operator<=() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator<= ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 689 of file cow_vector.hpp.

◆ operator>=() [4/5]

template<typename Value_type , typename Alloc_type >
bool jau::operator>= ( const cow_vector< Value_type, Alloc_type > &  rhs,
const cow_vector< Value_type, Alloc_type > &  lhs 
)
inline

Definition at line 693 of file cow_vector.hpp.

◆ swap() [2/3]

template<typename Value_type , typename Alloc_type >
void jau::swap ( cow_vector< Value_type, Alloc_type > &  rhs,
cow_vector< Value_type, Alloc_type > &  lhs 
)
inlinenoexcept

Definition at line 697 of file cow_vector.hpp.

◆ make_darray() [1/2]

template<typename First , typename... Next, std::enable_if_t< std::conjunction_v< std::is_same< First, Next >... >, bool > = true>
constexpr darray< First > jau::make_darray ( First &&  arg1,
Next &&...  argsN 
)
constexpr

Construct a darray<T> instance, initialized by move semantics from the variadic (template pack) argument list.

std::initializer_list<T> enforces to copy the created instances into the container, since its iterator references to const value_type.

This alternative template passes the r-value argument references to darray::push_back_list(), hence using std::move without copying semantics.

All argument types must be of same type, i.e. std::is_same. The deduced darray<T> instance also uses same type as its Value_type.

Template Parameters
Firstthe first argument type, must be same
Nextall other argument types, must be same

param arg1 the first r-value

Parameters
argsNthe other r-values
Returns
the new darray
See also
darray::push_back_list()
make_darray()

Definition at line 1373 of file darray.hpp.

◆ make_darray() [2/2]

template<typename First , typename... Next>
constexpr darray< First > jau::make_darray ( First &&  arg1)
constexpr

Complement constructor for darray<T> instance, move semantics initializer for one argument.

Template Parameters
First
Next
Parameters
arg1
Returns
See also
darray::push_back()
darray::push_back_list()
make_darray()

Definition at line 1393 of file darray.hpp.

◆ operator<<() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
std::ostream & jau::operator<< ( std::ostream &  out,
const darray< Value_type, Size_type, Alloc_type > &  c 
)

Definition at line 1404 of file darray.hpp.

◆ operator==() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator== ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1413 of file darray.hpp.

◆ operator!=() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator!= ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1420 of file darray.hpp.

◆ operator<() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator< ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1425 of file darray.hpp.

◆ operator>() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator> ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1429 of file darray.hpp.

◆ operator<=() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator<= ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1433 of file darray.hpp.

◆ operator>=() [5/5]

template<typename Value_type , typename Size_type , typename Alloc_type >
bool jau::operator>= ( const darray< Value_type, Size_type, Alloc_type > &  rhs,
const darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inline

Definition at line 1437 of file darray.hpp.

◆ swap() [3/3]

template<typename Value_type , typename Size_type , typename Alloc_type >
void jau::swap ( darray< Value_type, Size_type, Alloc_type > &  rhs,
darray< Value_type, Size_type, Alloc_type > &  lhs 
)
inlinenoexcept

Definition at line 1441 of file darray.hpp.

Here is the caller graph for this function: