Skip to content

Latest commit

 

History

History
57 lines (48 loc) · 2.15 KB

File metadata and controls

57 lines (48 loc) · 2.15 KB

pair-like-convertible-from

  • [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が型UVから構築出来るpair-likeであり、かつUがスライシングを起こさないということを表す説明専用コンセプトである。ranges::subrangeでの定義に使用され、Uにはイテレータの型が、Vにはセンチネルの型が渡される。

バージョン

言語

  • C++20

処理系

関連項目

参照