std:: full_extent, std:: full_extent_t
From cppreference.net
C++
Containers library
|
(C++17)
|
||||
| Sequence | ||||
|
(C++11)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
(C++11)
|
||||
| Associative | ||||
| Unordered associative | ||||
|
(C++11)
|
||||
|
(C++11)
|
||||
|
(C++11)
|
||||
|
(C++11)
|
||||
| Adaptors | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Views | ||||
|
(C++20)
|
||||
|
(C++23)
|
||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
std::mdspan
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定義ヘッダー
<mdspan>
|
||
|
struct
full_extent_t
{
explicit
full_extent_t
(
)
=
default
;
}
;
|
(1) | (C++26以降) |
|
inline
constexpr
std
::
full_extent_t
full_extent
{
}
;
|
(2) | (C++26以降) |
1)
クラス
std::full_extent_t
は、
std::submdspan
で使用できるスライス指定子型です。
(1)
に対応する
std::full_extent
インスタンスは、
std::submdspan
において指定されたエクステントの全インデックス範囲を示すスライス指定子です。
例
このコードを実行
#include <mdspan> #include <print> void print(auto view) { static_assert(view.rank() <= 2); if constexpr (view.rank() == 2) { for (std::size_t i = 0; i != view.extent(0); ++i) { for (std::size_t j = 0; j != view.extent(1); ++j) std::print("{} ", view[i, j]); std::println(); } } else if constexpr (view.rank() == 1) { for (std::size_t i = 0; i != view.extent(0); ++i) std::print("{} ", view[i]); std::println(); } else std::println("{}", view[]); std::println(); } int main() { const char letters []{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'}; const std::mdspan view(letters, 3, 3); print(view); print(std::submdspan(view, std::full_extent, std::full_extent)); print(std::submdspan(view, std::full_extent, 1)); print(std::submdspan(view, 1, std::full_extent)); print(std::submdspan(view, 2, 1)); }
出力例:
A B C D E F G H I A B C D E F G H I B E H D E F H
関連項目
|
(C++26)
|
既存の
mdspan
の部分集合のビューを返す
(関数テンプレート) |