Daniil Goncharov
2615fa5e7b
clen-up & improve ( #173 )
2022-03-28 19:15:38 +04:00
Daniil Goncharov
2e7313d3f7
clean-up & improve ( #170 )
2022-03-28 18:56:16 +04:00
Daniil Goncharov
cee99df7b5
fix bool ( #172 )
2022-03-28 18:55:25 +04:00
Bela Schaum
64bedded2a
Enum switch ( #168 )
2022-03-18 16:07:00 +04:00
neargye
542aacea41
clean-up
2022-03-18 14:08:03 +04:00
Bela Schaum
492d2b6a18
Sparse only if have an element. Switch only if -. ( #169 )
2022-03-18 13:59:09 +04:00
Daniil Goncharov
60de6bff8c
new customize ( #166 )
2022-03-18 13:58:07 +04:00
neargye
84efdbd2bf
fix Werror=shadow
2022-03-15 15:36:18 +04:00
neargye
718d2601b2
clean-up
2022-03-11 16:54:12 +02:00
Bela Schaum
c1568c5b26
Constexpr switch names ( #142 )
2022-03-11 14:08:25 +02:00
Daniil Goncharov
74123638d1
Fix optional masos ( #160 )
2022-03-09 16:32:45 +02:00
Daniil Goncharov
b0c0e02bdc
add compile time enum_index ( #159 )
2022-03-09 10:07:09 +02:00
neargye
04a3d32d0f
clean-up
2022-03-08 14:05:43 +02:00
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