#include #include #include #include #include enum class Status : uint32_t { Ok, Err, }; struct Dep { int32_t a; float b; }; template struct Foo { X a; X b; Dep c; }; using IntFoo = Foo; using DoubleFoo = Foo; using Unit = int32_t; using SpecialStatus = Status; extern "C" { void root(IntFoo x, DoubleFoo y, Unit z, SpecialStatus w); } // extern "C"