-
Notifications
You must be signed in to change notification settings - Fork 15.1k
Closed
Labels
libc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Description
I just came across these constructors which I can't find anywhere in the Standard:
llvm-project/libcxx/include/span
Lines 296 to 303 in 4924172
template <__span_array_convertible<element_type> _OtherElementType> | |
_LIBCPP_HIDE_FROM_ABI constexpr span(const span<_OtherElementType, _Extent>& __other) : __data_{__other.data()} {} | |
template <__span_array_convertible<element_type> _OtherElementType> | |
_LIBCPP_HIDE_FROM_ABI constexpr explicit span(const span<_OtherElementType, dynamic_extent>& __other) noexcept | |
: __data_{__other.data()} { | |
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(_Extent == __other.size(), "size mismatch in span's constructor (other span)"); | |
} |
Are they non-standard constructors we provide?
Also, it is possible that the constructor at line 297 is missing a noexcept
(thanks @mclow for the heads up).
Metadata
Metadata
Assignees
Labels
libc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.