Namespaces
Variants

std::meta::bit_size_of

Depuis fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
 
Types et requêtes de réflexion
Requêtes de réflexion
Requêtes de disposition de réflexion
Propriétés de type
Requêtes de propriétés de type
 
Défini dans l'en-tête <meta>
consteval std::size_t bit_size_of( std::meta::info r );
(depuis C++26)

Retourne la taille en bits du type ou (sous-)objet représenté par r.

Paramètres

r - une valeur de réflexion

Valeur de retour

Si r représente un champ de bits, retourne sa largeur en bits.

Sinon, si r représente une description de membre de données dont la largeur en bits n'est pas ⊥, retourne cette largeur en bits.

Sinon, retourne CHAR_BIT * std::meta::size_of(r).

Exceptions

Lève std::meta::exception sauf si toutes les conditions suivantes sont remplies :

  • std::meta::dealias(r) représente l'un des éléments suivants :
  • Si std::meta::dealias(r) représente un type, std::meta::is_complete_type(r) est true.

Exemple

#include <climits>
#include <cstdint>
#include <meta>

static_assert(std::meta::bit_size_of(^^int) == CHAR_BIT * sizeof(int));

int main()
{
    constexpr struct S { std::uint32_t m{}; } o;
    static_assert(std::meta::bit_size_of(^^S) == 32);
    static_assert(std::meta::bit_size_of(^^o) == 32);

    struct B { std::uint64_t m : 42{}; };
    static_assert(std::meta::bit_size_of(^^B) == 64);
    static_assert(std::meta::bit_size_of(^^B::m) == 42);
}

Voir aussi

retourne l'alignement de l'objet ou du type réfléchi
(fonction)
(C++26)
retourne la taille en octets de l'objet ou du type réfléchi
(fonction)