Files
cbindgen/tests/expectations/must-use.cpp
T
Kartikaya Gupta 5f6b223237 Add ostream header to all generated .cpp files.
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.
2020-10-01 12:22:51 +02:00

39 lines
639 B
C++

#define MUST_USE_FUNC __attribute__((warn_unused_result))
#define MUST_USE_STRUCT __attribute__((warn_unused))
#define MUST_USE_ENUM /* nothing */
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>
template<typename T>
struct MUST_USE_STRUCT MaybeOwnedPtr {
enum class MUST_USE_ENUM Tag : uint8_t {
Owned,
None,
};
struct Owned_Body {
T *_0;
};
Tag tag;
union {
Owned_Body owned;
};
};
template<typename T>
struct MUST_USE_STRUCT OwnedPtr {
T *ptr;
};
extern "C" {
MUST_USE_FUNC MaybeOwnedPtr<int32_t> maybe_consume(OwnedPtr<int32_t> input);
} // extern "C"