diff --git a/source/containers.tex b/source/containers.tex index 69494898fa..6640d255d9 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -18218,13 +18218,14 @@ \indexheader{span}% \begin{codeblock} +// mostly freestanding namespace std { // constants inline constexpr size_t @\libglobal{dynamic_extent}@ = numeric_limits::max(); // \ref{views.span}, class template \tcode{span} template - class span; + class span; // partially freestanding template constexpr bool ranges::@\libspec{enable_view}{span}@> = true; @@ -18988,6 +18989,7 @@ \indexheader{mdspan}% \begin{codeblock} +// all freestanding namespace std { // \ref{mdspan.extents}, class template \tcode{extents} template diff --git a/source/lib-intro.tex b/source/lib-intro.tex index 6fe8e8fa0e..7ce8683da0 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -1485,11 +1485,14 @@ \ref{ratio} & Compile-time rational arithmetic & \tcode{} \\ \rowsep \ref{utility} & Utility components & \tcode{} \\ \rowsep \ref{tuple} & Tuples & \tcode{} \\ \rowsep +\ref{expected} & Expected objects & \tcode{} \\ \rowsep \ref{function.objects} & Function objects & \tcode{} \\ \rowsep \ref{charconv} & Primitive numeric conversions & \tcode{} \\ \rowsep \ref{bit} & Bit manipulation & \tcode{} \\ \rowsep \ref{string.classes} & String classes & \tcode{} \\ \rowsep \ref{c.strings} & Null-terminated sequence utilities & \tcode{}, \tcode{} \\ \rowsep +\ref{views.contiguous} & Contiguous access & \tcode{} \\ \rowsep +\ref{views.multidim} & Multidimensional access & \tcode{} \\ \rowsep \ref{iterators} & Iterators library & \tcode{} \\ \rowsep \ref{ranges} & Ranges library & \tcode{} \\ \rowsep \ref{c.math} & Mathematical functions for floating-point types & \tcode{} \\ \rowsep diff --git a/source/memory.tex b/source/memory.tex index d3bc9c6071..cfbbae9164 100644 --- a/source/memory.tex +++ b/source/memory.tex @@ -570,19 +570,19 @@ // \ref{out.ptr.t}, class template \tcode{out_ptr_t} template - class out_ptr_t; + class out_ptr_t; // freestanding // \ref{out.ptr}, function template \tcode{out_ptr} template - auto out_ptr(Smart& s, Args&&... args); + auto out_ptr(Smart& s, Args&&... args); // freestanding // \ref{inout.ptr.t}, class template \tcode{inout_ptr_t} template - class inout_ptr_t; + class inout_ptr_t; // freestanding // \ref{inout.ptr}, function template \tcode{inout_ptr} template - auto inout_ptr(Smart& s, Args&&... args); + auto inout_ptr(Smart& s, Args&&... args); // freestanding } \end{codeblock} diff --git a/source/support.tex b/source/support.tex index 4376a443cf..1dc164586e 100644 --- a/source/support.tex +++ b/source/support.tex @@ -642,9 +642,11 @@ #define @\defnlibxname{cpp_lib_freestanding_cwchar}@ 202306L // freestanding, also in \libheader{cwchar} #define @\defnlibxname{cpp_lib_freestanding_errc}@ 202306L // freestanding, also in \libheader{cerrno}, \libheader{system_error} +#define @\defnlibxname{cpp_lib_freestanding_expected}@ 202311L // freestanding, also in \libheader{expected} #define @\defnlibxname{cpp_lib_freestanding_feature_test_macros}@ 202306L // freestanding #define @\defnlibxname{cpp_lib_freestanding_functional}@ 202306L // freestanding, also in \libheader{functional} #define @\defnlibxname{cpp_lib_freestanding_iterator}@ 202306L // freestanding, also in \libheader{iterator} +#define @\defnlibxname{cpp_lib_freestanding_mdspan}@ 202311L // freestanding, also in \libheader{mdspan} #define @\defnlibxname{cpp_lib_freestanding_memory}@ 202306L // freestanding, also in \libheader{memory} #define @\defnlibxname{cpp_lib_freestanding_operator_new}@ @\seebelow@ // freestanding, also in \libheader{new} #define @\defnlibxname{cpp_lib_freestanding_ranges}@ 202306L // freestanding, also in \libheader{ranges} @@ -708,7 +710,7 @@ #define @\defnlibxname{cpp_lib_not_fn}@ 202306L // freestanding, also in \libheader{functional} #define @\defnlibxname{cpp_lib_null_iterators}@ 201304L // freestanding, also in \libheader{iterator} #define @\defnlibxname{cpp_lib_optional}@ 202110L // also in \libheader{optional} -#define @\defnlibxname{cpp_lib_out_ptr}@ 202106L // also in \libheader{memory} +#define @\defnlibxname{cpp_lib_out_ptr}@ 202311L // freestanding, also in \libheader{memory} #define @\defnlibxname{cpp_lib_parallel_algorithm}@ 201603L // also in \libheader{algorithm}, \libheader{numeric} #define @\defnlibxname{cpp_lib_polymorphic_allocator}@ 201902L // also in \libheader{memory_resource} #define @\defnlibxname{cpp_lib_print}@ 202207L // also in \libheader{print}, \libheader{ostream} @@ -752,7 +754,7 @@ #define @\defnlibxname{cpp_lib_smart_ptr_for_overwrite}@ 202002L // also in \libheader{memory} #define @\defnlibxname{cpp_lib_smart_ptr_owner_equality}@ 202306L // also in \libheader{memory} #define @\defnlibxname{cpp_lib_source_location}@ 201907L // freestanding, also in \libheader{source_location} -#define @\defnlibxname{cpp_lib_span}@ 202002L // also in \libheader{span} +#define @\defnlibxname{cpp_lib_span}@ 202311L // freestanding, also in \libheader{span} #define @\defnlibxname{cpp_lib_spanstream}@ 202106L // also in \libheader{spanstream} #define @\defnlibxname{cpp_lib_ssize}@ 201902L // freestanding, also in \libheader{iterator} #define @\defnlibxname{cpp_lib_sstream_from_string_view}@ 202306L // also in \libheader{sstream} diff --git a/source/utilities.tex b/source/utilities.tex index fd9453e2e3..8384036ff4 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -6940,6 +6940,7 @@ \indexlibraryglobal{unexpect_t}% \indexlibraryglobal{unexpect}% \begin{codeblock} +// mostly freestanding namespace std { // \ref{expected.unexpected}, class template \tcode{unexpected} template class unexpected; @@ -6957,10 +6958,10 @@ inline constexpr unexpect_t unexpect{}; // \ref{expected.expected}, class template \tcode{expected} - template class expected; + template class expected; // partially freestanding // \ref{expected.void}, partial specialization of \tcode{expected} for \tcode{void} types - template requires is_void_v class expected; + template requires is_void_v class expected; // partially freestanding } \end{codeblock} @@ -7343,10 +7344,10 @@ constexpr T&& operator*() && noexcept; constexpr explicit operator bool() const noexcept; constexpr bool has_value() const noexcept; - constexpr const T& value() const &; - constexpr T& value() &; - constexpr const T&& value() const &&; - constexpr T&& value() &&; + constexpr const T& value() const &; // freestanding-deleted + constexpr T& value() &; // freestanding-deleted + constexpr const T&& value() const &&; // freestanding-deleted + constexpr T&& value() &&; // freestanding-deleted constexpr const E& error() const & noexcept; constexpr E& error() & noexcept; constexpr const E&& error() const && noexcept; @@ -8737,8 +8738,8 @@ constexpr explicit operator bool() const noexcept; constexpr bool has_value() const noexcept; constexpr void operator*() const noexcept; - constexpr void value() const &; - constexpr void value() &&; + constexpr void value() const &; // freestanding-deleted + constexpr void value() &&; // freestanding-deleted constexpr const E& error() const & noexcept; constexpr E& error() & noexcept; constexpr const E&& error() const && noexcept;