MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
指针萃取

统一处理各种指针类型的特性 更多...

struct  pointer_traits< T >
 指针特性主模板 更多...
struct  pointer_traits< T * >
 原始指针的特化版本 更多...

类型定义

template<typename Ptr, typename T>
using pointer_rebind = typename pointer_traits<Ptr>::template rebind<T>
 指针重新绑定的便捷别名

函数

template<typename Ptr>
constexpr decltype(auto) ptr_const_cast (Ptr ptr) noexcept
 移除指针的const限定符
template<typename T>
constexpr decltype(auto) ptr_const_cast (T *ptr) noexcept
 移除原始指针的const限定符
template<typename T>
constexpr T * to_address (T *ptr) noexcept
 安全地获取原始指针指向的地址
template<typename Ptr>
constexpr decltype(auto) to_address (const Ptr &ptr) noexcept
 安全地获取任意指针类型指向的地址

详细描述

统一处理各种指针类型的特性

类型定义说明

◆ pointer_rebind

template<typename Ptr, typename T>
using pointer_rebind = typename pointer_traits<Ptr>::template rebind<T>

指针重新绑定的便捷别名

模板参数
Ptr原始指针类型
T新元素类型

将指针Ptr重新绑定到新元素类型T。

在文件 iterator_traits.hpp266 行定义.

函数说明

◆ ptr_const_cast() [1/2]

template<typename Ptr>
decltype(auto) ptr_const_cast ( Ptr ptr)
constexprnoexcept

移除指针的const限定符

模板参数
Ptr原始指针类型
参数
ptr要转换的指针
返回
移除了const限定符的指针

在文件 iterator_traits.hpp275 行定义.

◆ ptr_const_cast() [2/2]

template<typename T>
decltype(auto) ptr_const_cast ( T * ptr)
constexprnoexcept

移除原始指针的const限定符

模板参数
T元素类型
参数
ptr要转换的原始指针
返回
移除了const限定符的原始指针

在文件 iterator_traits.hpp290 行定义.

◆ to_address() [1/2]

template<typename Ptr>
decltype(auto) to_address ( const Ptr & ptr)
constexprnoexcept

安全地获取任意指针类型指向的地址

模板参数
Ptr指针类型
参数
ptr指针对象
返回
指针指向的地址

在文件 iterator_traits.hpp341 行定义.

引用了 _INNER.

◆ to_address() [2/2]

template<typename T>
T * to_address ( T * ptr)
constexprnoexcept

安全地获取原始指针指向的地址

模板参数
T元素类型
参数
ptr原始指针
返回
指针指向的地址

在文件 iterator_traits.hpp330 行定义.

引用了 _INNER.

被这些函数引用 allocated_ptr< Alloc >::get().