<utility>

定义有助于构造和管理对象对的 C++ 标准库类型、函数和运算符,这些项在每次需要将两个对象视为单个对象时都非常有用。

要求

标头:<utility>

命名空间: std

注解

对广泛用于 C++ 标准库中。 对于各种函数,需要将这些对用作参数和返回值,而对于 map 类multimap 类等容器,则需将其用作元素类型。 <map> 将自动包括 <utility> 标头以帮助管理其键/值对类型元素。

注意

<utility> 标头使用语句 #include <initializer_list>。 它也指 <tuple> 中定义的 class tuple

成员

类型 描述
chars_format 基元数值转换的浮点格式。
tuple_element 一个包装 pair 元素的类型的类。
tuple_size 一个包装 pair 元素计数的类。

对象

模板 说明
index_sequence 为常见情况定义的别名模板,其中 Tstd::size_t
index_sequence_for 用于将任何类型的参数包转换为相同长度的索引序列的帮助程序别名模板
make_index_sequence 用于简化 std::index_sequence 类型创建的帮助程序别名模板。
make_integer_sequence 用于简化 std::integer_sequence 类型创建的帮助程序别名模板。

函数

函数 说明
as_const 返回类型。
declval 速记表达式计算。
exchange 向对象赋予新值并返回其旧值。
forward 保留参数的引用类型(lvaluervalue),使其不被完美转发掩盖。
from_chars
get 一个从 pair 对象获取元素的函数。
make_pair 一个模板帮助程序函数,用于构造类型 pair 的对象,其中组件类型基于作为参数传递的数据类型。
move 将传入的参数作为 rvalue 引用返回。
move_if_noexcept
swap 交换两个 pair 对象的元素。
to_chars 将值转换为字符串。

运算符

运算符 说明
operator!= 测试运算符左侧和右侧的 pair 对象是否不相等。
operator== 测试运算符左侧和右侧的 pair 对象是否相等。
operator< 测试运算符左侧的 pair 对象是否小于右侧的 pair 对象。
operator<= 测试运算符左侧的 pair 对象是否小于或等于右侧的 pair 对象。
operator> 测试运算符左侧的 pair 对象是否大于右侧的 pair 对象。
operator>= 测试运算符左侧的 pair 对象是否大于或等于右侧的 pair 对象。

结构

结构 说明
from_chars_result 用于 from_chars 的结构。
identity 一个将类型定义作为模板参数提供的结构。
in_place_t 还包括结构 in_place_type_tin_place_index_t
integer_sequence 表示整数序列。
pair 一种类型,它提供了将两个对象视为单个对象的功能。
piecewise_construct_t 用于保持独立的构造函数和函数重载的类型。
to_chars_result 用于 to_chars 的结构。

另请参阅

头文件引用
C++ 标准库中的线程安全