|
KTL
|
A packed pointer-like type which takes advantage of any bits that don't get used due to alignment. More...
#include <packed_ptr.h>
Public Types | |
| using | ptr_type = PtrT |
| using | int_type = detail::underlying_type_t< IntT > |
Public Member Functions | |
| packed_ptr () noexcept | |
| packed_ptr (PtrT p, IntT value) noexcept | |
| packed_ptr (PtrT p) noexcept | |
| packed_ptr (IntT value) noexcept | |
| packed_ptr & | operator= (PtrT p) noexcept |
| packed_ptr & | operator= (IntT value) noexcept |
| template<typename Y = IntT, typename = std::enable_if_t<!std::is_same_v<Y, bool>, Y>> | |
| operator ptr_type () const noexcept | |
| template<typename Y = IntT, typename = std::enable_if_t<!std::is_same_v<Y, bool>, Y>> | |
| operator IntT () const noexcept | |
| operator bool () const noexcept | |
| ptr_type | operator-> () const noexcept |
| template<typename... Ts> | |
| decltype(auto) | operator() (Ts &&... args) const noexcept |
| ptr_type | get_ptr () const noexcept |
| IntT | get_int () const noexcept |
| void | set_ptr (PtrT p) noexcept |
| void | set_int (IntT value) noexcept |
Public Attributes | |
| decltype(*std::declval< PtrT >() | operator* )() const noexcept |
Static Public Attributes | |
| static constexpr uintmax_t | UsedBits = detail::bits_in_range(static_cast<int64_t>(Min), static_cast<int64_t>(Max)) |
| static constexpr uintmax_t | FreeBits = detail::log2(Alignment) |
Friends | |
| bool | operator== (packed_ptr pack, PtrT p) noexcept |
| bool | operator== (packed_ptr pack, IntT n) noexcept |
| bool | operator== (PtrT p, packed_ptr pack) noexcept |
| bool | operator== (IntT n, packed_ptr pack) noexcept |
A packed pointer-like type which takes advantage of any bits that don't get used due to alignment.
| PtrT | The pointer type to use |
| IntT | The integer type to use |
| using ktl::packed_ptr< PtrT, IntT, Min, Max, Alignment >::int_type = detail::underlying_type_t<IntT> |
| using ktl::packed_ptr< PtrT, IntT, Min, Max, Alignment >::ptr_type = PtrT |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineexplicitnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
friend |
|
friend |
|
friend |
|
friend |
|
staticconstexpr |
|
inlinenoexcept |
|
staticconstexpr |