- ranges[meta header]
- concept[meta id-type]
- cpp20[meta cpp]
template<class I>
concept has-arrow = // 説明専用コンセプト
input_iterator<I> && (is_pointer_v<I> || requires(I i) { i.operator->(); });- input_iterator[link /reference/iterator/input_iterator.md]
- is_pointer_v[link /reference/type_traits/is_pointer.md]
has-arrowは、型Iについてstd::input_iteratorを満たす上で、アロー演算子が使用可能であることを表す説明専用コンセプトである。
C++20 のイテレータ定義であるコンセプトたちではアロー演算子を提供することを要求していないため、別途用意されていると考えられる。
- C++20
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??