Namespaces
Variants

std::bitset<N>:: operator[]

From cppreference.net
Utilities library
bool operator [ ] ( std:: size_t pos ) const ;
(1) (constexpr depuis C++11)
reference operator [ ] ( std:: size_t pos ) ;
(2) (constexpr depuis C++23)

Accède au bit à la position pos .

1) Retourne la valeur du bit.
2) Retourne un objet de type std::bitset::reference qui permet la modification de la valeur.

Si pos < size ( ) est false , le comportement est indéfini.

(jusqu'à C++26)

Si pos < size ( ) est false :

  • Si l'implémentation est renforcée , une violation de contrat se produit. De plus, si le gestionnaire de violation de contrat retourne sous la sémantique d'évaluation "observer", le comportement est indéfini.
  • Si l'implémentation n'est pas renforcée, le comportement est indéfini.
(depuis C++26)

Table des matières

Paramètres

pos - position du bit à retourner

Valeur de retour

1) La valeur du bit demandé.
2) Un objet de type std::bitset::reference , qui permet d'écrire dans le bit demandé.

Exceptions

Ne lance rien.

Exemple

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b1{0b00101010}; // littéral binaire pour 42
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // modifie le premier bit via bitset::reference
    std::cout << "Après avoir défini le bit 0, b1 contient " << b1 << '\n';
}

Sortie :

b1[0]: 0
b1[1]: 1
b1[2]: 0
b1[3]: 1
b1[4]: 0
b1[5]: 1
b1[6]: 0
b1[7]: 0
After setting bit 0, b1 holds 00101011

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 11 C++98 1. la description était manquante dans le standard C++
2. il n'y avait que la surcharge non-const
1. description ajoutée
2. ajout de la surcharge const
LWG 907 C++98 le comportement de lecture du bit à pos était équivalent
à celui de test(pos) , mais test() peut lever des exceptions
évite de mentionner test()

Voir aussi

accède à un bit spécifique
(fonction membre publique)