|
welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
|
The scope-aware registration oracle: Resolution widened with the member-alias registrations of one class. More...
#include <welder/carriage.hpp>
Static Public Member Functions | |
| static consteval bool | counts_as_registered (std::meta::info type, lang L) |
The scope-aware registration oracle: Resolution widened with the member-alias registrations of one class.
A member alias's weld-free participation is invisible from the target type (an alias is unrecoverable from the type it names), so the plain oracle cannot vouch for the types a class's own aliases register. The carriage therefore gates the class's members through this wrapper — Scope is the welded type being bound — which additionally counts (a) types a participating member alias of Scope registers, and (b) the nested-type chain re-run alias-aware, so an alias target's own nested types recurse through here too. Cross-class use of an alias-registered type stays trust_bindable territory, consistent with the namespace-alias blind spot.
Inherits Resolution so every participation hook (including an optional protected_participates) keeps working when this wrapper is threaded where a resolution is expected; only the oracle is shadowed.
| Resolution | the carriage's resolution policy. |
| Scope | the welded class whose members are being gated. |
Definition at line 221 of file carriage.hpp.
|
inlinestaticconsteval |
Definition at line 222 of file carriage.hpp.
References welder::is_nested_type(), welder::detail::nested_type_registered(), and welder::detail::registered_by_member_alias().