| 
template<typename _To , typename _From >  
requires (sizeof(_To) == sizeof(_From)) && __is_trivially_copyable(_To) && __is_trivially_copyable(_From) | 
| constexpr _To  | std::bit_cast (const _From &__from) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp >  | std::bit_ceil (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp >  | std::bit_floor (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp >  | std::bit_width (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, int >  | std::countl_one (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, int >  | std::countl_zero (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, int >  | std::countr_one (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, int >  | std::countr_zero (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, bool >  | std::has_single_bit (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp, int >  | std::popcount (_Tp __x) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp >  | std::rotl (_Tp __x, int __s) noexcept | 
|   | 
| template<typename _Tp >  | 
| constexpr _If_is_unsigned_integer< _Tp >  | std::rotr (_Tp __x, int __s) noexcept | 
|   | 
Utilities for examining and manipulating individual bits. 
◆ __cpp_lib_bit_cast
      
        
          | #define __cpp_lib_bit_cast | 
        
      
 
Definition at line 69 of file bit.
 
 
◆ __cpp_lib_bitops
Definition at line 375 of file bit.
 
 
◆ __cpp_lib_endian
Definition at line 457 of file bit.
 
 
◆ __cpp_lib_int_pow2
      
        
          | #define __cpp_lib_int_pow2 | 
        
      
 
Definition at line 431 of file bit.
 
 
◆ endian
Byte order constants. 
The platform endianness can be checked by comparing std::endian::native to one of std::endian::big or std::endian::little.
- Since
 - C++20 
 
Definition at line 466 of file bit.
 
 
◆ bit_cast()
template<typename _To , typename _From > 
requires (sizeof(_To) == sizeof(_From)) && __is_trivially_copyable(_To) && __is_trivially_copyable(_From)
  
  
      
        
          | constexpr _To std::bit_cast  | 
          ( | 
          const _From &  | 
          __from | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
Create a value of type To from the bits of from. 
- Template Parameters
 - 
  
    | _To | A trivially-copyable type.  | 
  
   
- Parameters
 - 
  
    | __from | A trivially-copyable object of the same size as _To.  | 
  
   
- Returns
 - An object of type 
_To.  
- Since
 - C++20 
 
Definition at line 81 of file bit.
 
 
◆ bit_ceil()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp > std::bit_ceil  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The smallest power-of-two not less than x. 
Definition at line 442 of file bit.
 
 
◆ bit_floor()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp > std::bit_floor  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The largest power-of-two not greater than x. 
Definition at line 448 of file bit.
 
 
◆ bit_width()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp > std::bit_width  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The smallest integer greater than the base-2 logarithm of x. 
Definition at line 454 of file bit.
 
 
◆ countl_one()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, int > std::countl_one  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The number of contiguous one bits, starting from the highest bit. 
Definition at line 408 of file bit.
 
 
◆ countl_zero()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, int > std::countl_zero  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The number of contiguous zero bits, starting from the highest bit. 
Definition at line 402 of file bit.
 
 
◆ countr_one()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, int > std::countr_one  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The number of contiguous one bits, starting from the lowest bit. 
Definition at line 420 of file bit.
 
 
◆ countr_zero()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, int > std::countr_zero  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The number of contiguous zero bits, starting from the lowest bit. 
Definition at line 414 of file bit.
 
 
◆ has_single_bit()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, bool > std::has_single_bit  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
 
◆ popcount()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp, int > std::popcount  | 
          ( | 
          _Tp  | 
          __x | ) | 
           | 
         
       
   | 
  
constexprnoexcept   | 
  
 
The number of bits set in x. 
Definition at line 426 of file bit.
 
 
◆ rotl()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp > std::rotl  | 
          ( | 
          _Tp  | 
          __x,  | 
         
        
           | 
           | 
          int  | 
          __s  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
constexprnoexcept   | 
  
 
Rotate x to the left by s bits. 
Definition at line 388 of file bit.
 
 
◆ rotr()
template<typename _Tp > 
  
  
      
        
          | constexpr _If_is_unsigned_integer< _Tp > std::rotr  | 
          ( | 
          _Tp  | 
          __x,  | 
         
        
           | 
           | 
          int  | 
          __s  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
constexprnoexcept   | 
  
 
Rotate x to the right by s bits. 
Definition at line 394 of file bit.