std::vector<bool, Alloc>::reference
来自cppreference.com
< cpp | container | vector bool
class reference; |
||
std::vector
<bool, Alloc> 特化定义 std::vector
<bool, Alloc>::reference 为可公开访问的嵌套类。std::vector
<bool, Alloc>::reference 代理了访问 std::vector
<bool, Alloc> 中单个位的行为。
std::vector
<bool, Alloc>::reference 的主要用法是提供能从 operator[] 返回的左值。
任何通过 std::vector
<bool, Alloc>::reference 发生的对 vector 的读或写,会潜在地读或写整个底层的 vector。
成员函数
(构造函数) |
构造引用,只有 std::vector <bool, Alloc> 自身可以访问 (公开成员函数) |
(析构函数) |
销毁引用 (公开成员函数) |
operator= |
将 bool 赋给被引用位 (公开成员函数) |
operator bool |
返回被引用位 (公开成员函数) |
flip |
翻转被引用位 (公开成员函数) |
std::vector<bool, Alloc>::reference::~reference
~reference(); |
(C++20 前) | |
constexpr ~reference(); |
(C++20 起) | |
销毁 reference
。
std::vector<bool, Alloc>::reference::operator=
(1) | ||
reference& operator=( bool x ); |
(C++11 前) | |
reference& operator=( bool x ) noexcept; |
(C++11 起) (C++20 前) |
|
constexpr reference& operator=( bool x ) noexcept; |
(C++20 起) | |
(2) | ||
reference& operator=( const reference& x ); |
(C++11 前) | |
reference& operator=( const reference& x ) noexcept; |
(C++11 起) (C++20 前) |
|
constexpr reference& operator=( const reference& x ) noexcept; |
(C++20 起) | |
constexpr const reference& operator=( bool x ) const noexcept; |
(3) | (C++23 起) |
赋值给被引用位。
参数
x | - | 要赋值的值 |
返回值
*this
std::vector<bool, Alloc>::reference::operator bool
operator bool() const; |
(C++11 前) | |
operator bool() const noexcept; |
(C++11 起) (C++20 前) |
|
constexpr operator bool() const noexcept; |
(C++20 起) | |
返回被引用位的值。
参数
(无)
返回值
被引用位。
std::vector<bool, Alloc>::reference::flip
void flip(); |
(C++11 前) | |
void flip() noexcept; |
(C++11 起) (C++20 前) |
|
constexpr void flip() noexcept; |
(C++20 起) | |
反转被引用位。
参数
(无)
返回值
(无)
辅助类
std::formatter<std::vector<bool, Alloc>::reference>
template < class T, class CharT > requires /* is-vector-bool-reference */<T> |
(C++23 起) | |
为 std::vector
<bool, Alloc>::reference 特化 std::formatter。此特化使用 std::formatter<bool, CharT> 作为它的底层格式化器(以 underlying_
表示),所引用的位被转换为 bool 再格式化。
当且仅当 T
代表对于某个 Alloc
的类型 std::vector
<bool, Alloc>::reference 且std::vector
<bool, Alloc> 不是由程序定义的特化时,仅用于阐述的常量 /* is-vector-bool-reference */<T> 是 true。
成员函数
template< class ParseContext > constexpr ParseContext::iterator parse( ParseContext& ctx ); |
(1) | (C++23 起) |
template< class FormatContext > FormatContext::iterator format( const T& r, FormatContext& ctx ) const; |
(2) | (C++23 起) |
1) 等价于 return
underlying_
.parse(ctx);。2) 等价于 return
underlying_
.format(r, ctx);。
示例
本节未完成 原因:暂无示例 |
参阅
访问指定的元素 ( std::vector<T,Allocator> 的公开成员函数) | |
[静态] |
交换两个 std::vector<bool>:: reference (公开静态成员函数) |
外部链接
"Effective Modern C++" by Scott Meyers (2015), 第二章, 条款 6: "当 auto 推导为不想要的类型时使用类型明确的初始化式手法。" (p.43-46)——描述了代理类 std::vector<bool>::reference 的一种可能的误用。
|