Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      Standard library header <utility>

      From cppreference.com
      <cpp‎ |header
       
       
      Standard library headers
       

      This header is part of thegeneral utility library.

      Contents

      Includes

      (C++20)
      Three-way comparison operator support[edit]
      std::initializer_list class template[edit]

      Namespaces

      rel_ops Provide automatic comparison operators
      Defined in namespacestd::rel_ops
      automatically generates comparison operators based on user-definedoperator== andoperator<
      (function template)[edit]

      Functions

      swaps the values of two objects
      (function template)[edit]
      (C++14)
      replaces the argument with a new value and returns its previous value
      (function template)[edit]
      (C++11)
      forwards a function argument and use the type template argument to preserve its value category
      (function template)[edit]
      forwards a function argument as if casting it to the value category and constness of the expression of specified type template argument
      (function template)[edit]
      (C++11)
      converts the argument to an xvalue
      (function template)[edit]
      converts the argument to an xvalue if the move constructor does not throw
      (function template)[edit]
      (C++17)
      obtains a reference toconst to its argument
      (function template)[edit]
      (C++11)
      obtains a reference to an object of the template type argument for use in an unevaluated context
      (function template)[edit]
      converts an enumeration to its underlying type
      (function template)[edit]
      compares two integer values, ensuring that signed negative numbers are less than unsigned numbers
      (function template)[edit]
      (C++20)
      checks if an integer value is in the range of a given integer type
      (function template)[edit]
      marks unreachable point of execution
      (function)[edit]
      creates apair object of type, determined by the argument types
      (function template)[edit]
      (removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20)
      lexicographically compares the values in thepair
      (function template)[edit]
      specializes thestd::swap algorithm
      (function template)[edit]
      accesses an element of apair
      (function template)[edit]

      Classes

      implements binary tuple, i.e. a pair of values
      (class template)[edit]
      (C++11)
      obtains the number of elements of a tuple-like type
      (class template)[edit]
      obtains the element types of a tuple-like type
      (class template)[edit]
      obtains the size of apair
      (class template specialization)[edit]
      obtains the type of the elements ofpair
      (class template specialization)[edit]
      implements compile-time sequence of integers
      (class template)[edit]
      Forward declarations
      Defined in header<tuple>
      (C++11)
      implements fixed size container, which holds elements of possibly different types
      (class template)[edit]
      Defined in header<variant>
      (C++17)
      placeholder type for use as the first alternative in avariant of non-default-constructible types
      (class)[edit]

      Constants

      (C++11)
      placeholder to skip an element when unpacking atuple usingtie
      (constant)[edit]

      Tags

      piecewise construction tag
      (tag)[edit]
      in-place construction tag
      (tag)[edit]
      value construction tag
      (tag)[edit]

      [edit]Synopsis

      #include <compare>#include <initializer_list> namespace std{// swaptemplate<class T>constexprvoid swap(T& a, T& b)noexcept(/* see description */);template<class T, size_t N>constexprvoid swap(T(&a)[N], T(&b)[N])noexcept(is_nothrow_swappable_v<T>); // exchangetemplate<class T,class U= T>constexpr T exchange(T& obj, U&& new_val); // forward/movetemplate<class T>constexpr T&& forward(remove_reference_t<T>& t)noexcept;template<class T>constexpr T&& forward(remove_reference_t<T>&& t)noexcept;template<class T,class U>constexpr/* see description */ forward_like(U&& x)noexcept;template<class T>constexpr remove_reference_t<T>&& move(T&&)noexcept;template<class T>constexpr conditional_t<!is_nothrow_move_constructible_v<T>&& is_copy_constructible_v<T>,const T&, T&&>      move_if_noexcept(T& x)noexcept; // as_consttemplate<class T>constexpr add_const_t<T>& as_const(T& t)noexcept;template<class T>void as_const(const T&&)= delete; // declvaltemplate<class T>    add_rvalue_reference_t<T> declval()noexcept;// as unevaluated operand // integer comparison functionstemplate<class T,class U>constexprbool cmp_equal(T t, U u)noexcept;template<class T,class U>constexprbool cmp_not_equal(T t, U u)noexcept; template<class T,class U>constexprbool cmp_less(T t, U u)noexcept;template<class T,class U>constexprbool cmp_greater(T t, U u)noexcept;template<class T,class U>constexprbool cmp_less_equal(T t, U u)noexcept;template<class T,class U>constexprbool cmp_greater_equal(T t, U u)noexcept; template<class R,class T>constexprbool in_range(T t)noexcept; // to_underlyingtemplate<class T>constexpr underlying_type_t<T> to_underlying(T value)noexcept; // unreachable[[noreturn]]void unreachable(); // compile-time integer sequencestemplate<class T, T...>struct integer_sequence;template<size_t...I>using index_sequence= integer_sequence<size_t, I...>; template<class T, T N>using make_integer_sequence= integer_sequence<T,/* see description */>;template<size_t N>using make_index_sequence= make_integer_sequence<size_t, N>; template<class...T>using index_sequence_for= make_index_sequence<sizeof...(T)>; // class template pairtemplate<class T1,class T2>struct pair; // pair specialized algorithmstemplate<class T1,class T2>constexprbool operator==(const pair<T1, T2>&,const pair<T1, T2>&);template<class T1,class T2>constexpr common_comparison_category_t</*synth-three-way-result*/<T1>,/*synth-three-way-result*/<T2>>      operator<=>(const pair<T1, T2>&,const pair<T1, T2>&); template<class T1,class T2>constexprvoid swap(pair<T1, T2>& x, pair<T1, T2>& y)noexcept(noexcept(x.swap(y))); template<class T1,class T2>constexpr/* see description */ make_pair(T1&&, T2&&); // tuple-like access to pairtemplate<class T>struct tuple_size;template<size_t I,class T>struct tuple_element; template<class T1,class T2>struct tuple_size<pair<T1, T2>>;template<size_t I,class T1,class T2>struct tuple_element<I, pair<T1, T2>>; template<size_t I,class T1,class T2>constexpr tuple_element_t<I, pair<T1, T2>>& get(pair<T1, T2>&)noexcept;template<size_t I,class T1,class T2>constexpr tuple_element_t<I, pair<T1, T2>>&& get(pair<T1, T2>&&)noexcept;template<size_t I,class T1,class T2>constexprconst tuple_element_t<I, pair<T1, T2>>& get(const pair<T1, T2>&)noexcept;template<size_t I,class T1,class T2>constexprconst tuple_element_t<I, pair<T1, T2>>&& get(const pair<T1, T2>&&)noexcept;template<class T1,class T2>constexpr T1& get(pair<T1, T2>& p)noexcept;template<class T1,class T2>constexprconst T1& get(const pair<T1, T2>& p)noexcept;template<class T1,class T2>constexpr T1&& get(pair<T1, T2>&& p)noexcept;template<class T1,class T2>constexprconst T1&& get(const pair<T1, T2>&& p)noexcept;template<class T2,class T1>constexpr T2& get(pair<T1, T2>& p)noexcept;template<class T2,class T1>constexprconst T2& get(const pair<T1, T2>& p)noexcept;template<class T2,class T1>constexpr T2&& get(pair<T1, T2>&& p)noexcept;template<class T2,class T1>constexprconst T2&& get(const pair<T1, T2>&& p)noexcept; // pair piecewise constructionstruct piecewise_construct_t{explicit piecewise_construct_t()=default;};inlineconstexpr piecewise_construct_t piecewise_construct{};template<class...Types>class tuple;// defined in <tuple> // in-place constructionstruct in_place_t{explicit in_place_t()=default;};inlineconstexpr in_place_t in_place{}; template<class T>struct in_place_type_t{explicit in_place_type_t()=default;};template<class T>inlineconstexpr in_place_type_t<T> in_place_type{}; template<size_t I>struct in_place_index_t{explicit in_place_index_t()=default;};template<size_t I>inlineconstexpr in_place_index_t<I> in_place_index{}; // nontype argument tagtemplate<auto V>struct nontype_t{explicit nontype_t()=default;};template<auto V>inlineconstexpr nontype_t<V> nontype{};} // deprecatednamespace std::rel_ops{template<class T>bool operator!=(const T&,const T&);template<class T>bool operator>(const T&,const T&);template<class T>bool operator<=(const T&,const T&);template<class T>bool operator>=(const T&,const T&);}

      [edit]Class templatestd::integer_sequence

      namespace std{template<class T, T...I>struct integer_sequence{using value_type= T;staticconstexpr size_t size()noexcept{return sizeof...(I);}};}

      [edit]Class templatestd::pair

      namespace std{template<class T1,class T2>struct pair{using first_type= T1;using second_type= T2;     T1 first;    T2 second;     pair(const pair&)=default;    pair(pair&&)=default;constexprexplicit(/* see description */) pair();constexprexplicit(/* see description */) pair(const T1& x,const T2& y);template<class U1= T1,class U2= T2>constexprexplicit(/* see description */) pair(U1&& x, U2&& y);template<class U1,class U2>constexprexplicit(/* see description */) pair(const pair<U1, U2>& p);template<class U1,class U2>constexprexplicit(/* see description */) pair(pair<U1, U2>&& p);template<class...Args1,class...Args2>constexpr pair(piecewise_construct_t,                     tuple<Args1...> first_args, tuple<Args2...> second_args); constexpr pair& operator=(const pair& p);template<class U1,class U2>constexpr pair& operator=(const pair<U1, U2>& p);constexpr pair& operator=(pair&& p)noexcept(/* see description */);template<class U1,class U2>constexpr pair& operator=(pair<U1, U2>&& p); constexprvoid swap(pair& p)noexcept(/* see description */);}; template<class T1,class T2>    pair(T1, T2)-> pair<T1, T2>;}

      [edit]See also

      (C++11)
      std::tuple class template[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/header/utility&oldid=177916"

      [8]ページ先頭

      ©2009-2025 Movatter.jp