Skip to content

Commit a9cabf1

Browse files
committed
Add constructors
1 parent eb72c9a commit a9cabf1

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/xtd.core/include/xtd/span.hpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,17 @@ namespace xtd {
107107
explicit span(const collection_t& items) : data_ {const_cast<type_t*>(items.data())}, size_ {items.size()} {}
108108
template<class collection_t>
109109
explicit span(collection_t& items) : data_ {items.data()}, size_ {items.size()} {}
110-
explicit span(std::initializer_list<type_t> items) : data_ {const_cast<type_t*>(&(*items.begin()))}, size_ {items.size()} {}
110+
explicit span(std::initializer_list<type_t> items) noexcept : data_ {const_cast<type_t*>(&(*items.begin()))}, size_ {items.size()} {}
111111
explicit span(const type_t* data, size_type size) : data_ {const_cast<type_t*>(data)}, size_ {size} {}
112112
explicit span(type_t* data, size_type size) : data_ {data}, size_ {size} {}
113-
template<std::size_t len_>
114-
constexpr span(const type_t (&array)[len_] ) noexcept : data_ {array}, size_ {len_} {}
115-
template<std::size_t len_>
116-
constexpr span(type_t (&array)[len_] ) noexcept : data_ {array}, size_ {len_} {}
117-
113+
template<xtd::size len_>
114+
constexpr span(const type_t (&array)[len_]) noexcept : data_ {array}, size_ {len_} {}
115+
template<xtd::size len_>
116+
constexpr span(type_t (&array)[len_]) noexcept : data_ {array}, size_ {len_} {}
117+
template< class array_type_t, xtd::size len_>
118+
constexpr span(const std::array<array_type_t, len_>& array) noexcept : data_ {const_cast<type_t*>(array.data())}, size_ {len_} {}
119+
template< class array_type_t, xtd::size len_>
120+
constexpr span(std::array<array_type_t, len_>& array) noexcept : data_ {array.data()}, size_ {len_} {}
118121
span(span&& items) = default;
119122
span(const span& items) = default;
120123

0 commit comments

Comments
 (0)