Namespaces
Variants
Views
Actions

Standard library header <bit>

From natekohl.net
< cpp‎ | header
 
 
 

This header is part of the numeric library.

[edit] Functions

(C++20)
reinterpret the object representation of one type as that of another
(function template) [edit]
(C++20)
checks if a number is an integral power of two
(function template) [edit]
(C++20)
finds the smallest integral power of two not less than the given value
(function template) [edit]
(C++20)
finds the largest integral power of two not greater than the given value
(function template) [edit]
(C++20)
finds the smallest number of bits needed to represent the given value
(function template) [edit]
(C++20)
computes the result of bitwise left-rotation
(function) [edit]
(C++20)
computes the result of bitwise right-rotation
(function) [edit]
counts the number of consecutive 0 bits, starting from the most significant bit
(function) [edit]
counts the number of consecutive 1 bits, starting from the most significant bit
(function) [edit]
counts the number of consecutive 0 bits, starting from the least significant bit
(function) [edit]
counts the number of consecutive 1 bits, starting from the least significant bit
(function) [edit]
(C++20)
counts the number of 1 bits in an unsigned integer
(function) [edit]

[edit] Types

(C++20)
indicates the endianness of scalar types
(enum) [edit]

[edit] Synopsis

namespace std {
    // bit_cast
    template<typename To, typename From>
    constexpr To bit_cast(const From& from) noexcept;
 
    // integral powers of 2
    template <class T>
    constexpr bool ispow2(T x) noexcept;
    template <class T>
    constexpr T ceil2(T x);
    template <class T>
    constexpr T floor2(T x) noexcept;
    template <class T>
    constexpr T log2p1(T x) noexcept;
 
    // rotating
    template<class T>
    [[nodiscard]] constexpr T rotl(T x, int s) noexcept;
    template<class T>
    [[nodiscard]] 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;
 
    // endian
    enum class endian {
        little = /*implementation-defined*/,
        big    = /*implementation-defined*/,
        native = /*implementation-defined*/
    };
}