Documentation of memory

( foonathan/memory)

propagation_traits< joint_allocator > Struct Template Reference

Detailed Description

struct foonathan::memory::propagation_traits< joint_allocator >

Specialization of the propagation_traits for the joint_allocator.

A joint allocator does not propagate on assignment and it is not allowed to use the regular copy/move constructor of allocator aware containers, instead it needs the copy/move constructor with allocator.

This is required because the container constructor will end up copying/moving the allocator. But this is not allowed as you need the allocator with the correct joined memory. Copying can be customized (i.e. forbidden), but sadly not move, so keep that in mind.


using propagate_on_container_swap = std::false_type
using propagate_on_container_move_assignment = std::false_type
using propagate_on_container_copy_assignment = std::false_type

Static Functions

template<class AllocReference >
static AllocReference select_on_container_copy_construction (const AllocReference &)