std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
來自 cppreference.com
定義於標頭檔案 <ranges> |
||
template< class T > using iterator_t = decltype(ranges::begin(std::declval<T&>())); |
(1) | (C++20 起) |
template< ranges::range R > using const_iterator_t = decltype(ranges::cbegin(std::declval<R&>())); |
(2) | (C++23 起) |
template< ranges::range R > using sentinel_t = decltype(ranges::end(std::declval<R&>())); |
(3) | (C++20 起) |
template< ranges::range R > using const_sentinel_t = decltype(ranges::cend(std::declval<R&>())); |
(4) | (C++23 起) |
1) 用於獲得型別
T
的迭代器型別。3) 用於獲得 range 型別
R
的哨位型別。4) 用於獲得 range 型別
R
的常哨位型別。目錄 |
[編輯] 模板形參
T | - | 一個可用於 std::ranges::begin 的型別 |
R | - | 一個 range 型別或 sized_range 型別 |
[編輯] 注意
iterator_t
可應用於非 range 型別,例如未知邊界陣列。
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
LWG 3946 | C++23 | const_iterator_t 與 const_sentinel_t 分別與 ranges::cbegin 和 ranges::cend 的結果不一致(無) |
微調 |
[編輯] 參閱
(C++20)(C++20)(C++23)(C++20)(C++20)(C++20) |
計算迭代器的關聯型別 (別名模板) |
(C++20)(C++20)(C++20) |
獲取範圍的大小、差值和值型別 (別名模板) |
獲取範圍的引用型別 (別名模板) |