Standard library header <bit> (C++20)
From ru.cppreference.net
Этот заголовок является частью numeric библиотеки.
Типы |
|
|
(C++20)
|
указывает порядок байтов скалярных типов
(перечисление) |
Функции | |
(C++20) |
переинтерпретирует объектное представление одного типа как представление другого (функция-шаблон) |
(C++23) |
обращает байты в заданном целочисленном значении (функция-шаблон) |
(C++20) |
проверяет, является ли число целой степенью 2 (функция-шаблон) |
(C++20) |
находит наименьшую целую степень 2 не меньшую заданного значения (функция-шаблон) |
(C++20) |
находит наибольшую целую степень 2 не большую заданного значения (функция-шаблон) |
(C++20) |
находит наименьшее количество битов, необходимое для представления заданного значения (функция-шаблон) |
(C++29) |
сдвигает влево без возможности неопределённого поведения (функция-шаблон) |
(C++29) |
сдвигает вправо без возможности неопределённого поведения (функция-шаблон) |
(C++20) |
вычисляет результат циклического сдвига влево (функция-шаблон) |
(C++20) |
вычисляет результат циклического сдвига вправо (функция-шаблон) |
(C++20) |
подсчитывает количество последовательных 0 битов, начиная со старшего бита (функция-шаблон) |
(C++20) |
подсчитывает количество последовательных 1 битов, начиная со старшего бита (функция-шаблон) |
(C++20) |
подсчитывает количество последовательных 0 битов, начиная с младшего бита (функция-шаблон) |
(C++20) |
подсчитывает количество последовательных 1 битов, начиная с младшего бита (функция-шаблон) |
(C++20) |
подсчитывает количество 1 битов в беззнаковом целом числе (функция-шаблон) |
(C++29) |
обращает биты в целом числе (функция-шаблон) |
(C++29) |
повторяет/распространяет битовый шаблон заданной длины (функция-шаблон) |
(C++29) |
сжимает биты операнда с помощью маски (PEXT) (функция-шаблон) |
(C++29) |
расширяет биты из операнда с помощью маски (PDEP) (функция-шаблон) |
Краткий обзор
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 */
};
}