<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 | 为常见情况定义的别名模板,其中 T 为 std::size_t |
index_sequence_for | 用于将任何类型的参数包转换为相同长度的索引序列的帮助程序别名模板 |
make_index_sequence | 用于简化 std::index_sequence 类型创建的帮助程序别名模板。 |
make_integer_sequence | 用于简化 std::integer_sequence 类型创建的帮助程序别名模板。 |
函数
函数 | 说明 |
---|---|
as_const | 返回类型。 |
declval | 速记表达式计算。 |
exchange | 向对象赋予新值并返回其旧值。 |
forward | 保留参数的引用类型(lvalue 或 rvalue ),使其不被完美转发掩盖。 |
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_t 和 in_place_index_t 。 |
integer_sequence | 表示整数序列。 |
pair | 一种类型,它提供了将两个对象视为单个对象的功能。 |
piecewise_construct_t | 用于保持独立的构造函数和函数重载的类型。 |
to_chars_result | 用于 to_chars 的结构。 |