diff --git a/source/support.tex b/source/support.tex index 59a7dceafe..729f9eb56d 100644 --- a/source/support.tex +++ b/source/support.tex @@ -350,11 +350,10 @@ \end{itemdecl} \begin{itemdescr} +\pnum \constraints \tcode{is_integral_v} is \tcode{true}. + \pnum \effects Equivalent to: \tcode{return b = b << shift;} - -\pnum \remarks This function shall not participate in overload resolution unless -\tcode{is_integral_v} is \tcode{true}. \end{itemdescr} \indexlibrarymember{operator<<}{byte}% @@ -364,14 +363,13 @@ \end{itemdecl} \begin{itemdescr} +\pnum \constraints \tcode{is_integral_v} is \tcode{true}. + \pnum \effects Equivalent to: \begin{codeblock} return static_cast(static_cast( static_cast(b) << shift)); \end{codeblock} - -\pnum \remarks This function shall not participate in overload resolution unless -\tcode{is_integral_v} is \tcode{true}. \end{itemdescr} \indexlibrarymember{operator>>=}{byte}% @@ -381,11 +379,10 @@ \end{itemdecl} \begin{itemdescr} +\pnum \constraints \tcode{is_integral_v} is \tcode{true}. + \pnum \effects Equivalent to: \tcode{return b >> shift;} - -\pnum \remarks This function shall not participate in overload resolution unless -\tcode{is_integral_v} is \tcode{true}. \end{itemdescr} \indexlibrarymember{operator>>}{byte}% @@ -395,14 +392,13 @@ \end{itemdecl} \begin{itemdescr} +\pnum \constraints \tcode{is_integral_v} is \tcode{true}. + \pnum \effects Equivalent to: \begin{codeblock} return static_cast(static_cast( static_cast(b) >> shift)); \end{codeblock} - -\pnum \remarks This function shall not participate in overload resolution unless -\tcode{is_integral_v} is \tcode{true}. \end{itemdescr} \indexlibrarymember{operator"|=}{byte}% @@ -491,10 +487,9 @@ \end{itemdecl} \begin{itemdescr} -\pnum \effects Equivalent to: \tcode{return static_cast(b);} +\pnum \constraints \tcode{is_integral_v} is \tcode{true}. -\pnum \remarks This function shall not participate in overload resolution unless -\tcode{is_integral_v} is \tcode{true}. +\pnum \effects Equivalent to: \tcode{return static_cast(b);} \end{itemdescr} \rSec1[support.limits]{Implementation properties} @@ -2251,9 +2246,9 @@ \end{note} \pnum -\requires -\tcode{ptr} shall be a null pointer or -its value shall represent the address of +\expects +\tcode{ptr} is a null pointer or +its value represents the address of a block of memory allocated by an earlier call to a (possibly replaced) \tcode{operator new(std::size_t)} @@ -2263,20 +2258,20 @@ \tcode{operator delete}. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum -\requires +\expects If the \tcode{alignment} parameter is not present, -\tcode{ptr} shall have been returned by an allocation function +\tcode{ptr} was returned by an allocation function without an \tcode{alignment} parameter. If present, the \tcode{alignment} argument -shall equal the \tcode{alignment} argument +is equal to the \tcode{alignment} argument passed to the allocation function that returned \tcode{ptr}. If present, the \tcode{size} argument -shall equal the \tcode{size} argument +is equal to the \tcode{size} argument passed to the allocation function that returned \tcode{ptr}. \pnum @@ -2341,9 +2336,9 @@ \replaceabledesc{either} \pnum -\requires -\tcode{ptr} shall be a null pointer or -its value shall represent the address of +\expects +\tcode{ptr} is a null pointer or +its value represents the address of a block of memory allocated by an earlier call to a (possibly replaced) \tcode{operator new(std::size_t)} @@ -2353,17 +2348,17 @@ \tcode{operator delete}. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum -\requires +\expects If the \tcode{alignment} parameter is not present, -\tcode{ptr} shall have been returned by an allocation function +\tcode{ptr} was returned by an allocation function without an \tcode{alignment} parameter. If present, the \tcode{alignment} argument -shall equal the \tcode{alignment} argument +is equal to the \tcode{alignment} argument passed to the allocation function that returned \tcode{ptr}. \pnum @@ -2506,9 +2501,9 @@ \end{note} \pnum -\requires -\tcode{ptr} shall be a null pointer or -its value shall represent the address of +\expects +\tcode{ptr} is a null pointer or +its value represents the address of a block of memory allocated by an earlier call to a (possibly replaced) \tcode{operator new[](std::size_t)} @@ -2518,20 +2513,20 @@ \tcode{operator delete[]}. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum -\requires +\expects If the \tcode{alignment} parameter is not present, -\tcode{ptr} shall have been returned by an allocation function +\tcode{ptr} was returned by an allocation function without an \tcode{alignment} parameter. If present, the \tcode{alignment} argument -shall equal the \tcode{alignment} argument +is equal to the \tcode{alignment} argument passed to the allocation function that returned \tcode{ptr}. If present, the \tcode{size} argument -shall equal the \tcode{size} argument +is equal to the \tcode{size} argument passed to the allocation function that returned \tcode{ptr}. \pnum @@ -2577,9 +2572,9 @@ \replaceabledesc{either} \pnum -\requires -\tcode{ptr} shall be a null pointer or -its value shall represent the address of +\expects +\tcode{ptr} is a null pointer or +its value represents the address of a block of memory allocated by an earlier call to a (possibly replaced) \tcode{operator new[](std::size_t)} @@ -2589,17 +2584,17 @@ \tcode{operator delete[]}. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum -\requires +\expects If the \tcode{alignment} parameter is not present, -\tcode{ptr} shall have been returned by an allocation function +\tcode{ptr} was returned by an allocation function without an \tcode{alignment} parameter. If present, the \tcode{alignment} argument -shall equal the \tcode{alignment} argument +is equal to the \tcode{alignment} argument passed to the allocation function that returned \tcode{ptr}. \pnum @@ -2668,9 +2663,9 @@ Intentionally performs no action. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum \remarks @@ -2691,9 +2686,9 @@ Intentionally performs no action. \pnum -\requires +\expects If an implementation has strict pointer safety\iref{basic.stc.dynamic.safety} -then \tcode{ptr} shall be a safely-derived pointer. +then \tcode{ptr} is a safely-derived pointer. \pnum \remarks @@ -2725,6 +2720,7 @@ \indexlibrary{\idxcode{bad_alloc}}% \rSec3[bad.alloc]{Class \tcode{bad_alloc}} +\indexlibrary{\idxcode{bad_alloc}!constructor}% \begin{codeblock} namespace std { class bad_alloc : public exception { @@ -2743,32 +2739,6 @@ defines the type of objects thrown as exceptions by the implementation to report a failure to allocate storage. -\indexlibrary{\idxcode{bad_alloc}!constructor}% -\begin{itemdecl} -bad_alloc() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Constructs an object of class -\tcode{bad_alloc}. -\end{itemdescr} - -\indexlibrary{\idxcode{bad_alloc}!constructor}% -\indexlibrarymember{operator=}{bad_alloc}% -\begin{itemdecl} -bad_alloc(const bad_alloc&) noexcept; -bad_alloc& operator=(const bad_alloc&) noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Copies an object of class -\tcode{bad_alloc}. -\end{itemdescr} - \indexlibrarymember{what}{bad_alloc}% \begin{itemdecl} const char* what() const noexcept override; @@ -2787,6 +2757,7 @@ \end{itemdescr} \indexlibrary{\idxcode{bad_array_new_length}}% +\indexlibrary{\idxcode{bad_array_new_length}!constructor}% \rSec3[new.badlength]{Class \tcode{bad_array_new_length}} \begin{codeblock} @@ -2805,16 +2776,6 @@ less than zero or greater than an \impldef{maximum size of an allocated object} limit\iref{expr.new}. -\indexlibrary{\idxcode{bad_array_new_length}!constructor}% -\begin{itemdecl} -bad_array_new_length() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects Constructs an object of class \tcode{bad_array_new_length}. -\end{itemdescr} - \indexlibrarymember{what}{bad_array_new_length}% \begin{itemdecl} const char* what() const noexcept override; @@ -2912,7 +2873,11 @@ \begin{itemdescr} \pnum -\requires +\mandates +\tcode{!is_function_v \&\& !is_void_v} is \tcode{true}. + +\pnum +\expects \tcode{p} represents the address \placeholder{A} of a byte in memory. An object \placeholder{X} that is within its lifetime\iref{basic.life} and whose type is similar\iref{conv.qual} to \tcode{T} @@ -2937,8 +2902,6 @@ \placeholder{Y}, an object that is pointer-interconvertible with \placeholder{Y}, or the immediately-enclosing array object if \placeholder{Y} is an array element. -The program is ill-formed if \tcode{T} is a function type -or \cv{}~\tcode{void}. \pnum \begin{note} @@ -3150,6 +3113,7 @@ \rSec2[bad.cast]{Class \tcode{bad_cast}} \indexlibrary{\idxcode{bad_cast}}% +\indexlibrary{\idxcode{bad_cast}!constructor}% \begin{codeblock} namespace std { class bad_cast : public exception { @@ -3171,32 +3135,6 @@ \tcode{dynamic_cast} expression\iref{expr.dynamic.cast}. -\indexlibrary{\idxcode{bad_cast}!constructor}% -\begin{itemdecl} -bad_cast() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Constructs an object of class -\tcode{bad_cast}. -\end{itemdescr} - -\indexlibrary{\idxcode{bad_cast}!constructor}% -\indexlibrarymember{operator=}{bad_cast}% -\begin{itemdecl} -bad_cast(const bad_cast&) noexcept; -bad_cast& operator=(const bad_cast&) noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Copies an object of class -\tcode{bad_cast}. -\end{itemdescr} - \indexlibrarymember{what}{bad_cast}% \begin{itemdecl} const char* what() const noexcept override; @@ -3217,6 +3155,7 @@ \rSec2[bad.typeid]{Class \tcode{bad_typeid}} \indexlibrary{\idxcode{bad_typeid}}% +\indexlibrary{\idxcode{bad_typeid}!constructor}% \begin{codeblock} namespace std { class bad_typeid : public exception { @@ -3238,32 +3177,6 @@ \tcode{typeid} expression\iref{expr.typeid}. -\indexlibrary{\idxcode{bad_typeid}!constructor}% -\begin{itemdecl} -bad_typeid() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Constructs an object of class -\tcode{bad_typeid}. -\end{itemdescr} - -\indexlibrary{\idxcode{bad_typeid}!constructor}% -\indexlibrarymember{operator=}{bad_typeid}% -\begin{itemdecl} -bad_typeid(const bad_typeid&) noexcept; -bad_typeid& operator=(const bad_typeid&) noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Copies an object of class -\tcode{bad_typeid}. -\end{itemdescr} - \indexlibrarymember{what}{bad_typeid}% \begin{itemdecl} const char* what() const noexcept override; @@ -3411,6 +3324,7 @@ \rSec2[exception]{Class \tcode{exception}} \indexlibrary{\idxcode{exception}}% +\indexlibrary{\idxcode{exception}!constructor}% \begin{codeblock} namespace std { class exception { @@ -3440,18 +3354,6 @@ dynamic type \tcode{T} and \tcode{lhs} is a copy of \tcode{rhs}, then \tcode{strcmp(lhs.what(), rhs.what())} shall equal 0. -\indexlibrary{\idxcode{exception}!constructor}% -\begin{itemdecl} -exception() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Constructs an object of class -\tcode{exception}. -\end{itemdescr} - \indexlibrary{\idxcode{exception}!constructor}% \indexlibrarymember{operator=}{exception}% \begin{itemdecl} @@ -3460,12 +3362,6 @@ \end{itemdecl} \begin{itemdescr} -\pnum -\effects -Copies an -\tcode{exception} -object. - \pnum \ensures If \tcode{*this} and \tcode{rhs} both have dynamic type \tcode{exception} then the value of the expression \tcode{strcmp(what(), rhs.what())} shall equal 0. @@ -3506,6 +3402,7 @@ \rSec2[bad.exception]{Class \tcode{bad_exception}} \indexlibrary{\idxcode{bad_exception}}% +\indexlibrary{\idxcode{bad_exception}!constructor}% \begin{codeblock} namespace std { class bad_exception : public exception { @@ -3526,32 +3423,6 @@ returned from a call to \tcode{current_exception}\iref{propagation} when the currently active exception object fails to copy. -\indexlibrary{\idxcode{bad_exception}!constructor}% -\begin{itemdecl} -bad_exception() noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Constructs an object of class -\tcode{bad_exception}. -\end{itemdescr} - -\indexlibrary{\idxcode{bad_exception}!constructor}% -\indexlibrarymember{operator=}{bad_exception}% -\begin{itemdecl} -bad_exception(const bad_exception&) noexcept; -bad_exception& operator=(const bad_exception&) noexcept; -\end{itemdecl} - -\begin{itemdescr} -\pnum -\effects -Copies an object of class -\tcode{bad_exception}. -\end{itemdescr} - \indexlibrarymember{what}{bad_exception}% \begin{itemdecl} const char* what() const noexcept override; @@ -3689,7 +3560,7 @@ The type \tcode{exception_ptr} can be used to refer to an exception object. \pnum -\tcode{exception_ptr} shall satisfy the requirements of +\tcode{exception_ptr} meets the requirements of \oldconcept{NullablePointer} (\tref{nullablepointer}). \pnum @@ -3753,7 +3624,7 @@ \begin{itemdescr} \pnum -\requires \tcode{p} shall not be a null pointer. +\expects \tcode{p} is not a null pointer. \pnum \throws The exception object to which \tcode{p} refers. @@ -3853,7 +3724,7 @@ Let \tcode{U} be \tcode{decay_t}. \pnum -\requires \tcode{U} shall be \oldconcept{CopyConstructible}. +\expects \tcode{U} meets the \oldconcept{CopyConstructible} requirements. \pnum \throws @@ -3942,9 +3813,6 @@ \end{itemdecl} \begin{itemdescr} -\pnum -\effects Constructs an empty \tcode{initializer_list} object. - \pnum \ensures \tcode{size() == 0}. \end{itemdescr}