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.
42 lines
500 B
C++
42 lines
500 B
C++
#include <cstdarg>
|
|
#include <cstdint>
|
|
#include <cstdlib>
|
|
#include <ostream>
|
|
#include <new>
|
|
|
|
#if defined(NOT_DEFINED)
|
|
static const int32_t DEFAULT_X = 8;
|
|
#endif
|
|
|
|
#if defined(DEFINED)
|
|
static const int32_t DEFAULT_X = 42;
|
|
#endif
|
|
|
|
#if (defined(NOT_DEFINED) || defined(DEFINED))
|
|
struct Foo {
|
|
int32_t x;
|
|
};
|
|
#endif
|
|
|
|
#if defined(NOT_DEFINED)
|
|
struct Bar {
|
|
Foo y;
|
|
};
|
|
#endif
|
|
|
|
#if defined(DEFINED)
|
|
struct Bar {
|
|
Foo z;
|
|
};
|
|
#endif
|
|
|
|
struct Root {
|
|
Bar w;
|
|
};
|
|
|
|
extern "C" {
|
|
|
|
void root(Root a);
|
|
|
|
} // extern "C"
|