- [meta exposition-only]
- ranges[meta header]
- concept[meta id-type]
- std::ranges[meta namespace]
- cpp20[meta cpp]
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[link /reference/tuple/pair-like.md]
- convertible-to-non-slicing[link convertible-to-non-slicing.md]
- constructible_from[link /reference/concepts/constructible_from.md]
- tuple_element_t[link /reference/tuple/tuple_element.md]
- is_reference_v[link /reference/type_traits/is_reference.md]
- convertible-to-non-slicing[italic]
- pair-like[italic]
- pair-like-convertible-from[italic]
pair-like-convertible-fromは、型Tが型UとVから構築出来るpair-likeであり、かつUがスライシングを起こさないということを表す説明専用コンセプトである。ranges::subrangeでの定義に使用され、Uにはイテレータの型が、Vにはセンチネルの型が渡される。
- C++20
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??