- ranges[meta header]
- std::ranges[meta namespace]
- variable[meta id-type]
- cpp20[meta cpp]
namespace std::ranges {
template<class>
inline constexpr bool disable_sized_range = false;
}
disable_sized_range
は、sized_range
を無効化するカスタマイゼーションポイントである。
sized_range
コンセプトの構文要件を満たすが意味論要件を満たさないような型T
があるとき、disable_sized_range<T>
がtrue
となるように特殊化することでranges::size
の引数にできないようにして、sized_range
を無効化する。
具体的には、大きさを求めることはできるが、その計算量が償却定数にならないようなRangeが該当する。
(執筆中)
- C++20
- Clang: 13.0.0 [mark verified]
- GCC: 10.1.0 [mark verified]
- ICC: ?
- Visual C++: 2019 Update 10 [mark verified]