MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
type_erase.hpp 文件参考

MSTL类型擦除辅助函数 更多...

#include "MSTL/core/iterator/reverse_iterator.hpp"
#include <initializer_list>
type_erase.hpp 的引用(Include)关系图:

浏览该文件的源代码.

函数

template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) begin (Container &cont) noexcept(noexcept(cont.begin()))
 获取容器的起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) end (Container &cont) noexcept(noexcept(cont.end()))
 获取容器的结束迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) begin (const Container &cont) noexcept(noexcept(cont.begin()))
 获取const容器的起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) end (const Container &cont) noexcept(noexcept(cont.end()))
 获取const容器的结束迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr T * begin (T(&arr)[Size]) noexcept
 获取数组的起始指针
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr T * end (T(&arr)[Size]) noexcept
 获取数组的结束指针
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) cbegin (const Container &cont) noexcept(noexcept(cont.cbegin()))
 获取const容器的const起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) cend (const Container &cont) noexcept(noexcept(cont.cend()))
 获取const容器的const结束迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr const T * cbegin (T(&arr)[Size]) noexcept
 获取const数组的const起始指针
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr const T * cend (T(&arr)[Size]) noexcept
 获取const数组的const结束指针
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) rbegin (Container &cont) noexcept(noexcept(cont.rbegin()))
 获取容器的反向起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) rend (Container &cont) noexcept(noexcept(cont.rend()))
 获取const容器的反向起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) rbegin (const Container &cont) noexcept(noexcept(cont.rbegin()))
 获取容器的反向结束迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) rend (const Container &cont) noexcept(noexcept(cont.rend()))
 获取const容器的反向结束迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr reverse_iterator< T * > rbegin (T(&arr)[Size]) noexcept
 获取数组的反向起始迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr reverse_iterator< T * > rend (T(&arr)[Size]) noexcept
 获取数组的反向结束迭代器
template<typename T>
MSTL_NODISCARD constexpr reverse_iterator< const T * > rbegin (std::initializer_list< T > lls) noexcept
 获取初始化列表的反向起始迭代器
template<typename T>
MSTL_NODISCARD constexpr reverse_iterator< const T * > rend (std::initializer_list< T > lls) noexcept
 获取初始化列表的反向结束迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) crbegin (const Container &cont) noexcept(noexcept(cont.crbegin()))
 获取const容器的const反向起始迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) crend (const Container &cont) noexcept(noexcept(cont.crend()))
 获取const容器的const反向结束迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr reverse_iterator< const T * > crbegin (T(&arr)[Size]) noexcept
 获取const数组的const反向起始迭代器
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr reverse_iterator< const T * > crend (T(&arr)[Size]) noexcept
 获取const数组的const反向结束迭代器
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) size (const Container &cont) noexcept(noexcept(cont.size()))
 获取容器的大小
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr size_t size (T(&arr)[Size]) noexcept
 获取数组的大小
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr size_t size (std::initializer_list< T > lls) noexcept
 获取初始化列表的大小
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) ssize (const Container &cont) noexcept(noexcept(cont.size()))
 获取容器的有符号大小
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr ptrdiff_t ssize (T(&arr)[Size]) noexcept
 获取数组的有符号大小
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr ptrdiff_t ssize (std::initializer_list< T > lls) noexcept
 获取初始化列表的有符号大小
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr bool empty (const Container &cont) noexcept(noexcept(cont.empty()))
 检查容器是否为空
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr bool empty (const T *ptr) noexcept
 检查指针是否非空
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr bool empty (std::initializer_list< T > lls) noexcept
 检查初始化列表是否为空
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) data (Container &cont) noexcept(noexcept(cont.data()))
 获取容器的底层数据指针
template<typename Container>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr decltype(auto) data (const Container &cont) noexcept(noexcept(cont.data()))
 获取const容器的const底层数据指针
template<typename T, size_t Size>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr T * data (T(&arr)[Size]) noexcept
 获取数组的底层数据指针
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr T * data (T *ptr) noexcept
 获取指针本身
template<typename T>
MSTL_NODISCARD MSTL_ALWAYS_INLINE constexpr const T * data (std::initializer_list< T > lls) noexcept
 获取初始化列表的底层数据指针

详细描述

MSTL类型擦除辅助函数

此文件提供了类型擦除辅助函数实现, 用于统一访问不同容器的迭代器、大小、数据等接口。

在文件 type_erase.hpp 中定义.