Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++:BitmaskType

De cppreference.com
< cpp‎ | named req
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Tipo máscara de bits. Define un tipo que se puede utilizar para representar un conjunto de valores constantes o cualquier combinación de esos valores. Este rasgo generalmente se implementa mediante tipos enteros, std::bitset o enumeraciones (con y sin ámbito) con sobrecargas de operadores adicionales.

[editar]Requisitos

El tipo máscara de bits admite un número finito de elementos de máscara de bits, que son valores distintos de cero del tipo de máscara de bits, de modo que, para cualquier par Ci y Cj, Ci & Ci es distinto de cero y Ci & Cj es cero. Además, el valor 0 se utiliza para representar una máscara de bits vacía, sin valores establecidos.

Los operadores de bit a bit operator&, operator|, operator^, operator~, operator&=, operator|=, y operator^= están definidos para valores del tipo máscara de bits y tienen la misma semántica como tendrían los operadores integrados correspondientes en enteros sin signo si los elementos de la máscara de bits fueran las distintas potencias enteras de dos.

Las siguientes expresiones están bien formadas y tienen el siguiente significado para cualquier BitmaskType:

X |= Y Establece el valor Y en el objeto X.
X &= ~Y Borra el valor Y en el objeto X.
X & Y Valor distinto de cero indica que el valor Y está establecido en el objeto X.

Cada elemento de máscara de bits representable se define como un valor inline(desde C++17)constexpr de tipo máscara de bits.

[editar]Uso

Los siguientes tipos de la biblioteca estándar satisfacen a BitmaskType:

Código que se basa en alguna opción de implementación particular (p. ej., int n =std::ios_base::hex), no es portátil porque std::ios_base::fmtflags no es necesariamente implícitamente convertible a int.

close