- 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]