From 59e8990eabb87226545eded511fb095c19bf8cd8 Mon Sep 17 00:00:00 2001 From: Arthur O'Dwyer Date: Thu, 9 Nov 2023 15:41:03 -1000 Subject: [PATCH 1/2] [P2642] Remove constexpr/noexcept from defaulted special members constexprness/noexceptness are automatic for defaulted special members. --- layout_padded/layout_padded.bs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/layout_padded/layout_padded.bs b/layout_padded/layout_padded.bs index 415aa1ca..b6bd802e 100644 --- a/layout_padded/layout_padded.bs +++ b/layout_padded/layout_padded.bs @@ -609,7 +609,7 @@ struct aligned_accessor { // __attribute__((align_value(byte_alignment))). using data_handle_type = ElementType*; - constexpr aligned_accessor() noexcept = default; + aligned_accessor() = default; // A feature of default_accessor that permits // conversion from nonconst to const. @@ -900,13 +900,13 @@ private: unpadded-extent-type unpadded-extent_; // exposition only public: - constexpr mapping() - requires(actual-padding-stride != dynamic_extent) noexcept = default; - constexpr mapping() - requires(actual-padding-stride == dynamic_extent) noexcept; + mapping() + requires(actual-padding-stride != dynamic_extent) = default; + constexpr mapping() noexcept + requires(actual-padding-stride == dynamic_extent); - constexpr mapping(const mapping&) noexcept = default; - mapping& operator=(const mapping&) noexcept = default; + mapping(const mapping&) = default; + mapping& operator=(const mapping&) = default; constexpr mapping(const extents_type& ext); @@ -1306,8 +1306,8 @@ class layout_right_padded::mapping { constexpr explicit(not is_convertible_v) mapping(const layout_left_padded::mapping& other) noexcept; - constexpr mapping(const mapping&) noexcept = default; - mapping& operator=(const mapping&) noexcept = default; + mapping(const mapping&) = default; + mapping& operator=(const mapping&) = default; constexpr extents_type extents() const noexcept; From a21c61533aca782040b6e7a03afcc073e8616c0f Mon Sep 17 00:00:00 2001 From: Arthur O'Dwyer Date: Thu, 9 Nov 2023 16:00:57 -1000 Subject: [PATCH 2/2] [P1684] Remove constexpr/noexcept from defaulted special members And replace "explicit constexpr" with "constexpr explicit" --- P1684-mdarray/P1684.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/P1684-mdarray/P1684.md b/P1684-mdarray/P1684.md index 030e32b0..fa57d162 100644 --- a/P1684-mdarray/P1684.md +++ b/P1684-mdarray/P1684.md @@ -291,7 +291,7 @@ class mdarray { // only in mdarray template - explicit constexpr mdarray(IndexType...); + constexpr explicit mdarray(IndexType...); /* ... */ }; @@ -309,7 +309,7 @@ class mdarray { /* ... */ // only in mdarray - explicit constexpr mdarray(const mapping_type&); + constexpr explicit mdarray(const mapping_type&); /* ... */ }; @@ -325,7 +325,7 @@ class mdarray { /* ... */ // only in mdarray - explicit constexpr mdarray(const mapping_type&); + constexpr explicit mdarray(const mapping_type&); constexpr mdarray(const container_type&, const mapping_type&); /* ... */ @@ -993,23 +993,23 @@ public: constexpr index_type extent(rank_type r) const noexcept { return extents().extent(r); } // [mdarray.ctors], mdarray constructors - constexpr mdarray() requires(rank_dynamic() != 0) = default; - constexpr mdarray(const mdarray& rhs) = default; - constexpr mdarray(mdarray&& rhs) = default; + mdarray() requires(rank_dynamic() != 0) = default; + mdarray(const mdarray&) = default; + mdarray(mdarray&&) = default; template - explicit constexpr mdarray(OtherIndexTypes... exts); - explicit constexpr mdarray(const extents_type& ext); - explicit constexpr mdarray(const mapping_type& m); + constexpr explicit mdarray(OtherIndexTypes... exts); + constexpr explicit mdarray(const extents_type& ext); + constexpr explicit mdarray(const mapping_type& m); constexpr mdarray(const extents_type& ext, const value_type& val); constexpr mdarray(const mapping_type& m, const value_type& val); constexpr mdarray(const extents_type& ext, const container_type& c); - constexpr mdarray(const mapping_type& m, const container_type& c,); + constexpr mdarray(const mapping_type& m, const container_type& c); constexpr mdarray(const extents_type& ext, container_type&& c); - constexpr mdarray(const mapping_type& m, container_type&& c,); + constexpr mdarray(const mapping_type& m, container_type&& c); template& other, const Alloc& a); - constexpr mdarray& operator=(const mdarray& rhs) = default; - constexpr mdarray& operator=(mdarray&& rhs) = default; + mdarray& operator=(const mdarray&) = default; + mdarray& operator=(mdarray&&) = default; // [mdarray.members], mdarray members template @@ -1228,7 +1228,7 @@ array ```c++ template - explicit constexpr mdarray(OtherIndexTypes... exts); + constexpr explicit mdarray(OtherIndexTypes... exts); ``` [1]{.pnum} *Constraints:*