|
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.