Namespaces
Variants

std::meta::bit_size_of

De es.cppreference.net
< cpp | meta
 
 
 
Biblioteca de reflexión
 
Tipos y consultas de reflexión
Consultas de reflexión
Consultas de diseño de reflexión
Propiedades de tipo
Consultas de propiedad de tipo
 
Definido en el encabezado <meta>
consteval std::size_t bit_size_of( std::meta::info r );
(desde C++26)

Devuelve el tamaño en bits del tipo o (sub)objeto representado por r.

Parámetros

r - un valor de reflexión

Valor de retorno

Si r representa un campo de bits, devuelve su anchura en bits.

En caso contrario, si r representa una descripción de miembro de datos cuya anchura de bits no es ⊥, devuelve esa anchura de bits.

En caso contrario, devuelve CHAR_BIT * std::meta::size_of(r).

Excepciones

Lanza std::meta::exception a menos que se cumplan todas las condiciones siguientes:

  • std::meta::dealias(r) representa uno de los siguientes:
  • Si std::meta::dealias(r) representa un tipo, std::meta::is_complete_type(r) es true.

Ejemplo

#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);
}

Véase también

devuelve la alineación del objeto o tipo reflejado
(función)
(C++26)
devuelve el tamaño en bytes del objeto o tipo reflejado
(función)