@@ -987,14 +987,14 @@ struct valid_method_parameter<virtual_<T>, Registry>
987987} // namespace detail
988988
989989template <
990- typename Method , typename ReturnType,
990+ typename Name , typename ReturnType,
991991 class Registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY>
992992class method ;
993993
994994template <
995995 typename Name, typename ... Parameters, typename ReturnType, class Registry >
996- class method <Name, auto (Parameters...)->ReturnType , Registry>
997- : public std::conditional_t <
996+ class method <Name, ReturnType (Parameters...), Registry>
997+ : std::conditional_t <
998998 Registry::deferred_static_rtti, detail::deferred_method_info,
999999 detail::method_info> {
10001000 // Aliases used in implementation only. Everything extracted from template
@@ -1065,7 +1065,8 @@ class method<Name, auto(Parameters...)->ReturnType, Registry>
10651065 template <auto , typename >
10661066 struct thunk ;
10671067
1068- friend class generator ;
1068+ template <auto , typename >
1069+ struct thunk ;
10691070
10701071 method ();
10711072 method (const method&) = delete ;
@@ -1170,22 +1171,22 @@ class method<Name, auto(Parameters...)->ReturnType, Registry>
11701171
11711172template <
11721173 typename Name, typename ... Parameters, typename ReturnType, class Registry >
1173- method<Name, auto (Parameters...)->ReturnType , Registry>
1174- method<Name, auto (Parameters...)->ReturnType , Registry>::fn;
1174+ method<Name, ReturnType (Parameters...), Registry>
1175+ method<Name, ReturnType (Parameters...), Registry>::fn;
11751176
11761177template <
11771178 typename Name, typename ... Parameters, typename ReturnType, class Registry >
11781179template <auto >
11791180typename method<
1180- Name, auto (Parameters...)->ReturnType , Registry>::FunctionPointer
1181- method<Name, auto (Parameters...)->ReturnType , Registry>::next;
1181+ Name, ReturnType (Parameters...), Registry>::FunctionPointer
1182+ method<Name, ReturnType (Parameters...), Registry>::next;
11821183
11831184template <typename T>
11841185constexpr bool is_method = std::is_base_of_v<detail::method_info, T>;
11851186
11861187template <
11871188 typename Name, typename ... Parameters, typename ReturnType, class Registry >
1188- method<Name, auto (Parameters...)->ReturnType , Registry>::method() {
1189+ method<Name, ReturnType (Parameters...), Registry>::method() {
11891190 this ->slots_strides_ptr = slots_strides;
11901191
11911192 if constexpr (!Registry::deferred_static_rtti) {
@@ -1208,7 +1209,7 @@ method<Name, auto(Parameters...)->ReturnType, Registry>::method() {
12081209template <
12091210 typename Name, typename ... Parameters, typename ReturnType, class Registry >
12101211void method<
1211- Name, auto (Parameters...)->ReturnType , Registry>::resolve_type_ids() {
1212+ Name, ReturnType (Parameters...), Registry>::resolve_type_ids() {
12121213 using namespace detail ;
12131214 this ->method_type_id = rtti::template static_type<method>();
12141215 this ->return_type_id = rtti::template static_type<
@@ -1222,19 +1223,19 @@ void method<
12221223
12231224template <
12241225 typename Name, typename ... Parameters, typename ReturnType, class Registry >
1225- std::size_t method<Name, auto (Parameters...)->ReturnType , Registry>::
1226+ std::size_t method<Name, ReturnType (Parameters...), Registry>::
12261227 slots_strides[2 * Arity - 1 ];
12271228
12281229template <
12291230 typename Name, typename ... Parameters, typename ReturnType, class Registry >
1230- method<Name, auto (Parameters...)->ReturnType , Registry>::~method () {
1231+ method<Name, ReturnType (Parameters...), Registry>::~method () {
12311232 Registry::methods.remove (*this );
12321233}
12331234
12341235template <
12351236 typename Name, typename ... Parameters, typename ReturnType, class Registry >
12361237template <class Error >
1237- auto method<Name, auto (Parameters...)->ReturnType , Registry>::
1238+ auto method<Name, ReturnType (Parameters...), Registry>::
12381239 check_static_offset (std::size_t actual, std::size_t expected) const
12391240 -> void {
12401241 using namespace detail ;
@@ -1260,7 +1261,7 @@ auto method<Name, auto(Parameters...)->ReturnType, Registry>::
12601261template <
12611262 typename Name, typename ... Parameters, typename ReturnType, class Registry >
12621263BOOST_FORCEINLINE auto
1263- method<Name, auto (Parameters...)->ReturnType , Registry>::operator ()(
1264+ method<Name, ReturnType (Parameters...), Registry>::operator ()(
12641265 detail::remove_virtual<Parameters>... args) const -> ReturnType {
12651266 using namespace detail ;
12661267 auto pf = resolve (parameter_traits<Parameters, Registry>::peek (args)...);
@@ -1272,8 +1273,8 @@ template<
12721273 typename Name, typename ... Parameters, typename ReturnType, class Registry >
12731274template <typename ... ArgType>
12741275BOOST_FORCEINLINE typename method<
1275- Name, auto (Parameters...)->ReturnType , Registry>::FunctionPointer
1276- method<Name, auto (Parameters...)->ReturnType , Registry>::resolve(
1276+ Name, ReturnType (Parameters...), Registry>::FunctionPointer
1277+ method<Name, ReturnType (Parameters...), Registry>::resolve(
12771278 const ArgType&... args) const {
12781279 using namespace detail ;
12791280
@@ -1296,7 +1297,7 @@ template<
12961297 typename Name, typename ... Parameters, typename ReturnType, class Registry >
12971298template <typename ArgType>
12981299BOOST_FORCEINLINE auto
1299- method<Name, auto (Parameters...)->ReturnType , Registry>::vptr(
1300+ method<Name, ReturnType (Parameters...), Registry>::vptr(
13001301 const ArgType& arg) const -> vptr_type {
13011302 if constexpr (detail::is_virtual_ptr<ArgType>) {
13021303 return arg.vptr ();
@@ -1309,7 +1310,7 @@ template<
13091310 typename Name, typename ... Parameters, typename ReturnType, class Registry >
13101311template <typename MethodArgList, typename ArgType, typename ... MoreArgTypes>
13111312BOOST_FORCEINLINE auto
1312- method<Name, auto (Parameters...)->ReturnType , Registry>::resolve_uni(
1313+ method<Name, ReturnType (Parameters...), Registry>::resolve_uni(
13131314 const ArgType& arg, const MoreArgTypes&... more_args) const
13141315 -> detail::word {
13151316
@@ -1338,7 +1339,7 @@ template<
13381339 typename Name, typename ... Parameters, typename ReturnType, class Registry >
13391340template <typename MethodArgList, typename ArgType, typename ... MoreArgTypes>
13401341BOOST_FORCEINLINE auto
1341- method<Name, auto (Parameters...)->ReturnType , Registry>::resolve_multi_first(
1342+ method<Name, ReturnType (Parameters...), Registry>::resolve_multi_first(
13421343 const ArgType& arg, const MoreArgTypes&... more_args) const
13431344 -> detail::word {
13441345
@@ -1379,7 +1380,7 @@ template<
13791380 std::size_t VirtualArg, typename MethodArgList, typename ArgType,
13801381 typename ... MoreArgTypes>
13811382BOOST_FORCEINLINE auto
1382- method<Name, auto (Parameters...)->ReturnType , Registry>::resolve_multi_next(
1383+ method<Name, ReturnType (Parameters...), Registry>::resolve_multi_next(
13831384 vptr_type dispatch, const ArgType& arg,
13841385 const MoreArgTypes&... more_args) const -> detail::word {
13851386
@@ -1423,7 +1424,7 @@ method<Name, auto(Parameters...)->ReturnType, Registry>::resolve_multi_next(
14231424template <
14241425 typename Name, typename ... Parameters, typename ReturnType, class Registry >
14251426template <auto Fn>
1426- inline auto method<Name, auto (Parameters...)->ReturnType , Registry>::has_next()
1427+ inline auto method<Name, ReturnType (Parameters...), Registry>::has_next()
14271428 -> bool {
14281429 if (next<Fn> == fn_not_implemented) {
14291430 return false ;
@@ -1441,7 +1442,7 @@ inline auto method<Name, auto(Parameters...)->ReturnType, Registry>::has_next()
14411442template <
14421443 typename Name, typename ... Parameters, typename ReturnType, class Registry >
14431444BOOST_NORETURN auto
1444- method<Name, auto (Parameters...)->ReturnType , Registry>::fn_not_implemented(
1445+ method<Name, ReturnType (Parameters...), Registry>::fn_not_implemented(
14451446 detail::remove_virtual<Parameters>... args) -> ReturnType {
14461447 if constexpr (Registry::template has_policy<policies::error_handler>) {
14471448 not_implemented_error error;
@@ -1457,7 +1458,7 @@ method<Name, auto(Parameters...)->ReturnType, Registry>::fn_not_implemented(
14571458template <
14581459 typename Name, typename ... Parameters, typename ReturnType, class Registry >
14591460BOOST_NORETURN auto
1460- method<Name, auto (Parameters...)->ReturnType , Registry>::fn_ambiguous(
1461+ method<Name, ReturnType (Parameters...), Registry>::fn_ambiguous(
14611462 detail::remove_virtual<Parameters>... args) -> ReturnType {
14621463 if constexpr (Registry::template has_policy<policies::error_handler>) {
14631464 ambiguous_error error;
@@ -1483,7 +1484,7 @@ template<
14831484 typename Name, typename ... Parameters, typename ReturnType, class Registry >
14841485template <
14851486 auto Overrider, typename OverriderReturn, typename ... OverriderParameters>
1486- auto method<Name, auto (Parameters...)->ReturnType , Registry>::
1487+ auto method<Name, ReturnType (Parameters...), Registry>::
14871488 thunk<Overrider, OverriderReturn (*)(OverriderParameters...)>::fn(
14881489 detail::remove_virtual<Parameters>... arg) -> ReturnType {
14891490 using namespace detail ;
@@ -1555,7 +1556,7 @@ method<Name, ReturnType(Parameters...), Registry>::override_impl<
15551556template <
15561557 typename Name, typename ... Parameters, typename ReturnType, class Registry >
15571558template <auto Function, typename FnReturnType>
1558- void method<Name, auto (Parameters...)->ReturnType , Registry>::override_impl<
1559+ void method<Name, ReturnType (Parameters...), Registry>::override_impl<
15591560 Function, FnReturnType>::resolve_type_ids() {
15601561 using namespace detail ;
15611562
0 commit comments