* Updated documentation to show rvalue-references funcions instead of emulation functions.

*  More non-copyable classes are now movable.
*  Move-constructor and assignments now leave moved object in default-constructed state
   instead of just swapping contents.
*  Several bugfixes (#2391, #2431, #1390, #2570, #2528).

[SVN r50258]
This commit is contained in:
Ion Gaztañaga
2008-12-13 13:47:00 +00:00
parent c1a6867856
commit 8f145becf5
15 changed files with 133 additions and 17 deletions

View File

@@ -56,6 +56,25 @@ int main ()
const int memsize = 65536/size_aligner*size_aligner;
static detail::max_align static_buffer[memsize/size_aligner];
{
//Now test move semantics
managed_heap_memory original(memsize);
managed_heap_memory move_ctor(detail::move_impl(original));
managed_heap_memory move_assign;
move_assign = detail::move_impl(move_ctor);
original.swap(detail::move_impl(move_assign));
original.swap(move_assign);
}
{
//Now test move semantics
managed_external_buffer original(create_only, static_buffer, memsize);
managed_external_buffer move_ctor(detail::move_impl(original));
managed_external_buffer move_assign;
move_assign = detail::move_impl(move_ctor);
original.swap(detail::move_impl(move_assign));
original.swap(move_assign);
}
//Named new capable user mem allocator
wmanaged_external_buffer user_buffer(create_only, static_buffer, memsize);