@@ -20,28 +20,31 @@ namespace rtl::dispatch
2020 struct method_lambda <erase::t_return, place_t , args_t ...> : lambda
2121 {
2222 using record_t = place_t ;
23- using lambda_vt = std::function<void (const functor &, const record_t &, traits::normal_sign_t <args_t >...)>;
24- using lambda_rt = std::function<std::any(const functor &, const record_t &, traits::normal_sign_t <args_t >...)>;
23+ using lambda_vt = std::function<void (const lambda_base &, const record_t &, traits::normal_sign_t <args_t >...)>;
24+ using lambda_rt = std::function<std::any(const lambda_base &, const record_t &, traits::normal_sign_t <args_t >...)>;
2525
26- const lambda_vt& get_method_vhop () const {
26+ const lambda_vt& get_vhop () const {
2727 return std::get<lambda_vt>(m_lambda);
2828 }
2929
30- const lambda_rt& get_method_rhop () const {
30+ const lambda_rt& get_rhop () const {
3131 return std::get<lambda_rt>(m_lambda);
3232 }
3333
3434 private:
3535
3636 std::variant<lambda_vt, lambda_rt> m_lambda;
3737
38- void set_method_vhop (const lambda_vt& lambda) {
38+ void set_vhop (const lambda_vt& lambda) {
3939 m_lambda = lambda;
4040 }
4141
42- void set_method_rhop (const lambda_rt& lambda) {
42+ void set_rhop (const lambda_rt& lambda) {
4343 m_lambda = lambda;
4444 }
45+
46+ template <class , class , class ...>
47+ friend struct method_ptr ;
4548 };
4649}
4750
@@ -52,27 +55,30 @@ namespace rtl::dispatch
5255 struct method_lambda <erase::t_target, place_t , args_t ...> : lambda
5356 {
5457 using return_t = place_t ;
55- using lambda_vt = std::function<void (const functor &, const rtl::RObject&, traits::normal_sign_t <args_t >...)>;
56- using lambda_rt = std::function<return_t (const functor &, const rtl::RObject&, traits::normal_sign_t <args_t >...)>;
58+ using lambda_vt = std::function<void (const lambda_base &, const rtl::RObject&, traits::normal_sign_t <args_t >...)>;
59+ using lambda_rt = std::function<return_t (const lambda_base &, const rtl::RObject&, traits::normal_sign_t <args_t >...)>;
5760
58- const lambda_vt& get_method_vhop () const {
61+ const lambda_vt& get_vhop () const {
5962 return std::get<lambda_vt>(m_lambda);
6063 }
6164
62- const lambda_rt& get_method_rhop () const {
65+ const lambda_rt& get_rhop () const {
6366 return std::get<lambda_rt>(m_lambda);
6467 }
6568
6669 private:
6770
6871 std::variant<lambda_vt, lambda_rt> m_lambda;
6972
70- void set_method_vhop (const lambda_vt& lambda) {
73+ void set_vhop (const lambda_vt& lambda) {
7174 m_lambda = lambda;
7275 }
7376
74- void set_method_rhop (const lambda_rt& lambda) {
77+ void set_rhop (const lambda_rt& lambda) {
7578 m_lambda = lambda;
7679 }
80+
81+ template <class , class , class ...>
82+ friend struct method_ptr ;
7783 };
7884}
0 commit comments