26 Containers library [containers]

26.2 Container requirements [container.requirements]

26.2.4 Node handles [container.node]

26.2.4.2 node_­handle constructors, copy, and assignment [container.node.cons]

node_handle(node_handle&& nh) noexcept;

Effects: Создает node_­handle объект, инициализируемый ptr_­ с помощью nh.ptr_­. Перемещайте конструкции alloc_­ с помощью nh.alloc_­. Назначает nullptr к nh.ptr_­ и правопреемникам nullopt к nh.alloc_­.

node_handle& operator=(node_handle&& nh);

Requires: Либо !alloc_­, либо ator_­traits​::​propagate_­on_­container_­move_­assignment есть true, либо alloc_­ == nh.alloc_­.

Effects:

  • Если ptr_­ != nullptrуничтожает value_­type подобъект в container_­node_­type объекте, на который указывает ptr_­ вызов ator_­traits​::​destroy, затем освобождает его ptr_­ путем вызова ator_­traits​::​rebind_­traits<container_­node_­type>​::​deallocate.

  • Назначает nh.ptr_­ в ptr_­.

  • Если !alloc_ или ator_­traits​::​propagate_­on_­container_­move_­assignment есть true, move назначает nh.alloc_­ на alloc_­.

  • Назначает nullptr к nh.ptr_­ и правопреемникам nullopt к nh.alloc_­.

Returns: *this.

Throws: Ничего такого.