jaulib v1.3.0
Jau Support Library (C++, Java, ..)
Classes | Namespaces | Functions
cow_vector.hpp File Reference
#include <cstring>
#include <string>
#include <cstdint>
#include <limits>
#include <atomic>
#include <memory>
#include <mutex>
#include <condition_variable>
#include <vector>
#include <algorithm>
#include <jau/cpp_lang_util.hpp>
#include <jau/debug.hpp>
#include <jau/basic_types.hpp>
#include <jau/ordered_atomic.hpp>
#include <jau/cow_iterator.hpp>
#include <jau/basic_algos.hpp>
Include dependency graph for cow_vector.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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...
 

Namespaces

namespace  jau
 __pack(...): Produces MSVC, clang and gcc compatible lead-in and -out macros.
 

Functions

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 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 Alloc_type >
std::ostream & jau::operator<< (std::ostream &out, const cow_vector< Value_type, Alloc_type > &c)
 
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 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 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 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 Alloc_type >
void jau::swap (cow_vector< Value_type, Alloc_type > &rhs, cow_vector< Value_type, Alloc_type > &lhs) noexcept