From Jason Turner

[definitions]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp3jxhtgrj/{from.md → to.md} +58 -101
tmp/tmp3jxhtgrj/{from.md → to.md} RENAMED
@@ -1,177 +1,134 @@
1
  ## Definitions <a id="definitions">[[definitions]]</a>
2
 
3
- #### 1 arbitrary-positional stream <a id="defns.arbitrary.stream">[[defns.arbitrary.stream]]</a>
 
4
 
5
  a stream (described in Clause  [[input.output]]) that can seek to any
6
  integral position within the length of the stream
7
- Every arbitrary-positional stream is also a repositional stream.
8
 
9
- #### 2 block <a id="defns.block">[[defns.block]]</a>
 
10
 
11
- place a thread in the blocked state
 
12
 
13
- #### 3 blocked thread <a id="defns.blocked">[[defns.blocked]]</a>
14
-
15
- a thread that is waiting for some condition (other than the availability
16
- of a processor) to be satisfied before it can continue execution[^1]
17
-
18
- #### 4 character <a id="defns.character">[[defns.character]]</a>
19
-
20
- \<Clauses  [[strings]], [[localization]], [[input.output]], and 
21
- [[re]]\> any object which, when treated sequentially, can represent
22
- text
23
- The term does not mean only `char`, `char16_t`, `char32_t`, and
24
- `wchar_t` objects, but any value that can be represented by a type that
25
- provides the definitions specified in these Clauses.
26
-
27
- #### 5 character container type <a id="defns.character.container">[[defns.character.container]]</a>
28
 
29
  a class or a type used to represent a *character*
30
- It is used for one of the template parameters of the string, iostream,
31
- and regular expression class templates. A character container type is a
32
- POD ([[basic.types]]) type.
33
 
34
- #### 6 comparison function <a id="defns.comparison">[[defns.comparison]]</a>
 
 
35
 
36
  an operator function ([[over.oper]]) for any of the equality (
37
  [[expr.eq]]) or relational ([[expr.rel]]) operators
38
 
39
- #### 7 component <a id="defns.component">[[defns.component]]</a>
40
-
41
  a group of library entities directly related as members, parameters, or
42
  return types
43
- For example, the class template `basic_string` and the non-member
44
- function templates that operate on strings are referred to as the
45
- *string component*.
46
 
47
- #### 8 deadlock <a id="defns.deadlock">[[defns.deadlock]]</a>
 
 
 
 
 
 
48
 
49
  one or more threads are unable to continue execution because each is
50
  blocked waiting for one or more of the others to satisfy some condition
51
 
52
- #### 9 default behavior <a id="defns.default.behavior.impl">[[defns.default.behavior.impl]]</a>
 
53
 
54
- \<implementation\> any specific behavior provided by the implementation,
55
- within the scope of the *required behavior*
56
 
57
- #### 10 default behavior <a id="defns.default.behavior.func">[[defns.default.behavior.func]]</a>
58
-
59
- \<specification\> a description of *replacement function* and *handler
60
- function* semantics
61
-
62
- #### 11 handler function <a id="defns.handler">[[defns.handler]]</a>
63
 
64
  a *non-reserved function* whose definition may be provided by a
65
  C++program
66
- A C++program may designate a handler function at various points in its
67
- execution by supplying a pointer to the function when calling any of the
68
- library functions that install handler functions (Clause 
69
- [[language.support]]).
70
 
71
- #### 12 iostream class templates <a id="defns.iostream.templates">[[defns.iostream.templates]]</a>
 
 
 
72
 
73
  templates, defined in Clause  [[input.output]], that take two template
74
  arguments
75
- The arguments are named `charT` and `traits`. The argument `charT` is a
76
- character container class, and the argument `traits` is a class which
77
- defines additional characteristics and functions of the character type
78
- represented by `charT` necessary to implement the iostream class
79
- templates.
80
 
81
- #### 13 modifier function <a id="defns.modifier">[[defns.modifier]]</a>
 
 
 
 
82
 
83
  a class member function ([[class.mfct]]) other than a constructor,
84
  assignment operator, or destructor that alters the state of an object of
85
  the class
86
 
87
- #### 14 move construction <a id="defns.move.constr">[[defns.move.constr]]</a>
88
-
89
- direct-initialization of an object of some type with an rvalue of the
90
- same type
91
-
92
- #### 15 move assignment <a id="defns.move.assign">[[defns.move.assign]]</a>
93
-
94
  assignment of an rvalue of some object type to a modifiable lvalue of
95
  the same type
96
 
97
- #### 16 object state <a id="defns.obj.state">[[defns.obj.state]]</a>
98
-
99
- the current value of all non-static class members of an object (
100
- [[class.mem]])
101
- The state of an object can be obtained by using one or more *observer
102
- functions*.
103
-
104
- #### 17 NTCTS <a id="defns.ntcts">[[defns.ntcts]]</a>
105
 
106
  a sequence of values that have *character type* that precede the
107
  terminating null character type value `charT()`
108
 
109
- #### 18 observer function <a id="defns.observer">[[defns.observer]]</a>
110
-
111
  a class member function ([[class.mfct]]) that accesses the state of an
112
  object of the class but does not alter that state
113
- Observer functions are specified as `const` member functions (
114
- [[class.this]]).
115
 
116
- #### 19 referenceable type <a id="defns.referenceable">[[defns.referenceable]]</a>
 
117
 
118
- An object type, a function type that does not have cv-qualifiers or a
119
- *ref-qualifier*, or a reference type. The term describes a type to which
120
- a reference can be created, including reference types.
121
 
122
- #### 20 replacement function <a id="defns.replacement">[[defns.replacement]]</a>
 
123
 
124
  a *non-reserved function* whose definition is provided by a C++program
125
- Only one definition for such a function is in effect for the duration of
126
- the program’s execution, as the result of creating the program (
127
- [[lex.phases]]) and resolving the definitions of all translation units (
128
- [[basic.link]]).
129
 
130
- #### 21 repositional stream <a id="defns.repositional.stream">[[defns.repositional.stream]]</a>
 
 
 
131
 
132
  a stream (described in Clause  [[input.output]]) that can seek to a
133
  position that was previously encountered
134
 
135
- #### 22 required behavior <a id="defns.required.behavior">[[defns.required.behavior]]</a>
136
-
137
  a description of *replacement function* and *handler function* semantics
138
  applicable to both the behavior provided by the implementation and the
139
  behavior of any such function definition in the program
140
- If such a function defined in a C++program fails to meet the required
141
- behavior when it executes, the behavior is undefined.
142
 
143
- #### 23 reserved function <a id="defns.reserved.function">[[defns.reserved.function]]</a>
 
 
144
 
145
  a function, specified as part of the C++standard library, that must be
146
  defined by the implementation
147
- If a C++program provides a definition for any reserved function, the
148
- results are undefined.
149
 
150
- #### 24 stable algorithm <a id="defns.stable">[[defns.stable]]</a>
 
151
 
152
  an algorithm that preserves, as appropriate to the particular algorithm,
153
  the order of elements
154
- Requirements for stable algorithms are given in  [[algorithm.stable]].
155
 
156
- #### 25 traits class <a id="defns.traits">[[defns.traits]]</a>
 
157
 
158
  a class that encapsulates a set of types and functions necessary for
159
  class templates and function templates to manipulate objects of types
160
  for which they are instantiated
161
- Traits classes defined in Clauses  [[strings]], [[localization]] and 
162
- [[input.output]] are *character traits*, which provide the character
163
- handling support needed by the string and iostream classes.
164
 
165
- #### 26 unblock <a id="defns.unblock">[[defns.unblock]]</a>
166
-
167
- place a thread in the unblocked state
168
-
169
- #### 27 valid but unspecified state <a id="defns.valid">[[defns.valid]]</a>
170
-
171
- an object state that is not specified except that the object’s
172
  invariants are met and operations on the object behave as specified for
173
  its type
174
- If an object `x` of type `std::vector<int>` is in a valid but
175
- unspecified state, `x.empty()` can be called unconditionally, and
176
- `x.front()` can be called only if `x.empty()` returns `false`.
 
 
177
 
 
1
  ## Definitions <a id="definitions">[[definitions]]</a>
2
 
3
+ [*Note 1*: Clause [[intro.defs]] defines additional terms used
4
+ elsewhere in this International Standard. — *end note*]
5
 
6
  a stream (described in Clause  [[input.output]]) that can seek to any
7
  integral position within the length of the stream
 
8
 
9
+ [*Note 2*: Every arbitrary-positional stream is also a repositional
10
+ stream. — *end note*]
11
 
12
+ \defncontext{Clauses~ [[strings]], [[localization]], [[input.output]], and~ [[re]]}
13
+ any object which, when treated sequentially, can represent text
14
 
15
+ [*Note 3*: The term does not mean only `char`, `char16_t`, `char32_t`,
16
+ and `wchar_t` objects, but any value that can be represented by a type
17
+ that provides the definitions specified in these Clauses. *end note*]
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
  a class or a type used to represent a *character*
 
 
 
20
 
21
+ [*Note 4*: It is used for one of the template parameters of the string,
22
+ iostream, and regular expression class templates. A character container
23
+ type is a POD ([[basic.types]]) type. — *end note*]
24
 
25
  an operator function ([[over.oper]]) for any of the equality (
26
  [[expr.eq]]) or relational ([[expr.rel]]) operators
27
 
 
 
28
  a group of library entities directly related as members, parameters, or
29
  return types
 
 
 
30
 
31
+ [*Note 5*: For example, the class template `basic_string` and the
32
+ non-member function templates that operate on strings are referred to as
33
+ the *string component*. — *end note*]
34
+
35
+ an expression whose evaluation as subexpression of a
36
+ *conditional-expression* `CE` ([[expr.cond]]) would not prevent `CE`
37
+ from being a core constant expression ([[expr.const]])
38
 
39
  one or more threads are unable to continue execution because each is
40
  blocked waiting for one or more of the others to satisfy some condition
41
 
42
+ any specific behavior provided by the implementation, within the scope
43
+ of the *required behavior*
44
 
45
+ a description of *replacement function* and *handler function* semantics
 
46
 
47
+ a direct-initialization ([[dcl.init]]) that is not
48
+ list-initialization ([[dcl.init.list]])
 
 
 
 
49
 
50
  a *non-reserved function* whose definition may be provided by a
51
  C++program
 
 
 
 
52
 
53
+ [*Note 6*: A C++program may designate a handler function at various
54
+ points in its execution by supplying a pointer to the function when
55
+ calling any of the library functions that install handler functions
56
+ (Clause  [[language.support]]). — *end note*]
57
 
58
  templates, defined in Clause  [[input.output]], that take two template
59
  arguments
 
 
 
 
 
60
 
61
+ [*Note 7*: The arguments are named `charT` and `traits`. The argument
62
+ `charT` is a character container class, and the argument `traits` is a
63
+ class which defines additional characteristics and functions of the
64
+ character type represented by `charT` necessary to implement the
65
+ iostream class templates. — *end note*]
66
 
67
  a class member function ([[class.mfct]]) other than a constructor,
68
  assignment operator, or destructor that alters the state of an object of
69
  the class
70
 
 
 
 
 
 
 
 
71
  assignment of an rvalue of some object type to a modifiable lvalue of
72
  the same type
73
 
74
+ direct-initialization of an object of some type with an rvalue of the
75
+ same type
 
 
 
 
 
 
76
 
77
  a sequence of values that have *character type* that precede the
78
  terminating null character type value `charT()`
79
 
 
 
80
  a class member function ([[class.mfct]]) that accesses the state of an
81
  object of the class but does not alter that state
 
 
82
 
83
+ [*Note 8*: Observer functions are specified as `const` member
84
+ functions ([[class.this]]). — *end note*]
85
 
86
+ an object type, a function type that does not have cv-qualifiers or a
87
+ *ref-qualifier*, or a reference type
 
88
 
89
+ [*Note 9*: The term describes a type to which a reference can be
90
+ created, including reference types. — *end note*]
91
 
92
  a *non-reserved function* whose definition is provided by a C++program
 
 
 
 
93
 
94
+ [*Note 10*: Only one definition for such a function is in effect for
95
+ the duration of the program’s execution, as the result of creating the
96
+ program ([[lex.phases]]) and resolving the definitions of all
97
+ translation units ([[basic.link]]). — *end note*]
98
 
99
  a stream (described in Clause  [[input.output]]) that can seek to a
100
  position that was previously encountered
101
 
 
 
102
  a description of *replacement function* and *handler function* semantics
103
  applicable to both the behavior provided by the implementation and the
104
  behavior of any such function definition in the program
 
 
105
 
106
+ [*Note 11*: If such a function defined in a C++program fails to meet
107
+ the required behavior when it executes, the behavior is undefined.
108
+ — *end note*]
109
 
110
  a function, specified as part of the C++standard library, that must be
111
  defined by the implementation
 
 
112
 
113
+ [*Note 12*: If a C++program provides a definition for any reserved
114
+ function, the results are undefined. — *end note*]
115
 
116
  an algorithm that preserves, as appropriate to the particular algorithm,
117
  the order of elements
 
118
 
119
+ [*Note 13*: Requirements for stable algorithms are given in 
120
+ [[algorithm.stable]]. — *end note*]
121
 
122
  a class that encapsulates a set of types and functions necessary for
123
  class templates and function templates to manipulate objects of types
124
  for which they are instantiated
 
 
 
125
 
126
+ a value of an object that is not specified except that the object’s
 
 
 
 
 
 
127
  invariants are met and operations on the object behave as specified for
128
  its type
129
+
130
+ [*Example 1*: If an object `x` of type `std::vector<int>` is in a valid
131
+ but unspecified state, `x.empty()` can be called unconditionally, and
132
+ `x.front()` can be called only if `x.empty()` returns
133
+ `false`. — *end example*]
134