neargye
619164687f
wip
2020-08-15 18:52:41 +05:00
neargye
0c0b03131a
wip
2020-08-15 18:09:27 +05:00
neargye
bcbabba3e4
wip
2020-07-08 21:14:43 +05:00
neargye
573bc60011
wip
2020-07-08 20:44:08 +05:00
neargye
cbbb86d2d1
wip
2020-07-05 16:50:47 +05:00
neargye
c5894cf573
wip
2020-07-05 15:55:24 +05:00
neargye
8e343c47b8
wip
2020-07-05 15:12:05 +05:00
neargye
604054df5a
wip
2020-07-05 13:18:29 +05:00
neargye
81f2888125
wip
2020-07-05 01:29:21 +05:00
neargye
25912781ee
wip
2020-07-04 15:38:50 +05:00
neargye
d2904860b8
wip
2020-07-04 15:13:48 +05:00
neargye
d9f4cd5e74
wip
2020-07-04 14:57:25 +05:00
neargye
98d234fafa
fix unnecessary move
2020-07-02 17:39:05 +05:00
neargye
d3c97fe395
ignore some noising warning
2020-06-17 14:53:47 +05:00
neargye
78664d9263
clean-up
2020-06-09 14:40:41 +05:00
neargye
97e6f35c46
add missing static_assert
2020-06-06 14:01:17 +05:00
neargye
963ee65e95
v0.6.6
2020-06-05 18:15:27 +05:00
neargye
4e82bfe21c
clean-up
2020-06-05 15:46:23 +05:00
neargye
86e4564748
improve compiler check
2020-06-04 13:27:22 +05:00
neargye
27ee484f85
improve enum_cast
2020-05-25 14:52:09 +05:00
neargye
b9450675bb
clean-up
2020-05-24 16:23:01 +05:00
Daniil Goncharov
2b9f24fd2c
remove enum_traits ( #38 )
2020-05-24 16:11:08 +05:00
neargye
cb395dd852
compatibility with legacy
2020-05-11 14:06:55 +05:00
neargye
3d7aa36e42
remove duplicated code
2020-04-29 14:00:57 +05:00
neargye
ef61dc38eb
clean-up
2020-04-02 17:17:27 +05:00
neargye
306b1d0704
add comparison predicate for enum_cast
2020-04-02 17:08:42 +05:00
Daniil Goncharov
a76480629c
Change contains_value to enum_contains ( #31 )
...
* change contains_value to enum_contains
* update test
* update doc
2020-03-13 18:10:09 +05:00
oficsu
aa24461613
Introduce contains_value()
...
* split enum_traits index
* add more proper way to check if enum contains certain value
* change description of contains_value() and add it in readme
2020-03-13 14:12:01 +05:00
neargye
94b133abd8
update copyright
2020-02-25 15:52:19 +05:00
neargye
cae43830a3
more friendly static checks
2020-02-14 15:09:11 +05:00
Neargye
2327f53634
v0.6.5
2020-01-31 14:13:11 +05:00
Neargye
59a9cddb6d
clean-up
2020-01-31 14:08:38 +05:00
Neargye
e3dd165a4a
add compile check at enum_name
2020-01-25 23:51:50 +05:00
neargye
a576c077be
fix code style
2020-01-15 15:42:42 +05:00
neargye
f900f4e01d
v0.6.4
2019-12-30 17:17:18 +05:00
Neargye
1d7f773bfa
explicit ctr
2019-12-13 11:22:11 +05:00
Neargye
70cf23a7e3
suppress specific warnings
2019-12-13 11:19:21 +05:00
neargye
3393b85145
clean-up
2019-11-23 19:40:30 +05:00
neargye
3b2ebf7e55
add enum concept
2019-11-18 13:35:59 +05:00
neargye
e325a70663
fix macro check support
2019-11-18 13:35:45 +05:00
Alexander Karatarakis
f951f3f04e
Fix typo in version ( #20 )
2019-10-24 13:30:10 +03:00
neargye
10d09b1c99
add cstdint because used std::int*_t
2019-10-18 19:21:47 +05:00
neargye
64856beffb
v0.6.3
2019-10-18 13:33:06 +05:00
neargye
5a33daa766
update enum_traits
2019-10-17 13:18:37 +05:00
neargye
d022583a1a
clean-up cast, size check
2019-10-16 14:11:15 +05:00
neargye
6c9c498faa
clean-up mixed_sign_less
2019-10-14 17:29:35 +05:00
neargye
5873f123f3
clean-up
2019-10-14 13:54:17 +05:00
neargye
4066fa35e5
get values on all reflected_range to avoid additional work
2019-10-14 13:10:15 +05:00
Alexander Karatarakis
db4c55c36a
Change the way range_min()/max() is calculated ( #19 )
...
This was previously done via parameter expansion. The expanded form
looks like this:
A(128) && A(127) && ... && A(X) && ... && A(0)
where A(X) is the actual range_max which is crafted to return 'false'.
Static analysis detects that expressions after A(X) are
dead code due to short-circuiting.
The new implementation uses a simple loop to find the extrema,
similarly to the loop in detail::values().
Furthermore, it uses only one parameter expansion (for reflected_set_v),
as opposed to two (one for range_min and one for range_max).
2019-10-14 10:44:42 +03:00
Alexander Karatarakis
0f36cd5b0f
Introduce mixed_sign_less()/min()/max() ( #18 )
...
Previously, there was mixed sign comparison:
```
reflected_min_v = -120 > 0U ? -120 : 0
```
which returns -120 because the condition is true, since the
compiler casts the signed value to unsigned, leading to a huge value.
This caused the following values as result:
```
reflected_min_v == -120
min_v = -1
static_cast<U>(min_v) = 18446744073709551615
```
The last one is used in magic_enum::enum_index().
2019-10-14 10:44:09 +03:00