template<typename PcVec, typename SlotVec, typename MarkVec>
struct real::detail::basic_thread_list< PcVec, SlotVec, MarkVec >
One priority-ordered list of NFA threads (leftmost-greedy semantics).
mark is generation-stamped so clearing the list between positions is O(1).
- Template Parameters
-
| PcVec | Container of program counters. |
| SlotVec | Flattened capture slots (pcs.size() * slot_count). |
| MarkVec | Per-pc generation marks for O(1) dedup. |
template<typename PcVec , typename SlotVec , typename MarkVec >
Clears the list in O(1) by bumping the generation.
noinline: an inlined mark.assign (per-element construct_at loop) charges the class-scan routes on gcc/x86, which build no thread list. It pays only with the SBO mark table (alone, it costs more): keep both or neither.
- Parameters
-
| [in] | code_size | Number of instructions (sizes the mark table once). |