Ideally we'd just do this when we need it, but the ostream derivation will be controlled by both global config and per-structure config, so it's hard to know exactly when we need it and when we don't.
41 lines
460 B
C++
41 lines
460 B
C++
#include <cstdarg>
|
|
#include <cstdint>
|
|
#include <cstdlib>
|
|
#include <ostream>
|
|
#include <new>
|
|
|
|
template<typename T>
|
|
struct Foo {
|
|
const int32_t *something;
|
|
};
|
|
|
|
union Bar {
|
|
enum class Tag : uint8_t {
|
|
Min,
|
|
Max,
|
|
Other,
|
|
};
|
|
|
|
struct Min_Body {
|
|
Tag tag;
|
|
Foo<Bar> _0;
|
|
};
|
|
|
|
struct Max_Body {
|
|
Tag tag;
|
|
Foo<Bar> _0;
|
|
};
|
|
|
|
struct {
|
|
Tag tag;
|
|
};
|
|
Min_Body min;
|
|
Max_Body max;
|
|
};
|
|
|
|
extern "C" {
|
|
|
|
void root(Bar b);
|
|
|
|
} // extern "C"
|