Spec-Zone.ru › C++

Standard library header <bit> (C++20)

This header is part of the general utilities library, and provides facilities to access, process and manipulate both individual bits and bit sequences.

Types

endian
(C++20)
indicates the endianness of scalar types
(enum)

Functions

bit_cast
(C++20)
reinterpret the object representation of one type as that of another
(function template)
byteswap
(C++23)
reverses the bytes in the given integer value
(function template)
has_single_bit
(C++20)
checks if a number is an integral power of 2
(function template)
bit_ceil
(C++20)
finds the smallest integral power of 2 not less than the given value
(function template)
bit_floor
(C++20)
finds the largest integral power of 2 not greater than the given value
(function template)
bit_width
(C++20)
finds the smallest number of bits needed to represent the given value
(function template)
shl
(C++29)
shifts to the left without the possibility of undefined behavior
(function template)
shr
(C++29)
shifts to the right without the possibility of undefined behavior
(function template)
rotl
(C++20)
computes the result of bitwise left-rotation
(function template)
rotr
(C++20)
computes the result of bitwise right-rotation
(function template)
countl_zero
(C++20)
counts the number of consecutive 0 bits, starting from the most significant bit
(function template)
countl_one
(C++20)
counts the number of consecutive 1 bits, starting from the most significant bit
(function template)
countr_zero
(C++20)
counts the number of consecutive 0 bits, starting from the least significant bit
(function template)
countr_one
(C++20)
counts the number of consecutive 1 bits, starting from the least significant bit
(function template)
popcount
(C++20)
counts the number of 1 bits in an unsigned integer
(function template)
bit_reverse
(C++29)
reverses the bits in an integer
(function template)
bit_repeat
(C++29)
repeats/broadcasts a bit pattern of specified length
(function template)
bit_compress
(C++29)
compresses bits of an operand using a mask (PEXT)
(function template)
bit_expand
(C++29)
expands bits from an operand using a mask (PDEP)
(function template)

Synopsis

namespace std {
  // bit_cast
  template<class To, class From>
    constexpr To bit_cast(const From& from) noexcept;

  // byteswap
  template <class T>
    constexpr T byteswap(T value) noexcept;

  // integral powers of 2
  template<class T>
    constexpr bool has_single_bit(T x) noexcept;
  template<class T>
    constexpr T bit_ceil(T x);
  template<class T>
    constexpr T bit_floor(T x) noexcept;
  template<class T>
    constexpr int bit_width(T x) noexcept;

  // shifting
  template<class T, class S>
    constexpr T shl(T x, S s) noexcept;
  template<class T, class S>
    constexpr T shr(T x, S s) noexcept;

  // rotating
  template<class T>
    constexpr T rotl(T x, int s) noexcept;
  template<class T>
    constexpr T rotr(T x, int s) noexcept;

  // counting
  template<class T>
    constexpr int countl_zero(T x) noexcept;
  template<class T>
    constexpr int countl_one(T x) noexcept;
  template<class T>
    constexpr int countr_zero(T x) noexcept;
  template<class T>
    constexpr int countr_one(T x) noexcept;
  template<class T>
    constexpr int popcount(T x) noexcept;

  // permutation
  template<class T>
    constexpr T bit_reverse(T x) noexcept;
  template<class T>
    constexpr T bit_repeat(T x, int l);
  template<class T>
    constexpr T bit_compress(T x, T m) noexcept;
  template<class T>
    constexpr T bit_expand(T x, T m) noexcept;

  // endian
  enum class endian {
    little = /* see description */,
    big    = /* see description */,
    native = /* see description */
  };
}

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/bit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API