|
10489 | 10489 | using reverse_iterator = std::reverse_iterator<iterator>; |
10490 | 10490 | using const_reverse_iterator = std::reverse_iterator<const_iterator>; |
10491 | 10491 |
|
10492 | | - // bit reference |
10493 | | - class @\libmember{reference}{vector<bool>}@ { |
10494 | | - public: |
10495 | | - constexpr reference(const reference& x) noexcept; |
10496 | | - constexpr ~reference(); |
10497 | | - constexpr reference& operator=(bool x) noexcept; |
10498 | | - constexpr reference& operator=(const reference& x) noexcept; |
10499 | | - constexpr const reference& operator=(bool x) const noexcept; |
10500 | | - constexpr operator bool() const noexcept; |
10501 | | - constexpr void flip() noexcept; // flips the bit |
10502 | | - |
10503 | | - friend constexpr void swap(reference x, reference y) noexcept; |
10504 | | - friend constexpr void swap(reference x, bool& y) noexcept; |
10505 | | - friend constexpr void swap(bool& x, reference y) noexcept; |
10506 | | - }; |
| 10492 | + // \ref{vector.bool.reference}, bit reference |
| 10493 | + class reference; |
10507 | 10494 |
|
10508 | 10495 | // construct/copy/destroy |
10509 | 10496 | constexpr vector() noexcept(noexcept(Allocator())) : vector(Allocator()) { } |
@@ -10607,13 +10594,35 @@ |
10607 | 10594 | of \tcode{bool} values. A space-optimized representation of bits is |
10608 | 10595 | recommended instead. |
10609 | 10596 |
|
| 10597 | +\rSec3[vector.bool.reference]{Class \tcode{vector<bool>::reference}}% |
10610 | 10598 | \pnum |
10611 | 10599 | \tcode{reference} |
10612 | 10600 | is a class that simulates a reference to a single bit in the sequence. |
10613 | 10601 |
|
| 10602 | +\indexlibrarymember{reference}{vector<bool>}% |
| 10603 | +\begin{codeblock} |
| 10604 | +namespace std { |
| 10605 | + template<size_t N> |
| 10606 | + class vector<bool>::reference { |
| 10607 | + public: |
| 10608 | + constexpr reference(const reference& x) noexcept; |
| 10609 | + constexpr ~reference(); |
| 10610 | + constexpr reference& operator=(bool x) noexcept; |
| 10611 | + constexpr reference& operator=(const reference& x) noexcept; |
| 10612 | + constexpr const reference& operator=(bool x) const noexcept; |
| 10613 | + constexpr operator bool() const noexcept; |
| 10614 | + constexpr void flip() noexcept; // flips the bit |
| 10615 | + |
| 10616 | + friend constexpr void swap(reference x, reference y) noexcept; |
| 10617 | + friend constexpr void swap(reference x, bool& y) noexcept; |
| 10618 | + friend constexpr void swap(bool& x, reference y) noexcept; |
| 10619 | + }; |
| 10620 | +} |
| 10621 | +\end{codeblock} |
| 10622 | + |
10614 | 10623 | \indexlibraryctor{vector<bool>::reference}% |
10615 | 10624 | \begin{itemdecl} |
10616 | | -constexpr reference::reference(const reference& x) noexcept; |
| 10625 | +constexpr reference(const reference& x) noexcept; |
10617 | 10626 | \end{itemdecl} |
10618 | 10627 |
|
10619 | 10628 | \begin{itemdescr} |
|
10624 | 10633 |
|
10625 | 10634 | \indexlibrarydtor{vector<bool>::reference}% |
10626 | 10635 | \begin{itemdecl} |
10627 | | -constexpr reference::~reference(); |
| 10636 | +constexpr ~reference(); |
10628 | 10637 | \end{itemdecl} |
10629 | 10638 |
|
10630 | 10639 | \begin{itemdescr} |
|
10635 | 10644 |
|
10636 | 10645 | \indexlibrarymember{operator=}{vector<bool>::reference}% |
10637 | 10646 | \begin{itemdecl} |
10638 | | -constexpr reference& reference::operator=(bool x) noexcept; |
10639 | | -constexpr reference& reference::operator=(const reference& x) noexcept; |
10640 | | -constexpr const reference& reference::operator=(bool x) const noexcept; |
| 10647 | +constexpr reference& operator=(bool x) noexcept; |
| 10648 | +constexpr reference& operator=(const reference& x) noexcept; |
| 10649 | +constexpr const reference& operator=(bool x) const noexcept; |
10641 | 10650 | \end{itemdecl} |
10642 | 10651 |
|
10643 | 10652 | \begin{itemdescr} |
|
10653 | 10662 |
|
10654 | 10663 | \indexlibrarymember{flip}{vector<bool>::reference}% |
10655 | 10664 | \begin{itemdecl} |
10656 | | -constexpr void reference::flip() noexcept; |
| 10665 | +constexpr void flip() noexcept; |
10657 | 10666 | \end{itemdecl} |
10658 | 10667 |
|
10659 | 10668 | \begin{itemdescr} |
|
10681 | 10690 | \end{codeblock} |
10682 | 10691 | \end{itemdescr} |
10683 | 10692 |
|
10684 | | - |
| 10693 | +\rSec3[vector.bool.members]{\tcode{vector<bool>} members} |
10685 | 10694 |
|
10686 | 10695 | \indexlibrarymember{flip}{vector<bool>}% |
10687 | 10696 | \begin{itemdecl} |
|
0 commit comments