Opened 14 years ago

Closed 14 years ago

#1932 closed Patches (fixed)

move semantics for shared objects (patch)

Reported by: Bryan Green <bryan.d.green@…> Owned by: Ion Gaztañaga
Milestone: Boost 1.36.0 Component: interprocess
Version: Boost Development Trunk Severity: Problem
Keywords: interprocess movable move Cc:

Description

In the interprocess library, move semantics are provided for all the container types using boost::interprocess::move().

The code for move semantics is (mostly) present in the shared object types and shared_region, but something is missing for it to actually work for these classes: the necessary specialization of the 'is_movable' trait, and the correct signature on the copy constructor and assignment operators.

Attached is a patch that fixes "movability" for several types: file_mapping, shared_memory_object, mapped_region, windows_shared_memory, managed_head_memory, managed_external_buffer.

The problem is a little harder for managed_shared_memory, managed_mapped_file, and managed_windows_shared_memory, because they derive from detail::managed_open_or_create_impl, which currently does not have a default constructor. I chose not to dig into that at this time.

Attachments (1)

interprocess_movable.patch (8.5 KB ) - added by Bryan Green <bryan.d.green@…> 14 years ago.
patch

Download all attachments as: .zip

Change History (2)

by Bryan Green <bryan.d.green@…>, 14 years ago

Attachment: interprocess_movable.patch added

patch

comment:1 by Ion Gaztañaga, 14 years ago

Resolution: fixed
Status: newclosed

Fixed in revision 45705 with movable managed classes

Note: See TracTickets for help on using tickets.