#include "farm_ng/core/enum/enum_without_iostream.h"
#include <istream>
#include <ostream>
Go to the source code of this file.
◆ FARM_ENUM
#define FARM_ENUM |
( |
|
EnumName, |
|
|
|
... |
|
) |
| |
Value:
FARM_ENUM_IOSTREAM_OVERLOAD(EnumName)
◆ FARM_ENUM_DEF
#define FARM_ENUM_DEF |
( |
|
EnumName, |
|
|
|
... |
|
) |
| |
Value:
FARM_ENUM_IOSTREAM_OVERLOAD(EnumName)
◆ FARM_ENUM_IOSTREAM_OVERLOAD
#define FARM_ENUM_IOSTREAM_OVERLOAD |
( |
|
EnumName | ) |
|
Value: namespace enum_wrapper_ { \
inline
auto operator<<(std::ostream &os, EnumName##Impl value) \
-> std::ostream & { \
os << toPretty(value); \
return os; \
} \
inline auto operator>>(std::istream &is, EnumName##Impl &value) \
-> std::istream & { \
if (!trySetFromString(value,
str)) { \
throw std::runtime_error(std::string(
"Bad Value: ") +
str); \
} \
return is; \
} \
}