|
Flow
Documentation for the Flow C++ Library
|
| Nflow | |
| CAppend | Append a value to the list |
| CAppend< NonTypeList< vs... >, v > | |
| CArenaMemoryResource | A linear arena memory resource that allocates memory sequentially from a fixed buffer. Throws std::bad_alloc if there is insufficient space for the requested allocation |
| CBinaryHeap | A binary min-heap container. Supports custom comparator and allocator |
| CBuddyMemoryResource | Fixed-size buddy allocator implementing the MemoryResource interface. The min block size is 1 byte, the maximum is 1<<64 bytes |
| CBuddyBlock | |
| CConcurrentFlexQueue | A thread-safe concurrent queue with flexible push and pop operations |
| CNode | |
| CConcurrentQueue | |
| CCountedValueViewIterator | Iterator that returns a constant value a fixed number of times. Useful for creating a virtual range of repeated values without overhead |
| CDebugClass | Debug class to track copy/move operations. Some operations may be optimized away in release builds |
| CDefaultMemoryResource | A default memory resource that wraps global ::operator new and ::operator delete |
| CDisjointSet | A disjoint union set that uses path compression and union by rank |
| CNode | |
| CIntegralIterator | An iterator that can iterate through a range of integer. Useful when the search space is too big to fit into a container |
| CIsNonTypeList | |
| CIsNonTypeList< NonTypeList< vs... > > | |
| CMemoryResource | A memory resource holder interface for the PolymorphicAllocator. Responsible for allocate and deallocate raw memory |
| CMultiQueueThreadPool | A work-stealing multiqueue threadpool. Each worker thread has a thread_local task queue to reduce thread contention |
| CNonTypeList | |
| CPolymorphicAllocator | Polymorphic allocator wrapping a non-owning memory resource. Allocation strategy depends on the memory resource implementation |
| CPoolMemoryResource | A pool memory resource that manages fixed-size memory blocks from a pre-allocated buffer. The allocation size must be less or equal to the block size. The allocation alignment must be less or equal to the block alignment. Throws std::bad_alloc if the constraint is not met or run out of memory |
| CHeader | |
| CPopBack | Remove the last element from the list |
| CPopBack< NonTypeList< v > > | |
| CPopBack< NonTypeList< v, vs... > > | |
| CPopFront | Remove the first element from the list |
| CPopFront< NonTypeList< v, vs... > > | |
| CPrepend | Prepend a value to the list |
| CPrepend< NonTypeList< vs... >, v > | |
| CSegmentTree | A standard segment tree that supports O(log n) for point update and range query. The binary operation must be commutative |
| CSet | Set the element at the index to the new value in the list |
| CSet< NonTypeList< v, vs... >, index, sv > | |
| CSimpleThreadPool | A simple thread pool with fixed number of worker threads. All the threads poll tasks from a single queue. If all the threads are waiting, then the user must manually call runPendingTask() to resolve deadlock |
| CSplice | Splice out a list from the range [first, last) |
| CSplice< NonTypeList< v, vs... >, first, last > | |
| CSplice< NonTypeList< vs... >, first, last > | |
| CStackMemoryResource | A stack-based memory resource that allocates memory in a LIFO order from a fixed buffer. Deallocation must happen in reverse order of allocation. Throws std::bad_alloc if there is insufficient space for an allocation |
| CHeader | |
| CThreadTask | A task that can be execute by a thread. Internally, it uses type erasure to store a std::packaged_task. The memory is managed by std::unique_ptr |
| CThreadTaskImp | |
| CThreadTaskInterface | |
| CTimer | A simple timer to record timelapses. Uses steady_clock by default |
| CVector | |
| CVectorGrowthStrategy | |
| CDoubleExpand | |
| CFibonacciExpand | |
| CGoldenExpand | |
| CWorkStealingQueue |