Public Types | Public Member Functions | Private Member Functions
bk_lib::left_right_sequence< L, R, i > Class Template Reference

Stores two sequences in one contiguous memory block. More...

#include <left_right_sequence.h>

Inheritance diagram for bk_lib::left_right_sequence< L, R, i >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef base_type::align_type align_type
typedef
bk_lib::detail::select_base< L,
R, i >::type 
base_type
typedef base_type::buf_type buf_type
typedef
base_type::const_left_iterator 
const_left_iterator
typedef
base_type::const_right_iterator 
const_right_iterator
typedef base_type::left_iterator left_iterator
typedef base_type::left_type left_type
typedef base_type::max_type max_type
typedef base_type::right_iterator right_iterator
typedef base_type::right_type right_type
typedef base_type::size_type size_type

Public Member Functions

 left_right_sequence ()
 left_right_sequence (const left_right_sequence &other)
void move (left_right_sequence &other)
left_right_sequenceoperator= (const left_right_sequence &)
void try_shrink ()
 ~left_right_sequence ()

Private Member Functions

void copy (const left_right_sequence &)

Detailed Description

template<class L, class R, unsigned i>
class bk_lib::left_right_sequence< L, R, i >

Stores two sequences in one contiguous memory block.

The left sequence grows from left to right, while the right sequence grows from right to left. On overlap, the memory block is automatically extended.

Parameters:
Lvalue type of left sequence
Rvalue type of right sequence
imax size on stack
Precondition:
L and R can be copied with memcpy (i.e. have trivial copy constructor and trivial destructor)

Definition at line 245 of file left_right_sequence.h.


Member Typedef Documentation

template<class L, class R, unsigned i>
typedef base_type::align_type bk_lib::left_right_sequence< L, R, i >::align_type

Definition at line 251 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef bk_lib::detail::select_base<L, R, i>::type bk_lib::left_right_sequence< L, R, i >::base_type

Definition at line 247 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::buf_type bk_lib::left_right_sequence< L, R, i >::buf_type

Definition at line 253 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::const_left_iterator bk_lib::left_right_sequence< L, R, i >::const_left_iterator

Definition at line 256 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::const_right_iterator bk_lib::left_right_sequence< L, R, i >::const_right_iterator

Definition at line 258 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::left_iterator bk_lib::left_right_sequence< L, R, i >::left_iterator

Definition at line 255 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::left_type bk_lib::left_right_sequence< L, R, i >::left_type

Definition at line 248 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::max_type bk_lib::left_right_sequence< L, R, i >::max_type

Definition at line 252 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::right_iterator bk_lib::left_right_sequence< L, R, i >::right_iterator

Definition at line 257 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::right_type bk_lib::left_right_sequence< L, R, i >::right_type

Definition at line 249 of file left_right_sequence.h.

template<class L, class R, unsigned i>
typedef base_type::size_type bk_lib::left_right_sequence< L, R, i >::size_type

Definition at line 250 of file left_right_sequence.h.


Constructor & Destructor Documentation

template<class L, class R, unsigned i>
bk_lib::left_right_sequence< L, R, i >::left_right_sequence ( ) [inline]

Definition at line 260 of file left_right_sequence.h.

template<class L , class R , unsigned i>
bk_lib::left_right_sequence< L, R, i >::left_right_sequence ( const left_right_sequence< L, R, i > &  other)

Definition at line 329 of file left_right_sequence.h.

template<class L, class R, unsigned i>
bk_lib::left_right_sequence< L, R, i >::~left_right_sequence ( ) [inline]

Definition at line 268 of file left_right_sequence.h.


Member Function Documentation

template<class L , class R , unsigned i>
void bk_lib::left_right_sequence< L, R, i >::copy ( const left_right_sequence< L, R, i > &  other) [private]

Definition at line 309 of file left_right_sequence.h.

template<class L, class R, unsigned i>
void bk_lib::left_right_sequence< L, R, i >::move ( left_right_sequence< L, R, i > &  other) [inline]

Definition at line 285 of file left_right_sequence.h.

template<class L , class R , unsigned i>
left_right_sequence< L, R, i > & bk_lib::left_right_sequence< L, R, i >::operator= ( const left_right_sequence< L, R, i > &  other)

Definition at line 334 of file left_right_sequence.h.

template<class L, class R, unsigned i>
void bk_lib::left_right_sequence< L, R, i >::try_shrink ( ) [inline]

Definition at line 271 of file left_right_sequence.h.


The documentation for this class was generated from the following file:


clasp
Author(s): Benjamin Kaufmann
autogenerated on Thu Aug 27 2015 12:41:40