From Jason Turner

[intro.defs]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8hdvfp5d/{from.md → to.md} +81 -109
tmp/tmp8hdvfp5d/{from.md → to.md} RENAMED
@@ -1,165 +1,137 @@
1
- ## Terms and definitions <a id="intro.defs">[[intro.defs]]</a>
2
 
3
- For the purposes of this document, the following definitions apply.
 
 
 
 
 
 
 
 
4
 
5
  [[definitions]] defines additional terms that are used only in Clauses 
6
  [[library]] through  [[thread]] and Annex  [[depr]].
7
 
8
- Terms that are used only in a small portion of this International
9
- Standard are defined where they are used and italicized where they are
10
- defined.
11
 
12
- #### 1 argument <a id="defns.argument">[[defns.argument]]</a>
13
 
14
- \<function call expression\> expression in the comma-separated list
15
- bounded by the parentheses
16
 
17
- #### 2 argument <a id="defns.argument.macro">[[defns.argument.macro]]</a>
 
18
 
19
- \<function-like macro\> sequence of preprocessing tokens in the
20
- comma-separated list bounded by the parentheses
21
 
22
- #### 3 argument <a id="defns.argument.throw">[[defns.argument.throw]]</a>
 
23
 
24
- \<throw expression\> the operand of `throw`
25
-
26
- #### 4 argument <a id="defns.argument.templ">[[defns.argument.templ]]</a>
27
-
28
- \<template instantiation\> expression, *type-id* or *template-name* in
29
- the comma-separated list bounded by the angle brackets
30
-
31
- #### 5 conditionally-supported <a id="defns.cond.supp">[[defns.cond.supp]]</a>
32
 
33
  program construct that an implementation is not required to support
34
- Each implementation documents all conditionally-supported constructs
35
- that it does not support.
36
 
37
- #### 6 diagnostic message <a id="defns.diagnostic">[[defns.diagnostic]]</a>
 
38
 
39
  message belonging to an *implementation-defined* subset of the
40
  implementation’s output messages
41
 
42
- #### 7 dynamic type <a id="defns.dynamic.type">[[defns.dynamic.type]]</a>
 
43
 
44
- \<glvalue\> type of the most derived object ([[intro.object]]) to which
45
- the glvalue denoted by a glvalue expression refers
46
- if a pointer ([[dcl.ptr]]) `p` whose static type is “pointer to class
47
- `B` is pointing to an object of class `D`, derived from `B` (Clause 
48
- [[class.derived]]), the dynamic type of the expression `*p` is “`D`.”
49
- References ([[dcl.ref]]) are treated similarly.
50
 
51
- #### 8 dynamic type <a id="defns.dynamic.type.prvalue">[[defns.dynamic.type.prvalue]]</a>
52
 
53
- \<prvalue\> static type of the prvalue expression
54
-
55
- #### 9 ill-formed program <a id="defns.ill.formed">[[defns.ill.formed]]</a>
56
-
57
- program that is not well formed
58
-
59
- #### 10 implementation-defined behavior <a id="defns.impl.defined">[[defns.impl.defined]]</a>
60
 
61
  behavior, for a well-formed program construct and correct data, that
62
  depends on the implementation and that each implementation documents
63
 
64
- #### 11 implementation limits <a id="defns.impl.limits">[[defns.impl.limits]]</a>
65
-
66
  restrictions imposed upon programs by the implementation
67
 
68
- #### 12 locale-specific behavior <a id="defns.locale.specific">[[defns.locale.specific]]</a>
69
-
70
  behavior that depends on local conventions of nationality, culture, and
71
  language that each implementation documents
72
 
73
- #### 13 multibyte character <a id="defns.multibyte">[[defns.multibyte]]</a>
74
-
75
  sequence of one or more bytes representing a member of the extended
76
  character set of either the source or the execution environment
77
- The extended character set is a superset of the basic character set (
78
- [[lex.charset]]).
79
 
80
- #### 14 parameter <a id="defns.parameter">[[defns.parameter]]</a>
 
81
 
82
- \<function or catch clause\> object or reference declared as part of a
83
- function declaration or definition or in the catch clause of an
84
- exception handler that acquires a value on entry to the function or
85
- handler
86
 
87
- #### 15 parameter <a id="defns.parameter.macro">[[defns.parameter.macro]]</a>
 
88
 
89
- \<function-like macro\> identifier from the comma-separated list bounded
90
- by the parentheses immediately following the macro name
91
 
92
- #### 16 parameter <a id="defns.parameter.templ">[[defns.parameter.templ]]</a>
 
93
 
94
- \<template\> *template-parameter*
 
95
 
96
- #### 17 signature <a id="defns.signature">[[defns.signature]]</a>
 
97
 
98
- \<function\> name, parameter type list ([[dcl.fct]]), and enclosing
99
- namespace (if any)
100
- Signatures are used as a basis for name mangling and linking.
101
-
102
- #### 18 signature <a id="defns.signature.templ">[[defns.signature.templ]]</a>
103
-
104
- \<function template\> name, parameter type list ([[dcl.fct]]),
105
- enclosing namespace (if any), return type, and template parameter list
106
-
107
- #### 19 signature <a id="defns.signature.spec">[[defns.signature.spec]]</a>
108
-
109
- \<function template specialization\> signature of the template of which
110
- it is a specialization and its template arguments (whether explicitly
111
- specified or deduced)
112
-
113
- #### 20 signature <a id="defns.signature.member">[[defns.signature.member]]</a>
114
-
115
- \<class member function\> name, parameter type list ([[dcl.fct]]),
116
- class of which the function is a member, cv-qualifiers (if any), and
117
- *ref-qualifier* (if any)
118
-
119
- #### 21 signature <a id="defns.signature.member.templ">[[defns.signature.member.templ]]</a>
120
-
121
- \<class member function template\> name, parameter type list (
122
- [[dcl.fct]]), class of which the function is a member, cv-qualifiers (if
123
- any), *ref-qualifier* (if any), return type, and template parameter list
124
-
125
- #### 22 signature <a id="defns.signature.member.spec">[[defns.signature.member.spec]]</a>
126
-
127
- \<class member function template specialization\> signature of the
128
- member function template of which it is a specialization and its
129
  template arguments (whether explicitly specified or deduced)
130
 
131
- #### 23 static type <a id="defns.static.type">[[defns.static.type]]</a>
 
 
 
 
 
 
 
 
 
132
 
133
  type of an expression ([[basic.types]]) resulting from analysis of the
134
  program without considering execution semantics
135
- The static type of an expression depends only on the form of the program
136
- in which the expression appears, and does not change while the program
137
- is executing.
138
 
139
- #### 24 undefined behavior <a id="defns.undefined">[[defns.undefined]]</a>
 
 
 
 
 
140
 
141
  behavior for which this International Standard imposes no requirements
142
- Undefined behavior may be expected when this International Standard
143
- omits any explicit definition of behavior or when a program uses an
144
- erroneous construct or erroneous data. Permissible undefined behavior
145
- ranges from ignoring the situation completely with unpredictable
146
- results, to behaving during translation or program execution in a
147
- documented manner characteristic of the environment (with or without the
148
- issuance of a diagnostic message), to terminating a translation or
149
- execution (with the issuance of a diagnostic message). Many erroneous
150
- program constructs do not engender undefined behavior; they are required
151
- to be diagnosed.
152
 
153
- #### 25 unspecified behavior <a id="defns.unspecified">[[defns.unspecified]]</a>
 
 
 
 
 
 
 
 
 
 
 
154
 
155
  behavior, for a well-formed program construct and correct data, that
156
  depends on the implementation
157
- The implementation is not required to document which behavior occurs.
158
- The range of possible behaviors is usually delineated by this
159
- International Standard.
160
 
161
- #### 26 well-formed program <a id="defns.well.formed">[[defns.well.formed]]</a>
 
 
162
 
163
  C++program constructed according to the syntax rules, diagnosable
164
- semantic rules, and the One Definition Rule ([[basic.def.odr]]).
165
 
 
1
+ # Terms and definitions <a id="intro.defs">[[intro.defs]]</a>
2
 
3
+ For the purposes of this document, the terms and definitions given in
4
+ ISO/IEC 2382-1:1993, the terms, definitions, and symbols given in ISO
5
+ 80000-2:2009, and the following apply.
6
+
7
+ ISO and IEC maintain terminological databases for use in standardization
8
+ at the following addresses:
9
+
10
+ - IEC Electropedia: available at <http://www.electropedia.org/>
11
+ - ISO Online browsing platform: available at <http://www.iso.org/obp>
12
 
13
  [[definitions]] defines additional terms that are used only in Clauses 
14
  [[library]] through  [[thread]] and Annex  [[depr]].
15
 
16
+ Terms that are used only in a small portion of this document are defined
17
+ where they are used and italicized where they are defined.
 
18
 
19
+ to read or modify the value of an object
20
 
21
+ expression in the comma-separated list bounded by the parentheses (
22
+ [[expr.call]])
23
 
24
+ sequence of preprocessing tokens in the comma-separated list bounded by
25
+ the parentheses ([[cpp.replace]])
26
 
27
+ the operand of `throw` ([[expr.throw]])
 
28
 
29
+ *constant-expression*, *type-id*, or *id-expression* in the
30
+ comma-separated list bounded by the angle brackets ([[temp.arg]])
31
 
32
+ a thread of execution that blocks is waiting for some condition (other
33
+ than for the implementation to execute its execution steps) to be
34
+ satisfied before it can continue execution past the blocking operation
 
 
 
 
 
35
 
36
  program construct that an implementation is not required to support
 
 
37
 
38
+ [*Note 1*: Each implementation documents all conditionally-supported
39
+ constructs that it does not support. — *end note*]
40
 
41
  message belonging to an *implementation-defined* subset of the
42
  implementation’s output messages
43
 
44
+ type of the most derived object ([[intro.object]]) to which the glvalue
45
+ refers
46
 
47
+ [*Example 1*: If a pointer ([[dcl.ptr]]) `p` whose static type is
48
+ “pointer to class `B`” is pointing to an object of class `D`, derived
49
+ from `B` (Clause  [[class.derived]]), the dynamic type of the expression
50
+ `*p` is `D`”. References ([[dcl.ref]]) are treated
51
+ similarly. *end example*]
 
52
 
53
+ static type of the prvalue expression
54
 
55
+ program that is not well-formed ([[defns.well.formed]])
 
 
 
 
 
 
56
 
57
  behavior, for a well-formed program construct and correct data, that
58
  depends on the implementation and that each implementation documents
59
 
 
 
60
  restrictions imposed upon programs by the implementation
61
 
 
 
62
  behavior that depends on local conventions of nationality, culture, and
63
  language that each implementation documents
64
 
 
 
65
  sequence of one or more bytes representing a member of the extended
66
  character set of either the source or the execution environment
 
 
67
 
68
+ [*Note 2*: The extended character set is a superset of the basic
69
+ character set ([[lex.charset]]). — *end note*]
70
 
71
+ object or reference declared as part of a function declaration or
72
+ definition or in the catch clause of an exception handler that acquires
73
+ a value on entry to the function or handler
 
74
 
75
+ identifier from the comma-separated list bounded by the parentheses
76
+ immediately following the macro name
77
 
78
+ member of a *template-parameter-list*
 
79
 
80
+ name, parameter type list ([[dcl.fct]]), and enclosing namespace (if
81
+ any)
82
 
83
+ [*Note 3*: Signatures are used as a basis for name mangling and
84
+ linking. — *end note*]
85
 
86
+ name, parameter type list ([[dcl.fct]]), enclosing namespace (if any),
87
+ return type, and template parameter list
88
 
89
+ signature of the template of which it is a specialization and its
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  template arguments (whether explicitly specified or deduced)
91
 
92
+ name, parameter type list ([[dcl.fct]]), class of which the function is
93
+ a member, cv-qualifiers (if any), and *ref-qualifier* (if any)
94
+
95
+ name, parameter type list ([[dcl.fct]]), class of which the function is
96
+ a member, cv-qualifiers (if any), *ref-qualifier* (if any), return type
97
+ (if any), and template parameter list
98
+
99
+ signature of the member function template of which it is a
100
+ specialization and its template arguments (whether explicitly specified
101
+ or deduced)
102
 
103
  type of an expression ([[basic.types]]) resulting from analysis of the
104
  program without considering execution semantics
 
 
 
105
 
106
+ [*Note 4*: The static type of an expression depends only on the form of
107
+ the program in which the expression appears, and does not change while
108
+ the program is executing. — *end note*]
109
+
110
+ satisfy a condition that one or more blocked threads of execution are
111
+ waiting for
112
 
113
  behavior for which this International Standard imposes no requirements
 
 
 
 
 
 
 
 
 
 
114
 
115
+ [*Note 5*: Undefined behavior may be expected when this International
116
+ Standard omits any explicit definition of behavior or when a program
117
+ uses an erroneous construct or erroneous data. Permissible undefined
118
+ behavior ranges from ignoring the situation completely with
119
+ unpredictable results, to behaving during translation or program
120
+ execution in a documented manner characteristic of the environment (with
121
+ or without the issuance of a diagnostic message), to terminating a
122
+ translation or execution (with the issuance of a diagnostic message).
123
+ Many erroneous program constructs do not engender undefined behavior;
124
+ they are required to be diagnosed. Evaluation of a constant expression
125
+ never exhibits behavior explicitly specified as undefined (
126
+ [[expr.const]]). — *end note*]
127
 
128
  behavior, for a well-formed program construct and correct data, that
129
  depends on the implementation
 
 
 
130
 
131
+ [*Note 6*: The implementation is not required to document which
132
+ behavior occurs. The range of possible behaviors is usually delineated
133
+ by this International Standard. — *end note*]
134
 
135
  C++program constructed according to the syntax rules, diagnosable
136
+ semantic rules, and the one-definition rule ([[basic.def.odr]]).
137