jaulib v1.3.6
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
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, including relative positional access. 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.
 
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.
 
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.
 
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.
 
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>
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 1187 of file cow_darray.hpp.

◆ make_cow_darray() [2/2]

template<typename First, typename... Next>
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 1207 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 1218 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 1227 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 1236 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 1241 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 1250 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 1254 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 1258 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 1262 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 927 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 933 of file cow_iterator.hpp.

◆ operator==() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 942 of file cow_iterator.hpp.

◆ operator!=() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 947 of file cow_iterator.hpp.

◆ operator==() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 952 of file cow_iterator.hpp.

◆ operator!=() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 957 of file cow_iterator.hpp.

◆ operator<=() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 962 of file cow_iterator.hpp.

◆ operator<=() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 967 of file cow_iterator.hpp.

◆ operator<() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 972 of file cow_iterator.hpp.

◆ operator<() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 977 of file cow_iterator.hpp.

◆ operator>=() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 982 of file cow_iterator.hpp.

◆ operator>=() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 987 of file cow_iterator.hpp.

◆ operator>() [2/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 992 of file cow_iterator.hpp.

◆ operator>() [3/5]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 997 of file cow_iterator.hpp.

◆ operator-() [1/2]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 1002 of file cow_iterator.hpp.

◆ operator-() [2/2]

template<typename Storage_type, typename Storage_ref_type, typename CoW_container>
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 1008 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>
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 1836 of file darray.hpp.

◆ make_darray() [2/2]

template<typename First, typename... Next>
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 1856 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 1867 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 1876 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 1883 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 1888 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 1892 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 1896 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 1900 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 1904 of file darray.hpp.