OpenTTD Source 20250205-master-gfd85ab1e2c
|
Type (helpers) for enums. More...
Go to the source code of this file.
Data Structures | |
struct | is_enum_incrementable< enum_type > |
Trait to enable prefix/postfix incrementing operators. More... | |
class | EnumBitSet< Tenum, Tstorage > |
Enum-as-bit-set wrapper. More... | |
Macros | |
#define | DECLARE_INCREMENT_DECREMENT_OPERATORS(enum_type) |
For some enums it is useful to have pre/post increment/decrement operators. | |
#define | DECLARE_ENUM_AS_BIT_SET(enum_type) |
Operators to allow to work with enum as with type safe bit set in C++. | |
#define | DECLARE_ENUM_AS_ADDABLE(EnumType) |
Operator that allows this enumeration to be added to any other enumeration. | |
Functions | |
template<typename enum_type > | |
constexpr std::underlying_type_t< enum_type > | to_underlying (enum_type e) |
Implementation of std::to_underlying (from C++23) | |
template<typename enum_type , std::enable_if_t< is_enum_incrementable_v< enum_type >, bool > = true> | |
constexpr enum_type & | operator++ (enum_type &e) |
Prefix increment. | |
template<typename enum_type , std::enable_if_t< is_enum_incrementable_v< enum_type >, bool > = true> | |
constexpr enum_type | operator++ (enum_type &e, int) |
Postfix increment, uses prefix increment. | |
template<typename enum_type , std::enable_if_t< is_enum_incrementable_v< enum_type >, bool > = true> | |
constexpr enum_type & | operator-- (enum_type &e) |
Prefix decrement. | |
template<typename enum_type , std::enable_if_t< is_enum_incrementable_v< enum_type >, bool > = true> | |
constexpr enum_type | operator-- (enum_type &e, int) |
Postfix decrement, uses prefix decrement. | |
template<typename T , class = typename std::enable_if_t<std::is_enum_v<T>>> | |
debug_inline constexpr bool | HasFlag (const T x, const T y) |
Checks if a value in a bitset enum is set. | |
template<typename T , class = typename std::enable_if_t<std::is_enum_v<T>>> | |
debug_inline constexpr void | ToggleFlag (T &x, const T y) |
Toggle a value in a bitset enum. | |
Variables | |
template<typename enum_type > | |
constexpr bool | is_enum_incrementable_v = is_enum_incrementable<enum_type>::value |
Type (helpers) for enums.
Definition in file enum_type.hpp.
#define DECLARE_ENUM_AS_ADDABLE | ( | EnumType | ) |
Operator that allows this enumeration to be added to any other enumeration.
Definition at line 78 of file enum_type.hpp.
#define DECLARE_ENUM_AS_BIT_SET | ( | enum_type | ) |
Operators to allow to work with enum as with type safe bit set in C++.
Definition at line 68 of file enum_type.hpp.
#define DECLARE_INCREMENT_DECREMENT_OPERATORS | ( | enum_type | ) |
For some enums it is useful to have pre/post increment/decrement operators.
Definition at line 61 of file enum_type.hpp.
|
constexpr |
Checks if a value in a bitset enum is set.
x | The value to check. |
y | The flag to check. |
Definition at line 91 of file enum_type.hpp.
Referenced by DrawLayoutLine(), SanitizeSingleStringHelper(), and ToggleFlag().
|
inlineconstexpr |
|
inlineconstexpr |
Postfix increment, uses prefix increment.
Definition at line 36 of file enum_type.hpp.
|
inlineconstexpr |
|
inlineconstexpr |
Postfix decrement, uses prefix decrement.
Definition at line 53 of file enum_type.hpp.
|
constexpr |
Implementation of std::to_underlying (from C++23)
Definition at line 15 of file enum_type.hpp.
Referenced by AfterLoadGame(), CmdPlantTree(), FinaliseHouseArray(), BaseMedia< GraphicsSet >::GetExtension(), GetGlobalVariable(), GetIndustryGamePlayProbability(), GetMaxTreeSpriteSize(), GetScaledIndustryGenerationProbability(), GetStationTileLayout(), IndustriesChangeInfo(), MakeStation(), MakeTreeTypeButtons(), MoveBuoysToWaypoints(), CreateScenarioWindow::OnClick(), BuildRoadToolbarWindow::OnPlaceMouseUp(), operator++(), operator--(), EnumBitSet< Tenum, Tstorage >::Reset(), ServerNetworkAdminSocketHandler::SendWelcome(), EnumBitSet< Tenum, Tstorage >::Set(), SetAnimatedTileState(), SetWaterTileType(), EnumBitSet< Tenum, Tstorage >::Test(), TestVehicleBuildProbability(), and TryBuildTownHouse().
|
constexpr |
Toggle a value in a bitset enum.
x | The value to change. |
y | The flag to toggle. |
Definition at line 102 of file enum_type.hpp.
References HasFlag().
|
constexpr |
Definition at line 24 of file enum_type.hpp.