Skip to content

C++ API Reference

The full C++ reference is generated by Doxygen from the real src/welder/** headers — public API, detail/ internals, and every template — read through welder's own INPUT_FILTER so the [[=welder::…]] docs come through, and themed to match this site.

What's in there

You'll find Examples
The welder::rod concept the emission contract every rod satisfies
The entry point welder::welder<Rod, Style, Carriage> (weld_type / weld_function / weld_variable / weld_namespace / weld_namespace_as_submodule / weld_module)
The carriage (traversal driver) welder::stitch_welding_carriage (default) / welder::tack_welding_carriagebasic_carriage<Resolution> (bind_type, bind_enum, bind_function, bind_variable, bind_namespace, build_module)
The reflection layer reflect.hpp, bind_traits.hpp, bindable.hpp, doc.hpp
The vocabulary lang.hpp, annotations.hpp
The pybind11 rod rods/python/pybind11/rod.hpp (welder::rods::pybind11::rod<>)
The nanobind rod rods/python/nanobind/rod.hpp (welder::rods::nanobind::rod<>)
The Lua rods rods/lua/sol2/rod.hpp (welder::rods::sol2::rod) / rods/lua/luabridge/rod.hpp (welder::rods::luabridge::rod)
The build-time rods rods/lua/luacats/rod.hpp (the ---@meta stub emitter) / rods/python/trampolines/rod.hpp (the trampoline generator)
The shared Python docstring styles rods/python/doc_style.hpp (welder::rods::python::google_style)
The name styles naming.hpp (welder::naming::snake_case, …) / rods/python/naming.hpp (welder::rods::python::pep8)
Internal helpers (detail/) included — EXTRACT_PRIVATE / INTERNAL_DOCS are on

Guide first, reference second

New to welder? Start with the Guide — it explains why each piece exists, with runnable examples. The Doxygen reference is the exhaustive what, best used once you know the shape of the library.

Not seeing the reference?

The reference is generated at build time. If the link above 404s, build the docs with Doxygen available:

cmake --preset welder-gcc16 -DWELDER_BUILD_DOCS=ON
cmake --build --preset welder-gcc16 --target welder-docs