1212#pragma once
1313
1414#include " method_ptr.h"
15- #include " fn_signature_rec.h"
15+ #include " method_lambda.h"
16+ #include " function_lambda.h"
1617#include " aware_return_n_target.h"
1718
1819namespace rtl ::dispatch
@@ -23,26 +24,39 @@ namespace rtl::dispatch
2324 if constexpr (fn_void_v == fn_void::yes)
2425 {
2526 {
27+ // erased-return-aware-target (e_return_a_target)
2628 const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_return_a_target_fnv ();
2729 m_erased_return.set_hop (fn);
2830 } {
31+ // erased-target-aware-return (e_target_a_return)
2932 const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_target_a_return_fnv ();
3033 m_erased_target.set_hop (fn);
34+ } {
35+ // erased-return-erased-target (e_return_e_target)
36+ const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_return_e_target_fnv ();
37+ m_erased_method.set_hop (fn);
3138 }
3239 }
3340 else
3441 {
3542 {
43+ // erased-return-aware-target (e_return_a_target)
3644 const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_return_a_target_fnr ();
3745 m_erased_return.set_hop (fn);
3846 } {
47+ // erased-target-aware-return (e_target_a_return)
3948 const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_target_a_return_fnr ();
4049 m_erased_target.set_hop (fn);
50+ } {
51+ // erased-return-erased-target (e_return_e_target)
52+ const auto & fn = aware_return_n_target<record_t , return_t , signature_t ...>::e_return_e_target_fnr ();
53+ m_erased_method.set_hop (fn);
4154 }
4255 }
4356
44- functor::m_lambdas = std::vector<lambda*>(2 );
57+ functor::m_lambdas = std::vector<lambda*>(3 );
4558 functor::m_lambdas[index::erased_return] = (&m_erased_return);
4659 functor::m_lambdas[index::erased_target] = (&m_erased_target);
60+ functor::m_lambdas[index::erased_method] = (&m_erased_method);
4761 }
4862}
0 commit comments