|
22 | 22 | #include "sus/macros/remove_parens.h"
|
23 | 23 | #include "sus/tuple/tuple.h"
|
24 | 24 |
|
25 |
| -/// Construct a set of associated value and types pairings. The type of the |
| 25 | +/// A macro used to declare the value-type pairings in a [`Choice`]( |
| 26 | +/// $sus::choice_type::Choice). See the [`Choice`]( |
| 27 | +/// $sus::choice_type::Choice) type for examples of its use. |
| 28 | +/// |
| 29 | +/// Constructs a set of associated value and types pairings. The type of the |
26 | 30 | /// values need have no relationship to the specified types.
|
27 | 31 | ///
|
| 32 | +/// # Details |
28 | 33 | /// The input takes the format: `(Value1, Type1A, Type1B), (Value2, Type2), ...`
|
29 | 34 | /// The output is the sequence `TypeList<Tuple<Type1A, Type1B>, Tuple<Type2>,
|
30 | 35 | /// ...>, Value1, Value2, ...`.
|
|
60 | 65 | // clang-format on
|
61 | 66 |
|
62 | 67 | #define _sus__make_union_storage_type(types) \
|
63 |
| - ::sus::choice_type::__private::MakeStorageType<sus_remove_parens(types)>::type |
| 68 | + ::sus::choice_type::__private::MakeStorageType<_sus_remove_parens(types)>::type |
64 | 69 |
|
65 | 70 | #define _sus__first(a, ...) a
|
66 | 71 | #define _sus__second_plus(a, ...) __VA_ARGS__
|
67 | 72 |
|
68 | 73 | #define _sus__value_types_types(x) \
|
69 |
| - (sus_remove_parens_and_eval(_sus__second_plus, x)) |
70 |
| -#define _sus__value_types_value(x) sus_remove_parens_and_eval(_sus__first, x) |
| 74 | + (_sus_remove_parens_and_eval(_sus__second_plus, x)) |
| 75 | +#define _sus__value_types_value(x) _sus_remove_parens_and_eval(_sus__first, x) |
0 commit comments