Harlinn.Windows 0.1
|
Namespaces | |
namespace | Core |
namespace | Internal |
Classes | |
struct | BitMask |
union | Bits16 |
union | Bits32 |
union | Bits64 |
struct | Bits8 |
class | MallocaDeleter |
Concepts | |
concept | CharType |
concept | ApiCharType |
concept | SimpleSpanLike |
Matches most containers with sequential memory layout. | |
concept | SimpleCharSpanLike |
Matches most common string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | SimpleAnsiCharSpanLike |
Matches most common char string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | SimpleWideCharSpanLike |
Matches most common wchar_t string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | SimpleByteSpanLike |
Matches most common container classes with sequential memory layout. | |
concept | SpanLike |
concept | CharSpanLike |
Matches most common string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | AnsiCharSpanLike |
Matches most common char string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | WideCharSpanLike |
Matches most common wchar_t string classes with sequential memory layout. Do not assume that they are zero terminated. | |
concept | SimpleStringLike |
Matches most common zero terminated C++ string classes with sequential memory layout. | |
concept | SimpleWideStringLike |
Matches most common zero terminated C++ wchar_t string classes with sequential memory layout. | |
concept | SimpleAnsiStringLike |
Matches most common zero terminated C++ char string classes with sequential memory layout. | |
concept | StringLike |
Matches zero terminated C++ string classes with sequential memory layout that implements an API similar to std::basic_string instantiated for either char or wchar_t. | |
concept | WideStringLike |
Matches zero terminated C++ string classes with sequential memory layout that implements an API similar to std::basic_string instantiated for wchar_t. | |
concept | AnsiStringLike |
Matches zero terminated C++ string classes with sequential memory layout that implements an API similar to std::basic_string instantiated for char. | |
concept | SimpleComLike |
concept | BinaryLike |
concept | BooleanType |
concept | FloatingPointType |
concept | IntegerType |
concept | SignedIntegerType |
concept | UnsignedIntegerType |
concept | UnsignedIntegerOrBooleanType |
concept | ArithmeticType |
Typedefs | |
using | Boolean = bool |
using | Int8 = signed char |
using | SByte = signed char |
using | UInt8 = unsigned char |
using | Byte = unsigned char |
using | Int16 = short |
using | UInt16 = unsigned short |
using | ushort = unsigned short |
using | Int32 = int |
using | Int = int |
using | UInt32 = unsigned int |
using | UInt = unsigned int |
using | ULong32 = unsigned long |
using | Long32 = long |
using | uint = unsigned int |
using | DWord32 = unsigned long |
using | DWord = unsigned long |
using | Int64 = long long |
using | Long64 = long long |
using | LongLong = long long |
using | UInt64 = unsigned long long |
using | ULong64 = unsigned long long |
using | ULongLong = unsigned long long |
using | DWord64 = unsigned long |
using | ssize_t = std::make_signed_t<size_t> |
using | SSizeT = ssize_t |
using | SizeT = size_t |
using | Char = char |
using | WideChar = wchar_t |
using | Char8 = char |
using | Char16 = wchar_t |
using | Char32 = UInt32 |
using | Single = float |
using | Double = double |
template<typename T > | |
using | Nullable = std::optional<T> |
template<typename T > | |
using | MakeUnsigned = typename Internal::MakeUnsignedHelper< sizeof( T ) >::Type |
template<size_t N> | |
using | BitMask_t = typename BitMask<N>::type |
Functions | |
template<typename EnumT , typename ... Args> requires std::is_enum_v<EnumT>&& std::conjunction_v<std::is_same<std::remove_cvref_t<EnumT>, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) > 0 ) | |
constexpr bool | ContainsAllOf (EnumT flags, Args &&... args) |
template<typename EnumT , typename ... Args> requires std::is_enum_v<EnumT>&& std::conjunction_v<std::is_same<std::remove_cvref_t<EnumT>, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) > 0 ) | |
constexpr bool | ContainsNoneOf (EnumT flags, Args ... args) |
template<typename EnumT , typename ... Args> requires std::is_enum_v<EnumT>&& std::conjunction_v<std::is_same<std::remove_cvref_t<EnumT>, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) > 0 ) | |
constexpr bool | ContainsAnyOf (EnumT flags, Args ... args) |
template<typename EnumT , typename ... Args> requires std::is_enum_v<EnumT>&& std::conjunction_v<std::is_same<std::remove_cvref_t<EnumT>, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) > 0 ) | |
constexpr bool | IsSet (EnumT flags, Args &&... args) |
template<typename EnumT , typename ... Args> requires std::is_enum_v<EnumT>&& std::conjunction_v<std::is_same<std::remove_cvref_t<EnumT>, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) > 0 ) | |
constexpr bool | IsNotSet (EnumT flags, Args ... args) |
constexpr unsigned long long | operator""_gb (unsigned long long value) |
constexpr unsigned long long | operator""_mb (unsigned long long value) |
constexpr unsigned long long | operator""_kb (unsigned long long value) |
template<IntegerType T> | |
constexpr T | ByteSwap (T value) |
Reverses the order of bytes in an integer. | |
template<UnsignedIntegerType T, size_t N> requires ( N <= CHAR_BIT * sizeof( T ) ) | |
constexpr T | MaskTrailingOnes () |
Creates a bitmask with the N right-most bits set to 1, and all other bits set to 0. | |
template<UnsignedIntegerType T, size_t N> requires ( N <= CHAR_BIT * sizeof( T ) ) | |
constexpr T | MaskLeadingOnes () |
Creates a bitmask with the N left-most bits set to 1, and all other bits set to 0. | |
template<UnsignedIntegerType T, size_t N> requires ( N <= CHAR_BIT * sizeof( T ) ) | |
constexpr T | MaskTrailingZeros () |
Creates a bitmask with the N right-most bits set to 0, and all other bits set to 1. | |
template<UnsignedIntegerType T, size_t N> requires ( N <= CHAR_BIT * sizeof( T ) ) | |
constexpr T | MaskLeadingZeros () |
Creates a bitmask with the N left-most bits set to 0, and all other bits set to 1. | |
constexpr Byte | ReverseBits (Byte b) noexcept |
Reverses the order of the bits of a byte. | |
constexpr SByte | ReverseBits (SByte b) noexcept |
Reverses the order of the bits of a SByte. | |
constexpr char | ReverseBits (char b) noexcept |
Reverses the order of the bits of a char. | |
constexpr UInt16 | ReverseBits (UInt16 val) noexcept |
Reverses the order of the bits of an UInt16. | |
constexpr Int16 | ReverseBits (Int16 val) noexcept |
Reverses the order of the bits of an Int16. | |
constexpr wchar_t | ReverseBits (wchar_t val) noexcept |
constexpr UInt32 | ReverseBits (UInt32 val) noexcept |
Reverses the order of the bits of an UInt32. | |
constexpr Int32 | ReverseBits (Int32 val) noexcept |
Reverses the order of the bits of an Int32. | |
constexpr long | ReverseBits (long val) noexcept |
Reverses the order of the bits of a long. | |
constexpr unsigned long | ReverseBits (unsigned long val) noexcept |
Reverses the order of the bits of an unsigned long. | |
constexpr UInt64 | ReverseBits (UInt64 val) noexcept |
Reverses the order of the bits of an UInt64. | |
constexpr Int64 | ReverseBits (Int64 val) noexcept |
Reverses the order of the bits of an Int64. | |
constexpr Single | ReverseBits (float val) noexcept |
Reverses the order of the bits of a float. | |
constexpr Double | ReverseBits (double val) noexcept |
Reverses the order of the bits of a double. | |
template<IntegerType T> | |
constexpr bool | IndexOfBitFromLSB (unsigned long *index, T bits) |
Search the mask data from least significant bit (LSB) to the most significant bit (MSB) for a set bit (1). | |
template<IntegerType T> | |
constexpr std::optional< unsigned long > | IndexOfBitFromLSB (T bits) |
Search the mask data from least significant bit (LSB) to the most significant bit (MSB) for a set bit (1). | |
template<IntegerType T> | |
constexpr bool | IndexOfBitFromMSB (unsigned long *index, T bits) |
Search the mask data from most significant bit (MSB) to least significant bit (LSB) for a set bit (1). | |
template<IntegerType T> | |
constexpr std::optional< unsigned long > | IndexOfBitFromMSB (T bits) |
Search the mask data from most significant bit (MSB) to least significant bit (LSB) for a set bit (1). | |
constexpr UInt64 | CreateBitMask64 (unsigned numberOfBitsToSet) noexcept |
Creates a bit-mask. | |
constexpr UInt32 | CreateBitMask32 (unsigned numberOfBitsToSet) noexcept |
Creates a bit-mask with all the bits - up to, and including, the bit at bitIndex. | |
constexpr UInt64 | ExtractBits64 (UInt64 value, UInt32 start, UInt32 len) noexcept |
Extracts contiguous bits from value. | |
constexpr UInt32 | ExtractBits32 (UInt32 value, UInt32 start, UInt32 len) noexcept |
Extracts contiguous bits from value. | |
template<size_t N> | |
const void * | AlignTo (const void *address) |
Calculates the address that is aligned on an N byte boundary greater, or equal, to address . | |
template<size_t N> | |
void * | AlignTo (void *address) |
Calculates the address that is aligned on an N byte boundary greater, or equal, to address . | |
template<size_t N> | |
size_t | AlignedPaddingFor (const void *address) |
Calculates the number of bytes between the argument address and an address that is aligned on an N byte boundary greater, or equal, to address . | |
template<typename T > requires ( IsFloatingPoint<std::remove_cvref_t<T>> || std::is_enum_v<std::remove_cvref_t<T>> ) | |
constexpr T | ByteSwap (const T value) noexcept |
Reverses the bytes of a floating point value, or an enum. | |
template<typename T1 , typename T2 > requires ( sizeof( T2 ) == 8 ) && ( std::is_same_v<Int32, T1> || std::is_same_v<UInt32, T1> ) && requires( T2 t2 ) { { std::bit_cast< UInt64 >( t2 ) }->std::convertible_to<UInt64>; } | |
constexpr T1 | GetHigh32Bits (T2 val) noexcept |
template<typename T1 , typename T2 > requires ( sizeof( T2 ) == 8 ) && ( std::is_same_v<Int32, T1> || std::is_same_v<UInt32, T1> ) && requires( T2 t2 ) { { std::bit_cast< UInt64 >( t2 ) }->std::convertible_to<UInt64>; } | |
constexpr T2 | SetHigh32Bits (T2 x, T1 value) noexcept |
template<typename T1 , typename T2 > requires ( sizeof( T2 ) == 8 ) && ( std::is_same_v<Int32, T1> || std::is_same_v<UInt32, T1> ) && requires( T2 t2 ) { { std::bit_cast< UInt64 >( t2 ) }->std::convertible_to<UInt64>; } | |
constexpr T1 | GetLow32Bits (T2 val) noexcept |
template<typename T1 , typename T2 > requires ( sizeof( T2 ) == 8 ) && ( std::is_same_v<Int32, T1> || std::is_same_v<UInt32, T1> ) && requires( T2 t2 ) { { std::bit_cast< UInt64 >( t2 ) }->std::convertible_to<UInt64>; } | |
constexpr T2 | SetLow32Bits (T2 x, T1 value) noexcept |
template<typename T1 , typename T2 , typename T3 > requires ( sizeof( T1 ) == 8 ) && ( std::is_same_v<Int32, T2> || std::is_same_v<UInt32, T2> ) && ( std::is_same_v<Int32, T3> || std::is_same_v<UInt32, T3> ) && requires( UInt64 v1 ) { { std::bit_cast< T1 >( v1 ) }->std::same_as<T1>; } | |
constexpr T1 | From32BitsTo64Bits (T2 high32Bits, T3 low32Bits) noexcept |
constexpr int | Exponent (double value) noexcept |
constexpr int | Exponent (float v) noexcept |
constexpr UInt64 | Significand (double value) noexcept |
constexpr UInt32 | Significand (float v) noexcept |
constexpr UInt64 | FastSignBit (double value) |
constexpr UInt32 | FastSignBit (float v) |
void | MemCopy (char *dest, const char *source, size_t length) noexcept |
void | MemCopy (wchar_t *dest, const wchar_t *source, size_t length) noexcept |
void | MemMove (char *dest, const char *source, size_t length) noexcept |
void | MemMove (wchar_t *dest, const wchar_t *source, size_t length) noexcept |
void | MemSet (char *dest, char value, size_t length) noexcept |
void | MemSet (wchar_t *dest, wchar_t value, size_t length) noexcept |
int | MemCmp (const char *first, const char *second, size_t length) |
int | MemCmp (const wchar_t *first, const wchar_t *second, size_t length) |
char * | MemChr (char *buffer, int value, size_t bufferSize) noexcept |
const char * | MemChr (const char *buffer, int value, size_t bufferSize) noexcept |
wchar_t * | MemChr (wchar_t *buffer, int value, size_t bufferSize) noexcept |
const wchar_t * | MemChr (const wchar_t *buffer, int value, size_t bufferSize) noexcept |
template<typename T , size_t N> requires ( std::is_same_v<char, std::remove_cv_t<T>> == false && std::is_same_v<wchar_t, std::remove_cv_t<T>> == false ) | |
constexpr size_t | LengthOf (T(&array)[N]) noexcept |
template<typename T > requires requires( T container ) { { container.size( ) } -> std::convertible_to<size_t>; } | |
constexpr size_t | LengthOf (const T &container) noexcept |
template<typename T > requires std::is_same_v<T, char> || std::is_same_v<T, wchar_t> | |
constexpr size_t | LengthOf (const T *str) noexcept |
constexpr int | Compare (nullptr_t s1, nullptr_t s2) noexcept |
constexpr int | Compare (nullptr_t s1, const char *s2) noexcept |
constexpr int | Compare (const char *s1, nullptr_t s2) noexcept |
constexpr int | Compare (const char *s1, const char *s2) noexcept |
constexpr int | Compare (nullptr_t s1, const wchar_t *s2) noexcept |
constexpr int | Compare (const wchar_t *s1, nullptr_t s2) noexcept |
constexpr int | Compare (const wchar_t *s1, const wchar_t *s2) noexcept |
template<typename T > requires std::is_integral_v<T> || std::is_floating_point_v<T> | |
constexpr int | Compare (T v1, T v2) noexcept |
template<typename T > requires requires ( const T& t1, const T& t2 ) { { t1.CompareTo( t2 ) } ->std::convertible_to<int>; } | |
constexpr int | Compare (T first, T second) noexcept |
template<typename T1 , typename T2 > requires requires( const T1& t1, const T2& t2 ) { { t1.compare( t2 ) } ->std::convertible_to<int>; } | |
int | Compare (const T1 &v1, const T2 &v2) noexcept |
template<typename T > requires std::is_floating_point_v<T> | |
constexpr bool | AreNearlyEqual (T a, T b, T smallNumber=static_cast< T >(0.0001)) noexcept |
template<typename T > requires IsInteger<T> | |
constexpr bool | IsPowerOfTwo (T v) noexcept |
template<typename T > requires IsInteger<T> | |
constexpr bool | IsPowerOf2 (T v) noexcept |
template<typename T > requires std::is_enum_v<std::remove_cvref_t<T>> | |
constexpr bool | IsPowerOfTwo (T v) noexcept |
template<typename T > requires std::is_enum_v<std::remove_cvref_t<T>> | |
constexpr bool | IsPowerOf2 (T v) noexcept |
constexpr Byte | NextPowerOfTwo (Byte v) noexcept |
constexpr SByte | NextPowerOfTwo (SByte v) noexcept |
constexpr Int16 | NextPowerOfTwo (Int16 v) noexcept |
constexpr UInt16 | NextPowerOfTwo (UInt16 v) noexcept |
constexpr Int32 | NextPowerOfTwo (Int32 v) noexcept |
constexpr UInt32 | NextPowerOfTwo (UInt32 v) noexcept |
constexpr Int64 | NextPowerOfTwo (Int64 v) noexcept |
constexpr UInt64 | NextPowerOfTwo (UInt64 v) noexcept |
template<typename Fn > | |
Internal::FinallyImpl< Fn > | Finally (Fn &&Func) |
Variables | |
constexpr UInt8 | MaxUInt8 = ( ( UInt8 )~( ( UInt8 )0 ) ) |
constexpr Int8 | MaxInt8 = ( ( Int8 )( MaxUInt8 >> 1 ) ) |
constexpr Int8 | MinInt8 = ( ( Int8 )~MaxInt8 ) |
constexpr UInt16 | MaxUInt16 = ( ( UInt16 )~( ( UInt16 )0 ) ) |
constexpr Int16 | MaxInt16 = ( ( Int16 )( MaxUInt16 >> 1 ) ) |
constexpr Int16 | MinInt16 = ( ( Int16 )~MaxInt16 ) |
constexpr UInt32 | MaxUInt32 = ( ( UInt32 )~( ( UInt32 )0 ) ) |
constexpr Int32 | MaxInt32 = ( ( Int32 )( MaxUInt32 >> 1 ) ) |
constexpr Int32 | MinInt32 = ( ( Int32 )~MaxInt32 ) |
constexpr UInt64 | MaxUInt64 = ( ( UInt64 )~( ( UInt64 )0 ) ) |
constexpr Int64 | MaxInt64 = ( ( Int64 )( MaxUInt64 >> 1 ) ) |
constexpr Int64 | MinInt64 = ( ( Int64 )~MaxInt64 ) |
constexpr ULong32 | MaxULong32 = ( ( ULong32 )~( ( ULong32 )0 ) ) |
constexpr Long32 | MaxLong32 = ( ( Long32 )( MaxULong32 >> 1 ) ) |
constexpr Long32 | MinLong32 = ( ( Long32 )~MaxLong32 ) |
constexpr ULong64 | MaxULong64 = ( ( ULong64 )~( ( ULong64 )0 ) ) |
constexpr Long64 | MaxLong64 = ( ( Long64 )( MaxULong64 >> 1 ) ) |
constexpr Long64 | MinLong64 = ( ( Long64 )~MaxLong64 ) |
constexpr ULongLong | MaxULongLong = ( ( ULongLong )~( ( ULongLong )0 ) ) |
constexpr LongLong | MaxLongLong = ( ( LongLong )( MaxULongLong >> 1 ) ) |
constexpr LongLong | MinLongLong = ( ( LongLong )~MaxLongLong ) |
constexpr SizeT | MaxSizeT = ( ( SizeT )~( ( SizeT )0 ) ) |
constexpr SSizeT | MaxSSizeT = ( ( SSizeT )( MaxSizeT >> 1 ) ) |
constexpr SSizeT | MinSSizeT = ( ( SSizeT )~MaxSSizeT ) |
constexpr UInt | MaxUInt = ( ( UInt )~( ( UInt )0 ) ) |
constexpr Int | MaxInt = ( ( Int )( MaxUInt >> 1 ) ) |
constexpr Int | MinInt = ( ( Int )~MaxInt ) |
constexpr DWord32 | MaxDWord32 = ( ( DWord32 )~( ( DWord32 )0 ) ) |
constexpr DWord64 | MaxDWord64 = ( ( DWord64 )~( ( DWord64 )0 ) ) |
template<typename T > | |
constexpr bool | IsNotBoolean = std::is_same_v<std::remove_cvref_t<T>, bool> == false |
template<typename T > | |
constexpr bool | IsBoolean = std::is_same_v<std::remove_cvref_t<T>, bool> |
template<typename T > | |
constexpr bool | IsInteger = std::is_integral_v<std::remove_cvref_t<T>> && IsBoolean<T> == false |
template<typename T > | |
constexpr bool | IsSignedInteger = IsInteger<std::remove_cvref_t<T>> && std::is_signed_v<std::remove_cvref_t<T>> |
template<typename T > | |
constexpr bool | IsUnsignedInteger = IsInteger<T> && std::is_unsigned_v<std::remove_cvref_t<T>> |
template<typename T > | |
constexpr bool | IsFloatingPoint = std::is_floating_point_v<std::remove_cvref_t<T>> |
template<typename T > | |
constexpr bool | IsArithmetic = IsInteger<T> || IsFloatingPoint<T> |
template<typename T , typename U = MakeUnsigned< std::remove_cvref_t<T> >> | |
constexpr U | FractionMask = std::numeric_limits<std::remove_cvref_t<T>>::max( ) |
template<typename T , typename U = MakeUnsigned< std::remove_cvref_t<T> >> | |
constexpr U | ExponentMask = 0 |
template<> | |
constexpr UInt32 | FractionMask< float, UInt32 > = std::bit_cast< UInt32 >( 0b00000000011111111111111111111111 ) |
template<> | |
constexpr UInt32 | ExponentMask< float, UInt32 > = std::bit_cast< UInt32 >( 0b01111111100000000000000000000000 ) |
template<> | |
constexpr UInt64 | FractionMask< double, UInt64 > = std::bit_cast< UInt64 >( 0b0000000000001111111111111111111111111111111111111111111111111111 ) |
template<> | |
constexpr UInt64 | ExponentMask< double, UInt64 > = std::bit_cast< UInt64 >( 0b0111111111110000000000000000000000000000000000000000000000000000 ) |
template<size_t N> | |
constexpr auto | BitMask_v = BitMask<N>::value |
using Harlinn::Common::BitMask_t = typename BitMask<N>::type |
using Harlinn::Common::Boolean = bool |
using Harlinn::Common::Byte = unsigned char |
using Harlinn::Common::Char = char |
using Harlinn::Common::Char16 = wchar_t |
using Harlinn::Common::Char32 = UInt32 |
using Harlinn::Common::Char8 = char |
using Harlinn::Common::Double = double |
using Harlinn::Common::DWord = unsigned long |
using Harlinn::Common::DWord32 = unsigned long |
using Harlinn::Common::DWord64 = unsigned long |
using Harlinn::Common::Int = int |
using Harlinn::Common::Int16 = short |
using Harlinn::Common::Int32 = int |
using Harlinn::Common::Int64 = long long |
using Harlinn::Common::Int8 = signed char |
using Harlinn::Common::Long32 = long |
using Harlinn::Common::Long64 = long long |
using Harlinn::Common::LongLong = long long |
using Harlinn::Common::MakeUnsigned = typename Internal::MakeUnsignedHelper< sizeof( T ) >::Type |
using Harlinn::Common::Nullable = std::optional<T> |
using Harlinn::Common::SByte = signed char |
using Harlinn::Common::Single = float |
using Harlinn::Common::SizeT = size_t |
using Harlinn::Common::ssize_t = std::make_signed_t<size_t> |
using Harlinn::Common::SSizeT = ssize_t |
using Harlinn::Common::UInt = unsigned int |
using Harlinn::Common::uint = unsigned int |
using Harlinn::Common::UInt16 = unsigned short |
using Harlinn::Common::UInt32 = unsigned int |
using Harlinn::Common::UInt64 = unsigned long long |
using Harlinn::Common::UInt8 = unsigned char |
using Harlinn::Common::ULong32 = unsigned long |
using Harlinn::Common::ULong64 = unsigned long long |
using Harlinn::Common::ULongLong = unsigned long long |
using Harlinn::Common::ushort = unsigned short |
using Harlinn::Common::WideChar = wchar_t |
|
inline |
Calculates the number of bytes between the argument address
and an address that is aligned on an N
byte boundary greater, or equal, to address
.
N |
address |
|
inline |
Calculates the address that is aligned on an N
byte boundary greater, or equal, to address
.
N | The requested alignment. |
address | The address to calculate the alignment for. |
|
inline |
Calculates the address that is aligned on an N
byte boundary greater, or equal, to address
.
N | The requested alignment. |
address | The address to calculate the alignment for. |
|
constexprnoexcept |
|
inlineconstexprnoexcept |
Reverses the bytes of a floating point value, or an enum.
T | A floating point type, or an enum type. |
value | The value. |
|
inlineconstexpr |
Reverses the order of bytes in an integer.
T | An integral type, normally deduced from the argument. |
value | An integral value. |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
constexpr |
|
constexpr |
|
constexpr |
|
inlineconstexprnoexcept |
Creates a bit-mask with all the bits - up to, and including, the bit at bitIndex.
bitIndex | The number of bits to set. The value of numberOfBitsToSet must be in the range [1,32] |
|
inlineconstexprnoexcept |
Creates a bit-mask.
bitIndex | The number of bits to set. The value of numberOfBitsToSet must be in the range [1,64] |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Extracts contiguous bits from value.
value | |
start | 0 based index of the least significant bit to extract. |
len | Number of bits to extract, |
|
inlineconstexprnoexcept |
Extracts contiguous bits from value.
value | |
start | 0 based index of the least significant bit to extract. |
len | Number of bits to extract, |
|
inlineconstexpr |
|
constexpr |
|
inline |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
constexpr |
Search the mask data from least significant bit (LSB) to the most significant bit (MSB) for a set bit (1).
bits | The value to search. |
|
constexpr |
Search the mask data from least significant bit (LSB) to the most significant bit (MSB) for a set bit (1).
index | Pointer to a value that will receive the zero based index of the of the bit, if found. |
bits | The value to search. |
|
constexpr |
Search the mask data from most significant bit (MSB) to least significant bit (LSB) for a set bit (1).
bits | The value to search. |
|
constexpr |
Search the mask data from most significant bit (MSB) to least significant bit (LSB) for a set bit (1).
index | Pointer to a value that will receive the zero based index of the of the bit, if found. |
bits | The value to search. |
|
constexpr |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
constexpr |
|
inlinenodiscardconstexprnoexcept |
|
inlinenodiscardconstexprnoexcept |
|
inlinenodiscardconstexprnoexcept |
|
constexpr |
Creates a bitmask with the N
left-most bits set to 1, and all other bits set to 0.
T | An unsigned integral type. |
N | The number if rightmost bits to set. |
|
constexpr |
Creates a bitmask with the N
left-most bits set to 0, and all other bits set to 1.
T | An unsigned integral type. |
N | The number if rightmost bits to clear. |
|
constexpr |
Creates a bitmask with the N
right-most bits set to 1, and all other bits set to 0.
T | An unsigned integral type. |
N | The number if rightmost bits to set. |
|
constexpr |
Creates a bitmask with the N
right-most bits set to 0, and all other bits set to 1.
T | An unsigned integral type. |
N | The number if rightmost bits to clear. |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
constexpr |
|
constexpr |
|
constexpr |
Reverses the order of the bits of a byte.
|
inlineconstexprnoexcept |
Reverses the order of the bits of a char.
|
inlineconstexprnoexcept |
Reverses the order of the bits of a double.
|
inlineconstexprnoexcept |
Reverses the order of the bits of a float.
Reverses the order of the bits of an Int16.
Reverses the order of the bits of an Int32.
Reverses the order of the bits of an Int64.
|
inlineconstexprnoexcept |
Reverses the order of the bits of a long.
Reverses the order of the bits of a SByte.
Reverses the order of the bits of an UInt16.
Reverses the order of the bits of an UInt32.
Reverses the order of the bits of an UInt64.
|
inlineconstexprnoexcept |
Reverses the order of the bits of an unsigned long.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |