Skip to content

Commit 8679960

Browse files
jensmaurertkoeppe
authored andcommitted
[allocator.requirements.general] Replace table for descriptive variables
1 parent dd346dc commit 8679960

File tree

1 file changed

+52
-37
lines changed

1 file changed

+52
-37
lines changed

source/lib-intro.tex

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1840,43 +1840,61 @@
18401840
\tcode{match_results}\iref{re} are parameterized in terms of
18411841
allocators.
18421842

1843-
\begin{shortlibreqtab2}
1844-
{Descriptive variable definitions}
1845-
{allocator.req.var}
1846-
\topline
1847-
\lhdr{Variable} & \rhdr{Definition} \\ \capsep
1848-
\tcode{T, U, C} & any \cv-unqualified object type\iref{term.object.type} \\ \rowsep
1849-
\tcode{X} & an allocator class for type \tcode{T} \\ \rowsep
1850-
\tcode{Y} & the corresponding allocator class for type \tcode{U} \\ \rowsep
1851-
\tcode{XX} & the type \tcode{allocator_traits<X>} \\ \rowsep
1852-
\tcode{YY} & the type \tcode{allocator_traits<Y>} \\ \rowsep
1853-
\tcode{a, a1, a2} & lvalues of type \tcode{X} \\ \rowsep
1854-
\tcode{u} & the name of a variable being declared \\ \rowsep
1855-
\tcode{b} & a value of type \tcode{Y} \\ \rowsep
1856-
\tcode{c} & a pointer of type \tcode{C*} through which indirection is valid \\ \rowsep
1857-
\tcode{p} & a value of type \tcode{XX::pointer}, obtained
1858-
by calling \tcode{a1.allocate}, where \tcode{a1 == a} \\ \rowsep
1859-
\tcode{q} & a value of type \tcode{XX::const_pointer}
1860-
obtained by conversion from a value \tcode{p} \\ \rowsep
1861-
\tcode{r} & a value of type \tcode{T\&}
1862-
obtained by the expression \tcode{*p} \\ \rowsep
1863-
\tcode{w} & a value of type \tcode{XX::void_pointer} obtained by
1864-
conversion from a value \tcode{p} \\ \rowsep
1865-
\tcode{x} & a value of type \tcode{XX::const_void_pointer} obtained by
1866-
conversion from a value \tcode{q} or a value \tcode{w} \\ \rowsep
1867-
\tcode{y} & a value of type \tcode{XX::const_void_pointer} obtained by
1868-
conversion from a result value of \tcode{YY::allocate}, or else a value of
1869-
type (possibly \keyword{const}) \tcode{std::nullptr_t} \\ \rowsep
1870-
\tcode{n} & a value of type \tcode{XX::size_type} \\ \rowsep
1871-
\tcode{Args} & a template parameter pack \\ \rowsep
1872-
\tcode{args} & a function parameter pack with the pattern \tcode{Args\&\&} \\
1873-
\end{shortlibreqtab2}
1843+
\pnum
1844+
In subclause \ref{allocator.requirements},
1845+
\begin{itemize}
1846+
\item
1847+
\tcode{T}, \tcode{U}, \tcode{C} denote
1848+
any \cv-unqualified object type\iref{term.object.type},
1849+
\item
1850+
\tcode{X} denotes an allocator class for type \tcode{T},
1851+
\item
1852+
\tcode{Y} denotes the corresponding allocator class for type \tcode{U},
1853+
\item
1854+
\tcode{XX} denotes the type \tcode{allocator_traits<X>},
1855+
\item
1856+
\tcode{YY} denotes the type \tcode{allocator_traits<Y>},
1857+
\item
1858+
\tcode{a}, \tcode{a1}, \tcode{a2} denote lvalues of type \tcode{X},
1859+
\item
1860+
\tcode{u} denotes the name of a variable being declared,
1861+
\item
1862+
\tcode{b} denotes a value of type \tcode{Y},
1863+
\item
1864+
\tcode{c} denotes a pointer of type \tcode{C*}
1865+
through which indirection is valid,
1866+
\item
1867+
\tcode{p} denotes a value of type \tcode{XX::pointer}
1868+
obtained by calling \tcode{a1.allocate}, where \tcode{a1 == a},
1869+
\item
1870+
\tcode{q} denotes a value of type \tcode{XX::const_pointer}
1871+
obtained by conversion from a value \tcode{p},
1872+
\item
1873+
\tcode{r} denotes a value of type \tcode{T\&}
1874+
obtained by the expression \tcode{*p},
1875+
\item
1876+
\tcode{w} denotes a value of type \tcode{XX::void_pointer}
1877+
obtained by conversion from a value \tcode{p},
1878+
\item
1879+
\tcode{x} denotes a value of type \tcode{XX::const_void_pointer}
1880+
obtained by conversion from a value \tcode{q} or a value \tcode{w},
1881+
\item
1882+
\tcode{y} denotes a value of type \tcode{XX::const_void_pointer}
1883+
obtained by conversion from a result value of \tcode{YY::allocate}, or else
1884+
a value of type (possibly \tcode{const}) \tcode{std::nullptr_t},
1885+
\item
1886+
\tcode{n} denotes a value of type \tcode{XX::size_type},
1887+
\item
1888+
\tcode{Args} denotes a template parameter pack, and
1889+
\item
1890+
\tcode{args} denotes
1891+
a function parameter pack with the pattern \tcode{Args\&\&}.
1892+
\end{itemize}
18741893

18751894
\pnum
18761895
The class template \tcode{allocator_traits}\iref{allocator.traits} supplies
18771896
a uniform interface to all allocator types.
1878-
\tref{allocator.req.var} describes the types manipulated
1879-
through allocators. \tref{cpp17.allocator}
1897+
\tref{cpp17.allocator}
18801898
describes the requirements on allocator types
18811899
and thus on types used to instantiate \tcode{allocator_traits}. A requirement
18821900
is optional if the last column of
@@ -1885,10 +1903,7 @@
18851903
template, an optional requirement that is not supplied by an allocator is
18861904
replaced by the specified default expression. A user specialization of
18871905
\tcode{allocator_traits} may provide different defaults and may provide
1888-
defaults for different requirements than the primary template. Within
1889-
Tables~\ref{tab:allocator.req.var} and~\ref{tab:cpp17.allocator},
1890-
the use of \tcode{move} and \tcode{forward} always refers to \tcode{std::move}
1891-
and \tcode{std::forward}, respectively.
1906+
defaults for different requirements than the primary template.
18921907

18931908
\begin{libreqtab4d}
18941909
{\oldconcept{Allocator} requirements}

0 commit comments

Comments
 (0)