From Jason Turner

[hive.modifiers]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpj441powd/{from.md → to.md} +98 -0
tmp/tmpj441powd/{from.md → to.md} RENAMED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Modifiers <a id="hive.modifiers">[[hive.modifiers]]</a>
2
+
3
+ ``` cpp
4
+ template<class... Args> iterator emplace(Args&&... args);
5
+ template<class... Args> iterator emplace_hint(const_iterator hint, Args&&... args);
6
+ ```
7
+
8
+ *Preconditions:* `T` is *Cpp17EmplaceConstructible* into `hive` from
9
+ `args`.
10
+
11
+ *Effects:* Inserts an object of type `T` constructed with
12
+ `std::forward<Args>(args)...`. The `hint` parameter is ignored. If an
13
+ exception is thrown, there are no effects.
14
+
15
+ [*Note 1*: `args` can directly or indirectly refer to a value in
16
+ `*this`. — *end note*]
17
+
18
+ *Returns:* An iterator that points to the new element.
19
+
20
+ *Complexity:* Constant. Exactly one object of type `T` is constructed.
21
+
22
+ *Remarks:* Invalidates the past-the-end iterator.
23
+
24
+ ``` cpp
25
+ iterator insert(const T& x);
26
+ iterator insert(const_iterator hint, const T& x);
27
+ iterator insert(T&& x);
28
+ iterator insert(const_iterator hint, T&& x);
29
+ ```
30
+
31
+ *Effects:* Equivalent to:
32
+ `return emplace(std::forward<decltype(x)>(x));`
33
+
34
+ [*Note 2*: The `hint` parameter is ignored. — *end note*]
35
+
36
+ ``` cpp
37
+ void insert(initializer_list<T> rg);
38
+ template<container-compatible-range<T> R>
39
+ void insert_range(R&& rg);
40
+ ```
41
+
42
+ *Preconditions:* `T` is *Cpp17EmplaceInsertable* into `hive` from
43
+ `*ranges::begin(rg)`. `rg` and `*this` do not overlap.
44
+
45
+ *Effects:* Inserts copies of elements in `rg`. Each iterator in the
46
+ range `rg` is dereferenced exactly once.
47
+
48
+ *Complexity:* Linear in the number of elements inserted. Exactly one
49
+ object of type `T` is constructed for each element inserted.
50
+
51
+ *Remarks:* If an element is inserted, invalidates the past-the-end
52
+ iterator.
53
+
54
+ ``` cpp
55
+ void insert(size_type n, const T& x);
56
+ ```
57
+
58
+ *Preconditions:* `T` is *Cpp17CopyInsertable* into `hive`.
59
+
60
+ *Effects:* Inserts `n` copies of `x`.
61
+
62
+ *Complexity:* Linear in `n`. Exactly one object of type `T` is
63
+ constructed for each element inserted.
64
+
65
+ *Remarks:* If an element is inserted, invalidates the past-the-end
66
+ iterator.
67
+
68
+ ``` cpp
69
+ template<class InputIterator>
70
+ void insert(InputIterator first, InputIterator last);
71
+ ```
72
+
73
+ *Effects:* Equivalent to `insert_range(ranges::subrange(first, last))`.
74
+
75
+ ``` cpp
76
+ iterator erase(const_iterator position);
77
+ iterator erase(const_iterator first, const_iterator last);
78
+ ```
79
+
80
+ *Complexity:* Linear in the number of elements erased. Additionally, if
81
+ any active blocks become empty of elements as a result of the function
82
+ call, at worst linear in the number of element blocks.
83
+
84
+ *Remarks:* Invalidates references, pointers and iterators referring to
85
+ the erased elements. An erase operation that erases the last element in
86
+ `*this` also invalidates the past-the-end iterator.
87
+
88
+ ``` cpp
89
+ void swap(hive& x)
90
+ noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value ||
91
+ allocator_traits<Allocator>::is_always_equal::value);
92
+ ```
93
+
94
+ *Effects:* Exchanges the contents, `capacity()`, and *current-limits* of
95
+ `*this` with that of `x`.
96
+
97
+ *Complexity:* Constant.
98
+