|
8862 | 8862 |
|
8863 | 8863 | // \ref{bitset.operators}, bitset operators
|
8864 | 8864 | template<size_t N>
|
8865 |
| - bitset<N> operator&(const bitset<N>&, const bitset<N>&) noexcept; |
| 8865 | + constexpr bitset<N> operator&(const bitset<N>&, const bitset<N>&) noexcept; |
8866 | 8866 | template<size_t N>
|
8867 |
| - bitset<N> operator|(const bitset<N>&, const bitset<N>&) noexcept; |
| 8867 | + constexpr bitset<N> operator|(const bitset<N>&, const bitset<N>&) noexcept; |
8868 | 8868 | template<size_t N>
|
8869 |
| - bitset<N> operator^(const bitset<N>&, const bitset<N>&) noexcept; |
| 8869 | + constexpr bitset<N> operator^(const bitset<N>&, const bitset<N>&) noexcept; |
8870 | 8870 | template<class charT, class traits, size_t N>
|
8871 | 8871 | basic_istream<charT, traits>&
|
8872 | 8872 | operator>>(basic_istream<charT, traits>& is, bitset<N>& x);
|
|
8887 | 8887 | // bit reference
|
8888 | 8888 | class reference {
|
8889 | 8889 | friend class bitset;
|
8890 |
| - reference() noexcept; |
| 8890 | + constexpr reference() noexcept; |
8891 | 8891 |
|
8892 | 8892 | public:
|
8893 |
| - reference(const reference&) = default; |
8894 |
| - ~reference(); |
8895 |
| - reference& operator=(bool x) noexcept; // for \tcode{b[i] = x;} |
8896 |
| - reference& operator=(const reference&) noexcept; // for \tcode{b[i] = b[j];} |
8897 |
| - bool operator~() const noexcept; // flips the bit |
8898 |
| - operator bool() const noexcept; // for \tcode{x = b[i];} |
8899 |
| - reference& flip() noexcept; // for \tcode{b[i].flip();} |
| 8893 | + constexpr reference(const reference&) = default; |
| 8894 | + constexpr ~reference(); |
| 8895 | + constexpr reference& operator=(bool x) noexcept; // for \tcode{b[i] = x;} |
| 8896 | + constexpr reference& operator=(const reference&) noexcept; // for \tcode{b[i] = b[j];} |
| 8897 | + constexpr bool operator~() const noexcept; // flips the bit |
| 8898 | + constexpr operator bool() const noexcept; // for \tcode{x = b[i];} |
| 8899 | + constexpr reference& flip() noexcept; // for \tcode{b[i].flip();} |
8900 | 8900 | };
|
8901 | 8901 |
|
8902 | 8902 | // \ref{bitset.cons}, constructors
|
8903 | 8903 | constexpr bitset() noexcept;
|
8904 | 8904 | constexpr bitset(unsigned long long val) noexcept;
|
8905 | 8905 | template<class charT, class traits, class Allocator>
|
8906 |
| - explicit bitset( |
| 8906 | + constexpr explicit bitset( |
8907 | 8907 | const basic_string<charT, traits, Allocator>& str,
|
8908 | 8908 | typename basic_string<charT, traits, Allocator>::size_type pos = 0,
|
8909 | 8909 | typename basic_string<charT, traits, Allocator>::size_type n
|
8910 | 8910 | = basic_string<charT, traits, Allocator>::npos,
|
8911 | 8911 | charT zero = charT('0'),
|
8912 | 8912 | charT one = charT('1'));
|
8913 | 8913 | template<class charT>
|
8914 |
| - explicit bitset( |
| 8914 | + constexpr explicit bitset( |
8915 | 8915 | const charT* str,
|
8916 | 8916 | typename basic_string<charT>::size_type n = basic_string<charT>::npos,
|
8917 | 8917 | charT zero = charT('0'),
|
8918 | 8918 | charT one = charT('1'));
|
8919 | 8919 |
|
8920 | 8920 | // \ref{bitset.members}, bitset operations
|
8921 |
| - bitset& operator&=(const bitset& rhs) noexcept; |
8922 |
| - bitset& operator|=(const bitset& rhs) noexcept; |
8923 |
| - bitset& operator^=(const bitset& rhs) noexcept; |
8924 |
| - bitset& operator<<=(size_t pos) noexcept; |
8925 |
| - bitset& operator>>=(size_t pos) noexcept; |
8926 |
| - bitset& set() noexcept; |
8927 |
| - bitset& set(size_t pos, bool val = true); |
8928 |
| - bitset& reset() noexcept; |
8929 |
| - bitset& reset(size_t pos); |
8930 |
| - bitset operator~() const noexcept; |
8931 |
| - bitset& flip() noexcept; |
8932 |
| - bitset& flip(size_t pos); |
| 8921 | + constexpr bitset& operator&=(const bitset& rhs) noexcept; |
| 8922 | + constexpr bitset& operator|=(const bitset& rhs) noexcept; |
| 8923 | + constexpr bitset& operator^=(const bitset& rhs) noexcept; |
| 8924 | + constexpr bitset& operator<<=(size_t pos) noexcept; |
| 8925 | + constexpr bitset& operator>>=(size_t pos) noexcept; |
| 8926 | + constexpr bitset& set() noexcept; |
| 8927 | + constexpr bitset& set(size_t pos, bool val = true); |
| 8928 | + constexpr bitset& reset() noexcept; |
| 8929 | + constexpr bitset& reset(size_t pos); |
| 8930 | + constexpr bitset operator~() const noexcept; |
| 8931 | + constexpr bitset& flip() noexcept; |
| 8932 | + constexpr bitset& flip(size_t pos); |
8933 | 8933 |
|
8934 | 8934 | // element access
|
8935 | 8935 | constexpr bool operator[](size_t pos) const; // for \tcode{b[i];}
|
8936 |
| - reference operator[](size_t pos); // for \tcode{b[i];} |
| 8936 | + constexpr reference operator[](size_t pos); // for \tcode{b[i];} |
8937 | 8937 |
|
8938 |
| - unsigned long to_ulong() const; |
8939 |
| - unsigned long long to_ullong() const; |
| 8938 | + constexpr unsigned long to_ulong() const; |
| 8939 | + constexpr unsigned long long to_ullong() const; |
8940 | 8940 | template<class charT = char,
|
8941 | 8941 | class traits = char_traits<charT>,
|
8942 | 8942 | class Allocator = allocator<charT>>
|
8943 |
| - basic_string<charT, traits, Allocator> |
| 8943 | + constexpr basic_string<charT, traits, Allocator> |
8944 | 8944 | to_string(charT zero = charT('0'), charT one = charT('1')) const;
|
8945 | 8945 |
|
8946 |
| - size_t count() const noexcept; |
| 8946 | + constexpr size_t count() const noexcept; |
8947 | 8947 | constexpr size_t size() const noexcept;
|
8948 |
| - bool operator==(const bitset& rhs) const noexcept; |
8949 |
| - bool test(size_t pos) const; |
8950 |
| - bool all() const noexcept; |
8951 |
| - bool any() const noexcept; |
8952 |
| - bool none() const noexcept; |
8953 |
| - bitset operator<<(size_t pos) const noexcept; |
8954 |
| - bitset operator>>(size_t pos) const noexcept; |
| 8948 | + constexpr bool operator==(const bitset& rhs) const noexcept; |
| 8949 | + constexpr bool test(size_t pos) const; |
| 8950 | + constexpr bool all() const noexcept; |
| 8951 | + constexpr bool any() const noexcept; |
| 8952 | + constexpr bool none() const noexcept; |
| 8953 | + constexpr bitset operator<<(size_t pos) const noexcept; |
| 8954 | + constexpr bitset operator>>(size_t pos) const noexcept; |
8955 | 8955 | };
|
8956 | 8956 |
|
8957 | 8957 | // \ref{bitset.hash}, hash support
|
|
9038 | 9038 | \indexlibraryctor{bitset}%
|
9039 | 9039 | \begin{itemdecl}
|
9040 | 9040 | template<class charT, class traits, class Allocator>
|
9041 |
| - explicit bitset( |
| 9041 | + constexpr explicit bitset( |
9042 | 9042 | const basic_string<charT, traits, Allocator>& str,
|
9043 | 9043 | typename basic_string<charT, traits, Allocator>::size_type pos = 0,
|
9044 | 9044 | typename basic_string<charT, traits, Allocator>::size_type n
|
|
9089 | 9089 | \indexlibraryctor{bitset}%
|
9090 | 9090 | \begin{itemdecl}
|
9091 | 9091 | template<class charT>
|
9092 |
| - explicit bitset( |
| 9092 | + constexpr explicit bitset( |
9093 | 9093 | const charT* str,
|
9094 | 9094 | typename basic_string<charT>::size_type n = basic_string<charT>::npos,
|
9095 | 9095 | charT zero = charT('0'),
|
|
9113 | 9113 |
|
9114 | 9114 | \indexlibrarymember{operator\&=}{bitset}%
|
9115 | 9115 | \begin{itemdecl}
|
9116 |
| -bitset& operator&=(const bitset& rhs) noexcept; |
| 9116 | +constexpr bitset& operator&=(const bitset& rhs) noexcept; |
9117 | 9117 | \end{itemdecl}
|
9118 | 9118 |
|
9119 | 9119 | \begin{itemdescr}
|
|
9130 | 9130 |
|
9131 | 9131 | \indexlibrarymember{operator"|=}{bitset}%
|
9132 | 9132 | \begin{itemdecl}
|
9133 |
| -bitset& operator|=(const bitset& rhs) noexcept; |
| 9133 | +constexpr bitset& operator|=(const bitset& rhs) noexcept; |
9134 | 9134 | \end{itemdecl}
|
9135 | 9135 |
|
9136 | 9136 | \begin{itemdescr}
|
|
9147 | 9147 |
|
9148 | 9148 | \indexlibrarymember{operator\caret=}{bitset}%
|
9149 | 9149 | \begin{itemdecl}
|
9150 |
| -bitset& operator^=(const bitset& rhs) noexcept; |
| 9150 | +constexpr bitset& operator^=(const bitset& rhs) noexcept; |
9151 | 9151 | \end{itemdecl}
|
9152 | 9152 |
|
9153 | 9153 | \begin{itemdescr}
|
|
9164 | 9164 |
|
9165 | 9165 | \indexlibrarymember{operator<<=}{bitset}%
|
9166 | 9166 | \begin{itemdecl}
|
9167 |
| -bitset& operator<<=(size_t pos) noexcept; |
| 9167 | +constexpr bitset& operator<<=(size_t pos) noexcept; |
9168 | 9168 | \end{itemdecl}
|
9169 | 9169 |
|
9170 | 9170 | \begin{itemdescr}
|
|
9189 | 9189 |
|
9190 | 9190 | \indexlibrarymember{operator>>=}{bitset}%
|
9191 | 9191 | \begin{itemdecl}
|
9192 |
| -bitset& operator>>=(size_t pos) noexcept; |
| 9192 | +constexpr bitset& operator>>=(size_t pos) noexcept; |
9193 | 9193 | \end{itemdecl}
|
9194 | 9194 |
|
9195 | 9195 | \begin{itemdescr}
|
|
9215 | 9215 | \indexlibrary{\idxcode{set} (member)!\idxcode{bitset}}%
|
9216 | 9216 | \indexlibrary{\idxcode{bitset}!\idxcode{set}}%
|
9217 | 9217 | \begin{itemdecl}
|
9218 |
| -bitset& set() noexcept; |
| 9218 | +constexpr bitset& set() noexcept; |
9219 | 9219 | \end{itemdecl}
|
9220 | 9220 |
|
9221 | 9221 | \begin{itemdescr}
|
|
9233 | 9233 | \indexlibrary{\idxcode{set} (member)!\idxcode{bitset}}%
|
9234 | 9234 | \indexlibrary{\idxcode{bitset}!\idxcode{set}}%
|
9235 | 9235 | \begin{itemdecl}
|
9236 |
| -bitset& set(size_t pos, bool val = true); |
| 9236 | +constexpr bitset& set(size_t pos, bool val = true); |
9237 | 9237 | \end{itemdecl}
|
9238 | 9238 |
|
9239 | 9239 | \begin{itemdescr}
|
|
9255 | 9255 |
|
9256 | 9256 | \indexlibrarymember{reset}{bitset}%
|
9257 | 9257 | \begin{itemdecl}
|
9258 |
| -bitset& reset() noexcept; |
| 9258 | +constexpr bitset& reset() noexcept; |
9259 | 9259 | \end{itemdecl}
|
9260 | 9260 |
|
9261 | 9261 | \begin{itemdescr}
|
|
9271 | 9271 |
|
9272 | 9272 | \indexlibrarymember{reset}{bitset}%
|
9273 | 9273 | \begin{itemdecl}
|
9274 |
| -bitset& reset(size_t pos); |
| 9274 | +constexpr bitset& reset(size_t pos); |
9275 | 9275 | \end{itemdecl}
|
9276 | 9276 |
|
9277 | 9277 | \begin{itemdescr}
|
|
9292 | 9292 |
|
9293 | 9293 | \indexlibrarymember{operator\~{}}{bitset}%
|
9294 | 9294 | \begin{itemdecl}
|
9295 |
| -bitset operator~() const noexcept; |
| 9295 | +constexpr bitset operator~() const noexcept; |
9296 | 9296 | \end{itemdecl}
|
9297 | 9297 |
|
9298 | 9298 | \begin{itemdescr}
|
|
9310 | 9310 |
|
9311 | 9311 | \indexlibrarymember{flip}{bitset}%
|
9312 | 9312 | \begin{itemdecl}
|
9313 |
| -bitset& flip() noexcept; |
| 9313 | +constexpr bitset& flip() noexcept; |
9314 | 9314 | \end{itemdecl}
|
9315 | 9315 |
|
9316 | 9316 | \begin{itemdescr}
|
|
9326 | 9326 |
|
9327 | 9327 | \indexlibrarymember{flip}{bitset}%
|
9328 | 9328 | \begin{itemdecl}
|
9329 |
| -bitset& flip(size_t pos); |
| 9329 | +constexpr bitset& flip(size_t pos); |
9330 | 9330 | \end{itemdecl}
|
9331 | 9331 |
|
9332 | 9332 | \begin{itemdescr}
|
|
9347 | 9347 |
|
9348 | 9348 | \indexlibrarymember{to_ulong}{bitset}%
|
9349 | 9349 | \begin{itemdecl}
|
9350 |
| -unsigned long to_ulong() const; |
| 9350 | +constexpr unsigned long to_ulong() const; |
9351 | 9351 | \end{itemdecl}
|
9352 | 9352 |
|
9353 | 9353 | \begin{itemdescr}
|
|
9365 | 9365 |
|
9366 | 9366 | \indexlibrarymember{to_ullong}{bitset}%
|
9367 | 9367 | \begin{itemdecl}
|
9368 |
| -unsigned long long to_ullong() const; |
| 9368 | +constexpr unsigned long long to_ullong() const; |
9369 | 9369 | \end{itemdecl}
|
9370 | 9370 |
|
9371 | 9371 | \begin{itemdescr}
|
|
9386 | 9386 | template<class charT = char,
|
9387 | 9387 | class traits = char_traits<charT>,
|
9388 | 9388 | class Allocator = allocator<charT>>
|
9389 |
| - basic_string<charT, traits, Allocator> |
| 9389 | + constexpr basic_string<charT, traits, Allocator> |
9390 | 9390 | to_string(charT zero = charT('0'), charT one = charT('1')) const;
|
9391 | 9391 | \end{itemdecl}
|
9392 | 9392 |
|
|
9411 | 9411 |
|
9412 | 9412 | \indexlibrarymember{count}{bitset}%
|
9413 | 9413 | \begin{itemdecl}
|
9414 |
| -size_t count() const noexcept; |
| 9414 | +constexpr size_t count() const noexcept; |
9415 | 9415 | \end{itemdecl}
|
9416 | 9416 |
|
9417 | 9417 | \begin{itemdescr}
|
|
9434 | 9434 |
|
9435 | 9435 | \indexlibrarymember{operator==}{bitset}%
|
9436 | 9436 | \begin{itemdecl}
|
9437 |
| -bool operator==(const bitset& rhs) const noexcept; |
| 9437 | +constexpr bool operator==(const bitset& rhs) const noexcept; |
9438 | 9438 | \end{itemdecl}
|
9439 | 9439 |
|
9440 | 9440 | \begin{itemdescr}
|
|
9447 | 9447 |
|
9448 | 9448 | \indexlibrarymember{test}{bitset}%
|
9449 | 9449 | \begin{itemdecl}
|
9450 |
| -bool test(size_t pos) const; |
| 9450 | +constexpr bool test(size_t pos) const; |
9451 | 9451 | \end{itemdecl}
|
9452 | 9452 |
|
9453 | 9453 | \begin{itemdescr}
|
|
9467 | 9467 |
|
9468 | 9468 | \indexlibrarymember{all}{bitset}%
|
9469 | 9469 | \begin{itemdecl}
|
9470 |
| -bool all() const noexcept; |
| 9470 | +constexpr bool all() const noexcept; |
9471 | 9471 | \end{itemdecl}
|
9472 | 9472 |
|
9473 | 9473 | \begin{itemdescr}
|
|
9480 | 9480 | \indexlibrary{\idxcode{any} (member)!\idxcode{bitset}}%
|
9481 | 9481 | \indexlibrary{\idxcode{bitset}!\idxcode{any}}%
|
9482 | 9482 | \begin{itemdecl}
|
9483 |
| -bool any() const noexcept; |
| 9483 | +constexpr bool any() const noexcept; |
9484 | 9484 | \end{itemdecl}
|
9485 | 9485 |
|
9486 | 9486 | \begin{itemdescr}
|
|
9491 | 9491 |
|
9492 | 9492 | \indexlibrarymember{none}{bitset}%
|
9493 | 9493 | \begin{itemdecl}
|
9494 |
| -bool none() const noexcept; |
| 9494 | +constexpr bool none() const noexcept; |
9495 | 9495 | \end{itemdecl}
|
9496 | 9496 |
|
9497 | 9497 | \begin{itemdescr}
|
|
9502 | 9502 |
|
9503 | 9503 | \indexlibrarymember{operator<<}{bitset}%
|
9504 | 9504 | \begin{itemdecl}
|
9505 |
| -bitset operator<<(size_t pos) const noexcept; |
| 9505 | +constexpr bitset operator<<(size_t pos) const noexcept; |
9506 | 9506 | \end{itemdecl}
|
9507 | 9507 |
|
9508 | 9508 | \begin{itemdescr}
|
|
9513 | 9513 |
|
9514 | 9514 | \indexlibrarymember{operator>>}{bitset}%
|
9515 | 9515 | \begin{itemdecl}
|
9516 |
| -bitset operator>>(size_t pos) const noexcept; |
| 9516 | +constexpr bitset operator>>(size_t pos) const noexcept; |
9517 | 9517 | \end{itemdecl}
|
9518 | 9518 |
|
9519 | 9519 | \begin{itemdescr}
|
|
9544 | 9544 |
|
9545 | 9545 | \indexlibrarymember{operator[]}{bitset}%
|
9546 | 9546 | \begin{itemdecl}
|
9547 |
| -bitset::reference operator[](size_t pos); |
| 9547 | +constexpr bitset::reference operator[](size_t pos); |
9548 | 9548 | \end{itemdecl}
|
9549 | 9549 |
|
9550 | 9550 | \begin{itemdescr}
|
|
9593 | 9593 | \indexlibrarymember{operator\&}{bitset}%
|
9594 | 9594 | \begin{itemdecl}
|
9595 | 9595 | template<size_t N>
|
9596 |
| - bitset<N> operator&(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
| 9596 | + constexpr bitset<N> operator&(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
9597 | 9597 | \end{itemdecl}
|
9598 | 9598 |
|
9599 | 9599 | \begin{itemdescr}
|
|
9605 | 9605 | \indexlibrarymember{operator"|}{bitset}%
|
9606 | 9606 | \begin{itemdecl}
|
9607 | 9607 | template<size_t N>
|
9608 |
| - bitset<N> operator|(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
| 9608 | + constexpr bitset<N> operator|(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
9609 | 9609 | \end{itemdecl}
|
9610 | 9610 |
|
9611 | 9611 | \begin{itemdescr}
|
|
9617 | 9617 | \indexlibrarymember{operator\caret}{bitset}%
|
9618 | 9618 | \begin{itemdecl}
|
9619 | 9619 | template<size_t N>
|
9620 |
| - bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
| 9620 | + constexpr bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; |
9621 | 9621 | \end{itemdecl}
|
9622 | 9622 |
|
9623 | 9623 | \begin{itemdescr}
|
|
0 commit comments