std::full_extent, std::full_extent_t
來自 cppreference.com
定義於標頭檔案 <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 中使用。2) (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 的子集檢視(函式模板) |