REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
storage.hpp File Reference

Storage policies: where a program lives and how scratch is allocated. More...

#include "real/version.hpp"
#include <array>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <stdexcept>
#include <string>
#include <string_view>
#include "real/frontend/ast.hpp"
#include "real/frontend/compiler.hpp"
#include "real/engine/pike.hpp"
#include "real/core/program.hpp"
Include dependency graph for storage.hpp:

Go to the source code of this file.

Classes

struct  real::fixed_string< N >
 A fixed-size string usable as a non-type template parameter. More...
 
class  real::detail::static_vec< T, Cap >
 Fixed-capacity vector backed by an inline array (no heap). More...
 
class  real::detail::small_vec< T, InlineCapacity >
 Small-buffer-optimized vector for the dynamic hot paths. More...
 
struct  real::detail::small_vec< T, InlineCapacity >::inline_block
 Active member (inline buffer or heap pointer) per is_heap_ state. More...
 
union  real::detail::small_vec< T, InlineCapacity >::Storage
 
struct  real::detail::dynamic_storage
 Storage policy backing real::regex: heap, sized once at run time. More...
 
struct  real::detail::dynamic_storage::state_type
 VM scratch state: SBO thread lists, working slots and eps stack. More...
 
struct  real::detail::static_storage< Pat, F >
 Storage policy backing real::static_regex: compile-time, stateless. More...
 
struct  real::detail::static_storage< Pat, F >::state_type
 VM scratch state, all fixed-capacity (zero heap). More...
 

Namespaces

namespace  real
 
namespace  real::detail
 

Detailed Description

Storage policies: where a program lives and how scratch is allocated.

Exact sizing uses C++20 transient constexpr allocation: the program is built once to measure each array, then rebuilt to fill it.

Definition in file storage.hpp.