最終更新日時(UTC): 2024年06月11日 13時45分38秒
Akira Takahashi が更新

履歴 編集

variable
<ranges>

# std::ranges::disable_sized_range(C++20)

    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 ✅
- GCC: 10.1.0 ✅
- ICC: ?
- Visual C++: 2019 Update 10 ✅

## 参照

- N4861 24 Ranges library
- C++20 ranges