diff --git a/source/concepts.tex b/source/concepts.tex index 915a6677a9..0508cb542b 100644 --- a/source/concepts.tex +++ b/source/concepts.tex @@ -775,7 +775,7 @@ \begin{itemdecl} template - inline constexpr bool @\exposid{is-default-initializable}@ = @\seebelow@; // \expos + constexpr bool @\exposid{is-default-initializable}@ = @\seebelow@; // \expos template concept @\deflibconcept{default_initializable}@ = @\libconcept{constructible_from}@ && diff --git a/source/containers.tex b/source/containers.tex index 33ce36dc52..7a15185cc8 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -6118,7 +6118,7 @@ class vector; template - inline constexpr bool @\exposid{is-vector-bool-reference}@ = @\seebelow@; // \expos + constexpr bool @\exposid{is-vector-bool-reference}@ = @\seebelow@; // \expos // hash support template struct hash; @@ -9346,7 +9346,7 @@ \indexlibrary{is-vector-bool-reference@\exposid{is-vector-bool-reference}}% \begin{itemdecl} template - inline constexpr bool @\exposid{is-vector-bool-reference}@ = @\seebelow@; + constexpr bool @\exposid{is-vector-bool-reference}@ = @\seebelow@; \end{itemdecl} \begin{itemdescr} @@ -17520,9 +17520,9 @@ class span; template - inline constexpr bool ranges::enable_view> = true; + constexpr bool ranges::enable_view> = true; template - inline constexpr bool ranges::enable_borrowed_range> = true; + constexpr bool ranges::enable_borrowed_range> = true; // \ref{span.objectrep}, views of object representation template diff --git a/source/diagnostics.tex b/source/diagnostics.tex index 8d86e3731d..f1648bcb2d 100644 --- a/source/diagnostics.tex +++ b/source/diagnostics.tex @@ -816,9 +816,9 @@ // \ref{syserr}, system error support template - inline constexpr bool is_error_code_enum_v = is_error_code_enum::value; + constexpr bool is_error_code_enum_v = is_error_code_enum::value; template - inline constexpr bool is_error_condition_enum_v = is_error_condition_enum::value; + constexpr bool is_error_condition_enum_v = is_error_condition_enum::value; } \end{codeblock} diff --git a/source/future.tex b/source/future.tex index 094561712d..65a3c4ac6c 100644 --- a/source/future.tex +++ b/source/future.tex @@ -1368,7 +1368,7 @@ \begin{codeblock} namespace std { template struct is_pod; - template inline constexpr bool is_pod_v = is_pod::value; + template constexpr bool is_pod_v = is_pod::value; template // \seebelow struct aligned_storage; template // \seebelow diff --git a/source/iterators.tex b/source/iterators.tex index 4e32a85012..18fc723f01 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -110,7 +110,7 @@ // \ref{iterator.concept.sizedsentinel}, concept \libconcept{sized_sentinel_for} template - inline constexpr bool disable_sized_sentinel_for = false; // freestanding + constexpr bool disable_sized_sentinel_for = false; // freestanding template concept sized_sentinel_for = @\seebelow@; // freestanding @@ -317,7 +317,7 @@ template requires (!@\libconcept{sized_sentinel_for}@) - inline constexpr bool disable_sized_sentinel_for, // freestanding + constexpr bool disable_sized_sentinel_for, // freestanding reverse_iterator> = true; // \ref{insert.iterators}, insert iterators @@ -404,8 +404,8 @@ template requires (!@\libconcept{sized_sentinel_for}@) - inline constexpr bool disable_sized_sentinel_for, // freestanding - move_iterator> = true; + constexpr bool disable_sized_sentinel_for, // freestanding + move_iterator> = true; template<@\libconcept{semiregular}@ S> class move_sentinel; // freestanding @@ -1366,10 +1366,10 @@ \begin{codeblock} template - inline constexpr bool @\exposid{is-integer-like}@ = @\seebelow@; @\itcorr[-2]@ // \expos + constexpr bool @\exposid{is-integer-like}@ = @\seebelow@; @\itcorr[-2]@ // \expos template - inline constexpr bool @\exposid{is-signed-integer-like}@ = @\seebelow@; @\itcorr[-2]@ // \expos + constexpr bool @\exposid{is-signed-integer-like}@ = @\seebelow@; @\itcorr[-2]@ // \expos template concept @\deflibconcept{weakly_incrementable}@ = @@ -1700,7 +1700,7 @@ \indexlibraryglobal{disable_sized_sentinel_for}% \begin{itemdecl} template - inline constexpr bool disable_sized_sentinel_for = false; + constexpr bool disable_sized_sentinel_for = false; \end{itemdecl} \begin{itemdescr} diff --git a/source/memory.tex b/source/memory.tex index b822977608..8419e02b91 100644 --- a/source/memory.tex +++ b/source/memory.tex @@ -114,7 +114,7 @@ // \ref{allocator.uses.trait}, \tcode{uses_allocator} template - inline constexpr bool @\libglobal{uses_allocator_v}@ = uses_allocator::value; // freestanding + constexpr bool @\libglobal{uses_allocator_v}@ = uses_allocator::value; // freestanding // \ref{allocator.uses.construction}, uses-allocator construction template diff --git a/source/meta.tex b/source/meta.tex index d6d5818296..3ff3f99edb 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -378,198 +378,198 @@ // \ref{meta.unary.cat}, primary type categories template - inline constexpr bool @\libglobal{is_void_v}@ = is_void::value; + constexpr bool @\libglobal{is_void_v}@ = is_void::value; template - inline constexpr bool @\libglobal{is_null_pointer_v}@ = is_null_pointer::value; + constexpr bool @\libglobal{is_null_pointer_v}@ = is_null_pointer::value; template - inline constexpr bool @\libglobal{is_integral_v}@ = is_integral::value; + constexpr bool @\libglobal{is_integral_v}@ = is_integral::value; template - inline constexpr bool @\libglobal{is_floating_point_v}@ = is_floating_point::value; + constexpr bool @\libglobal{is_floating_point_v}@ = is_floating_point::value; template - inline constexpr bool @\libglobal{is_array_v}@ = is_array::value; + constexpr bool @\libglobal{is_array_v}@ = is_array::value; template - inline constexpr bool @\libglobal{is_pointer_v}@ = is_pointer::value; + constexpr bool @\libglobal{is_pointer_v}@ = is_pointer::value; template - inline constexpr bool @\libglobal{is_lvalue_reference_v}@ = is_lvalue_reference::value; + constexpr bool @\libglobal{is_lvalue_reference_v}@ = is_lvalue_reference::value; template - inline constexpr bool @\libglobal{is_rvalue_reference_v}@ = is_rvalue_reference::value; + constexpr bool @\libglobal{is_rvalue_reference_v}@ = is_rvalue_reference::value; template - inline constexpr bool @\libglobal{is_member_object_pointer_v}@ = is_member_object_pointer::value; + constexpr bool @\libglobal{is_member_object_pointer_v}@ = is_member_object_pointer::value; template - inline constexpr bool @\libglobal{is_member_function_pointer_v}@ = is_member_function_pointer::value; + constexpr bool @\libglobal{is_member_function_pointer_v}@ = is_member_function_pointer::value; template - inline constexpr bool @\libglobal{is_enum_v}@ = is_enum::value; + constexpr bool @\libglobal{is_enum_v}@ = is_enum::value; template - inline constexpr bool @\libglobal{is_union_v}@ = is_union::value; + constexpr bool @\libglobal{is_union_v}@ = is_union::value; template - inline constexpr bool @\libglobal{is_class_v}@ = is_class::value; + constexpr bool @\libglobal{is_class_v}@ = is_class::value; template - inline constexpr bool @\libglobal{is_function_v}@ = is_function::value; + constexpr bool @\libglobal{is_function_v}@ = is_function::value; // \ref{meta.unary.comp}, composite type categories template - inline constexpr bool @\libglobal{is_reference_v}@ = is_reference::value; + constexpr bool @\libglobal{is_reference_v}@ = is_reference::value; template - inline constexpr bool @\libglobal{is_arithmetic_v}@ = is_arithmetic::value; + constexpr bool @\libglobal{is_arithmetic_v}@ = is_arithmetic::value; template - inline constexpr bool @\libglobal{is_fundamental_v}@ = is_fundamental::value; + constexpr bool @\libglobal{is_fundamental_v}@ = is_fundamental::value; template - inline constexpr bool @\libglobal{is_object_v}@ = is_object::value; + constexpr bool @\libglobal{is_object_v}@ = is_object::value; template - inline constexpr bool @\libglobal{is_scalar_v}@ = is_scalar::value; + constexpr bool @\libglobal{is_scalar_v}@ = is_scalar::value; template - inline constexpr bool @\libglobal{is_compound_v}@ = is_compound::value; + constexpr bool @\libglobal{is_compound_v}@ = is_compound::value; template - inline constexpr bool @\libglobal{is_member_pointer_v}@ = is_member_pointer::value; + constexpr bool @\libglobal{is_member_pointer_v}@ = is_member_pointer::value; // \ref{meta.unary.prop}, type properties template - inline constexpr bool @\libglobal{is_const_v}@ = is_const::value; + constexpr bool @\libglobal{is_const_v}@ = is_const::value; template - inline constexpr bool @\libglobal{is_volatile_v}@ = is_volatile::value; + constexpr bool @\libglobal{is_volatile_v}@ = is_volatile::value; template - inline constexpr bool @\libglobal{is_trivial_v}@ = is_trivial::value; + constexpr bool @\libglobal{is_trivial_v}@ = is_trivial::value; template - inline constexpr bool @\libglobal{is_trivially_copyable_v}@ = is_trivially_copyable::value; + constexpr bool @\libglobal{is_trivially_copyable_v}@ = is_trivially_copyable::value; template - inline constexpr bool @\libglobal{is_standard_layout_v}@ = is_standard_layout::value; + constexpr bool @\libglobal{is_standard_layout_v}@ = is_standard_layout::value; template - inline constexpr bool @\libglobal{is_empty_v}@ = is_empty::value; + constexpr bool @\libglobal{is_empty_v}@ = is_empty::value; template - inline constexpr bool @\libglobal{is_polymorphic_v}@ = is_polymorphic::value; + constexpr bool @\libglobal{is_polymorphic_v}@ = is_polymorphic::value; template - inline constexpr bool @\libglobal{is_abstract_v}@ = is_abstract::value; + constexpr bool @\libglobal{is_abstract_v}@ = is_abstract::value; template - inline constexpr bool @\libglobal{is_final_v}@ = is_final::value; + constexpr bool @\libglobal{is_final_v}@ = is_final::value; template - inline constexpr bool @\libglobal{is_aggregate_v}@ = is_aggregate::value; + constexpr bool @\libglobal{is_aggregate_v}@ = is_aggregate::value; template - inline constexpr bool @\libglobal{is_signed_v}@ = is_signed::value; + constexpr bool @\libglobal{is_signed_v}@ = is_signed::value; template - inline constexpr bool @\libglobal{is_unsigned_v}@ = is_unsigned::value; + constexpr bool @\libglobal{is_unsigned_v}@ = is_unsigned::value; template - inline constexpr bool @\libglobal{is_bounded_array_v}@ = is_bounded_array::value; + constexpr bool @\libglobal{is_bounded_array_v}@ = is_bounded_array::value; template - inline constexpr bool @\libglobal{is_unbounded_array_v}@ = is_unbounded_array::value; + constexpr bool @\libglobal{is_unbounded_array_v}@ = is_unbounded_array::value; template - inline constexpr bool @\libglobal{is_scoped_enum_v}@ = is_scoped_enum::value; + constexpr bool @\libglobal{is_scoped_enum_v}@ = is_scoped_enum::value; template - inline constexpr bool @\libglobal{is_constructible_v}@ = is_constructible::value; + constexpr bool @\libglobal{is_constructible_v}@ = is_constructible::value; template - inline constexpr bool @\libglobal{is_default_constructible_v}@ = is_default_constructible::value; + constexpr bool @\libglobal{is_default_constructible_v}@ = is_default_constructible::value; template - inline constexpr bool @\libglobal{is_copy_constructible_v}@ = is_copy_constructible::value; + constexpr bool @\libglobal{is_copy_constructible_v}@ = is_copy_constructible::value; template - inline constexpr bool @\libglobal{is_move_constructible_v}@ = is_move_constructible::value; + constexpr bool @\libglobal{is_move_constructible_v}@ = is_move_constructible::value; template - inline constexpr bool @\libglobal{is_assignable_v}@ = is_assignable::value; + constexpr bool @\libglobal{is_assignable_v}@ = is_assignable::value; template - inline constexpr bool @\libglobal{is_copy_assignable_v}@ = is_copy_assignable::value; + constexpr bool @\libglobal{is_copy_assignable_v}@ = is_copy_assignable::value; template - inline constexpr bool @\libglobal{is_move_assignable_v}@ = is_move_assignable::value; + constexpr bool @\libglobal{is_move_assignable_v}@ = is_move_assignable::value; template - inline constexpr bool @\libglobal{is_swappable_with_v}@ = is_swappable_with::value; + constexpr bool @\libglobal{is_swappable_with_v}@ = is_swappable_with::value; template - inline constexpr bool @\libglobal{is_swappable_v}@ = is_swappable::value; + constexpr bool @\libglobal{is_swappable_v}@ = is_swappable::value; template - inline constexpr bool @\libglobal{is_destructible_v}@ = is_destructible::value; + constexpr bool @\libglobal{is_destructible_v}@ = is_destructible::value; template - inline constexpr bool is_trivially_constructible_v + constexpr bool is_trivially_constructible_v = is_trivially_constructible::value; template - inline constexpr bool is_trivially_default_constructible_v + constexpr bool is_trivially_default_constructible_v = is_trivially_default_constructible::value; template - inline constexpr bool is_trivially_copy_constructible_v + constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible::value; template - inline constexpr bool is_trivially_move_constructible_v + constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible::value; template - inline constexpr bool @\libglobal{is_trivially_assignable_v}@ = is_trivially_assignable::value; + constexpr bool @\libglobal{is_trivially_assignable_v}@ = is_trivially_assignable::value; template - inline constexpr bool is_trivially_copy_assignable_v + constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable::value; template - inline constexpr bool is_trivially_move_assignable_v + constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable::value; template - inline constexpr bool @\libglobal{is_trivially_destructible_v}@ = is_trivially_destructible::value; + constexpr bool @\libglobal{is_trivially_destructible_v}@ = is_trivially_destructible::value; template - inline constexpr bool is_nothrow_constructible_v + constexpr bool is_nothrow_constructible_v = is_nothrow_constructible::value; template - inline constexpr bool is_nothrow_default_constructible_v + constexpr bool is_nothrow_default_constructible_v = is_nothrow_default_constructible::value; template - inline constexpr bool is_nothrow_copy_constructible_v + constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible::value; template - inline constexpr bool is_nothrow_move_constructible_v + constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible::value; template - inline constexpr bool @\libglobal{is_nothrow_assignable_v}@ = is_nothrow_assignable::value; + constexpr bool @\libglobal{is_nothrow_assignable_v}@ = is_nothrow_assignable::value; template - inline constexpr bool @\libglobal{is_nothrow_copy_assignable_v}@ = is_nothrow_copy_assignable::value; + constexpr bool @\libglobal{is_nothrow_copy_assignable_v}@ = is_nothrow_copy_assignable::value; template - inline constexpr bool @\libglobal{is_nothrow_move_assignable_v}@ = is_nothrow_move_assignable::value; + constexpr bool @\libglobal{is_nothrow_move_assignable_v}@ = is_nothrow_move_assignable::value; template - inline constexpr bool @\libglobal{is_nothrow_swappable_with_v}@ = is_nothrow_swappable_with::value; + constexpr bool @\libglobal{is_nothrow_swappable_with_v}@ = is_nothrow_swappable_with::value; template - inline constexpr bool @\libglobal{is_nothrow_swappable_v}@ = is_nothrow_swappable::value; + constexpr bool @\libglobal{is_nothrow_swappable_v}@ = is_nothrow_swappable::value; template - inline constexpr bool @\libglobal{is_nothrow_destructible_v}@ = is_nothrow_destructible::value; + constexpr bool @\libglobal{is_nothrow_destructible_v}@ = is_nothrow_destructible::value; template - inline constexpr bool @\libglobal{has_virtual_destructor_v}@ = has_virtual_destructor::value; + constexpr bool @\libglobal{has_virtual_destructor_v}@ = has_virtual_destructor::value; template - inline constexpr bool has_unique_object_representations_v + constexpr bool has_unique_object_representations_v = has_unique_object_representations::value; template - inline constexpr bool @\libglobal{reference_constructs_from_temporary_v}@ + constexpr bool @\libglobal{reference_constructs_from_temporary_v}@ = reference_constructs_from_temporary::value; template - inline constexpr bool @\libglobal{reference_converts_from_temporary_v}@ + constexpr bool @\libglobal{reference_converts_from_temporary_v}@ = reference_converts_from_temporary::value; // \ref{meta.unary.prop.query}, type property queries template - inline constexpr size_t @\libglobal{alignment_of_v}@ = alignment_of::value; + constexpr size_t @\libglobal{alignment_of_v}@ = alignment_of::value; template - inline constexpr size_t @\libglobal{rank_v}@ = rank::value; + constexpr size_t @\libglobal{rank_v}@ = rank::value; template - inline constexpr size_t @\libglobal{extent_v}@ = extent::value; + constexpr size_t @\libglobal{extent_v}@ = extent::value; // \ref{meta.rel}, type relations template - inline constexpr bool @\libglobal{is_same_v}@ = is_same::value; + constexpr bool @\libglobal{is_same_v}@ = is_same::value; template - inline constexpr bool @\libglobal{is_base_of_v}@ = is_base_of::value; + constexpr bool @\libglobal{is_base_of_v}@ = is_base_of::value; template - inline constexpr bool @\libglobal{is_convertible_v}@ = is_convertible::value; + constexpr bool @\libglobal{is_convertible_v}@ = is_convertible::value; template - inline constexpr bool @\libglobal{is_nothrow_convertible_v}@ = is_nothrow_convertible::value; + constexpr bool @\libglobal{is_nothrow_convertible_v}@ = is_nothrow_convertible::value; template - inline constexpr bool @\libglobal{is_layout_compatible_v}@ = is_layout_compatible::value; + constexpr bool @\libglobal{is_layout_compatible_v}@ = is_layout_compatible::value; template - inline constexpr bool is_pointer_interconvertible_base_of_v + constexpr bool is_pointer_interconvertible_base_of_v = is_pointer_interconvertible_base_of::value; template - inline constexpr bool @\libglobal{is_invocable_v}@ = is_invocable::value; + constexpr bool @\libglobal{is_invocable_v}@ = is_invocable::value; template - inline constexpr bool @\libglobal{is_invocable_r_v}@ = is_invocable_r::value; + constexpr bool @\libglobal{is_invocable_r_v}@ = is_invocable_r::value; template - inline constexpr bool @\libglobal{is_nothrow_invocable_v}@ = is_nothrow_invocable::value; + constexpr bool @\libglobal{is_nothrow_invocable_v}@ = is_nothrow_invocable::value; template - inline constexpr bool is_nothrow_invocable_r_v + constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r::value; // \ref{meta.logical}, logical operator traits template - inline constexpr bool @\libglobal{conjunction_v}@ = conjunction::value; + constexpr bool @\libglobal{conjunction_v}@ = conjunction::value; template - inline constexpr bool @\libglobal{disjunction_v}@ = disjunction::value; + constexpr bool @\libglobal{disjunction_v}@ = disjunction::value; template - inline constexpr bool @\libglobal{negation_v}@ = negation::value; + constexpr bool @\libglobal{negation_v}@ = negation::value; // \ref{meta.member}, member relationships template @@ -2433,17 +2433,17 @@ template struct ratio_greater_equal; template - inline constexpr bool @\libglobal{ratio_equal_v}@ = ratio_equal::value; + constexpr bool @\libglobal{ratio_equal_v}@ = ratio_equal::value; template - inline constexpr bool @\libglobal{ratio_not_equal_v}@ = ratio_not_equal::value; + constexpr bool @\libglobal{ratio_not_equal_v}@ = ratio_not_equal::value; template - inline constexpr bool @\libglobal{ratio_less_v}@ = ratio_less::value; + constexpr bool @\libglobal{ratio_less_v}@ = ratio_less::value; template - inline constexpr bool @\libglobal{ratio_less_equal_v}@ = ratio_less_equal::value; + constexpr bool @\libglobal{ratio_less_equal_v}@ = ratio_less_equal::value; template - inline constexpr bool @\libglobal{ratio_greater_v}@ = ratio_greater::value; + constexpr bool @\libglobal{ratio_greater_v}@ = ratio_greater::value; template - inline constexpr bool @\libglobal{ratio_greater_equal_v}@ = ratio_greater_equal::value; + constexpr bool @\libglobal{ratio_greater_equal_v}@ = ratio_greater_equal::value; // \ref{ratio.si}, convenience SI typedefs using @\libglobal{yocto}@ = ratio<1, 1'000'000'000'000'000'000'000'000>; // see below diff --git a/source/numerics.tex b/source/numerics.tex index e7f9efd029..e5b998e1ed 100644 --- a/source/numerics.tex +++ b/source/numerics.tex @@ -10301,33 +10301,33 @@ \indexheader{numbers}% \begin{codeblock} namespace std::numbers { - template inline constexpr T e_v = @\unspec@; - template inline constexpr T log2e_v = @\unspec@; - template inline constexpr T log10e_v = @\unspec@; - template inline constexpr T pi_v = @\unspec@; - template inline constexpr T inv_pi_v = @\unspec@; - template inline constexpr T inv_sqrtpi_v = @\unspec@; - template inline constexpr T ln2_v = @\unspec@; - template inline constexpr T ln10_v = @\unspec@; - template inline constexpr T sqrt2_v = @\unspec@; - template inline constexpr T sqrt3_v = @\unspec@; - template inline constexpr T inv_sqrt3_v = @\unspec@; - template inline constexpr T egamma_v = @\unspec@; - template inline constexpr T phi_v = @\unspec@; - - template<@\libconcept{floating_point}@ T> inline constexpr T e_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T log2e_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T log10e_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T pi_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T inv_pi_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T inv_sqrtpi_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T ln2_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T ln10_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T sqrt2_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T sqrt3_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T inv_sqrt3_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T egamma_v = @\seebelow@; - template<@\libconcept{floating_point}@ T> inline constexpr T phi_v = @\seebelow@; + template constexpr T e_v = @\unspec@; + template constexpr T log2e_v = @\unspec@; + template constexpr T log10e_v = @\unspec@; + template constexpr T pi_v = @\unspec@; + template constexpr T inv_pi_v = @\unspec@; + template constexpr T inv_sqrtpi_v = @\unspec@; + template constexpr T ln2_v = @\unspec@; + template constexpr T ln10_v = @\unspec@; + template constexpr T sqrt2_v = @\unspec@; + template constexpr T sqrt3_v = @\unspec@; + template constexpr T inv_sqrt3_v = @\unspec@; + template constexpr T egamma_v = @\unspec@; + template constexpr T phi_v = @\unspec@; + + template<@\libconcept{floating_point}@ T> constexpr T e_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T log2e_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T log10e_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T pi_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T inv_pi_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T inv_sqrtpi_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T ln2_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T ln10_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T sqrt2_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T sqrt3_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T inv_sqrt3_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T egamma_v = @\seebelow@; + template<@\libconcept{floating_point}@ T> constexpr T phi_v = @\seebelow@; inline constexpr double e = e_v; inline constexpr double log2e = log2e_v; diff --git a/source/ranges.tex b/source/ranges.tex index 61c7619360..52552a2e95 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -55,7 +55,7 @@ concept range = @\seebelow@; // freestanding template - inline constexpr bool enable_borrowed_range = false; // freestanding + constexpr bool enable_borrowed_range = false; // freestanding template concept borrowed_range = @\seebelow@; // freestanding @@ -83,14 +83,14 @@ // \ref{range.sized}, sized ranges template - inline constexpr bool disable_sized_range = false; // freestanding + constexpr bool disable_sized_range = false; // freestanding template concept sized_range = @\seebelow@; // freestanding // \ref{range.view}, views template - inline constexpr bool enable_view = @\seebelow@; // freestanding + constexpr bool enable_view = @\seebelow@; // freestanding struct view_base {}; // freestanding @@ -138,7 +138,7 @@ class subrange; // freestanding template - inline constexpr bool enable_borrowed_range> = true; // freestanding + constexpr bool enable_borrowed_range> = true; // freestanding template requires ((N == 0 && @\libconcept{copyable}@) || N == 1) @@ -183,11 +183,11 @@ class empty_view; // freestanding template - inline constexpr bool enable_borrowed_range> = true; // freestanding + constexpr bool enable_borrowed_range> = true; // freestanding namespace views { template - inline constexpr empty_view @\libmember{empty}{views}@{}; // freestanding + constexpr empty_view @\libmember{empty}{views}@{}; // freestanding } // \ref{range.single}, single view @@ -206,7 +206,7 @@ class iota_view; // freestanding template - inline constexpr bool enable_borrowed_range> = true; // freestanding + constexpr bool enable_borrowed_range> = true; // freestanding namespace views { inline constexpr @\unspecnc@ iota = @\unspecnc@; } // freestanding @@ -227,7 +227,7 @@ template using wistream_view = basic_istream_view; - namespace views { template inline constexpr @\unspecnc@ istream = @\unspecnc@; } + namespace views { template constexpr @\unspecnc@ istream = @\unspecnc@; } // \ref{range.adaptor.object}, range adaptor objects template @@ -248,7 +248,7 @@ class ref_view; // freestanding template - inline constexpr bool enable_borrowed_range> = true; // freestanding + constexpr bool enable_borrowed_range> = true; // freestanding // \ref{range.owning.view}, owning view template<@\libconcept{range}@ R> @@ -256,7 +256,7 @@ class owning_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; // \ref{range.as.rvalue}, as rvalue view @@ -265,7 +265,7 @@ class as_rvalue_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ as_rvalue = @\unspecnc@; } // freestanding @@ -290,7 +290,7 @@ template<@\libconcept{view}@> class take_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ take = @\unspecnc@; } // freestanding @@ -308,7 +308,7 @@ class drop_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ drop = @\unspecnc@; } // freestanding @@ -320,7 +320,7 @@ class drop_while_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ drop_while = @\unspecnc@; } // freestanding @@ -374,7 +374,7 @@ class common_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ common = @\unspecnc@; } // freestanding @@ -385,7 +385,7 @@ class reverse_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ reverse = @\unspecnc@; } // freestanding @@ -405,7 +405,7 @@ class as_const_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ as_const = @\unspecnc@; } // freestanding @@ -416,7 +416,7 @@ class elements_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; template @@ -426,7 +426,7 @@ namespace views { template - inline constexpr @\unspecnc@ elements = @\unspecnc@; // freestanding + constexpr @\unspecnc@ elements = @\unspecnc@; // freestanding inline constexpr auto @\libmember{keys}{views}@ = elements<0>; // freestanding inline constexpr auto @\libmember{values}{views}@ = elements<1>; // freestanding } @@ -437,7 +437,7 @@ class zip_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding (enable_borrowed_range && ...); namespace views { inline constexpr @\unspecnc@ zip = @\unspecnc@; } // freestanding @@ -457,7 +457,7 @@ class adjacent_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { @@ -487,7 +487,7 @@ class chunk_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding @\libconcept{forward_range}@ && enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ chunk = @\unspecnc@; } // freestanding @@ -498,7 +498,7 @@ class slide_view; // freestanding template - inline constexpr bool enable_borrowed_range> = + constexpr bool enable_borrowed_range> = enable_borrowed_range; // freestanding namespace views { inline constexpr @\unspecnc@ slide = @\unspecnc@; } // freestanding @@ -516,7 +516,7 @@ class stride_view; // freestanding template - inline constexpr bool enable_borrowed_range> = // freestanding + constexpr bool enable_borrowed_range> = // freestanding enable_borrowed_range; namespace views { inline constexpr @\unspecnc@ stride = @\unspecnc@; } // freestanding @@ -1319,7 +1319,7 @@ \indexlibraryglobal{enable_borrowed_range}% \begin{itemdecl} template - inline constexpr bool enable_borrowed_range = false; + constexpr bool enable_borrowed_range = false; \end{itemdecl} \begin{itemdescr} @@ -1386,7 +1386,7 @@ \indexlibraryglobal{disable_sized_range}% \begin{itemdecl} template - inline constexpr bool disable_sized_range = false; + constexpr bool disable_sized_range = false; \end{itemdecl} \begin{itemdescr} @@ -1478,9 +1478,9 @@ \indexlibraryglobal{enable_view}% \begin{itemdecl} template - inline constexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos + constexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos template - inline constexpr bool enable_view = + constexpr bool enable_view = @\libconcept{derived_from}@ || @\exposid{is-derived-from-view-interface}@; \end{itemdecl} diff --git a/source/strings.tex b/source/strings.tex index 0135346002..433abb6e66 100644 --- a/source/strings.tex +++ b/source/strings.tex @@ -541,9 +541,9 @@ class basic_string_view; template - inline constexpr bool ranges::enable_view> = true; + constexpr bool ranges::enable_view> = true; template - inline constexpr bool ranges::enable_borrowed_range> = true; + constexpr bool ranges::enable_borrowed_range> = true; // \ref{string.view.comparison}, non-member comparison functions template diff --git a/source/time.tex b/source/time.tex index 28bf443fc6..04f414aba6 100644 --- a/source/time.tex +++ b/source/time.tex @@ -88,12 +88,12 @@ // \ref{time.traits}, customization traits template struct treat_as_floating_point; template - inline constexpr bool treat_as_floating_point_v = treat_as_floating_point::value; + constexpr bool treat_as_floating_point_v = treat_as_floating_point::value; template struct duration_values; template struct is_clock; - template inline constexpr bool is_clock_v = is_clock::value; + template constexpr bool is_clock_v = is_clock::value; // \ref{time.duration.nonmember}, \tcode{duration} arithmetic template diff --git a/source/utilities.tex b/source/utilities.tex index f67090e9c7..03f38b6e3f 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -207,13 +207,13 @@ struct in_place_type_t { explicit in_place_type_t() = default; }; - template inline constexpr in_place_type_t in_place_type{}; + template constexpr in_place_type_t in_place_type{}; template struct in_place_index_t { explicit in_place_index_t() = default; }; - template inline constexpr in_place_index_t in_place_index{}; + template constexpr in_place_index_t in_place_index{}; } \end{codeblock} @@ -1584,7 +1584,7 @@ // \ref{tuple.helper}, tuple helper classes template - inline constexpr size_t @\libglobal{tuple_size_v}@ = tuple_size::value; + constexpr size_t @\libglobal{tuple_size_v}@ = tuple_size::value; } \end{codeblock} @@ -4857,7 +4857,7 @@ template struct variant_size; // \notdef template struct variant_size; template - inline constexpr size_t @\libglobal{variant_size_v}@ = variant_size::value; + constexpr size_t @\libglobal{variant_size_v}@ = variant_size::value; template struct variant_size>; @@ -10493,11 +10493,11 @@ // \ref{func.bind}, bind template struct is_bind_expression; // freestanding template - inline constexpr bool @\libglobal{is_bind_expression_v}@ = // freestanding + constexpr bool @\libglobal{is_bind_expression_v}@ = // freestanding is_bind_expression::value; template struct is_placeholder; // freestanding template - inline constexpr int @\libglobal{is_placeholder_v}@ = // freestanding + constexpr int @\libglobal{is_placeholder_v}@ = // freestanding is_placeholder::value; template @@ -13926,7 +13926,7 @@ namespace std { // \ref{execpol.type}, execution policy type trait template struct is_execution_policy; - template inline constexpr bool @\libglobal{is_execution_policy_v}@ = is_execution_policy::value; + template constexpr bool @\libglobal{is_execution_policy_v}@ = is_execution_policy::value; } namespace std::execution {