From Jason Turner

[container.node.cons]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpnbs1vob1/{from.md → to.md} +33 -0
tmp/tmpnbs1vob1/{from.md → to.md} RENAMED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### `node_handle` constructors, copy, and assignment <a id="container.node.cons">[[container.node.cons]]</a>
2
+
3
+ ``` cpp
4
+ node_handle(node_handle&& nh) noexcept;
5
+ ```
6
+
7
+ *Effects:* Constructs a *`node_handle`* object initializing `ptr_` with
8
+ `nh.ptr_`. Move constructs `alloc_` with `nh.alloc_`. Assigns `nullptr`
9
+ to `nh.ptr_` and assigns `nullopt` to `nh.alloc_`.
10
+
11
+ ``` cpp
12
+ node_handle& operator=(node_handle&& nh);
13
+ ```
14
+
15
+ *Requires:* Either `!alloc_`, or
16
+ `ator_traits::propagate_on_container_move_assignment` is `true`, or
17
+ `alloc_ == nh.alloc_`.
18
+
19
+ *Effects:*
20
+
21
+ - If `ptr_ != nullptr`, destroys the `value_type` subobject in the
22
+ `container_node_type` object pointed to by `ptr_` by calling
23
+ `ator_traits::destroy`, then deallocates `ptr_` by calling
24
+ `ator_traits::rebind_traits<container_node_type>::deallocate`.
25
+ - Assigns `nh.ptr_` to `ptr_`.
26
+ - If `!alloc` or `ator_traits::propagate_on_container_move_assignment`
27
+ is `true`, move assigns `nh.alloc_` to `alloc_`.
28
+ - Assigns `nullptr` to `nh.ptr_` and assigns `nullopt` to `nh.alloc_`.
29
+
30
+ *Returns:* `*this`.
31
+
32
+ *Throws:* Nothing.
33
+