MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
compressed_pair< IfEmpty, T, false > 模板结构体 参考final

压缩对特化,未启用EBCO优化 更多...

#include <compressed_pair.hpp>

类 compressed_pair< IfEmpty, T, false > 继承关系图:
[图例]

Public 类型

using base_type
 基类类型

Public 成员函数

constexpr compressed_pair () noexcept(conjunction_v< is_nothrow_default_constructible< IfEmpty >, is_nothrow_default_constructible< T > >)=default
 默认构造函数
constexpr compressed_pair (const compressed_pair &pir) noexcept(conjunction_v< is_nothrow_copy_constructible< IfEmpty >, is_nothrow_copy_constructible< T > >)
 拷贝构造函数
constexpr compressed_pairoperator= (const compressed_pair &pir) noexcept(conjunction_v< is_nothrow_copy_assignable< IfEmpty >, is_nothrow_copy_assignable< T > >)
 拷贝赋值运算符
constexpr compressed_pair (compressed_pair &&pir) noexcept(conjunction_v< is_nothrow_move_constructible< IfEmpty >, is_nothrow_move_constructible< T > >)
 移动构造函数
constexpr compressed_pairoperator= (compressed_pair &&pir) noexcept(conjunction_v< is_nothrow_move_assignable< IfEmpty >, is_nothrow_move_assignable< T > >)
 移动赋值运算符
template<typename... Args>
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>
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 IfEmpty & get_base () noexcept
 获取基类引用
constexpr const IfEmpty & get_base () const noexcept
 获取基类常量引用
constexpr void swap (compressed_pair &rhs) noexcept(conjunction_v< is_nothrow_swappable< IfEmpty >, is_nothrow_swappable< T > >)
 交换两个压缩对
constexpr size_t to_hash () const noexcept(noexcept(hash< IfEmpty >{}(no_compressed) ^ hash< T >{}(value)))
 计算哈希值
constexpr bool operator== (const compressed_pair &y) const noexcept(noexcept(this->no_compressed==y.no_compressed &&this->value==y.value))
 相等比较运算符
constexpr bool operator< (const compressed_pair &y) const noexcept(noexcept(this->no_compressed< y.no_compressed||(!(y.no_compressed< this->no_compressed) &&this->value< y.value)))
 小于比较运算符
Public 成员函数 继承自 icomparable< T >
MSTL_NODISCARD constexpr bool operator== (const T &rhs) const noexcept(noexcept(derived()==rhs))
 相等比较运算符
MSTL_NODISCARD constexpr bool operator!= (const T &rhs) const noexcept(noexcept(!(*this==rhs)))
 不等比较运算符
MSTL_NODISCARD constexpr bool operator< (const T &rhs) const noexcept(noexcept(derived()< rhs))
 小于比较运算符
MSTL_NODISCARD constexpr bool operator> (const T &rhs) const noexcept(noexcept(rhs< derived()))
 大于比较运算符
MSTL_NODISCARD constexpr bool operator<= (const T &rhs) const noexcept(noexcept(!(derived() > rhs)))
 小于等于比较运算符
MSTL_NODISCARD constexpr bool operator>= (const T &rhs) const noexcept(noexcept(!(derived()< rhs)))
 大于等于比较运算符
Public 成员函数 继承自 ihashable< T >
MSTL_NODISCARD constexpr size_t to_hash () const noexcept(noexcept(derived().to_hash()))
 获取对象的哈希值

Public 属性

IfEmpty no_compressed
 未压缩的基类成员
value
 存储的值

详细描述

template<typename IfEmpty, typename T>
struct compressed_pair< IfEmpty, T, false >

压缩对特化,未启用EBCO优化

模板参数
IfEmpty第一个类型
T第二个类型

当第一个类型不为空或是final类时,不使用EBCO优化,正常存储两个成员。

在文件 compressed_pair.hpp168 行定义.

构造及析构函数说明

◆ compressed_pair() [1/4]

template<typename IfEmpty, typename T>
compressed_pair< IfEmpty, T, false >::compressed_pair ( const compressed_pair< IfEmpty, T, false > & pir)
inlineconstexprnoexcept

拷贝构造函数

参数
pir要拷贝的压缩对

在文件 compressed_pair.hpp185 行定义.

引用了 compressed_pair(), no_compressed , 以及 value.

◆ compressed_pair() [2/4]

template<typename IfEmpty, typename T>
compressed_pair< IfEmpty, T, false >::compressed_pair ( compressed_pair< IfEmpty, T, false > && pir)
inlineconstexprnoexcept

移动构造函数

参数
pir要移动的压缩对

在文件 compressed_pair.hpp209 行定义.

引用了 _MSTL, compressed_pair(), move(), no_compressed , 以及 value.

◆ compressed_pair() [3/4]

template<typename IfEmpty, typename T>
template<typename... Args>
compressed_pair< IfEmpty, T, false >::compressed_pair ( default_construct_tag ,
Args &&... args )
inlineexplicitconstexprnoexcept

默认构造标签构造函数

模板参数
Args参数类型
参数
args构造参数

在文件 compressed_pair.hpp235 行定义.

引用了 _MSTL, forward(), no_compressed , 以及 value.

◆ compressed_pair() [4/4]

template<typename IfEmpty, typename T>
template<typename ToEmpty, typename... Args>
compressed_pair< IfEmpty, T, false >::compressed_pair ( exact_arg_construct_tag ,
ToEmpty && first,
Args &&... args )
inlineconstexprnoexcept

精确参数构造标签构造函数

模板参数
ToEmpty基类参数类型
Args值参数类型
参数
first基类构造参数
args值构造参数

在文件 compressed_pair.hpp249 行定义.

引用了 _MSTL, forward(), no_compressed , 以及 value.

成员函数说明

◆ get_base() [1/2]

template<typename IfEmpty, typename T>
const IfEmpty & compressed_pair< IfEmpty, T, false >::get_base ( ) const
inlineconstexprnoexcept

获取基类常量引用

返回
基类的常量引用

在文件 compressed_pair.hpp268 行定义.

引用了 no_compressed.

◆ get_base() [2/2]

template<typename IfEmpty, typename T>
IfEmpty & compressed_pair< IfEmpty, T, false >::get_base ( )
inlineconstexprnoexcept

获取基类引用

返回
基类的引用

在文件 compressed_pair.hpp260 行定义.

引用了 no_compressed.

◆ operator<()

template<typename IfEmpty, typename T>
bool compressed_pair< IfEmpty, T, false >::operator< ( const compressed_pair< IfEmpty, T, false > & y) const
inlineconstexprnoexcept

小于比较运算符

参数
y要比较的压缩对
返回
如果当前压缩对小于另一个压缩对返回true,否则返回false

在文件 compressed_pair.hpp306 行定义.

引用了 compressed_pair(), no_compressed , 以及 value.

◆ operator=() [1/2]

template<typename IfEmpty, typename T>
compressed_pair & compressed_pair< IfEmpty, T, false >::operator= ( compressed_pair< IfEmpty, T, false > && pir)
inlineconstexprnoexcept

移动赋值运算符

参数
pir要移动的压缩对
返回
当前压缩对的引用

在文件 compressed_pair.hpp220 行定义.

引用了 _MSTL, compressed_pair(), move(), no_compressed , 以及 value.

◆ operator=() [2/2]

template<typename IfEmpty, typename T>
compressed_pair & compressed_pair< IfEmpty, T, false >::operator= ( const compressed_pair< IfEmpty, T, false > & pir)
inlineconstexprnoexcept

拷贝赋值运算符

参数
pir要拷贝的压缩对
返回
当前压缩对的引用

在文件 compressed_pair.hpp196 行定义.

引用了 compressed_pair(), no_compressed , 以及 value.

◆ operator==()

template<typename IfEmpty, typename T>
bool compressed_pair< IfEmpty, T, false >::operator== ( const compressed_pair< IfEmpty, T, false > & y) const
inlineconstexprnoexcept

相等比较运算符

参数
y要比较的压缩对
返回
如果基类和值都相等返回true,否则返回false

在文件 compressed_pair.hpp296 行定义.

引用了 compressed_pair(), no_compressed , 以及 value.

◆ swap()

template<typename IfEmpty, typename T>
void compressed_pair< IfEmpty, T, false >::swap ( compressed_pair< IfEmpty, T, false > & rhs)
inlineconstexprnoexcept

交换两个压缩对

参数
rhs要交换的压缩对

在文件 compressed_pair.hpp276 行定义.

引用了 _MSTL, compressed_pair(), no_compressed, swap() , 以及 value.

◆ to_hash()

template<typename IfEmpty, typename T>
size_t compressed_pair< IfEmpty, T, false >::to_hash ( ) const
inlineconstexprnoexcept

计算哈希值

返回
基类和值的组合哈希值

在文件 compressed_pair.hpp286 行定义.


该结构体的文档由以下文件生成: