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.
Member functions
(constructor)
|
constructs the reference. Accessible only to
std::vector
<
bool
, Alloc
>
itself
(public member function) |
(destructor)
|
destroys the reference
(public member function) |
operator=
|
assigns a
bool
to the referenced bit
(public member function) |
operator bool
|
returns the referenced bit
(public member function) |
flip
|
flips the referenced bit
(public member function) |
std::vector<bool, Alloc>::reference:: ~reference
~reference
(
)
;
|
(until C++20) | |
constexpr
~reference
(
)
;
|
(since C++20) | |
Destroys the reference.
std::vector<bool, Alloc>::reference:: operator=
(1) | ||
reference
&
operator
=
(
bool
x
)
;
|
(until C++11) | |
reference
&
operator
=
(
bool
x
)
noexcept
;
|
(since C++11)
(until C++20) |
|
constexpr
reference
&
operator
=
(
bool
x
)
noexcept
;
|
(since C++20) | |
(2) | ||
reference
&
operator
=
(
const
reference
&
x
)
;
|
(until C++11) | |
reference
&
operator
=
(
const
reference
&
x
)
noexcept
;
|
(since C++11)
(until C++20) |
|
constexpr
reference
&
operator
=
(
const
reference
&
x
)
noexcept
;
|
(since C++20) | |
constexpr
const
reference
&
operator
=
(
bool
x
)
const
noexcept
;
|
(3) | (since C++23) |
Assigns a value to the referenced bit.
Parameters
x | - | value to assign |
Return value
* this
std::vector<bool, Alloc>::reference:: operator bool
operator
bool
(
)
const
;
|
(until C++11) | |
operator
bool
(
)
const
noexcept
;
|
(since C++11)
(until C++20) |
|
constexpr
operator
bool
(
)
const
noexcept
;
|
(since C++20) | |
Returns the value of the referenced bit.
Parameters
(none)
Return value
The referenced bit.
std::vector<bool, Alloc>::reference:: flip
void
flip
(
)
;
|
(until C++11) | |
void
flip
(
)
noexcept
;
|
(since C++11)
(until C++20) |
|
constexpr
void
flip
(
)
noexcept
;
|
(since C++20) | |
Inverts the referenced bit.
Parameters
(none)
Return value
(none)
Helper classes
std:: formatter <std::vector<bool, Alloc>::reference>
template
<
class
T,
class
CharT
>
requires
/* is-vector-bool-reference */
<
T
>
|
(since C++23) | |
Specializes the
std::formatter
for
std::vector
<
bool
, Alloc
>
::
reference
. The specialization uses
std::
formatter
<
bool
, CharT
>
as its underlying formatter (denoted as
underlying_
) where the referenced bit is converted to
bool
to be formatted.
The exposition-only constant
/* is-vector-bool-reference */
<
T
>
is
true
if and only if
T
denotes the type
std::vector
<
bool
, Alloc
>
::
reference
for some type
Alloc
and
std::vector
<
bool
, Alloc
>
is not a
program-defined specialization
.
Member functions
template
<
class
ParseContext
>
constexpr ParseContext :: iterator parse ( ParseContext & ctx ) ; |
(1) | (since C++23) |
template
<
class
FormatContext
>
FormatContext :: iterator format ( const T & r, FormatContext & ctx ) const ; |
(2) | (since C++23) |
underlying_
.
parse
(
ctx
)
;
.
underlying_
.
format
(
r, ctx
)
;
.
Example
This section is incomplete
Reason: no example |
See also
access specified element
(public member function of
std::vector<T,Allocator>
)
|
|
[static]
|
swaps two
std::vector<bool>::
reference
s
(public static member function) |
External links
"Effective Modern C++" by Scott Meyers (2015), Chapter 2, Item 6: "Use the explicitly typed initializer idiom when
auto
deduces undesired types." (p.43-46) — describes a possible misuse of the proxy class
std::vector<bool>::reference
).
|