std::vector<bool, Alloc>::reference
class reference; |
||
The std::vector
<bool, Alloc> specializations define std::vector
<bool, Alloc>::reference as a publicly-accessible nested class. std::vector
<bool, Alloc>::reference proxies the behavior of references to a single bit in std::vector
<bool, Alloc>.
The primary use of std::vector
<bool, Alloc>::reference is to provide an lvalue that can be returned from operator[].
Any reads or writes to a vector that happen via a std::vector
<bool, Alloc>::reference potentially read or write to the entire underlying vector.
内容 |
[编辑] 成员函数
(构造函数) |
构造引用。仅对 std::vector <bool, Alloc> 本身可见(公共成员函数) |
(析构函数) |
销毁引用 (公共成员函数) |
operator= |
将一个 bool 赋值给引用的位 (公共成员函数) |
operator bool |
返回引用的位 (公共成员函数) |
flip |
翻转引用的位 (公共成员函数) |
std::vector<bool, Alloc>::reference::~reference
~reference(); |
(直到 C++20) | |
constexpr ~reference(); |
(自 C++20 起) | |
销毁引用。
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::formatter, 用于 std::vector
<bool, Alloc>::reference。该专门化使用 std::formatter<bool, CharT> 作为其底层格式化器(表示为 underlying_
),其中引用的位被转换为 bool 以便进行格式化。
仅供说明的常量 /* is-vector-bool-reference */<T> 当且仅当 T
表示类型 std::vector
<bool, Alloc>::reference 时为 true, 其中 Alloc
为某种类型, 并且 std::vector
<bool, Alloc> 不是 用户定义的专门化。
成员函数
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 起) |
underlying_
.parse(ctx);.
underlying_
.format(r, ctx);.[edit] 示例
本节内容不完整 原因:没有示例 |
[edit] 另请参阅
访问指定的元素 ( std::vector<T,Allocator> 的公有成员函数) | |
[static] |
交换两个 std::vector<bool>:: references(公有静态成员函数) |
[edit] 外部链接
Scott Meyers 编著的“Effective Modern C++”(2015 年),第 2 章,第 6 条:“当 auto 推断出不想要的类型时,使用显式类型初始化习惯用法。”(第 43-46 页)—— 描述了可能误用代理类 std::vector<bool>::reference 的情况。 |