namespace std::ranges {
// C++20
template<class T, class U, class V>
concept pair-like-convertible-from = // 説明専用コンセプト
!range<T> && pair-like<T> &&
constructible_from<T, U, V> &&
convertible-to-non-slicing<U, tuple_element_t<0, T>> &&
convertible_to<V, tuple_element_t<1, T>>;
// C++23
template<class T, class U, class V>
concept pair-like-convertible-from = // 説明専用コンセプト
!range<T> && !is_reference_v<T> && pair-like<T> &&
constructible_from<T, U, V> &&
convertible-to-non-slicing<U, tuple_element_t<0, T>> &&
convertible_to<V, tuple_element_t<1, T>>;
}
概要
pair-like-convertible-from
は、型T
が型U
とV
から構築出来るpair-like
であり、かつU
がスライシングを起こさないということを表す説明専用コンセプトである。ranges::subrange
での定義に使用され、U
にはイテレータの型が、V
にはセンチネルの型が渡される。
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??