@@ -21,49 +21,40 @@ namespace rtl::dispatch
2121 struct aware_return_n_target <const record_t , return_t , signature_t ...>
2222 {
2323 // erased-return-aware-target-function-void
24- constexpr static auto e_return_a_target_fnv () noexcept
24+ static void e_return_a_target_fnv (const functor& fn, const record_t & p_target, traits:: normal_sign_t < signature_t >&&... params ) noexcept
2525 {
26- return []( const functor& fn, const record_t & p_target, traits:: normal_sign_t < signature_t >&&... params)-> auto
26+ if constexpr (std::is_void_v< return_t >)
2727 {
28- if constexpr (std::is_void_v<return_t >)
29- {
30- auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
28+ auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
3129
32- (p_target.*mptr)(std::forward<signature_t >(params)...);
33- }
34- };
30+ (p_target.*mptr)(std::forward<signature_t >(params)...);
31+ }
3532 }
3633
3734 // erased-target-aware-return-function-void
38- constexpr static auto e_target_a_return_fnv () noexcept
35+ static void e_target_a_return_fnv (const functor& fn, const RObject& p_target, traits:: normal_sign_t < signature_t >&&... params ) noexcept
3936 {
40- return []( const functor& fn, const RObject& p_target, traits:: normal_sign_t < signature_t >&&... params)-> auto
37+ if constexpr (std::is_void_v< return_t >)
4138 {
42- if constexpr (std::is_void_v<return_t >)
43- {
44- const auto & target = p_target.view <record_t >()->get ();
39+ const auto & target = p_target.view <record_t >()->get ();
4540
46- auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
41+ auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
4742
48- (target.*mptr)(std::forward<signature_t >(params)...);
49- }
50- };
43+ (target.*mptr)(std::forward<signature_t >(params)...);
44+ }
5145 }
5246
5347 // erased-return-erased-target-function-void
54- constexpr static auto e_return_e_target_fnv () noexcept
48+ static void e_return_e_target_fnv (const functor& fn, const RObject& p_target, traits:: normal_sign_t < signature_t >&&... params ) noexcept
5549 {
56- return []( const functor& fn, const RObject& p_target, traits:: normal_sign_t < signature_t >&&... params)-> auto
50+ if constexpr (std::is_void_v< return_t >)
5751 {
58- if constexpr (std::is_void_v<return_t >)
59- {
60- auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
52+ auto mptr = static_cast <const method_ptr<const record_t , return_t , signature_t ...>&>(fn).f_ptr ();
6153
62- const auto & target = p_target.view <record_t >()->get ();
54+ const auto & target = p_target.view <record_t >()->get ();
6355
64- (target.*mptr)(std::forward<signature_t >(params)...);
65- }
66- };
56+ (target.*mptr)(std::forward<signature_t >(params)...);
57+ }
6758 }
6859
6960 // erased-target-aware-return-function-returns(return_t)
0 commit comments