Skip to content

Imprecise cross-references for "trivially copyable type" #4630

@jwakely

Description

@jwakely

[refwrap.general] says:

reference_wrapper<T> is a trivially copyable type (6.8).

Where 6.8 is [basic.types]. The definition of trivially copyable is in 6.8.1 [basic.types.general]. I assume we used to refer to the hanging paragraphs at the start of [basic.types] but they now have their own subclause. The cross-ref should have been updated to refer to that new subclause.

It looks like most cross-references to [basic.types] should actually be [basic.types.general]:

$ git grep '{basic.types}' *.tex
atomics.tex:on objects without padding bits\iref{basic.types} is
basic.tex:an incomplete type\iref{basic.types},
basic.tex:in~\ref{basic.types}.
basic.tex:type\iref{basic.types}.
basic.tex:standard-layout type\iref{basic.types} shall occupy contiguous bytes of
basic.tex:zero or more objects of implicit-lifetime types\iref{basic.types}
basic.tex:\ref{basic.types} and the subclauses thereof
basic.tex:Each set of values for any padding bits\iref{basic.types}
basic.tex:the width of that type has padding bits; see \ref{basic.types}.
basic.tex:\keyword{void}\iref{basic.types} has three corresponding cv-qualified
classes.tex:type\iref{basic.types} (or complete type) at the closing \tcode{\}} of
classes.tex:incomplete type\iref{basic.types},
classes.tex:both classes\iref{basic.types}.
classes.tex:types\iref{basic.types}.
classes.tex:\tcode{X} copies the object representation\iref{basic.types} of \tcode{X}.
classes.tex:union \tcode{X} copies the object representation\iref{basic.types} of \tcode{X}.
classes.tex:the extra bits are padding bits\iref{basic.types}.
compatibility.tex:\diffref{basic.types}
concepts.tex:  \item \tcode{T} is a literal type\iref{basic.types},
declarations.tex:is a scalar type\iref{basic.types}, the
declarations.tex:its padding bits\iref{basic.types} are initialized to zero bits and
declarations.tex:its padding bits\iref{basic.types} are initialized to zero bits and
expressions.tex:does not require that type to be complete\iref{basic.types}.
expressions.tex:and~\ref{basic.types} for the definition of object representation.
expressions.tex:thereof~(\ref{intro.object}, \ref{basic.types}, \ref{class.abstract}).
lib-intro.tex:\tcode{T, U, C}    &   any \cv-unqualified object type\iref{basic.types}       \\ \rowsep
lib-intro.tex:If an incomplete type\iref{basic.types} is used as a template
numerics.tex:\tcode{complex<long double>} are literal types\iref{basic.types}.
strings.tex:any non-array trivial standard-layout\iref{basic.types} type.
templates.tex:A template type argument can be an incomplete type\iref{basic.types}.
templates.tex:the instantiation yields an incomplete class type\iref{basic.types}.
templates.tex:classes\iref{basic.types}.
utilities.tex:representation\iref{basic.types} of \tcode{unsigned long long}.
utilities.tex:\tcode{T} is not an incomplete type\iref{basic.types}.
utilities.tex:type\iref{basic.types} that can be the type of the
utilities.tex:\tcode{reference_wrapper<T>} is a trivially copyable type\iref{basic.types}.
utilities.tex:subclause~\ref{basic.types} of the \Cpp{} standard.
utilities.tex:categories, corresponding to the descriptions given in subclause~\ref{basic.types}.
utilities.tex: \tcode{T} is an object type\iref{basic.types}                            &   \\ \rowsep
utilities.tex: \tcode{T} is a scalar type\iref{basic.types}                         &   \\ \rowsep
utilities.tex:is considered to be a trivial~(\ref{basic.types}, \ref{special}) function call
utilities.tex: \tcode{T} is a trivial type\iref{basic.types}     &
utilities.tex: \tcode{T} is a trivially copyable type\iref{basic.types} &
utilities.tex: \tcode{T} is a standard-layout type\iref{basic.types}   &
utilities.tex:  no operation that is not trivial~(\ref{basic.types}, \ref{special}). &
utilities.tex: ~(\ref{basic.types}, \ref{special}). &
utilities.tex: \tcode{T} and \tcode{U} are layout-compatible\iref{basic.types}    &
utilities.tex:is considered to be a trivial~(\ref{basic.types}, \ref{special}) function call
utilities.tex: is no greater than \tcode{Len}\iref{basic.types}.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions