Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions P1684-mdarray/P1684.md
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ class mdarray {

// only in mdarray
template <class... IndexType>
explicit constexpr mdarray(IndexType...);
constexpr explicit mdarray(IndexType...);

/* ... */
};
Expand All @@ -309,7 +309,7 @@ class mdarray {
/* ... */

// only in mdarray
explicit constexpr mdarray(const mapping_type&);
constexpr explicit mdarray(const mapping_type&);

/* ... */
};
Expand All @@ -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&);

/* ... */
Expand Down Expand Up @@ -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<class... OtherIndexTypes>
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<class OtherElementType, class OtherExtents,
Expand Down Expand Up @@ -1063,8 +1063,8 @@ public:
OtherLayoutPolicy, Accessor>& 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<class... OtherIndexTypes>
Expand Down Expand Up @@ -1228,7 +1228,7 @@ array<ValueType, N>

```c++
template<class... OtherIndexTypes>
explicit constexpr mdarray(OtherIndexTypes... exts);
constexpr explicit mdarray(OtherIndexTypes... exts);
```

[1]{.pnum} *Constraints:*
Expand Down
18 changes: 9 additions & 9 deletions layout_padded/layout_padded.bs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The layout padded spec is following what is already in the standard https://eel.is/c++draft/mdspan.layout.left.overview

Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -900,13 +900,13 @@ private:
<it>unpadded-extent-type</it> <it>unpadded-extent_</it>; // exposition only

public:
constexpr mapping()
requires(<it>actual-padding-stride != dynamic_extent</it>) noexcept = default;
constexpr mapping()
requires(actual-padding-stride == dynamic_extent) noexcept;
mapping()
requires(<it>actual-padding-stride != dynamic_extent</it>) = 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);

Expand Down Expand Up @@ -1306,8 +1306,8 @@ class layout_right_padded<padding_stride>::mapping {
constexpr explicit(not is_convertible_v<OtherExtents, extents_type>)
mapping(const layout_left_padded<other_padding_stride>::mapping<OtherExtents>& 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;

Expand Down