Skip to content

Commit adb6f55

Browse files
committed
organizing metadata: erasure_base.h removed.
1 parent 8f5c643 commit adb6f55

29 files changed

+59
-488
lines changed

ReflectionTemplateLib/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ target_include_directories(${PROJECT_NAME}
1818
${CMAKE_CURRENT_SOURCE_DIR}/rtl/cache
1919
${CMAKE_CURRENT_SOURCE_DIR}/rtl/detail
2020
${CMAKE_CURRENT_SOURCE_DIR}/rtl/dispatch
21-
${CMAKE_CURRENT_SOURCE_DIR}/rtl/erasure
2221
${CMAKE_CURRENT_SOURCE_DIR}/rtl/inc
2322
${CMAKE_CURRENT_SOURCE_DIR}/rtl
2423
)

ReflectionTemplateLib/rtl/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,4 @@ add_subdirectory(src)
2020
add_subdirectory(builder)
2121
add_subdirectory(cache)
2222
add_subdirectory(detail)
23-
add_subdirectory(erasure)
2423
add_subdirectory(dispatch)

ReflectionTemplateLib/rtl/cache/cache_lambda_function.h

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <list>
1515

1616
#include "lambda_function.h"
17-
#include "erase_return.h"
1817

1918
namespace rtl::cache
2019
{
@@ -27,29 +26,17 @@ namespace rtl::cache
2726
return instance_;
2827
}
2928

30-
std::pair<const dispatch::lambda_base*, const dispatch::erasure_base*> push(const dispatch::functor& p_functor) const
29+
const dispatch::lambda_base* push(const dispatch::functor& p_functor) const
3130
{
32-
using erase_ret_t = dispatch::erase_return<traits::normal_sign_t<signature_t>...>;
33-
m_erasure_cache.emplace_back(erase_ret_t());
34-
35-
erase_ret_t& eb = m_erasure_cache.back();
36-
eb.template init_lambdas<detail::member::None, return_t, signature_t...>();
37-
38-
m_cache.push_back(dispatch::lambda_function<signature_t...>(p_functor, eb));
39-
return { &m_cache.back(), &eb };
31+
m_cache.push_back(dispatch::lambda_function<signature_t...>(p_functor));
32+
return &m_cache.back();
4033
}
4134

4235
template<class record_t>
43-
std::pair<const dispatch::lambda_base*, const dispatch::erasure_base*> push(const dispatch::functor& p_functor) const
36+
const dispatch::lambda_base* push(const dispatch::functor& p_functor) const
4437
{
45-
using erase_ret_t = dispatch::erase_return<traits::normal_sign_t<signature_t>...>;
46-
m_erasure_cache.emplace_back(erase_ret_t());
47-
48-
erase_ret_t& eb = m_erasure_cache.back();
49-
eb.template init_lambdas<detail::member::UserCtor, record_t, signature_t...>();
50-
51-
m_cache.push_back(dispatch::lambda_function<signature_t...>(p_functor, eb));
52-
return { &m_cache.back(), &eb };
38+
m_cache.push_back(dispatch::lambda_function<signature_t...>(p_functor));
39+
return &m_cache.back();
5340
}
5441

5542
lambda_function(lambda_function&&) = delete;
@@ -61,7 +48,6 @@ namespace rtl::cache
6148

6249
// No reallocation occurs; original objects stay intact
6350
mutable std::list<dispatch::lambda_function<signature_t...>> m_cache;
64-
mutable std::list<dispatch::erase_return<traits::normal_sign_t<signature_t>...>> m_erasure_cache;
6551

6652
lambda_function() = default;
6753
};

ReflectionTemplateLib/rtl/cache/cache_lambda_method.h

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,10 @@ namespace rtl::cache
2828
return instance_;
2929
}
3030

31-
std::pair<const dispatch::lambda_base*, const dispatch::erasure_base*> push(const dispatch::functor& p_functor) const
31+
const dispatch::lambda_base* push(const dispatch::functor& p_functor) const
3232
{
33-
m_erasure_cache.emplace_back(dispatch::aware_return_n_target<record_t, return_t, signature_t...>());
34-
35-
auto& eb = m_erasure_cache.back();
36-
eb.init_lambdas();
37-
m_cache.push_back(dispatch::lambda_method<record_t, signature_t...>(p_functor, eb));
38-
39-
return { &m_cache.back(), &eb };
33+
m_cache.push_back(dispatch::lambda_method<record_t, signature_t...>(p_functor));
34+
return &m_cache.back();
4035
}
4136

4237
lambda_method(lambda_method&&) = delete;
@@ -48,8 +43,7 @@ namespace rtl::cache
4843

4944
// No reallocation occurs; original objects stay intact
5045
mutable std::list<dispatch::lambda_method<record_t, signature_t...>> m_cache;
51-
mutable std::list<dispatch::aware_return_n_target<record_t, return_t, signature_t...>> m_erasure_cache;
52-
46+
5347
lambda_method() = default;
5448
};
5549
}

ReflectionTemplateLib/rtl/detail/inc/FunctionCaller.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
#include "FunctorContainer.h"
1818

1919
#include "functor_cast.h"
20+
#include "rtl_function_erased_return.h"
2021

2122
#include "lambda_method.h"
2223
#include "lambda_function.h"
2324

24-
#include "erase_return.h"
25-
#include "rtl_function_erased_return.h"
2625

2726
namespace rtl::detail
2827
{

ReflectionTemplateLib/rtl/detail/inc/MethodInvoker.hpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,13 @@
1818

1919
#include "lambda_method.h"
2020

21-
#include "erasure_base.hpp"
22-
2321
#include "rtl_method.h"
2422
#include "rtl_method_const.h"
2523
#include "rtl_method_erased.h"
2624
#include "rtl_method_erased_target.h"
2725
#include "rtl_method_erased_return.h"
2826

27+
2928
namespace rtl::detail
3029
{
3130
/* @lambda: call()
@@ -163,7 +162,7 @@ namespace rtl::detail
163162
{
164163
template<class record_t, class ...args_t>
165164
template<class return_t> requires (!traits::type_aware_v<record_t, return_t>)
166-
inline constexpr const method<record_t, return_t(args_t...)> HopMethod<record_t, args_t...>::returnT() const
165+
inline constexpr const method<record_t, return_t(args_t...)> HopMethod<record_t, args_t...>::returnT() const
167166
{
168167
method<record_t, return_t(traits::normal_sign_t<args_t>...)> erasedMth;
169168
initHopper<return_t>(erasedMth);
@@ -173,7 +172,7 @@ namespace rtl::detail
173172

174173
template<class record_t, class ...args_t>
175174
template<class return_t> requires (traits::type_aware_v<record_t, return_t>)
176-
inline constexpr const method<record_t, return_t(args_t...)> HopMethod<record_t, args_t...>::returnT() const
175+
inline constexpr const method<record_t, return_t(args_t...)> HopMethod<record_t, args_t...>::returnT() const
177176
{
178177
method<record_t, return_t(args_t...)> mth;
179178
if (!m_argsTfnMeta.is_empty())
@@ -185,8 +184,8 @@ namespace rtl::detail
185184

186185
const auto retId = traits::uid<return_t>::value;
187186
return m_argsTfnMeta.get_lambda()
188-
.template to_method<record_t, args_t...>()
189-
.template get_hopper<return_t>(retId);
187+
.template to_method<record_t, args_t...>()
188+
.template get_hopper<return_t>(retId);
190189
}
191190
}
192191
return mth;

ReflectionTemplateLib/rtl/detail/inc/RObjectId.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <any>
1515
#include <optional>
1616

17-
#include "ReflectCast.h"
1817
#include "FunctorId.h"
1918

2019
namespace rtl::detail

ReflectionTemplateLib/rtl/dispatch/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ set(LOCAL_HEADERS
2020
"${CMAKE_CURRENT_SOURCE_DIR}/lambda_method.h"
2121
"${CMAKE_CURRENT_SOURCE_DIR}/lambda_function.h"
2222

23+
"${CMAKE_CURRENT_SOURCE_DIR}/aware_return.h"
24+
"${CMAKE_CURRENT_SOURCE_DIR}/aware_constructor.h"
25+
"${CMAKE_CURRENT_SOURCE_DIR}/aware_return_n_target.h"
26+
"${CMAKE_CURRENT_SOURCE_DIR}/aware_return_n_target_const.h"
27+
2328
"${CMAKE_CURRENT_SOURCE_DIR}/rtl_function.h"
2429
"${CMAKE_CURRENT_SOURCE_DIR}/rtl_function_erased_return.h"
2530

0 commit comments

Comments
 (0)