Namespaces | |
namespace | rpa |
Classes | |
struct | rpa::mover< Type, IsPod > |
This template makes a destructive assignment, if 'swap' is available. More... | |
struct | rpa::mover< Type, false > |
This applies when the data type does not have 'swap'. More... | |
struct | rpa::swap_anything |
Brillant idea gratefully borrowed from David Abrahams, has_swap.hpp. More... | |
struct | rpa::no_swap |
no_swap::operator,('x') does not return a char, so sizeof returns 2. More... | |
Defines | |
#define | RPA_DECLARE_POD_MOVE(Tp) inline void move( Tp & dst, const Tp src ) { dst = src ; } |
This is for the most common cases and is necessary for oldest compilers. | |
Functions | |
rpa::RPA_DECLARE_POD_MOVE (bool) | |
rpa::RPA_DECLARE_POD_MOVE (char) | |
rpa::RPA_DECLARE_POD_MOVE (unsigned char) | |
rpa::RPA_DECLARE_POD_MOVE (short) | |
rpa::RPA_DECLARE_POD_MOVE (int) | |
rpa::RPA_DECLARE_POD_MOVE (long) | |
rpa::RPA_DECLARE_POD_MOVE (unsigned long long) | |
rpa::RPA_DECLARE_POD_MOVE (float) | |
rpa::RPA_DECLARE_POD_MOVE (double) | |
no_swap | rpa::swap (swap_anything, swap_anything) |
The result value can be combined with no_swap::operator,. | |
template<class Type> | |
void | rpa::move (Type &aDst, Type &aSrc) |
This makes a destructive assignment : It can change the input if is moved to the target. | |
template<class IterIn, class IterOut> | |
IterOut | rpa::move_ranges (IterIn itBeg, IterIn itEnd, IterOut itOut) |
#define RPA_DECLARE_POD_MOVE | ( | Tp | ) | inline void move( Tp & dst, const Tp src ) { dst = src ; } |
This is for the most common cases and is necessary for oldest compilers.