@@ -46,7 +46,7 @@ namespace rtl
4646 auto & lc = cache::lambda_function<return_t , signature_t ...>::instance ();
4747
4848 auto & functor = fc.push (p_fptr, p_record_uid, p_member_kind, p_index);
49- auto [lambda, elambda] = lc.push (functor);
49+ auto [lambda, elambda] = lc.push <detail::member::None> (functor);
5050
5151 functor.set_lambda (lambda);
5252 functor.set_erasure (elambda);
@@ -93,17 +93,22 @@ namespace rtl
9393 if constexpr (sizeof ...(signature_t ) == 0 )
9494 {
9595 auto & fc = cache::function_ptr<Return, alloc>::instance ();
96- auto & lc = cache::lambda_function<Return, alloc>::instance ();
97-
9896 auto fptr = &dispatch::aware_constructor<record_t >::allocator;
97+ auto & functor = fc.push (fptr, traits::uid<record_t >::value, detail::member::DefaultCtor, p_index);
98+ return type_meta (functor);
99+ }
100+ else
101+ {
102+ auto & fc = cache::function_ptr<Return, alloc, signature_t ...>::instance ();
103+ auto & lc = cache::lambda_function<Return, alloc, signature_t ...>::instance ();
104+
105+ auto & functor = fc.push (nullptr , traits::uid<record_t >::value, detail::member::UserCtor, p_index);
106+ auto [lambda, elambda] = lc.push <detail::member::UserCtor>(functor);
99107
100- // auto& functor = fc.push(fptr, traits::uid<record_t>::value, detail::member::Ctor, p_index );
101- // auto [lambda, elambda] = lc.push(functor );
108+ functor. set_lambda (lambda );
109+ functor. set_erasure (elambda );
102110
103- // functor.set_lambda(lambda);
104- // functor.set_erasure(elambda);
105- // return type_meta(functor);
111+ return type_meta (functor);
106112 }
107- return type_meta ();
108113 }
109114}
0 commit comments