Tags: mtnsat/better-enums
Tags
Tweak note about magic_enum Resolves aantron#88. [skip ci]
Version 0.11.2 Additions - Enable constexpr support on clang-cl (aantron#26, Zsolt Parragi). - Enable constexpr support on VS 2017 (aantron#47, Zsolt Parragi). - _to_index, _from_index, and related functions (aantron#59, Piotr Kosek). - Specialize maps for descriptions of type wchar_t* (aantron#44, @coderChenY). Bugs fixed - Move stream I/O operators out of the global namespace (aantron#22, Alex Cheparukhin). - Internal namespaces used by Better Enums cause name clashes (aantron#22, Alex Cheparukhin). - Unused function warnings on comparison operators (aantron#27, Alex Cheparukhin). - Unused variables with names cause warnings on MSVC (aantron#41, Anuradha Dissanayake). - VS 2015 warns when not using enum class (aantron#41, Anuradha Dissanayake). - Docs: note strongly that warning C4062 has to be enabled on MSVC for exhaustiveness checking (aantron#49). - Identifiers that begin with an underscore followed by a capital letter are reserved (aantron#61, Felix Dombek). - Internal values array initialization not accepted as constexpr by VS 2017 (aantron#53, @D4koon). Miscellaneous - Syntax-highlight the code in the README (aantron#67, Wojciech Bartnik). - Remove tabs that have crept into enum.h (aantron#72, @Xeverous).
Version 0.11.0. - Interface-breaking change: renamed ENUM to BETTER_ENUM. - Added ability to change default constructor with a BETTER_ENUM_DEFAULT_CONSTRUCTOR(Enum) macro. The default default constructor is (and was) private, to prevent its use. - Implemented C++17 enum reflection proposal N4428. - Added bidirectional maps between enums and other types (requires C++14). - Eliminated support for non-integral underlying types. - Eliminated some potential name clashes of internal names with user enumerands. - Added testing on GCC 5.2 and Clang 3.7.
0.10.0 - Interface-breaking change: _size is now a function. _size_constant is the constant. This is for conceptual consistency. - Made ENUM usable in namespaces besides the global namespace. - Generalized the underlying type to be any literal type, so long as the user gives a way to map it to an integral type. - Basic support for stream operators. - Improved support for limited freestanding environments, namely compilation with exceptions disabled, and Better Enums no longer uses the heap, which it previously did during initialization. Also, did a bunch of research that didn't turn into code. - Tried, and so far failed, to find a sorting or hashing algorithm fast enough to use at compile time. - Looked more thoroughly into making ENUM usable at class scope, now convinced even more that it is probably impossible. - Various other attempted improvements that have convinced me the design is near to the best possible.
Version 0.9.0. This release is meant to be the first "complete" release of the library. Major changes include: - Support for C++98 and Microsoft Visual C++. - Switch to standard C++ only (for C++11, C++98 usage requires variadic macros). No more weak symbols. - Ability to do everything at compile time, including trimming initializers. This makes _to_string constexpr. - Non-throwing versions of conversion functions. - The library is now a single header file. There are some interface-breaking changes: - to_string and to_integral are now prefixed with underscores. Not having them prefixed before was an oversight. - Built-in range properties have been removed. They can be easily computed by the user, if needed, as shown in the documentation. - _names, _values, and _name are now functions instead of values. This is a result of how weak symbols were eliminated.