Equinox-Engine
Magic Enum C++
Our great sponsors
Equinox-Engine | Magic Enum C++ | |
---|---|---|
2 | 40 | |
1 | 3,521 | |
- | - | |
0.0 | 7.7 | |
11 months ago | 7 days ago | |
C | C++ | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Equinox-Engine
-
which concerns of the game dev industry does the committee NOT address ?
My little toy engine I made had code for this. I had to rely on gnu extensions, but it worked ok. Then I would define them in lua from the c++ code so I could use them easily. https://github.com/floomby/Equinox-Engine/blob/main/enum_helper.hpp
Magic Enum C++
-
enum_name (yet another enum to/from string conversion utility >=C++11)
What does this have to offer over magic_enum?
-
quill v2.7.0 released - Asynchronous Low Latency C++ Logging Library
But it's a hack, and I prefer not to use hacks in production, because of their significant limitations:
-
Enums with methods
Why reinvent the wheel? magic_enum
-
Macro to write enum and converter from and to string
I strongly recommend that you instead use magic_enum::enum_cast
Magic Enum provides that.
-
New to Programming and Would Like a Code Review or Tips on Readability
While I can understand the sentiment behind that it makes for a poor solution because people seeing the enum will assume it's a valid entry. A better solution is to use something like magic enum for that case.
-
What are some cool modern libraries you enjoy using?
magic_enum by far. It has an extreme amount of black magic, and compiler specific stuff all abstracted away behind its extremely neat user interface.
-
what annoys you most while using c++?
magic_enum
-
Show HN: The Ultimate C++14 Enum Library
To my knowledge magic_enum has some severe limitations; for example, it limits the range of enum values, it cannot handle duplicate enum values, it uses compiler-specific hackes, etc. There is a list of all of them here. [1]
And I'm glad to see interest! I can definitely add string -> enum conversion—I'll see if I can do that right now in fact, it might not take long.
[1] https://github.com/Neargye/magic_enum/blob/master/doc/limita...
-
which concerns of the game dev industry does the committee NOT address ?
It also has really cruel limitations, defaulting to MAGIC_ENUM_RANGE_MAX = 128! It will quietly fail if you try to use this with Vulkan enums for example.
What are some alternatives?
Nameof C++ - Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum
Protobuf - Protocol Buffers - Google's data interchange format
cereal - A C++11 library for serialization
FlatBuffers - FlatBuffers: Memory Efficient Serialization Library
Boost.Serialization - Boost.org serialization module
pfr - std::tuple like methods for user defined types without any macro or boilerplate code
rttr - C++ Reflection Library
protozero - Minimalist protocol buffer decoder and encoder in C++
Bitsery - Your binary serialization library
cppbor - An implementation of cbor using C++ 17 variants
MessagePack - MessagePack implementation for C and C++ / msgpack.org[C/C++]
SBE - Simple Binary Encoding (SBE) - High Performance Message Codec