From Jason Turner

[definitions]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8tzjrb1c/{from.md → to.md} +0 -239
tmp/tmp8tzjrb1c/{from.md → to.md} RENAMED
@@ -1,239 +0,0 @@
1
- ## Definitions <a id="definitions">[[definitions]]</a>
2
-
3
- [*Note 1*: [[intro.defs]] defines additional terms used elsewhere in
4
- this document. — *end note*]
5
-
6
- #### 1 arbitrary-positional stream <a id="defns.arbitrary.stream">[[defns.arbitrary.stream]]</a>
7
-
8
- stream (described in [[input.output]]) that can seek to any integral
9
- position within the length of the stream
10
-
11
- [*Note 1 to entry*: Every arbitrary-positional stream is also a
12
- repositional stream. — *end note*]
13
-
14
- #### 2 character <a id="defns.character">[[defns.character]]</a>
15
-
16
- ⟨[[strings]], [[localization]], [[input.output]], and~ [[re]]⟩
17
- object which, when treated sequentially, can represent text
18
-
19
- [*Note 1 to entry*: The term does not mean only `char`, `char8_t`,
20
- `char16_t`, `char32_t`, and `wchar_t` objects, but any value that can be
21
- represented by a type that provides the definitions specified in these
22
- Clauses. — *end note*]
23
-
24
- #### 3 character container type <a id="defns.character.container">[[defns.character.container]]</a>
25
-
26
- class or a type used to represent a character
27
-
28
- [*Note 1 to entry*: It is used for one of the template parameters of
29
- the string, iostream, and regular expression class
30
- templates. — *end note*]
31
-
32
- #### 4 comparison function <a id="defns.comparison">[[defns.comparison]]</a>
33
-
34
- operator function [[over.oper]] for any of the equality [[expr.eq]],
35
- relational [[expr.rel]], or three-way comparison [[expr.spaceship]]
36
- operators
37
-
38
- #### 5 component <a id="defns.component">[[defns.component]]</a>
39
-
40
- group of library entities directly related as members, parameters, or
41
- return types
42
-
43
- [*Note 1 to entry*: For example, the class template `basic_string` and
44
- the non-member function templates that operate on strings are referred
45
- to as the *string component*. — *end note*]
46
-
47
- #### 6 constant subexpression <a id="defns.const.subexpr">[[defns.const.subexpr]]</a>
48
-
49
- expression whose evaluation as subexpression of a
50
- *conditional-expression* `CE` [[expr.cond]] would not prevent `CE` from
51
- being a core constant expression [[expr.const]]
52
-
53
- #### 7 deadlock <a id="defns.deadlock">[[defns.deadlock]]</a>
54
-
55
- situation wherein one or more threads are unable to continue execution
56
- because each is blocked waiting for one or more of the others to satisfy
57
- some condition
58
-
59
- #### 8 default behavior <a id="defns.default.behavior.impl">[[defns.default.behavior.impl]]</a>
60
-
61
- ⟨implementation⟩ specific behavior provided by the implementation,
62
- within the scope of the required behavior
63
-
64
- #### 9 default behavior <a id="defns.default.behavior.func">[[defns.default.behavior.func]]</a>
65
-
66
- ⟨specification⟩ description of replacement function and handler function
67
- semantics
68
-
69
- #### 10 direct-non-list-initialization <a id="defns.direct-non-list-init">[[defns.direct-non-list-init]]</a>
70
-
71
- direct-initialization [[dcl.init]] that is not list-initialization
72
- [[dcl.init.list]]
73
-
74
- #### 11 expression-equivalent <a id="defns.expression-equivalent">[[defns.expression-equivalent]]</a>
75
-
76
- expressions that all have the same effects, either are all
77
- potentially-throwing [[except.spec]] or are all not
78
- potentially-throwing, and either are all constant subexpressions or are
79
- all not constant subexpressions
80
-
81
- [*Example 1*: For a value `x` of type `int` and a function `f` that
82
- accepts integer arguments, the expressions `f(x + 2)`, `f(2 + x)`, and
83
- `f(1 + x + 1)` are expression-equivalent. — *end example*]
84
-
85
- #### 12 handler function <a id="defns.handler">[[defns.handler]]</a>
86
-
87
- non-reserved function whose definition may be provided by a C++ program
88
-
89
- [*Note 1 to entry*: A C++ program may designate a handler function at
90
- various points in its execution by supplying a pointer to the function
91
- when calling any of the library functions that install handler functions
92
- [[support]]. — *end note*]
93
-
94
- #### 13 implementation-defined strict total order over pointers <a id="defns.order.ptr">[[defns.order.ptr]]</a>
95
-
96
- *implementation-defined* strict total ordering over all pointer values
97
- such that the ordering is consistent with the partial order imposed by
98
- the builtin operators `<`, `>`, `<=`, `>=`, and `<=>`
99
-
100
- #### 14 iostream class templates <a id="defns.iostream.templates">[[defns.iostream.templates]]</a>
101
-
102
- templates, defined in [[input.output]], that take two template arguments
103
-
104
- [*Note 1 to entry*: The arguments are named `charT` and `traits`. The
105
- argument `charT` is a character container class, and the argument
106
- `traits` is a class which defines additional characteristics and
107
- functions of the character type represented by `charT` necessary to
108
- implement the iostream class templates. — *end note*]
109
-
110
- #### 15 modifier function <a id="defns.modifier">[[defns.modifier]]</a>
111
-
112
- class member function [[class.mfct]] other than a constructor,
113
- assignment operator, or destructor that alters the state of an object of
114
- the class
115
-
116
- #### 16 move assignment <a id="defns.move.assign">[[defns.move.assign]]</a>
117
-
118
- assignment of an rvalue of some object type to a modifiable lvalue of
119
- the same type
120
-
121
- #### 17 move construction <a id="defns.move.constr">[[defns.move.constr]]</a>
122
-
123
- direct-initialization of an object of some type with an rvalue of the
124
- same type
125
-
126
- #### 18 NTCTS <a id="defns.ntcts">[[defns.ntcts]]</a>
127
-
128
- sequence of values that have character type that precede the terminating
129
- null character type value `charT()`
130
-
131
- #### 19 observer function <a id="defns.observer">[[defns.observer]]</a>
132
-
133
- class member function [[class.mfct]] that accesses the state of an
134
- object of the class but does not alter that state
135
-
136
- [*Note 1 to entry*: Observer functions are specified as `const` member
137
- functions [[class.this]]. — *end note*]
138
-
139
- #### 20 program-defined specialization <a id="defns.prog.def.spec">[[defns.prog.def.spec]]</a>
140
-
141
- explicit template specialization or partial specialization that is not
142
- part of the C++ standard library and not defined by the implementation
143
-
144
- #### 21 program-defined type <a id="defns.prog.def.type">[[defns.prog.def.type]]</a>
145
-
146
- non-closure class type or enumeration type that is not part of the C++
147
- standard library and not defined by the implementation, or a closure
148
- type of a non-implementation-provided lambda expression, or an
149
- instantiation of a program-defined specialization
150
-
151
- [*Note 1 to entry*: Types defined by the implementation include
152
- extensions [[intro.compliance]] and internal types used by the
153
- library. — *end note*]
154
-
155
- #### 22 projection <a id="defns.projection">[[defns.projection]]</a>
156
-
157
- ⟨function object argument⟩ transformation that an algorithm applies
158
- before inspecting the values of elements
159
-
160
- [*Example 1*:
161
-
162
- ``` cpp
163
- std::pair<int, std::string_view> pairs[] = {{2, "foo"}, {1, "bar"}, {0, "baz"}};
164
- std::ranges::sort(pairs, std::ranges::less{}, [](auto const& p) { return p.first; });
165
- ```
166
-
167
- sorts the pairs in increasing order of their `first` members:
168
-
169
- ``` cpp
170
- {{0, "baz"}, {1, "bar"}, {2, "foo"}}
171
- ```
172
-
173
- — *end example*]
174
-
175
- #### 23 referenceable type <a id="defns.referenceable">[[defns.referenceable]]</a>
176
-
177
- type that is either an object type, a function type that does not have
178
- cv-qualifiers or a *ref-qualifier*, or a reference type
179
-
180
- [*Note 1 to entry*: The term describes a type to which a reference can
181
- be created, including reference types. — *end note*]
182
-
183
- #### 24 replacement function <a id="defns.replacement">[[defns.replacement]]</a>
184
-
185
- non-reserved function whose definition is provided by a C++ program
186
-
187
- [*Note 1 to entry*: Only one definition for such a function is in
188
- effect for the duration of the program’s execution, as the result of
189
- creating the program [[lex.phases]] and resolving the definitions of all
190
- translation units [[basic.link]]. — *end note*]
191
-
192
- #### 25 repositional stream <a id="defns.repositional.stream">[[defns.repositional.stream]]</a>
193
-
194
- stream (described in [[input.output]]) that can seek to a position that
195
- was previously encountered
196
-
197
- #### 26 required behavior <a id="defns.required.behavior">[[defns.required.behavior]]</a>
198
-
199
- description of replacement function and handler function semantics
200
- applicable to both the behavior provided by the implementation and the
201
- behavior of any such function definition in the program
202
-
203
- [*Note 1 to entry*: If such a function defined in a C++ program fails
204
- to meet the required behavior when it executes, the behavior is
205
- undefined. — *end note*]
206
-
207
- #### 27 reserved function <a id="defns.reserved.function">[[defns.reserved.function]]</a>
208
-
209
- function, specified as part of the C++ standard library, that is defined
210
- by the implementation
211
-
212
- [*Note 1 to entry*: If a C++ program provides a definition for any
213
- reserved function, the results are undefined. — *end note*]
214
-
215
- #### 28 stable algorithm <a id="defns.stable">[[defns.stable]]</a>
216
-
217
- algorithm that preserves, as appropriate to the particular algorithm,
218
- the order of elements
219
-
220
- [*Note 1 to entry*: Requirements for stable algorithms are given in
221
- [[algorithm.stable]]. — *end note*]
222
-
223
- #### 29 traits class <a id="defns.traits">[[defns.traits]]</a>
224
-
225
- class that encapsulates a set of types and functions necessary for class
226
- templates and function templates to manipulate objects of types for
227
- which they are instantiated
228
-
229
- #### 30 valid but unspecified state <a id="defns.valid">[[defns.valid]]</a>
230
-
231
- value of an object that is not specified except that the object’s
232
- invariants are met and operations on the object behave as specified for
233
- its type
234
-
235
- [*Example 1*: If an object `x` of type `std::vector<int>` is in a valid
236
- but unspecified state, `x.empty()` can be called unconditionally, and
237
- `x.front()` can be called only if `x.empty()` returns
238
- `false`. — *end example*]
239
-