NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
类型擦除

容器和数组的通用访问函数 更多...

函数

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

详细描述

容器和数组的通用访问函数

函数说明

◆ begin() [1/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) begin ( const Container & cont)
constexprnoexcept

获取const容器的起始迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的起始迭代器

在文件 type_erase.hpp53 行定义.

◆ begin() [2/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) begin ( Container & cont)
constexprnoexcept

获取容器的起始迭代器

模板参数
Container容器类型
参数
cont容器引用
返回
容器的起始迭代器

在文件 type_erase.hpp30 行定义.

被这些函数引用 neforce::lz4_compressor::compress(), zlib_compressor::compress(), neforce::lz4_compressor::decompress() , 以及 zlib_compressor::decompress().

◆ begin() [3/3]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr T * begin ( T(&) arr[Size])
constexprnoexcept

获取数组的起始指针

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
指向数组首元素的指针

在文件 type_erase.hpp77 行定义.

◆ cbegin() [1/2]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) cbegin ( const Container & cont)
constexprnoexcept

获取const容器的const起始迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的const起始迭代器

在文件 type_erase.hpp102 行定义.

被这些函数引用 deque< T, Alloc, BufSize >::operator<() , 以及 deque< T, Alloc, BufSize >::operator==().

◆ cbegin() [2/2]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr const T * cbegin ( T(&) arr[Size])
constexprnoexcept

获取const数组的const起始指针

模板参数
T数组元素类型
Size数组大小
参数
arrconst数组引用
返回
指向数组首元素的const指针

在文件 type_erase.hpp126 行定义.

◆ cend() [1/2]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) cend ( const Container & cont)
constexprnoexcept

获取const容器的const结束迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的const结束迭代器

在文件 type_erase.hpp114 行定义.

被这些函数引用 deque< T, Alloc, BufSize >::operator<() , 以及 deque< T, Alloc, BufSize >::operator==().

◆ cend() [2/2]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr const T * cend ( T(&) arr[Size])
constexprnoexcept

获取const数组的const结束指针

模板参数
T数组元素类型
Size数组大小
参数
arrconst数组引用
返回
指向数组末尾的const指针
注解
末尾指针是最后一个元素之后的位置

在文件 type_erase.hpp139 行定义.

◆ crbegin() [1/2]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) crbegin ( const Container & cont)
constexprnoexcept

获取const容器的const反向起始迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的const反向起始迭代器

在文件 type_erase.hpp244 行定义.

◆ crbegin() [2/2]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr reverse_iterator< const T * > crbegin ( T(&) arr[Size])
constexprnoexcept

获取const数组的const反向起始迭代器

模板参数
T数组元素类型
Size数组大小
参数
arrconst数组引用
返回
const数组的const反向起始迭代器

在文件 type_erase.hpp268 行定义.

◆ crend() [1/2]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) crend ( const Container & cont)
constexprnoexcept

获取const容器的const反向结束迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的const反向结束迭代器

在文件 type_erase.hpp256 行定义.

◆ crend() [2/2]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr reverse_iterator< const T * > crend ( T(&) arr[Size])
constexprnoexcept

获取const数组的const反向结束迭代器

模板参数
T数组元素类型
Size数组大小
参数
arrconst数组引用
返回
const数组的const反向结束迭代器

在文件 type_erase.hpp280 行定义.

◆ data() [1/5]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) data ( const Container & cont)
constexprnoexcept

获取const容器的const底层数据指针

模板参数
Container容器类型
参数
contconst容器引用
返回
指向const容器底层数据的const指针

在文件 type_erase.hpp407 行定义.

◆ data() [2/5]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) data ( Container & cont)
constexprnoexcept

获取容器的底层数据指针

模板参数
Container容器类型
参数
cont容器引用
返回
指向容器底层数据的指针

在文件 type_erase.hpp395 行定义.

被这些函数引用 array_iterator< false, Size, array >::advance(), basic_string_iterator< false, basic_string >::advance(), aes256_encrypt(), atomic_futex< WaiterBit >::atomic_futex(), base64_decode(), base64_decode(), base64_decode(), base64_encode(), base64_encode(), base64_encode(), basic_string_view_iterator< Traits >::basic_string_view_iterator(), neforce::lz4_compressor::compress(), neforce::lz4_compressor::compress(), neforce::lz4_compressor::compress(), neforce::lz4_compressor::stream_compressor::compress(), neforce::lz4_compressor::stream_compressor::compress(), zlib_compressor::compress(), zlib_compressor::compress(), zlib_compressor::compress(), zlib_compressor::stream_compressor::compress(), zlib_compressor::stream_compressor::compress(), base64::decode(), base64::decode_url(), codepoint::decode_utf16(), codepoint::decode_utf8(), neforce::lz4_compressor::decompress(), neforce::lz4_compressor::decompress(), neforce::lz4_compressor::stream_decompressor::decompress(), zlib_compressor::decompress(), zlib_compressor::decompress(), zlib_compressor::stream_decompressor::decompress(), XOR::decrypt(), AES256::decrypt_cbc(), AES256::decrypt_cbc_pkcs7(), AES256::decrypt_ecb(), AES256::decrypt_ecb_pkcs7(), AES256::decrypt_gcm(), array_iterator< false, Size, array >::dereference(), basic_string_iterator< false, basic_string >::dereference(), dns_exception::dns_exception(), dns_exception::dns_exception(), base64::encode(), base64::encode_url(), XOR::encrypt(), AES256::encrypt_cbc(), AES256::encrypt_cbc_pkcs7(), AES256::encrypt_ecb(), AES256::encrypt_ecb_hex(), AES256::encrypt_ecb_pkcs7(), AES256::encrypt_gcm(), getline(), getline(), getline(), getline(), getline(), getline(), MD5::hash(), SHA1::hash(), SHA256::hash(), MD5::hash_hex(), SHA1::hash_hex(), SHA256::hash_hex(), array_iterator< false, Size, array >::increment(), basic_string_iterator< false, basic_string >::increment(), md5(), md5(), md5(), md5(), memory_find_pattern(), icmp_socket::ping(), endian::read_be16(), endian::read_be32(), endian::read_be64(), endian::read_le16(), endian::read_le32(), endian::read_le64(), ssl_socket::send(), tcp_socket::send(), tcp_socket::send(), udp_socket::send(), tcp_socket::send_all(), udp_socket::send_to(), sha1(), sha1(), sha1(), sha1(), sha256(), sha256(), sha256(), sha256(), u8character::to_string(), character::to_u16string(), u8character::to_u16string(), character::to_u32string(), u8character::to_u32string(), character::to_u8string(), character::to_wstring(), u8character::to_wstring(), file::write(), file::write(), file::write(), file_async::write(), pipe::write(), ssl_stream::write_all(), XOR_decrypt(), XOR_decrypt(), XOR_decrypt(), XOR_encrypt(), XOR_encrypt() , 以及 XOR_encrypt().

◆ data() [3/5]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr const T * data ( std::initializer_list< T > lls)
constexprnoexcept

获取初始化列表的底层数据指针

模板参数
T元素类型
参数
lls初始化列表
返回
指向初始化列表数据的const指针

在文件 type_erase.hpp441 行定义.

◆ data() [4/5]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr T * data ( T * ptr)
constexprnoexcept

获取指针本身

模板参数
T指针指向的类型
参数
ptr指针
返回
原指针

在文件 type_erase.hpp430 行定义.

◆ data() [5/5]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr T * data ( T(&) arr[Size])
constexprnoexcept

获取数组的底层数据指针

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
指向数组首元素的指针

在文件 type_erase.hpp419 行定义.

◆ empty() [1/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr bool empty ( const Container & cont)
constexprnoexcept

检查容器是否为空

模板参数
Container容器类型
参数
contconst容器引用
返回
如果容器为空则返回true,否则返回false

在文件 type_erase.hpp362 行定义.

被这些函数引用 function< Res(Args...)>::operator bool() , 以及 function< Res(Args...)>::operator()().

◆ empty() [2/3]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr bool empty ( const T * ptr)
constexprnoexcept

检查指针是否非空

模板参数
T指针指向的类型
参数
ptr指针
返回
如果指针非空则返回true,否则返回false

在文件 type_erase.hpp373 行定义.

◆ empty() [3/3]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr bool empty ( std::initializer_list< T > lls)
constexprnoexcept

检查初始化列表是否为空

模板参数
T元素类型
参数
lls初始化列表
返回
如果初始化列表为空则返回true,否则返回false

在文件 type_erase.hpp384 行定义.

◆ end() [1/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) end ( const Container & cont)
constexprnoexcept

获取const容器的结束迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的结束迭代器

在文件 type_erase.hpp65 行定义.

◆ end() [2/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) end ( Container & cont)
constexprnoexcept

◆ end() [3/3]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr T * end ( T(&) arr[Size])
constexprnoexcept

获取数组的结束指针

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
指向数组末尾的指针
注解
末尾指针是最后一个元素之后的位置

在文件 type_erase.hpp90 行定义.

◆ rbegin() [1/4]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) rbegin ( const Container & cont)
constexprnoexcept

获取容器的反向结束迭代器

模板参数
Container容器类型
参数
cont容器引用
返回
容器的反向结束迭代器

在文件 type_erase.hpp174 行定义.

◆ rbegin() [2/4]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) rbegin ( Container & cont)
constexprnoexcept

获取容器的反向起始迭代器

模板参数
Container容器类型
参数
cont容器引用
返回
容器的反向起始迭代器

在文件 type_erase.hpp151 行定义.

◆ rbegin() [3/4]

template<typename T>
NEFORCE_NODISCARD constexpr reverse_iterator< const T * > rbegin ( std::initializer_list< T > lls)
constexprnoexcept

获取初始化列表的反向起始迭代器

模板参数
T元素类型
参数
lls初始化列表
返回
初始化列表的反向起始迭代器

在文件 type_erase.hpp221 行定义.

◆ rbegin() [4/4]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr reverse_iterator< T * > rbegin ( T(&) arr[Size])
constexprnoexcept

获取数组的反向起始迭代器

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
数组的反向起始迭代器

在文件 type_erase.hpp198 行定义.

◆ rend() [1/4]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) rend ( const Container & cont)
constexprnoexcept

获取const容器的反向结束迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的反向结束迭代器

在文件 type_erase.hpp186 行定义.

◆ rend() [2/4]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) rend ( Container & cont)
constexprnoexcept

获取const容器的反向起始迭代器

模板参数
Container容器类型
参数
contconst容器引用
返回
const容器的反向起始迭代器

在文件 type_erase.hpp162 行定义.

◆ rend() [3/4]

template<typename T>
NEFORCE_NODISCARD constexpr reverse_iterator< const T * > rend ( std::initializer_list< T > lls)
constexprnoexcept

获取初始化列表的反向结束迭代器

模板参数
T元素类型
参数
lls初始化列表
返回
初始化列表的反向结束迭代器

在文件 type_erase.hpp232 行定义.

◆ rend() [4/4]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr reverse_iterator< T * > rend ( T(&) arr[Size])
constexprnoexcept

获取数组的反向结束迭代器

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
数组的反向结束迭代器

在文件 type_erase.hpp210 行定义.

◆ size() [1/3]

◆ size() [2/3]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr size_t size ( std::initializer_list< T > lls)
constexprnoexcept

获取初始化列表的大小

模板参数
T元素类型
参数
lls初始化列表
返回
初始化列表的大小

在文件 type_erase.hpp315 行定义.

◆ size() [3/3]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr size_t size ( T(&) arr[Size])
constexprnoexcept

获取数组的大小

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
数组的大小

在文件 type_erase.hpp304 行定义.

◆ ssize() [1/3]

template<typename Container>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) ssize ( const Container & cont)
constexprnoexcept

获取容器的有符号大小

模板参数
Container容器类型
参数
contconst容器引用
返回
容器中元素的数量

在文件 type_erase.hpp327 行定义.

◆ ssize() [2/3]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr ptrdiff_t ssize ( std::initializer_list< T > lls)
constexprnoexcept

获取初始化列表的有符号大小

模板参数
T元素类型
参数
lls初始化列表
返回
初始化列表的大小

在文件 type_erase.hpp351 行定义.

◆ ssize() [3/3]

template<typename T, size_t Size>
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr ptrdiff_t ssize ( T(&) arr[Size])
constexprnoexcept

获取数组的有符号大小

模板参数
T数组元素类型
Size数组大小
参数
arr数组引用
返回
数组的大小

在文件 type_erase.hpp340 行定义.