STL Memory Versioning
Classes | Functions | Variables
vs Namespace Reference

Classes

class  vs_queue_strategy
 simpliest determenistic merge strategy. More...
 
class  vs_queue
 A versioned mimic of a stl::queue, suitable for multithread. More...
 
class  vs_set_strategy
 simpliest determenistic merge strategy. More...
 
class  vs_set
 A versioned mimic of a stl::set, suitable for multithread. More...
 
class  vs_stack_strategy
 simpliest determenistic merge strategy. More...
 
class  vs_stack
 A versioned mimic of a stl::stack, suitable for multithread. More...
 
class  thread
 std::thread wrapper with additional logic for managing Revisions More...
 
class  vs_tree_strategy
 simpliest determenistic merge strategy. More...
 
struct  _vs_tree_node
 Manages all balancing logic and correlating allocations;. More...
 
struct  _vs_tree_iterator
 
class  _vs_tree
 serves as stl-like interface from node to vs_tree; handles allocations in construction and destruction. More...
 
class  vs_tree
 A versioned AVL-tree with deep copy constructor in internal classes. More...
 

Functions

template<typename _Key >
std::ostream & operator<< (std::ostream &os, vs_queue< _Key > const &value)
 
template<typename _Key >
std::ostream & operator<< (std::ostream &os, vs_stack< _Key > const &value)
 
template<typename _Key , typename _Comp >
std::ostream & operator<< (std::ostream &os, vs_tree< _Key, _Comp > const &value)
 

Variables

template<typename T , typename Container >
concept IsMergeStrategy
 Concept for compile-time type checking passed user strategies. More...
 

Function Documentation

◆ operator<<() [1/3]

template<typename _Key >
std::ostream& vs::operator<< ( std::ostream &  os,
vs_queue< _Key > const &  value 
)

Definition at line 169 of file vs_queue.h.

169  {
170  vs_queue<_Key> temp = value;
171 
172  std::ostringstream o;
173  o << "{ ";
174  while (temp.size() != 0) {
175  o << temp.front();
176  temp.pop();
177  if (temp.size() != 0) {
178  o << ", ";
179  }
180  }
181  o << " }";
182 
183  os << o.str();
184  return os;
185  }

◆ operator<<() [2/3]

template<typename _Key >
std::ostream& vs::operator<< ( std::ostream &  os,
vs_stack< _Key > const &  value 
)

Definition at line 159 of file vs_stack.h.

159  {
160  vs_stack<_Key> temp = value;
161  std::stack<_Key> reversedStack;
162 
163  while (temp.size() != 0) {
164  reversedStack.push(temp.top());
165  temp.pop();
166  }
167 
168  std::ostringstream o;
169  o << "{ ";
170  while (reversedStack.size() != 0) {
171  o << reversedStack.top();
172  reversedStack.pop();
173  if (reversedStack.size() != 0) {
174  o << ", ";
175  }
176  }
177  o << " }";
178 
179  os << o.str();
180  return os;
181  }

◆ operator<<() [3/3]

template<typename _Key , typename _Comp >
std::ostream& vs::operator<< ( std::ostream &  os,
vs_tree< _Key, _Comp > const &  value 
)

Definition at line 609 of file vs_tree.h.

609  {
610  vs_tree<_Key,_Comp> temp = value;
611 
612  std::ostringstream o;
613  o << "{ ";
614  for (auto& i: temp) {
615  o << i << ", ";
616  }
617  o << " }";
618 
619  os << o.str();
620  return os;
621  }

Variable Documentation

◆ IsMergeStrategy

template<typename T , typename Container >
concept vs::IsMergeStrategy
Initial value:
= requires(T t, Container& src, Container& dst,
Container& dstc, Container::value_type& src_elem, Container::value_type& dst_elem)
{
t.merge(dst, src);
t.merge_same_element(dstc, dst_elem, src_elem);
}

Concept for compile-time type checking passed user strategies.

Definition at line 12 of file strategy.h.