A pinned array is an array which manages its own virtual memory.
@function TypePunning
Tuple helper functions and typedefs.
- Copyright
- (C) 2022 Individual contributors, see AUTHORS file
-
(C) 2018-2020 Individual contributors, see AUTHORS file
Function to implement type-punning, explanation here: http://mail-index.netbsd.org/tech-kern/2003/08/11/0001.html http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Optimize-Options.html#Optimize-Options
- Copyright
- (C) 2009 Radon Labs GmbH (C) 2013-2020 Individual contributors, see AUTHORS file
|
struct | _smallvector |
|
struct | _smallvector< TYPE, 0 > |
|
struct | AllocatorLock |
|
class | Array |
| Nebula's dynamic array class. More...
|
|
class | ArrayAllocator |
| The ArrayAllocator provides a variadic list of types which is to be contained in the allocator and fetching each value by providing the index into the list of types, which means the members are nameless. More...
|
|
class | ArrayAllocatorSafe |
| The ArrayAllocatorSafe provides a thread safe variadic list of types which is to be contained in the allocator and fetching each value by providing the index into the list of types, which means the members are nameless. More...
|
|
class | ArrayQueue |
|
class | ArrayStack |
| Nebula's small vector optimized array. More...
|
|
class | BitField |
| Implements large bit field. More...
|
|
class | Blob |
| The Util::Blob class encapsulates a chunk of raw memory into a C++ object which can be copied, compared and hashed. More...
|
|
class | Bvh |
|
class | Colour |
| For now just a wrapper around Math::vec4 for type safety. More...
|
|
class | CommandLineArgs |
| A universal cmd line argument parser. More...
|
|
class | Crc |
| Compute CRC checksums over a range of memory. More...
|
|
class | Delegate |
| Nebula delegate class, allows to store a function, method or lambda call into a C++ object for later execution. More...
|
|
class | Delegate< RETTYPE(ARGTYPES...)> |
|
class | Dictionary |
| A collection of key/value pairs with quick value retrieval by key at roughly O(log n). More...
|
|
class | FixedArray |
| Implements a fixed size one-dimensional array. More...
|
|
class | FixedPool |
| Implements a fixed size pool, from which objects of a specific type can be allocated and freed for reuse. More...
|
|
class | FixedTable |
| A fixed-size 2-dimensional array. More...
|
|
class | FourCC |
| A four-character-code is a quasi-human-readable 32-bit-id. More...
|
|
struct | get_template_type |
|
struct | get_template_type< C< I, T > & > |
| Get inner type of two types. More...
|
|
struct | get_template_type< C< I, T > > |
| Get inner type of two types. More...
|
|
struct | get_template_type< C< T > > |
| Get inner type of two types. More...
|
|
struct | get_template_type< C< T, I > & > |
| Get inner type of two types. More...
|
|
struct | get_template_type< C< T, I > > |
| Get inner type of two types. More...
|
|
struct | get_template_type< const C< T > & > |
| Get inner type of a constant ref outer type. More...
|
|
class | GlobalStringAtomTable |
| Global string atom table. More...
|
|
class | HashTable |
| Organizes key/value pairs by a hash code. More...
|
|
class | KeyValuePair |
| Key/Value pair objects are used by most assiociative container classes, like Dictionary or HashTable. More...
|
|
class | List |
| Implements a doubly linked list. More...
|
|
class | LocalStringAtomTable |
| Implements a thread-local string atom table which is used as a cache to prevent excessive locking when creating string atoms. More...
|
|
class | PinnedArray |
|
class | PriorityArray |
|
class | QuadTree |
|
class | Queue |
| Nebula's queue class (a FIFO container). More...
|
|
class | RandomNumberTable |
| A table-based random-number generator. More...
|
|
union | RandomUnion |
|
class | RingBuffer |
| A ring buffer stores up to a maximum number of elements in a circular fashion. More...
|
|
class | Round |
|
class | RunLengthCodec |
| A simple byte-based runlength encoder/decoder. More...
|
|
class | Set |
| A collection of unique values with quick lookup. More...
|
|
class | SimpleTree |
| A simple tree class which stores its nodes in Util::Arrays. More...
|
|
class | SparseTable |
| A 2D sparse table where many entries may be redundant and support for multiple entries per cell. More...
|
|
class | Stack |
| Nebula's stack class (a FILO container). More...
|
|
class | String |
| Nebula's universal string class. More...
|
|
class | StringAtom |
| A StringAtom. More...
|
|
class | StringAtomTableBase |
| This implements the base class for thread-local and global string atom table classes. More...
|
|
class | StringBuffer |
| Global string buffer for the StringAtom system. More...
|
|
class | StringMarshaler |
|
class | TrivialArray |
| Array class based on Util::Array for trivial and POD types that avoids any per element copying and constructor/destructor calls. More...
|
|
class | Variant |
| An "any type" variable. More...
|
|
|
constexpr uint64 | SetBit (uint64 mask, uint8 bit) |
|
constexpr bool | HasBit (uint64 mask, uint8 bit) |
|
constexpr uint32 | SetBit (uint32 mask, uint8 bit) |
|
constexpr bool | HasBit (uint32 mask, uint8 bit) |
|
constexpr uint16 | SetBit (uint16 mask, uint8 bit) |
|
constexpr bool | HasBit (uint16 mask, uint8 bit) |
|
constexpr int64 | SetBit (int64 mask, uint8 bit) |
|
constexpr bool | HasBit (int64 mask, uint8 bit) |
|
constexpr int32 | SetBit (int32 mask, uint8 bit) |
|
constexpr bool | HasBit (int32 mask, uint8 bit) |
|
constexpr int16 | SetBit (int16 mask, uint8 bit) |
|
constexpr bool | HasBit (int16 mask, uint8 bit) |
|
constexpr uint32 | CountBits (uint32 i) |
|
template<typename T > |
void | HashCombine (uint32_t &s, const T &v) |
| Combine hashes.
|
|
uint | PopCnt (uint value) |
|
uint64 | PopCnt (uint64 value) |
|
uint | FirstOne (uint value) |
|
uint | FirstOne (uint64 value) |
|
uint | LastOne (uint value) |
|
uint | LastOne (uint64 value) |
|
uint | Lsb (uint value, byte bit) |
|
uint | BitmaskConvert (uint mask, const uint *table, const uint numEntries=0xFFFFFFFF) |
|
| __ImplementInterfaceSingleton (Util::GlobalStringAtomTable) |
|
| __ImplementSingleton (Util::LocalStringAtomTable) |
|
uint | FastRandom () |
| XorShift128 implementation.
|
|
float | RandomFloat () |
| Thanks to Nic Werneck (https://xor0110.wordpress.com/2010/09/24/how-to-generate-floating-point-random-numbers-efficiently/)
|
|
float | RandomFloatNTP () |
| Produces an xorshift128 psuedo based floating point random number in range -1..1 Note that this is not a truely random random number generator.
|
|
bool | operator== (const String &a, const String &b) |
|
bool | operator== (const String &a, const char *cStr) |
|
bool | operator== (const char *cStr, const String &b) |
|
bool | operator== (const String &a, std::nullptr_t) |
|
bool | operator!= (const String &a, const String &b) |
|
bool | operator< (const String &a, const String &b) |
|
bool | operator> (const String &a, const String &b) |
|
bool | operator<= (const String &a, const String &b) |
|
bool | operator>= (const String &a, const String &b) |
|
static String | operator+ (const String &s0, const String &s1) |
|
Util::StringAtom | operator""_atm (const char *c) |
|
template<typename... T> |
constexpr Tuple< T... > | MakeTuple (const T &... args) |
|
template<int INDEX, typename... T> |
constexpr const std::tuple_element_t< INDEX, std::tuple< T... > > & | Get (const Tuple< T... > &tuple) |
|
template<typename A , typename B > |
constexpr Pair< A, B > | MakePair (const A &a, const B &b) |
|
template<int INDEX, typename A , typename B > |
constexpr const std::tuple_element_t< INDEX, std::tuple< A, B > > & | Get (const Pair< A, B > &pair) |
|
template<class... Ts, std::size_t... Is> |
void | alloc_for_each_in_tuple (std::tuple< Ts... > &tuple, std::index_sequence< Is... >) |
| Unpacks allocations for each member in a tuble.
|
|
template<class... Ts> |
void | alloc_for_each_in_tuple (std::tuple< Ts... > &tuple) |
| Entry point for above expansion function.
|
|
template<class... Ts, std::size_t... Is> |
void | clear_for_each_in_tuple (std::tuple< Ts... > &tuple, std::index_sequence< Is... >) |
| Unpacks allocations for each member in a tuple.
|
|
template<class... Ts> |
void | clear_for_each_in_tuple (std::tuple< Ts... > &tuple) |
| Entry point for above expansion function.
|
|
template<class... Ts, std::size_t... Is> |
void | move_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t to, uint32_t from, std::index_sequence< Is... >) |
| Entry point for moving an element between two indices.
|
|
template<class... Ts> |
void | move_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t to, uint32_t from) |
| Entry point for moving an element between two indices.
|
|
template<class... Ts, std::size_t... Is> |
void | erase_index_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i, std::index_sequence< Is... >) |
| Entry point for erasing an element.
|
|
template<class... Ts> |
void | erase_index_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i) |
| Entry point for erasing an element.
|
|
template<class... Ts, std::size_t... Is> |
void | erase_index_swap_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i, std::index_sequence< Is... >) |
| Entry point for erasing an element by swapping with the last and reducing size.
|
|
template<class... Ts> |
void | erase_index_swap_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i) |
| Entry point for erasing an element by swapping with the last and reducing size.
|
|
template<class... Ts, std::size_t... Is> |
void | erase_range_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t start, uint32_t end, std::index_sequence< Is... >) |
|
template<class... Ts> |
void | erase_range_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t start, uint32_t end) |
| Entry point for erasing a range of elements the last and reducing size.
|
|
template<class... Ts, std::size_t... Is, class... TYPES> |
void | set_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i, std::index_sequence< Is... >, TYPES const &... values) |
| Entry point for setting values in each array at an index.
|
|
template<class... Ts, class... TYPES> |
void | set_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t i, TYPES const &... values) |
| Entry point for setting values in each array at an index.
|
|
template<class... Ts, std::size_t... Is> |
void | reserve_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t size, std::index_sequence< Is... >) |
| Entry point for reserving in each array.
|
|
template<class... Ts> |
void | reserve_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t size) |
| Entry point for reserving in each array.
|
|
template<class... Ts, std::size_t... Is> |
void | set_size_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t size, std::index_sequence< Is... >) |
| Entry point for reserving in each array.
|
|
template<class... Ts> |
void | set_size_for_each_in_tuple (std::tuple< Ts... > &tuple, uint32_t size) |
| Entry point for reserving in each array.
|
|
template<typename A , typename B > |
A & | TypePunning (B &v) |
|
template<typename A , typename B > |
const A & | TypePunning (const B &v) |
|