welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
Loading...
Searching...
No Matches
welder::two_phase_rod Concept Reference

Does rod B opt into the driver's two-phase namespace sweep — register every welded type's NAME, bind the opaque containers that use them, then fill members? More...

#include <welder/concepts.hpp>

Concept definition

template<class B>
concept two_phase_rod = requires(typename B::module_type& m, const char* s) {
B::template reopen_class<detail::any_type>(m, s);
}
Does rod B opt into the driver's two-phase namespace sweep — register every welded type's NAME,...
Definition concepts.hpp:101

Detailed Description

Does rod B opt into the driver's two-phase namespace sweep — register every welded type's NAME, bind the opaque containers that use them, then fill members?

True iff B declares the optional reopen_class hook (retrieve an already-registered class as a fillable handle). The Python runtime rods do, so a container-typed member/signature never spells a raw C++ name in a generated stub (a def-time-ordering artifact); the Lua runtime rods and the text-emitting rods do not, and keep the single-pass sweep. Shape-probed with welder::detail::any_type, like welder::caster_oracle.

Template Parameters
Bthe rod type.

Definition at line 101 of file concepts.hpp.