welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
Loading...
Searching...
No Matches
module.hpp
Go to the documentation of this file.
1#pragma once
5
6namespace welder::inline v0 {
7namespace detail {
8
17template <class Default, class... Override>
19 using type = Default;
20};
21template <class Default, class First, class... Rest>
22struct module_welder<Default, First, Rest...> {
23 using type = First;
24};
25template <class Default, class... Override>
26using module_welder_t = typename module_welder<Default, Override...>::type;
27
28} // namespace detail
29} // namespace welder
30
78#define WELDER_MODULE(ns, rod, ...) \
79 WELDER_DETAIL_MODULE_ENTRY_##rod(ns __VA_OPT__(, ) __VA_ARGS__)
The stored forms of the annotation vocabulary.
typename module_welder< Default, Override... >::type module_welder_t
Definition module.hpp:26
Pick the entry macro's welder: the user's optional override, else the rod's default welder::welder<ro...
Definition module.hpp:18