1
0
Fork 0
mirror of https://github.com/Neargye/magic_enum.git synced 2026-01-09 23:34:23 +00:00
Commit graph

360 commits

Author SHA1 Message Date
Pavel I. Kryukov
9d1cf196cf
Make enum_fuse typesafe (fixes #143) (#145) 2022-03-08 10:38:19 +02:00
neargye
785b3f253d clean-up 2022-03-08 10:35:13 +02:00
Bela Schaum
8267d2860b
remove std:: from optionals to enable again MAGIC_ENUM_USING_ALIAS_OPTIONAL (#154) 2022-03-05 21:56:17 +02:00
Pavel I. Kryukov
ec87fc976c
Convert std::enable_if_t to static_assert for cleaner error message (#146) 2022-02-19 12:26:06 +02:00
Bela Schaum
29285919fd
change std::size_t to std::uintmax_t (#141) 2022-02-18 23:37:24 +02:00
Bela Schaum
9268bb3042
Case insensivity based on #112 (#139) 2022-02-18 23:31:36 +02:00
Bela Schaum
07181c5a11
support gcc8 with defined MAGIC_ENUM_NO_CHECK_SUPPORT and with specialized magic_enum::customize::enum_name (#137) 2022-02-18 17:52:09 +02:00
neargye
4e39c3ba55 clean-up 2022-02-16 19:18:43 +02:00
neargye
756b139368 remove throw from enum_fuse 2022-02-16 19:01:14 +02:00
neargye
9bfb90760a clean-up 2022-02-11 18:54:59 +02:00
Pavel I. Kryukov
5444f00a04
Use bitwise OR for magic_enum::enum_fuse (#131) 2022-02-11 18:35:50 +02:00
neargye
e7b9231906 fix enum_fuse if values out of range 2022-02-11 01:14:05 +02:00
neargye
63ff515163 clean-up 2022-02-10 20:17:44 +02:00
Pavel I. Kryukov
1f8e29b140
Add enum fusing function (#127) 2022-02-10 19:58:59 +02:00
v1nh1shungry
22242a613a
fix enum_type_name (#129) 2022-02-06 21:59:53 +02:00
rpatters1
ab2bf820e1
remove static assert for static string because it does not solve issue (#125) 2022-01-29 18:46:28 +02:00
neargye
08089871af enum_range more snifae-friendly 2022-01-27 19:33:37 +02:00
neargye
9ed19fb9e9 move is_flags to customize::enum_range
force set the enum-flag true or false
2022-01-27 15:34:41 +02:00
rpatters1
a8c9e57fbe
fix #122 add static_assert to limit size of N in static_string (#123) 2022-01-25 20:14:23 +02:00
Daniil Goncharov
aecf0db795
New enum-flags API (#120) 2022-01-08 17:30:44 +02:00
neargye
e500ae7f00 fix flag::enum_value 2022-01-04 21:49:22 +02:00
neargye
f4738bef44 fix hard-limit on enum range 2021-11-26 11:15:46 +02:00
Florian Becker
5bc2689fa5
Some code quality (#110) 2021-11-05 19:24:11 +02:00
neargye
0325167113 add compile time get value 2021-10-09 02:13:27 +03:00
Komachin
38f86e4d09
Added support for non-ASCII characters (UNIX/Linux) (#95) 2021-08-09 17:44:30 +03:00
neargye
b19a54c272 clean-up 2021-08-04 16:30:10 +03:00
Alexander Karatarakis
41c916432b
Fix underflow in out of range check (#88)
* Special case bool in cmp_less to avoid msvc's warnings

* Fix underflow in out of range check

The previous fix addressed bool but it seems that was not the heart
of the issue.

The problem is that (lhs - 1) can underflow.

Another example of the check trigger when it shouldn't is:
uint8_t with min_value set to 0 and a value of uint8_t::max
lhs-1 would underflow and find max (see added test).

The issue happens when lhs == rhs. To avoid that situation: flip the if-else!
`cmp_less(rhs, lhs)`means that rhs is strictly less than lhs, so
the check will not trigger when lhs == rhs.

Also, cleanup the bool special-case, as it is no longer necessary.

Note: for the bug to manifest, it is important that the min
of the enums is customized to be 0, so corresponding enum_range
specializations need to be present in the regression tests.
2021-06-25 15:00:54 +03:00
neargye
739942ab7d fix enums with underlying type bool 2021-06-24 11:48:37 +03:00
neargye
3d1f6a5a2a v0.7.3 2021-06-21 21:00:39 +03:00
sajimon
081a77b96a
Add ability to include external configuration header (#86)
* Add ability to include external configuration header

* Add documentation regarding MAGIC_ENUM_CONFIG_FILE
2021-06-17 16:06:27 +03:00
jimmyorourke
8deb7f96e7
fix typo in comment (#81) 2021-05-07 11:16:24 +03:00
neargye
5091dc6acf fix using leak 2021-04-28 13:10:59 +03:00
neargye
5b282dd4e8 fix range check 2021-04-22 12:43:04 +03:00
neargye
1db1f585f4 fix typo 2021-04-21 19:21:54 +03:00
neargye
c646c9d76d fix hard error if enum is empty or non-reflected 2021-04-21 19:19:03 +03:00
Daniil Goncharov
ed2dbfd46c
workaround std::array in some cases is missing constexpr on some of its functions (#76) 2021-03-10 11:05:44 +02:00
neargye
9830d319c4 silence some warning 2021-01-23 07:47:05 +02:00
neargye
0810148bae update copyring 2021-01-23 07:47:01 +02:00
neargye
beb77df3f1 clean-up 2021-01-10 14:54:49 +02:00
bjacklyn
36ab9fa1a4
Detect values out of range and fail compilation (#70)
This checks for a value at (range_min - 1) and (range_max + 1) for numerical enums
(i.e. not flag enums) and fails compilation with a static_assert if any value is found

Co-authored-by: Brandon Jacklyn <bjacklyn@tesla.com>
2021-01-10 14:43:47 +02:00
neargye
806f2530ef clean-up 2020-12-29 18:56:51 +02:00
neargye
dc8660e2bc v0.7.2 2020-12-23 14:18:20 +02:00
neargye
9ed98e3463 fix #69 2020-12-21 17:52:42 +02:00
neargye
f4d98123d9 v0.7.1 2020-12-02 12:09:44 +02:00
nackdai
e24befa5fd
fix typo (#66) 2020-11-29 15:29:17 +02:00
neargye
9fb2ab9133 clean-up 2020-11-26 01:27:24 +02:00
neargye
4da4b75644 add namespace magic_enum:🎏:bitwise_operators 2020-11-25 11:17:29 +02:00
neargye
72ba8a89d4 clean-up 2020-11-19 15:29:05 +02:00
Bela Schaum
1b587718b7
Compile fix for gcc 7.5 (#62) 2020-11-19 15:23:20 +02:00
neargye
8f1d0ba39f fix clang with msvc 2020-11-10 19:14:54 +02:00