NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
memory_view< Element, Extent > 模板类 参考

内存视图模板 更多...

#include <memory_view.hpp>

Public 类型

using element_type = Element
 元素类型
using value_type = remove_cv_t<Element>
 值类型
using size_type = size_t
 大小类型
using difference_type = ptrdiff_t
 差值类型
using pointer = Element*
 指针类型
using const_pointer = const Element*
 常量指针类型
using reference = element_type&
 引用类型
using const_reference = const element_type&
 常量引用类型
using iterator = normal_iterator<pointer>
 迭代器类型
using reverse_iterator = _NEFORCE reverse_iterator<iterator>
 反向迭代器类型

Public 成员函数

constexpr memory_view () noexcept
 默认构造函数
template<typename Iterator, enable_if_t< is_cot_iter_v< Iterator >, int > = 0>
constexpr explicit (Extent !=dynamic_extent) memory_view(Iterator first
 从迭代器和大小构造
template<typename Iterator, enable_if_t< is_cot_iter_v< Iterator >, int > = 0>
constexpr explicit (Extent !=dynamic_extent) memory_view(Iterator first
 从迭代器范围构造
template<size_t AE>
constexpr memory_view (type_identity_t< element_type >(&arr)[AE]) noexcept
 从C风格数组构造
template<typename U, size_t AE>
constexpr memory_view (array< U, AE > &arr) noexcept
 从array容器构造
template<typename U, size_t AE>
constexpr memory_view (const array< U, AE > &arr) noexcept
 从常量array容器构造
constexpr memory_view (const memory_view &other) noexcept=default
 拷贝构造函数
template<typename U, size_t OE>
constexpr explicit (Extent !=dynamic_extent &&OE==dynamic_extent) memory_view(const memory_view< U
 从其他元素类型的视图转换构造
constexpr memory_viewoperator= (const memory_view &other) noexcept=default
 拷贝赋值运算符
NEFORCE_CONSTEXPR20 ~memory_view () noexcept=default
 析构函数
NEFORCE_NODISCARD constexpr size_type size () const noexcept
 获取元素数量
NEFORCE_NODISCARD constexpr size_type size_bytes () const noexcept
 获取字节数
NEFORCE_NODISCARD constexpr bool empty () const noexcept
 检查是否为空
NEFORCE_NODISCARD constexpr reference front () const noexcept
 访问第一个元素
NEFORCE_NODISCARD constexpr reference back () const noexcept
 访问最后一个元素
NEFORCE_NODISCARD constexpr reference operator[] (size_type index) const noexcept
 下标访问操作符
NEFORCE_NODISCARD constexpr pointer data () const noexcept
 获取数据指针
NEFORCE_NODISCARD constexpr iterator begin () const noexcept
 获取起始迭代器
NEFORCE_NODISCARD constexpr iterator end () const noexcept
 获取结束迭代器
NEFORCE_NODISCARD constexpr reverse_iterator rbegin () const noexcept
 获取反向起始迭代器
NEFORCE_NODISCARD constexpr reverse_iterator rend () const noexcept
 获取反向结束迭代器
template<size_t Count>
constexpr memory_view< element_type, Count > first () const noexcept
 获取前Count个元素的视图(编译时大小)
constexpr memory_view< element_typefirst (size_type count) const noexcept
 获取前count个元素的视图(运行时大小)
template<size_t Count>
constexpr memory_view< element_type, Count > last () const noexcept
 获取后Count个元素的视图(编译时大小)
constexpr memory_view< element_typelast (size_type count) const noexcept
 获取后count个元素的视图(运行时大小)
template<size_t Offset, size_t Count = dynamic_extent>
constexpr auto view () const noexcept -> memory_view< element_type, view_extent< Offset, Count >()>
 获取子视图(编译时偏移和大小)
constexpr memory_view< element_typeview (size_type offset, size_type count=dynamic_extent) const noexcept
 获取子视图(运行时偏移和大小)

详细描述

template<typename Element, size_t Extent = dynamic_extent>
class memory_view< Element, Extent >

内存视图模板

模板参数
Element元素类型
Extent静态范围大小,默认为dynamic_extent

memory_view是一个非拥有的连续内存视图,针对内存操作优化。 可以指向任意连续内存块。支持编译时和运行时大小确定。 提供类似容器的接口,但不进行内存管理。

在文件 memory_view.hpp90 行定义.

构造及析构函数说明

◆ memory_view() [1/5]

template<typename Element, size_t Extent = dynamic_extent>
memory_view< Element, Extent >::memory_view ( )
inlineconstexprnoexcept

默认构造函数

构造空视图。仅当Extent为0或dynamic_extent时可用。

在文件 memory_view.hpp168 行定义.

◆ memory_view() [2/5]

template<typename Element, size_t Extent = dynamic_extent>
template<size_t AE>
memory_view< Element, Extent >::memory_view ( type_identity_t< element_type >(&) arr[AE])
inlineconstexprnoexcept

从C风格数组构造

模板参数
AE数组大小
参数
arrC风格数组引用

在文件 memory_view.hpp227 行定义.

◆ memory_view() [3/5]

template<typename Element, size_t Extent = dynamic_extent>
template<typename U, size_t AE>
memory_view< Element, Extent >::memory_view ( array< U, AE > & arr)
inlineconstexprnoexcept

从array容器构造

模板参数
U元素类型
AE数组大小
参数
arrarray容器引用

在文件 memory_view.hpp241 行定义.

◆ memory_view() [4/5]

template<typename Element, size_t Extent = dynamic_extent>
template<typename U, size_t AE>
memory_view< Element, Extent >::memory_view ( const array< U, AE > & arr)
inlineconstexprnoexcept

从常量array容器构造

模板参数
U元素类型
AE数组大小
参数
arr常量array容器引用

在文件 memory_view.hpp255 行定义.

◆ memory_view() [5/5]

template<typename Element, size_t Extent = dynamic_extent>
memory_view< Element, Extent >::memory_view ( const memory_view< Element, Extent > & other)
constexprdefaultnoexcept

拷贝构造函数

参数
other源视图

成员函数说明

◆ back()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr reference memory_view< Element, Extent >::back ( ) const
inlineconstexprnoexcept

访问最后一个元素

返回
最后一个元素的引用

在文件 memory_view.hpp330 行定义.

◆ begin()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr iterator memory_view< Element, Extent >::begin ( ) const
inlineconstexprnoexcept

获取起始迭代器

返回
指向第一个元素的迭代器

在文件 memory_view.hpp355 行定义.

被这些函数引用 memory_view< byte_t >::rend().

◆ data()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr pointer memory_view< Element, Extent >::data ( ) const
inlineconstexprnoexcept

获取数据指针

返回
指向内存起始位置的指针

在文件 memory_view.hpp349 行定义.

被这些函数引用 memory_view< byte_t >::first(), memory_view< byte_t >::first(), memory_view< byte_t >::last(), memory_view< byte_t >::last() , 以及 memory_view< byte_t >::view().

◆ empty()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr bool memory_view< Element, Extent >::empty ( ) const
inlineconstexprnoexcept

检查是否为空

返回
是否为空

在文件 memory_view.hpp315 行定义.

被这些函数引用 memory_view< byte_t >::back() , 以及 memory_view< byte_t >::front().

◆ end()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr iterator memory_view< Element, Extent >::end ( ) const
inlineconstexprnoexcept

获取结束迭代器

返回
指向最后一个元素之后位置的迭代器

在文件 memory_view.hpp361 行定义.

被这些函数引用 memory_view< byte_t >::rbegin().

◆ explicit() [1/3]

template<typename Element, size_t Extent = dynamic_extent>
template<typename U, size_t OE>
memory_view< Element, Extent >::explicit ( Extent ! = dynamic_extent && OE == dynamic_extent) const
constexpr

从其他元素类型的视图转换构造

模板参数
U源元素类型
OE源范围大小
参数
other源视图

要求类型可转换且范围兼容。

◆ explicit() [2/3]

template<typename Element, size_t Extent = dynamic_extent>
template<typename Iterator, enable_if_t< is_cot_iter_v< Iterator >, int > = 0>
memory_view< Element, Extent >::explicit ( Extent ! = dynamic_extent)
constexpr

从迭代器范围构造

模板参数
Iterator起始迭代器类型
参数
first起始迭代器
last结束迭代器

当Extent为静态大小时,范围大小必须等于Extent。

◆ explicit() [3/3]

template<typename Element, size_t Extent = dynamic_extent>
template<typename Iterator, enable_if_t< is_cot_iter_v< Iterator >, int > = 0>
memory_view< Element, Extent >::explicit ( Extent ! = dynamic_extent)
constexpr

从迭代器和大小构造

模板参数
Iterator迭代器类型
参数
first起始迭代器
count元素数量

当Extent为静态大小时,count必须等于Extent。

◆ first() [1/2]

template<typename Element, size_t Extent = dynamic_extent>
template<size_t Count>
memory_view< element_type, Count > memory_view< Element, Extent >::first ( ) const
inlineconstexprnoexcept

获取前Count个元素的视图(编译时大小)

模板参数
Count元素数量
返回
新视图

在文件 memory_view.hpp381 行定义.

◆ first() [2/2]

template<typename Element, size_t Extent = dynamic_extent>
memory_view< element_type > memory_view< Element, Extent >::first ( size_type count) const
inlineconstexprnoexcept

获取前count个元素的视图(运行时大小)

参数
count元素数量
返回
新视图

在文件 memory_view.hpp392 行定义.

◆ front()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr reference memory_view< Element, Extent >::front ( ) const
inlineconstexprnoexcept

访问第一个元素

返回
第一个元素的引用

在文件 memory_view.hpp321 行定义.

◆ last() [1/2]

template<typename Element, size_t Extent = dynamic_extent>
template<size_t Count>
memory_view< element_type, Count > memory_view< Element, Extent >::last ( ) const
inlineconstexprnoexcept

获取后Count个元素的视图(编译时大小)

模板参数
Count元素数量
返回
新视图

在文件 memory_view.hpp403 行定义.

◆ last() [2/2]

template<typename Element, size_t Extent = dynamic_extent>
memory_view< element_type > memory_view< Element, Extent >::last ( size_type count) const
inlineconstexprnoexcept

获取后count个元素的视图(运行时大小)

参数
count元素数量
返回
新视图

在文件 memory_view.hpp414 行定义.

◆ operator=()

template<typename Element, size_t Extent = dynamic_extent>
memory_view & memory_view< Element, Extent >::operator= ( const memory_view< Element, Extent > & other)
constexprdefaultnoexcept

拷贝赋值运算符

参数
other源视图
返回
自身引用

◆ operator[]()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr reference memory_view< Element, Extent >::operator[] ( size_type index) const
inlineconstexprnoexcept

下标访问操作符

参数
index索引
返回
指定位置的元素引用

在文件 memory_view.hpp340 行定义.

◆ rbegin()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr reverse_iterator memory_view< Element, Extent >::rbegin ( ) const
inlineconstexprnoexcept

获取反向起始迭代器

返回
指向最后一个元素的反向迭代器

在文件 memory_view.hpp367 行定义.

◆ rend()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr reverse_iterator memory_view< Element, Extent >::rend ( ) const
inlineconstexprnoexcept

获取反向结束迭代器

返回
指向第一个元素之前位置的反向迭代器

在文件 memory_view.hpp373 行定义.

◆ size()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr size_type memory_view< Element, Extent >::size ( ) const
inlineconstexprnoexcept

◆ size_bytes()

template<typename Element, size_t Extent = dynamic_extent>
NEFORCE_NODISCARD constexpr size_type memory_view< Element, Extent >::size_bytes ( ) const
inlineconstexprnoexcept

获取字节数

返回
总字节数

在文件 memory_view.hpp309 行定义.

◆ view() [1/2]

template<typename Element, size_t Extent = dynamic_extent>
template<size_t Offset, size_t Count = dynamic_extent>
auto memory_view< Element, Extent >::view ( ) const -> memory_view< element_type, view_extent< Offset, Count >()>
inlineconstexprnoexcept

获取子视图(编译时偏移和大小)

模板参数
Offset偏移量
Count元素数量,默认为dynamic_extent
返回
子视图

在文件 memory_view.hpp426 行定义.

◆ view() [2/2]

template<typename Element, size_t Extent = dynamic_extent>
memory_view< element_type > memory_view< Element, Extent >::view ( size_type offset,
size_type count = dynamic_extent ) const
inlineconstexprnoexcept

获取子视图(运行时偏移和大小)

参数
offset偏移量
count元素数量,默认为dynamic_extent(到末尾)
返回
子视图

在文件 memory_view.hpp437 行定义.


该类的文档由以下文件生成: