Sierra Toolkit
Version of the Day
|
#include <memory_eastl.h>
uninitialized_move
uninitialized_move takes a constructed sequence of objects and an uninitialized destination buffer. In the case of any exception thrown while moving the objects, any newly constructed objects are guaranteed to be destructed and the input left fully constructed.
In the case where you need to do multiple moves atomically, split the calls into uninitialized_move_start/abort/commit.
uninitialized_move_start can possibly throw an exception. If it does, you don't need to do anything. However, if it returns without throwing an exception you need to guarantee that either uninitialize_move_abort or uninitialized_move_commit is called.
Both uninitialize_move_abort and uninitialize_move_commit are guaranteed to not throw C++ exceptions.
Definition at line 170 of file memory_eastl.h.