|
99 | 99 | boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> \
|
100 | 100 | NS::_yOMM2_spec::yOMM2_body ARGS
|
101 | 101 |
|
102 |
| -#define YOMM2_DECLARE_METHOD_CONTAINER_4_NS(NS, CONTAINER, NAME, ARGS, ...) \ |
| 102 | +#define YOMM2_DEFINE_INLINE(CONTAINER, NAME, ARGS, ...) \ |
| 103 | + yOMM2_DEFINE_IN_CONTAINER( \ |
| 104 | + YOMM2_GENSYM, inline, CONTAINER, NAME, ARGS, __VA_ARGS__) |
| 105 | + |
| 106 | +#define yOMM2_DEFINE_IN_CONTAINER(NS, INLINE, CONTAINER, NAME, ARGS, ...) \ |
103 | 107 | template<typename> \
|
104 | 108 | struct CONTAINER; \
|
105 | 109 | namespace { \
|
|
113 | 117 | static NS::_yOMM2_method::next_type next; \
|
114 | 118 | static boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> fn \
|
115 | 119 | ARGS; \
|
116 |
| - } |
117 |
| - |
118 |
| -#define YOMM2_DEFINE_INLINE(CONTAINER, NAME, ARGS, ...) \ |
119 |
| - yOMM2_DEFINE_IN_CONTAINER( \ |
120 |
| - YOMM2_GENSYM, inline, CONTAINER, NAME, ARGS, __VA_ARGS__) |
121 |
| - |
122 |
| -#define yOMM2_DEFINE_IN_CONTAINER(NS, INLINE, CONTAINER, NAME, ARGS, ...) \ |
123 |
| - YOMM2_DECLARE_METHOD_CONTAINER_4_NS( \ |
124 |
| - NS, CONTAINER, NAME, ARGS, __VA_ARGS__); \ |
| 120 | + }; \ |
125 | 121 | INLINE NS::_yOMM2_method::next_type CONTAINER< \
|
126 | 122 | boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>>(ARGS)>::next; \
|
127 | 123 | namespace { \
|
128 | 124 | namespace NS { \
|
129 | 125 | INLINE _yOMM2_method::override_fn<CONTAINER< \
|
130 | 126 | boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> ARGS>::fn> \
|
131 | 127 | YOMM2_GENSYM( \
|
132 |
| - &CONTAINER<boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> \ |
133 |
| - ARGS>::next); \ |
| 128 | + &CONTAINER< \ |
| 129 | + boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> \ |
| 130 | + ARGS>::next); \ |
134 | 131 | } \
|
135 | 132 | } \
|
136 | 133 | INLINE boost::mp11::mp_first<boost::mp11::mp_list<__VA_ARGS__>> \
|
|
0 commit comments