|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
压缩对主模板,使用EBCO优化 更多...
#include <compressed_pair.hpp>
Public 类型 | |
| using | base_type = IfEmpty |
| 基类类型 | |
Public 成员函数 | |
| constexpr | compressed_pair () noexcept(is_nothrow_default_constructible_v< T >) |
| 默认构造函数 | |
| constexpr | compressed_pair (const compressed_pair &p) noexcept(is_nothrow_copy_constructible_v< T >) |
| 拷贝构造函数 | |
| constexpr compressed_pair & | operator= (const compressed_pair &pir) noexcept(is_nothrow_copy_assignable_v< T >) |
| 拷贝赋值运算符 | |
| constexpr | compressed_pair (compressed_pair &&p) noexcept(is_nothrow_move_constructible_v< T >) |
| 移动构造函数 | |
| constexpr compressed_pair & | operator= (compressed_pair &&pir) noexcept(is_nothrow_move_assignable_v< T >) |
| 移动赋值运算符 | |
| template<typename... Args, enable_if_t< is_constructible_v< T, Args... >, int > = 0> | |
| constexpr | compressed_pair (default_construct_tag, Args &&... args) noexcept(conjunction_v< is_nothrow_default_constructible< IfEmpty >, is_nothrow_constructible< T, Args... > >) |
| 默认构造标签构造函数 | |
| template<typename ToEmpty, typename... Args, enable_if_t< conjunction_v< is_constructible< IfEmpty, ToEmpty >, is_constructible< T, Args... > >, int > = 0> | |
| constexpr | compressed_pair (exact_arg_construct_tag, ToEmpty &&first, Args &&... args) noexcept(conjunction_v< is_nothrow_constructible< IfEmpty, ToEmpty >, is_nothrow_constructible< T, Args... > >) |
| 精确参数构造标签构造函数 | |
| constexpr compressed_pair & | get_base () noexcept |
| 获取基类引用 | |
| constexpr const compressed_pair & | get_base () const noexcept |
| 获取基类常量引用 | |
| constexpr void | swap (compressed_pair &rhs) noexcept(is_nothrow_swappable_v< T >) |
| 交换两个压缩对 | |
| constexpr size_t | to_hash () const noexcept(noexcept(hash< T >{}(value))) |
| 计算哈希值 | |
| constexpr bool | operator== (const compressed_pair &y) const noexcept(noexcept(this->value==y.value)) |
| 相等比较运算符 | |
| constexpr bool | operator< (const compressed_pair &y) const noexcept(noexcept(this->value< y.value)) |
| 小于比较运算符 | |
| Public 成员函数 继承自 icomparable< T > | |
| NEFORCE_NODISCARD constexpr bool | operator== (const T &rhs) const noexcept(noexcept(derived()==rhs)) |
| 相等比较运算符 | |
| NEFORCE_NODISCARD constexpr bool | operator!= (const T &rhs) const noexcept(noexcept(!(*this==rhs))) |
| 不等比较运算符 | |
| NEFORCE_NODISCARD constexpr bool | operator< (const T &rhs) const noexcept(noexcept(derived()< rhs)) |
| 小于比较运算符 | |
| NEFORCE_NODISCARD constexpr bool | operator> (const T &rhs) const noexcept(noexcept(rhs< derived())) |
| 大于比较运算符 | |
| NEFORCE_NODISCARD constexpr bool | operator<= (const T &rhs) const noexcept(noexcept(!(derived() > rhs))) |
| 小于等于比较运算符 | |
| NEFORCE_NODISCARD constexpr bool | operator>= (const T &rhs) const noexcept(noexcept(!(derived()< rhs))) |
| 大于等于比较运算符 | |
| Public 成员函数 继承自 ihashable< T > | |
| NEFORCE_NODISCARD constexpr size_t | to_hash () const noexcept(noexcept(derived().to_hash())) |
| 获取对象的哈希值 | |
Public 属性 | |
| T | value |
| 存储的值 | |
压缩对主模板,使用EBCO优化
| IfEmpty | 第一个类型,可能为空 |
| T | 第二个类型 |
| Compressed | 是否启用压缩 |
使用空基类优化技术,当第一个类型为空时,通过继承来优化存储空间。
在文件 compressed_pair.hpp 第 31 行定义.
|
inlineconstexprnoexcept |
拷贝构造函数
| p | 要拷贝的压缩对 |
在文件 compressed_pair.hpp 第 46 行定义.
引用了 compressed_pair(), is_nothrow_copy_constructible_v , 以及 value.
|
inlineconstexprnoexcept |
移动构造函数
| p | 要移动的压缩对 |
在文件 compressed_pair.hpp 第 63 行定义.
引用了 compressed_pair(), is_nothrow_move_constructible_v, move() , 以及 value.
|
inlineexplicitconstexprnoexcept |
默认构造标签构造函数
| Args | 参数类型 |
| args | 构造参数 |
使用默认构造的基类和给定的参数构造值。
在文件 compressed_pair.hpp 第 84 行定义.
引用了 conjunction_v, forward() , 以及 value.
|
inlineexplicitconstexprnoexcept |
精确参数构造标签构造函数
| ToEmpty | 基类参数类型 |
| Args | 值参数类型 |
| first | 基类构造参数 |
| args | 值构造参数 |
使用给定的参数构造基类和值。
在文件 compressed_pair.hpp 第 100 行定义.
引用了 conjunction_v, forward() , 以及 value.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
获取基类引用
在文件 compressed_pair.hpp 第 109 行定义.
引用了 compressed_pair().
被这些函数引用 basic_string< char >::basic_string(), basic_string< char >::operator=(), basic_string< char >::operator=() , 以及 basic_string< char >::reserve().
|
inlineconstexprnoexcept |
小于比较运算符
| y | 要比较的压缩对 |
在文件 compressed_pair.hpp 第 143 行定义.
引用了 compressed_pair() , 以及 value.
|
inlineconstexprnoexcept |
移动赋值运算符
| pir | 要移动的压缩对 |
在文件 compressed_pair.hpp 第 71 行定义.
引用了 compressed_pair(), is_nothrow_move_assignable_v, move() , 以及 value.
|
inlineconstexprnoexcept |
拷贝赋值运算符
| pir | 要拷贝的压缩对 |
在文件 compressed_pair.hpp 第 54 行定义.
引用了 compressed_pair(), is_nothrow_copy_assignable_v, move() , 以及 value.
|
inlineconstexprnoexcept |
相等比较运算符
| y | 要比较的压缩对 |
在文件 compressed_pair.hpp 第 134 行定义.
引用了 compressed_pair() , 以及 value.
|
inlineconstexprnoexcept |
交换两个压缩对
| rhs | 要交换的压缩对 |
在文件 compressed_pair.hpp 第 121 行定义.
引用了 compressed_pair(), is_nothrow_swappable_v, swap() , 以及 value.
被这些函数引用 swap().
|
inlineconstexprnoexcept |