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++: ??