Stores two sequences in one contiguous memory block. More...
#include <left_right_sequence.h>
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_sequence & | operator= (const left_right_sequence &) |
void | try_shrink () |
~left_right_sequence () | |
Private Member Functions | |
void | copy (const left_right_sequence &) |
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.
L | value type of left sequence |
R | value type of right sequence |
i | max size on stack |
Definition at line 245 of file left_right_sequence.h.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
bk_lib::left_right_sequence< L, R, i >::left_right_sequence | ( | ) | [inline] |
Definition at line 260 of file left_right_sequence.h.
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.
bk_lib::left_right_sequence< L, R, i >::~left_right_sequence | ( | ) | [inline] |
Definition at line 268 of file left_right_sequence.h.
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.
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.
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.
void bk_lib::left_right_sequence< L, R, i >::try_shrink | ( | ) | [inline] |
Definition at line 271 of file left_right_sequence.h.