[container.node.modifiers]

# 23 Containers library [[containers]](./#containers)

## 23.2 Requirements [[container.requirements]](container.requirements#container.node.modifiers)

### 23.2.5 Node handles [[container.node]](container.node#modifiers)

#### 23.2.5.5 Modifiers [container.node.modifiers]

[ð](#itemdecl:1)

`constexpr void swap(node-handle& nh)
  noexcept(ator_traits::propagate_on_container_swap::value ||
           ator_traits::is_always_equal::value);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L2590)

*Preconditions*: !alloc_, or !nh.alloc_, orator_traits​::​propagate_on_container_swap​::​value is true,
or alloc_ == nh.alloc_[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L2596)

*Effects*: Calls swap(ptr_, nh.ptr_)[.](#2.sentence-1)

If !alloc_, or!nh.alloc_, or ator_traits​::​propagate_on_container_swap​::​value is true calls swap(alloc_, nh.alloc_)[.](#2.sentence-2)
