実験ライブラリヘッダー <experimental/ranges/utility>
From cppreference.com
< cpp | header | experimental
このヘッダーは、ranges ライブラリの一部です。
目次 |
[編集] ユーティリティコンポーネント
std::experimental::ranges 名前空間で定義されます。 | |
| 2つのオブジェクトの値を交換します (カスタマイズポイントオブジェクト) | |
| 引数を新しい値で置き換え、その前の値を返す (関数テンプレート) | |
[編集] タグコンセプト
std::experimental::ranges 名前空間で定義されます。 | |
| 型がタグ指定子であることを指定します (コンセプト) | |
| 型がタグ指定子とその要素型を表すことを指定します (コンセプト) | |
[編集] タグ付きペア
std::experimental::ranges 名前空間で定義されます。 | |
| 名前付きアクセサでタプルライクな型を拡張します (クラステンプレート) | |
| タグ付き std::pair のエイリアステンプレート (エイリアステンプレート) | |
tagged_pair を作成するための便利な関数(関数テンプレート) | |
[編集] シノプシス
namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* unspecified */ swap = /* unspecified */; } template<MoveConstructible T, class U = T> requires Assignable<T&, U> constexpr T exchange(T& obj, U&& new_val) noexcept(/* see definition */); template <class T> concept bool TagSpecifier = /* see definition */; template <class F> concept bool TaggedType = /* see definition */; template <class Base, TagSpecifier... Tags> requires sizeof...(Tags) <= std::tuple_size<Base>::value struct tagged; template <TaggedType T1, TaggedType T2> using tagged_pair = /* see definition */; template <TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2> constexpr /* see definition */ make_tagged_pair(T1&& x, T2&& y); }}}} namespace std { template <class Base, class... Tags> struct tuple_size<experimental::ranges::tagged<Base, Tags...>>; template <size_t N, class Base, class... Tags> struct tuple_element<N, experimental::ranges::tagged<Base, Tags...>>; }