Skip to content

Commit a01e78c

Browse files
authored
Merge branch 'master' into b32
2 parents d3cbabd + 781374b commit a01e78c

16 files changed

+437
-476
lines changed

source/basic.tex

+34-36
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
an object. The variable's name, if any, denotes the reference or object.
5555

5656
\pnum
57-
A \defn{local entity} is a variable with
57+
A \defnadj{local}{entity} is a variable with
5858
automatic storage duration\iref{basic.stc.auto},
5959
a structured binding\iref{dcl.struct.bind}
6060
whose corresponding variable is such an entity,
@@ -216,7 +216,7 @@
216216
\begin{note}
217217
\indextext{implementation-generated}%
218218
In some circumstances, \Cpp{} implementations implicitly define the
219-
default constructor\iref{class.ctor},
219+
default constructor\iref{class.default.ctor},
220220
copy constructor, move constructor\iref{class.copy.ctor},
221221
copy assignment operator, move assignment operator\iref{class.copy.assign},
222222
or destructor\iref{class.dtor} member functions.
@@ -357,8 +357,9 @@
357357
A variable \tcode{x} whose name appears as a
358358
potentially-evaluated expression \tcode{ex} is \defnx{odr-used}{odr-use} by \tcode{ex} unless
359359
applying the lvalue-to-rvalue conversion\iref{conv.lval} to \tcode{x} yields
360-
a constant expression\iref{expr.const} that does not invoke any non-trivial
361-
functions
360+
a constant expression\iref{expr.const}
361+
that does not invoke a function
362+
other than a trivial special member function\iref{special}
362363
and, if \tcode{x} is an object, \tcode{ex} is an element of
363364
the set of potential results of an expression \tcode{e}, where either the lvalue-to-rvalue
364365
conversion\iref{conv.lval} is applied to \tcode{e}, or \tcode{e} is
@@ -412,8 +413,8 @@
412413
within the innermost enclosing class or non-lambda function definition scope),
413414
either:
414415
\begin{itemize}
415-
\item the declarative region is a block scope, or
416-
\item the declarative region is the function parameter scope of a \grammarterm{lambda-expression}
416+
\item the intervening declarative region is a block scope, or
417+
\item the intervening declarative region is the function parameter scope of a \grammarterm{lambda-expression}
417418
that has a \grammarterm{simple-capture} naming the entity or has a \grammarterm{capture-default}.
418419
\end{itemize}
419420
\end{itemize}
@@ -440,8 +441,8 @@
440441
outside of a discarded statement\iref{stmt.if}; no diagnostic required.
441442
The definition can appear explicitly in the program, it can be found in
442443
the standard or a user-defined library, or (when appropriate) it is
443-
implicitly defined (see~\ref{class.ctor}, \ref{class.dtor},
444-
\ref{class.copy.ctor}, and \ref{class.copy.assign}).
444+
implicitly defined (see~\ref{class.default.ctor}, \ref{class.copy.ctor},
445+
\ref{class.dtor}, and \ref{class.copy.assign}).
445446
An inline function or variable shall be defined in every
446447
translation unit in which it is odr-used outside of a discarded statement.
447448

@@ -561,7 +562,8 @@
561562
and violation continuation mode; and
562563

563564
\item if \tcode{D} is a class with an implicitly-declared
564-
constructor\iref{class.ctor}, it is as if the constructor was
565+
constructor (\ref{class.default.ctor}, \ref{class.copy.ctor}),
566+
it is as if the constructor was
565567
implicitly defined in every translation unit where it is odr-used, and the
566568
implicit definition in every translation unit shall call the same
567569
constructor for a subobject of \tcode{D}.
@@ -972,17 +974,14 @@
972974
namespace in a \grammarterm{using-directive}; see~\ref{namespace.qual}.
973975

974976
\pnum
975-
\indextext{scope!global namespace}%
976-
\indextext{scope!global}%
977977
The outermost declarative region of a translation unit is also a
978-
namespace, called the \defn{global namespace}. A name declared in
979-
the global namespace has \defn{global namespace scope} (also called
980-
\defn{global scope}). The potential scope of such a name begins at
978+
namespace, called the \defnadj{global}{namespace}. A name declared in
979+
the global namespace has \defnadj{global}{namespace scope} (also called
980+
\defnadj{global}{scope}). The potential scope of such a name begins at
981981
its point of declaration\iref{basic.scope.pdecl} and ends at the end
982982
of the translation unit that is its declarative region.
983-
\indextext{name!global}%
984983
A name with global namespace scope is said to be a
985-
\defnx{global name}{global}.
984+
\defnadj{global}{name}.
986985

987986
\rSec2[basic.scope.class]{Class scope}
988987
\indextext{scope!class}%
@@ -2588,7 +2587,7 @@
25882587
width. \end{note}
25892588

25902589
\pnum
2591-
\begin{example} A structure declared as
2590+
\begin{example} A class declared as
25922591

25932592
\begin{codeblock}
25942593
struct {
@@ -2840,8 +2839,8 @@
28402839
\indextext{object lifetime|(}%
28412840
The \defn{lifetime} of an object or reference is a runtime property of the
28422841
object or reference.
2843-
An object is said to have \defnx{non-vacuous initialization}{initialization!non-vacuous} if it is of a class or
2844-
aggregate type and it or one of its subobjects is initialized by a constructor
2842+
An object is said to have \defnadj{non-vacuous}{initialization} if it is of a class or
2843+
array type and it or one of its subobjects is initialized by a constructor
28452844
other than a trivial default constructor. \begin{note} Initialization by a
28462845
trivial copy/move constructor is non-vacuous initialization. \end{note}
28472846
The lifetime of an object of type \tcode{T} begins when:
@@ -3167,9 +3166,9 @@
31673166
\rSec3[basic.stc.thread]{Thread storage duration}
31683167

31693168
\pnum
3170-
\indextext{storage duration!thread}%
3171-
All variables declared with the \tcode{thread_local} keyword have \defn{thread
3172-
storage duration}. The storage for these entities shall last for the duration of
3169+
All variables declared with the \tcode{thread_local} keyword have
3170+
\defnadj{thread}{storage duration}.
3171+
The storage for these entities shall last for the duration of
31733172
the thread in which they are created. There is a distinct object or reference
31743173
per thread, and use of the declared name refers to the entity associated with
31753174
the current thread.
@@ -3181,11 +3180,10 @@
31813180
\rSec3[basic.stc.auto]{Automatic storage duration}
31823181

31833182
\pnum
3184-
\indextext{storage duration!automatic}%
31853183
\indextext{storage duration!local object}%
31863184
Block-scope variables
31873185
not explicitly declared \tcode{static}, \tcode{thread_local}, or \tcode{extern} have
3188-
\defn{automatic storage duration}. The storage
3186+
\defnadj{automatic}{storage duration}. The storage
31893187
for these entities lasts until the block in which they are created exits.
31903188

31913189
\pnum
@@ -3365,7 +3363,7 @@
33653363

33663364
\pnum
33673365
A deallocation function
3368-
is a \defn{destroying operator delete}
3366+
is a \defnadj{destroying}{operator delete}
33693367
if it has at least two parameters
33703368
and its second parameter
33713369
is of type \tcode{std::destroying_delete_t}.
@@ -3558,7 +3556,7 @@
35583556
greater than \tcode{alignof(std::max_align_t)}. It is \impldef{support for extended alignments}
35593557
whether any extended alignments are supported and the contexts in which they are
35603558
supported\iref{dcl.align}. A type having an extended alignment
3561-
requirement is an \defnx{over-aligned type}{type!over-aligned}. \begin{note}
3559+
requirement is an \defnadj{over-aligned}{type}. \begin{note}
35623560
Every over-aligned type is or contains a class type
35633561
to which extended alignment applies (possibly through a non-static data member).
35643562
\end{note}
@@ -3617,7 +3615,7 @@
36173615
Temporary objects are created
36183616
\begin{itemize}
36193617
\item
3620-
when a prvalue is materialized so that it can be used as a glvalue\iref{conv.rval},
3618+
when a prvalue is converted to an xvalue\iref{conv.rval},
36213619
\item
36223620
when needed by the implementation to pass or return an object of trivially-copyable type (see below),
36233621
and
@@ -3731,7 +3729,7 @@
37313729
\indextext{temporary!destructor for}%
37323730
\indextext{temporary!destruction of}%
37333731
When an implementation introduces a temporary object of a class that has a
3734-
non-trivial constructor~(\ref{class.ctor}, \ref{class.copy.ctor}),
3732+
non-trivial constructor~(\ref{class.default.ctor}, \ref{class.copy.ctor}),
37353733
it shall ensure that a constructor is called for the temporary object.
37363734
Similarly, the destructor shall be called for a temporary with a non-trivial
37373735
destructor\iref{class.dtor}.
@@ -4053,7 +4051,7 @@
40534051
A class that has been declared but not defined, an enumeration type in certain
40544052
contexts\iref{dcl.enum}, or an array of unknown
40554053
bound or of incomplete element type, is an
4056-
\defnx{incompletely-defined object type}{object type!incompletely-defined}.%
4054+
\defnadj{incompletely-defined}{object type}.%
40574055
\footnote{The size and layout of an instance of an incompletely-defined
40584056
object type is unknown.}
40594057
Incompletely-defined object types and \cv{}~\tcode{void} are
@@ -4123,7 +4121,7 @@
41234121
cv-qualified\iref{basic.type.qualifier} versions of these
41244122
types are collectively called
41254123
\defnx{scalar types}{scalar type}.
4126-
Cv-unqualified scalar types, trivially copyable class types\iref{class.prop},
4124+
Scalar types, trivially copyable class types\iref{class.prop},
41274125
arrays of such types, and cv-qualified versions of these
41284126
types are collectively called \defn{trivially copyable types}.
41294127
Scalar types, trivial class types\iref{class.prop},
@@ -4450,7 +4448,7 @@
44504448
\item
44514449
\defnx{enumerations}{\idxcode{enum}}, which comprise a set of named constant values.
44524450
Each distinct enumeration constitutes a different
4453-
\defnx{enumerated type}{type!enumerated}, \ref{dcl.enum};
4451+
\defnadj{enumerated}{type}, \ref{dcl.enum};
44544452

44554453
\item \indextext{member pointer to|see{pointer to member}}%
44564454
\defnx{pointers to non-static class members}{pointer to member},%
@@ -4579,7 +4577,7 @@
45794577
\indextext{\idxcode{const}}%
45804578
\indextext{\idxcode{volatile}}%
45814579
A type mentioned in~\ref{basic.fundamental} and~\ref{basic.compound} is
4582-
a \defnx{cv-unqualified type}{type!cv-unqualified}. Each type which is a
4580+
a \defnadj{cv-unqualified}{type}. Each type which is a
45834581
cv-unqualified complete or incomplete object type or is
45844582
\tcode{void}\iref{basic.types} has three corresponding cv-qualified
45854583
versions of its type: a \defn{const-qualified} version, a
@@ -4591,14 +4589,14 @@
45914589
\grammarterm{type-id}\iref{dcl.name}, or
45924590
\grammarterm{new-type-id}\iref{expr.new} when the object is created.
45934591
\begin{itemize}
4594-
\item A \defnx{const object}{object!const} is an object of type \tcode{const T} or a
4592+
\item A \defnadj{const}{object} is an object of type \tcode{const T} or a
45954593
non-mutable subobject of such an object.
45964594

4597-
\item A \defnx{volatile object}{object!volatile} is an object of type
4595+
\item A \defnadj{volatile}{object} is an object of type
45984596
\tcode{volatile T}, a subobject of such an object, or a mutable
45994597
subobject of a const volatile object.
46004598

4601-
\item A \defnx{const volatile object}{object!const volatile} is an object of type
4599+
\item A \defnadj{const volatile}{object} is an object of type
46024600
\tcode{const volatile T}, a non-mutable subobject of such an object,
46034601
a const subobject of a volatile object, or a non-mutable volatile
46044602
subobject of a const object.
@@ -5212,7 +5210,7 @@
52125210
\end{note}
52135211

52145212
\pnum
5215-
A \defnx{visible side effect}{side effects!visible} \placeholder{A} on a scalar object or bit-field \placeholder{M}
5213+
A \defnadj{visible}{side effect} \placeholder{A} on a scalar object or bit-field \placeholder{M}
52165214
with respect to a value computation \placeholder{B} of \placeholder{M} satisfies the
52175215
conditions:
52185216
\begin{itemize}

0 commit comments

Comments
 (0)