Skip to content

Commit 4b80801

Browse files
committed
rework macros
1 parent 4fceb9a commit 4b80801

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

include/boost/openmethod/macros.hpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ struct va_args<ReturnType> {
4949
#define BOOST_OPENMETHOD_OVERRIDERS(NAME) \
5050
BOOST_PP_CAT(BOOST_OPENMETHOD_ID(NAME), _overriders)
5151

52+
#define BOOST_OPENMETHOD_OVERRIDER(NAME, ARGS, ...) \
53+
BOOST_OPENMETHOD_OVERRIDERS(NAME)<__VA_ARGS__ ARGS>
54+
5255
#define BOOST_OPENMETHOD_GUIDE(NAME) \
5356
BOOST_PP_CAT(BOOST_OPENMETHOD_ID(NAME), _guide)
5457

@@ -121,31 +124,28 @@ struct va_args<ReturnType> {
121124
void ARGS>::type::next<fn>(std::forward<Args>(args)...); \
122125
}
123126

124-
#define BOOST_OPENMETHOD_OVERRIDER(NAME, ARGS, ...) \
125-
BOOST_OPENMETHOD_OVERRIDERS(NAME)<__VA_ARGS__ ARGS>
127+
#define BOOST_OPENMETHOD_DETAIL_REGISTER_OVERRIDER(NAME, ARGS, ...) \
128+
BOOST_OPENMETHOD_REGISTER( \
129+
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS > \
130+
::boost_openmethod_detail_locate_method_aux<void ARGS>::type:: \
131+
override< \
132+
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS>::fn >);
126133

127134
#define BOOST_OPENMETHOD_DEFINE_OVERRIDER(NAME, ARGS, ...) \
135+
BOOST_OPENMETHOD_DETAIL_REGISTER_OVERRIDER(NAME, ARGS, __VA_ARGS__) \
128136
auto BOOST_OPENMETHOD_OVERRIDER(NAME, ARGS, __VA_ARGS__)::fn ARGS \
129137
-> boost::mp11::mp_back<boost::mp11::mp_list<__VA_ARGS__>>
130138

131-
#define BOOST_OPENMETHOD_INLINE_OVERRIDE(NAME, ARGS, ...) \
132-
BOOST_OPENMETHOD_DECLARE_OVERRIDER(NAME, ARGS, __VA_ARGS__) \
133-
inline BOOST_OPENMETHOD_REGISTER( \
134-
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS > \
135-
::boost_openmethod_detail_locate_method_aux<void ARGS>::type:: \
136-
override< \
137-
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS>::fn >); \
138-
inline BOOST_OPENMETHOD_DEFINE_OVERRIDER(NAME, ARGS, __VA_ARGS__)
139-
140139
#define BOOST_OPENMETHOD_OVERRIDE(NAME, ARGS, ...) \
141140
BOOST_OPENMETHOD_DECLARE_OVERRIDER(NAME, ARGS, __VA_ARGS__) \
142-
BOOST_OPENMETHOD_REGISTER( \
143-
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS > \
144-
::boost_openmethod_detail_locate_method_aux<void ARGS>::type:: \
145-
override< \
146-
BOOST_OPENMETHOD_OVERRIDERS(NAME) < __VA_ARGS__ ARGS>::fn >); \
147141
BOOST_OPENMETHOD_DEFINE_OVERRIDER(NAME, ARGS, __VA_ARGS__)
148142

143+
#define BOOST_OPENMETHOD_INLINE_OVERRIDE(NAME, ARGS, ...) \
144+
BOOST_OPENMETHOD_DECLARE_OVERRIDER(NAME, ARGS, __VA_ARGS__) \
145+
BOOST_OPENMETHOD_DETAIL_REGISTER_OVERRIDER(NAME, ARGS, __VA_ARGS__) \
146+
inline auto BOOST_OPENMETHOD_OVERRIDER(NAME, ARGS, __VA_ARGS__)::fn ARGS \
147+
-> boost::mp11::mp_back<boost::mp11::mp_list<__VA_ARGS__>>
148+
149149
#define BOOST_OPENMETHOD_CLASSES(...) \
150150
BOOST_OPENMETHOD_REGISTER(::boost::openmethod::use_classes<__VA_ARGS__>);
151151

0 commit comments

Comments
 (0)