FreeBSD Manual Pages
std::extents::extents(3) C++ Standard Libary std::extents::extents(3) NAME std::extents::extents - std::extents::extents Synopsis constexpr extents() = default; (1) (since C++23) template< class OtherIndexType, std::size_t... OtherExtents > constexpr explicit(/*see below*/) (2) (since C++23) extents( const std::extents<OtherIndexType, OtherExtents...>& other ) noexcept; template< class... OtherIndexTypes > (3) (since C++23) constexpr explicit extents( OtherIndexTypes... exts ) noexcept; template< class OtherIndexType, std::size_t N > constexpr explicit(N != rank_dynamic()) (4) (since C++23) extents( std::span<OtherIndexType, N> exts ) noexcept; template< class OtherIndexType, std::size_t N > constexpr explicit(N != rank_dynamic()) (5) (since C++23) extents( const std::array<OtherIndexType, N>& exts ) noexcept; Construct an extents. One can construct extents from just dynamic extents, which are all the values getting stored, or from all the extents with a pre- condition. 1) Default constructor. Initializes all dynamic extents to zero. 2) Conversion from another extents object. After construction, *this == other is true. * The behavior is undefined if * other.extent(r) != static_extent(r) for any r for which sta- tic_extent(r) represents a static extent, or * other.extent(r) is not representable as a value of type Index- Type for any rank value r in other. * This overload participates in overload resolution only if * sizeof...(OtherExtents) == rank() is true, and * ((OtherExtents == std::dynamic_extent || Extents == std::dy- namic_extent || OtherExtents == Extents) && ...) is true. * This constructor is explicit if * ((Extents != std::dynamic_extent && OtherExtents == std::dy- namic_extent) || ...) is true, or * std::numeric_limits<IndexType>::max() < std::numeric_limits<OtherIndexType>::max() is true. 3) Let N be sizeof...(exts) and exts_arr be std::array<IndexType, N>{static_cast<IndexType>(std::move(exts))...}, equivalent to ex- tents(exts_arr). * This overload participates in overload resolution only if * (std::is_convertible_v<OtherIndexTypes, IndexType> && ...) is true, * (std::is_nothrow_constructible_v<IndexType, OtherIndexTypes> && ...) is true, and * N == rank_dynamic() || N == rank() is true. * The behavior is undefined if * N != rank_dynamic() and exts_arr[r] is not equal to static_ex- tent(r) for any r for which static_extent(r) represents a static extent, or * an element in exts is negative or not representable as a value of type IndexType. 4,5) If N equals rank_dynamic(), for all d in [0, rank_dynamic()), direct-non-list-initializes dynamic-extents[d] with std::as_const(exts[d]). Otherwise, for all d in [0, rank_dynamic()), direct-non-list-ini- tializes dynamic-extents[d] with std::as_const(exts[dynamic-index-inv(d)]). * This overload participates in overload resolution only if * std::is_convertible_v<const OtherIndexType&, IndexType> is true, * std::is_nothrow_constructible_v<IndexType, const OtherIndex- Type&> is true, and * N == rank_dynamic() || N == rank() is true. * The behavior is undefined if * N != rank_dynamic() and exts[r] is not equal to static_extent(r) for any r for which static_extent(r) represents a static extent, or * exts[r] is negative or not representable as a value of type In- dexType for any rank index r. Parameters other - another extents to convert from exts - represents the extents Example This section is incomplete Reason: no example See also This section is incomplete Categories: * Todo no example * Todo without reason http://cppreference.com 2024.06.10 std::extents::extents(3)
NAME | Synopsis | Parameters | Example | See also | Categories:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::extents::extents&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
