std:: vector<bool, Alloc>:: reference
|
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
потенциально могут читать или записывать данные во весь базовый вектор.
Функции-члены
|
(constructor)
|
создает ссылку
(public member function) |
|
(destructor)
|
уничтожает ссылку
(public member function) |
|
operator=
|
присваивает значение ссылаемому биту
(public member function) |
|
operator bool
|
возвращает ссылаемый бит
(public member function) |
|
flip
|
инвертирует ссылаемый бит
(public member function) |
std::vector<bool, Alloc>::reference:: reference
|
reference
(
const
reference
&
)
=
default
;
|
(начиная с C++11)
(constexpr начиная с C++20) |
|
Создает ссылку из другой ссылки. Конструктор копирования неявно объявлен. (до C++11)
Другие конструкторы могут быть доступны только через
std::vector
<
bool
, Alloc
>
.
std::vector<bool, Alloc>::reference:: ~reference
|
~reference
(
)
;
|
(constexpr начиная с C++20) | |
Уничтожает ссылку.
std::vector<bool, Alloc>::reference:: operator=
|
reference
&
operator
=
(
bool
x
)
;
|
(1) |
(noexcept начиная с C++11)
(constexpr начиная с C++20) |
|
constexpr
const
reference
&
operator
=
(
bool
x
)
const
noexcept
;
|
(2) | (начиная с C++23) |
|
reference
&
operator
=
(
const
reference
&
x
)
;
|
(3) |
(noexcept начиная с C++11)
(constexpr начиная с C++20) |
Присваивает значение ссылаемому биту.
|
Константный
operator
=
позволяет
|
(начиная с C++23) |
Параметры
| x | - | присваиваемое значение |
Возвращаемое значение
* this
std::vector<bool, Alloc>::reference:: operator bool
|
operator
bool
(
)
const
;
|
(noexcept начиная с C++11)
(constexpr начиная с C++20) |
|
Возвращает значение ссылающегося бита.
Возвращаемое значение
Ссылающийся бит.
std::vector<bool, Alloc>::reference:: flip
|
void
flip
(
)
;
|
(noexcept начиная с C++11)
(constexpr начиная с 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
>
равна
true
тогда и только тогда, когда
T
обозначает тип
std::vector
<
bool
, Alloc
>
::
reference
для некоторого типа
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
)
;
.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
доступ к указанному элементу
(публичная функция-член
std::vector<T,Allocator>
)
|
|
|
[static]
|
обменивает два
std::vector<bool>::
reference
s
(публичная статическая функция-член) |
Внешние ссылки
"Effective Modern C++" Скотта Майерса (2015), Глава 2, Пункт 6: "Используйте идиому явно типизированного инициализатора, когда
auto
выводит нежелательные типы." (стр.43-46) — описывает возможное неправильное использование прокси-класса
std::vector<bool>::reference
).
|