Go to the source code of this file.
Namespaces | |
namespace | Stroika::Foundation |
Typedefs | |
template<typename T = byte, size_t BUF_SIZE = StackBuffer_DefaultInlineSize<T> ()> | |
using | Stroika::Foundation::Memory::StackBuffer = InlineBuffer< T, BUF_SIZE > |
Store variable sized (BUF_SIZE elements) array on the stack (. | |
Variables | |
constexpr size_t | Stroika::Foundation::Memory::kStackBuffer_SizeIfLargerStackGuardCalled |
constexpr size_t | Stroika::Foundation::Memory::kStackBuffer_TargetInlineByteBufferSize = qStroika_Foundation_Common_Platform_Windows ? 2 * 1024 : 4 * 1024 |
Definition in file StackBuffer.h.
using Stroika::Foundation::Memory::StackBuffer = typedef InlineBuffer<T, BUF_SIZE> |
Store variable sized (BUF_SIZE elements) array on the stack (.
Typically, StackBuffer<> combines the performance of using a stack buffer (inline array on stack) to store arrays with the safety and flexability of using the free store (malloc).
Definition at line 59 of file StackBuffer.h.
|
constexpr |
On Windows, there is _chkstk which shows up in alot of profiles. Perhaps something similar for UNIX? Or just kernel does this automatically? Anyhow - target number we try - for performance reasons - to avoid more than this much in a stack frame.
https://www.codeguru.com/visual-studio/adventures-with-_chkstk/
Definition at line 25 of file StackBuffer.h.
|
constexpr |
Definition at line 33 of file StackBuffer.h.