For the purposes of this document, the terms and definitions given in ISO/IEC 2382, in TR 24772–1, in 14882:2014 and the following apply. Other terms are defined where they appear in italic type.
The following terms are in alphabetical order, with general topics referencing the relevant specific terms.
3.1.1
TBD
3.1.2
access:
An execution-time action, to read or modify the value of an object.
Note 1: Where only one of two actions is meant, read or modify. Modify includes the case where the new value being stored is the same as the previous value. Expressions that are not evaluated do not access objects
3.1.3
access protection
ADL
argument dependent lookup
alignment
requirement that objects of a particular type be located on storage boundaries with addresses that are particular multiples of a byte address
3.1.3
argument
the expression in the comma-separated list bounded by the parentheses in a function call expression, or a sequence of preprocessing tokens in the comma-separated list bounded by the parentheses in a function-like macro invocation
Note 1: Also called actual argument
Note 2: An argument replaces a formal parameter as the call is realized.
3.??
argument dependent lookup
lookup that finds additional overloads from the namespaces of the types of the arguments used in unqualified function calls
3.1.4
behaviour
an external appearance or action [recommend removal - standard comp sci term]
3.1.5
bit
the unit of data storage in the execution environment large enough to hold an object that may have one of two values
Note: It need not be possible to express the address of each individual bit of an object [recommend removal - standard comp sci term]
3.1.6
byte
the addressable unit of data storage large enough to hold any member of the basic character set of the execution environment
Note: It is possible to express the address of each individual byte of an object uniquely. A byte is composed of a contiguous sequence of bits, the number of which is implementation-defined. The least significant bit is called the low-order bit; the most significant bit is called the high-order bit. [recommend removal - standard comp sci term]
3.1.7
character
abstract member of a set of elements used for the organization, control, or representation of data and ideally when treated sequentially represents text
correctly rounded result
representation in the result format that is nearest in value, subject to the current rounding mode, to what the result would be given unlimited range and precision
3.1.8
class
a user-defined type declared with the class-key ‘class’ or ‘struct’ {.ul}
3.1.9
concrete
Recommend deletion, only used in 6.40 Templates and Generics
3.1.10
diagnostic message
informational message that is either an error or warning about an issue detected by the implementation
[3.1.11]{.ul}**
dynamic dispatch
[recommend removal] {.ul}
3.1.12
encapsulation
recommend removal - all usages in the document satisfy standard English use of encapsulate
3.1.13
formal parameter
object declared as part of a function declaration or definition that acquires a value on entry to the function, or an identifier from the comma-separated list bounded by the parentheses immediately following the macro name in a function-like macro definition.
[3.1.xx] friend{.ul}
function or class that can access the private and protected members of a specific class
[3.1.xx] hidden friend{.ul}
friend function that is only declared within a class or class template definition and hence is only found by ADL
3.1.xx
Implementation
toolchain that is used to build and support the execution of the C++ program
3.1.15
implementation-defined behaviour
behaviour, for a well-formed program construct and correct data, that depends on the implementation and that each implementation documents
3.1.16
implementation-defined value
unspecified value where each implementation documents how the choice for the value is selected. [recommend removal - term not use other than note(s)]
3.1.17
implementation limit
restriction imposed upon programs by the implementation.
3.1.18
indeterminate value
unspecified value or a trap representation
3.1.19
indeterminately sequenced
sequenced in a way that one of two evaluations will be executed before the other but in an unspecified order
3.1.20
Inheritance
TBD [recommend removal - well understood in OO languages]
3.1.21
language type
see block-structured language, comb-structured language (Non-responsive) [recommended removal - inadequate relevancy]
3.1.21
locale-specific behaviour
behaviour that depends on local conventions of nationality, culture, and language that each implementation documents
3.1.22
memory location
an object of scalar type or a maximal sequence of adjacent bit-fields all having nonzero width [recommend removal and move to 6.3]
3.23
multibyte character
sequence of one or more bytes representing a member of the extended character set of either the source or the execution environment.
Note: The extended character set is a superset of the basic character set. [Recommend removal - not used]
3.1.24
namespace
optionally-named entity that can contain scoped declarations of any kind of entity [ensure that this is put into clause 4 on general concepts]
3.25
object
region of data storage in the execution environment, the contents of which can represent values and that can be interpreted as having a particular type
3.1.26
overload
the use of the same symbol name to denote different entities
3.1.27
override
replacing the implementation of an inheritable function in a derived class
3.1.28
pointer-like-type
a set of types whose values depend upon the existence and value of another object, such as types for references, pointers, iterators and views
3.1.29
{Protected]{.ul}
visible only to itself and derived classes and friends
3.1.30
private
visible only to the class itself and friends
3.1.31
Public
visible without restriction
3.1.33
recommended practice
specification that is strongly recommended as being in keeping with the intent of the language standard, but that may be impractical for some implementations
[recommend removal - not used] **3.1.34((
runtime-constraint
a constraint imposed on an executing program [TBD - needs refinement] [continue from here - 7 August 2023]
3.1.35
single-byte character
bit representation that fits in a byte (binary representation?)
3.1.36
static
TBD
**3.1.37
STL
TBD
3.1.38
standard library
[TBD]
3.1.39
template
TBD
3.1.40
trap representation
object representation that need not represent a value of the object type
3.1.41
undefined behaviour
use of a non-portable or erroneous program construct or of erroneous data, for which the language standard imposes no requirements
Note: Undefined behaviour ranges from ignoring the situation completely with unpredictable results, to behaving during translation or program execution in a documented manner characteristic of the environment (with or without the issuance of a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message). An example of, undefined behaviour is the behaviour on integer overflow.
3.1.42
unspecified behaviour
use of an unspecified value, or other behaviour where the language standard provides two or more possibilities and imposes no further requirements on which is chosen in any instance
Note: For example, unspecified behaviour is the order in which the arguments to a function are evaluated.
3.1.43
unspecified value
valid value of the relevant type where the language standard imposes no requirements on which value is chosen in any instance
Note: An unspecified value cannot be a trap representation.
3.1.44
value
precise meaning of the contents of an object when interpreted as having a specific type (specific type or specified type?)
Note: See implementation-defined value, indeterminate value, unspecified value, trap representation
3.1.45
virtual
TBD
3.1.45
wide character
bit representation capable of representing any character in the current locale