Namespaces
Variants

std::bitset<N>::reference

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
class reference;

La clase std::bitset incluye std::bitset::reference como una clase anidada de acceso público. Esta clase se utiliza como un objeto proxy para permitir a los usuarios interactuar con bits individuales de un bitset, ya que los tipos estándar de C++ (como referencias y punteros) no están construidos con suficiente precisión para especificar bits individuales.

El uso principal de std::bitset::reference es proporcionar un lvalue que pueda ser devuelto por operator[].

Cualquier lectura o escritura a un bitset que ocurra a través de un std::bitset::reference potencialmente lee o escribe en todo el bitset subyacente.

Funciones miembro

(constructor)
construye la referencia
(función miembro pública)
(destructor)
destruye la referencia
(función miembro pública)
operator=
asigna un valor al bit referenciado
(función miembro pública)
operator bool
devuelve el bit referenciado
(función miembro pública)
operator~
devuelve el bit referenciado invertido
(función miembro pública)
flip
invierte el bit referenciado
(función miembro pública)

std::bitset<N>::reference:: reference

reference ( const reference & ) = default ;
(desde C++11)
(constexpr desde C++23)

Construye la referencia a partir de otra referencia. El constructor de copia se declara implícitamente. (hasta C++11)

Otros constructores solo pueden ser accedidos por std::bitset .

std::bitset<N>::reference:: ~reference

~reference ( ) ;
(constexpr desde C++23)

Destruye la referencia.

std::bitset<N>::reference:: operator=

reference & operator = ( bool x ) ;
(1) (noexcept desde C++11)
(constexpr desde C++23)
reference & operator = ( const reference & x ) ;
(2) (noexcept desde C++11)
(constexpr desde C++23)

Asigna un valor al bit referenciado.

Parámetros

x - valor a asignar

Valor de retorno

* this

std::bitset<N>::reference:: operator bool

operator bool ( ) const ;
(noexcept desde C++11)
(constexpr desde C++23)

Devuelve el valor del bit referenciado.

Valor de retorno

El bit referenciado.

std::bitset<N>::reference:: operator~

bool operator~ ( ) const ;
(noexcept since C++11)
(constexpr since C++23)

Devuelve el inverso del bit referenciado.

Valor de retorno

El inverso del bit referenciado.

std::bitset<N>::reference:: flip

reference & flip ( ) ;
(noexcept desde C++11)
(constexpr desde C++23)

Invierte el bit referenciado.

Valor de retorno

* this

Ejemplo

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<4> bs{0b1110};
    std::bitset<4>::reference ref = bs[2];
    auto info = [&](int id)
    {
        std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n';
    };
    info(1);
    ref = false;
    info(2);
    ref = true;
    info(3);
    ref.flip();
    info(4);
    ref = bs[1]; // operator=( const reference& x )
    info(5);
    std::cout << "6) ~ref bit: " << ~ref << '\n';
}

Salida:

1) bs: 1110; ref bit: 1
2) bs: 1010; ref bit: 0
3) bs: 1110; ref bit: 1
4) bs: 1010; ref bit: 0
5) bs: 1110; ref bit: 1
6) ~ref bit: 0

Véase también

accede a un bit específico
(función miembro pública)