Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
d1c80a3
introducing rtl::detail::lambda_table
neeraj31285 Sep 13, 2025
0af7adf
integrated functor/lambda static cache and other types.
neeraj31285 Sep 14, 2025
5762021
functor/lambda index added to type metadata.
neeraj31285 Sep 14, 2025
98ff22f
lambda_registry tested with type-identificaton-system
neeraj31285 Sep 15, 2025
578589f
fixed cland/gcc compile error
neeraj31285 Sep 15, 2025
2a13e3c
New dispatch-design in progress, functor_cache integrated & working.
neeraj31285 Sep 17, 2025
c03af5f
new dispatch-mechanism working, in-progress.
neeraj31285 Sep 17, 2025
d0df224
fixed cland/gcc compile error
neeraj31285 Sep 17, 2025
0fde83b
lambda refactored, std::function init with functor directly.
neeraj31285 Sep 18, 2025
387fcaa
return-type erased from cache/functor/lambda containers.
neeraj31285 Sep 18, 2025
d9aef49
fixed cland/gcc compile error
neeraj31285 Sep 18, 2025
7c1af24
enabled reflective call with known return-type
neeraj31285 Sep 19, 2025
599c1ca
Fixed CMakeLists.txt error.
neeraj31285 Sep 19, 2025
f401a11
method-call with known return-type: In Progress.
neeraj31285 Sep 19, 2025
847e1a2
fixed cland/gcc compile errors, known-return reflective calls in prog…
neeraj31285 Sep 20, 2025
3bd868c
better renaming for functor/method/lambda/cache
neeraj31285 Sep 20, 2025
5e37927
added raw-functor access interface, perfect-forwarding.
neeraj31285 Sep 20, 2025
0e7fc8b
clang/gcc compile error fix.
neeraj31285 Sep 20, 2025
ed06e75
removed unnecessory reinterpret_cast, code refined.
neeraj31285 Sep 20, 2025
dca661d
unicode-char from comment removed.
neeraj31285 Sep 20, 2025
8610277
benchmark for method-call with known return added.
neeraj31285 Sep 21, 2025
fb21c84
refactored/refined & tested caches/lambda/functor for correct fptrs.
neeraj31285 Sep 21, 2025
88f189d
return value propogation optimized.
neeraj31285 Sep 22, 2025
e72d37a
removed temporary affecting stats, from benchmark.
neeraj31285 Sep 22, 2025
7780b02
added type-safe access, code refined.
neeraj31285 Sep 22, 2025
7bdc319
minor refactor.
neeraj31285 Sep 22, 2025
a2330ba
add safe acess api's to dispatch-interface.
neeraj31285 Sep 23, 2025
7d1ef56
fixed nested-template fiasco that clang couldn't handle.
neeraj31285 Sep 23, 2025
0f8f46f
refined dispatch apis, added- rtl::function, rtl::method.
neeraj31285 Sep 23, 2025
c30f20c
fixed gcc 'template' error
neeraj31285 Sep 23, 2025
e82728b
err fix: msvc, removed nested/dependent templates
neeraj31285 Sep 23, 2025
3a6ab51
specalized cache/method_ptr for const-member-functors.
neeraj31285 Sep 23, 2025
e1901e1
minor refactor.
neeraj31285 Sep 24, 2025
046ad80
enabled const-methods access from cache, tests:passing.
neeraj31285 Sep 24, 2025
5099da5
minor refactor.
neeraj31285 Sep 24, 2025
24f9fa2
interface refined. wip.
neeraj31285 Sep 24, 2025
0fb9e1f
fixed error and hardcoded-type bug.
neeraj31285 Sep 24, 2025
bf495e1
type erasing lambdas are stateless now.
neeraj31285 Sep 24, 2025
cdd8676
new dispatch-mechanism integration. wip.
neeraj31285 Sep 25, 2025
e14381f
return-type reased dispatch, wip.
neeraj31285 Sep 25, 2025
cf89007
erasure_base, wip.
neeraj31285 Sep 25, 2025
09d5b6c
fixed last incomplete commit
neeraj31285 Sep 25, 2025
3ad119b
return erased, wip.
neeraj31285 Sep 26, 2025
8937d9c
return erased, wip.
neeraj31285 Sep 27, 2025
7531afa
erased return calls in benchmarks, wip.
neeraj31285 Sep 27, 2025
0312cd3
removed RTTI/virtual-funcs, wip.
neeraj31285 Sep 28, 2025
dc0fff7
return-erased basic integration done, method calls impl.
neeraj31285 Sep 29, 2025
7eb3dd6
gcc/clang compile error fix.
neeraj31285 Sep 29, 2025
5a81261
general refactor, restructure, renames.
neeraj31285 Sep 29, 2025
ef1be6c
return erased-type boxed in RObject, integrated.
neeraj31285 Sep 30, 2025
d73a85f
type-erased return value optimized.
neeraj31285 Sep 30, 2025
e394921
refined erased return-type design.
neeraj31285 Sep 30, 2025
22535c1
erased-target method call benchmark added.
neeraj31285 Oct 2, 2025
7cc85de
fix gcc/clang compile error.
neeraj31285 Oct 2, 2025
40c7661
interface refactored, tests added for known-type-calls.
neeraj31285 Oct 3, 2025
551443e
fix gcc/clang compile error.
neeraj31285 Oct 3, 2025
9a58d1a
static-dispatch test cases, const-method resolution.
neeraj31285 Oct 4, 2025
8713343
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
neeraj31285 Oct 4, 2025
491cfed
strict-type-matching for static-typed dispatch, tests.
neeraj31285 Oct 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ project(CxxReflectionProject)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

# Add the subdirectories
add_subdirectory(ReflectionTemplateLib)
add_subdirectory(CxxTestRegistration)
add_subdirectory(RTLTestRunApp)
add_subdirectory(RTLBenchmarkApp)
add_subdirectory(CxxTestProps)
add_subdirectory(CxxTestUtils)
add_subdirectory(ReflectionTemplateLib)
add_subdirectory(RTLTestRunApp)
add_subdirectory(RTLBenchmarkApp)
4 changes: 0 additions & 4 deletions CxxTestRegistration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ ADD_LIBRARY(${PROJECT_NAME} STATIC "")
INCLUDE_DIRECTORIES(inc)
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/CxxTestUtils/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/CxxTestProps/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/common")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/detail/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/access/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/builder/inc")

TARGET_LINK_LIBRARIES(${CXX_LIB_NAME} ReflectionTemplateLib)

Expand Down
2 changes: 1 addition & 1 deletion CxxTestRegistration/inc/TestMirrorProvider.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "RTLibInterface.h"
#include <rtl/rtl.h>

namespace test_mirror
{
Expand Down
11 changes: 8 additions & 3 deletions CxxTestRegistration/src/TestMirrorProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,14 @@ namespace test_mirror
rtl::type().member<Animal>().methodStatic<const std::string&>(animal::str_updateZooKeeper).build(&Animal::updateZooKeeper),

#if defined(__GNUC__) && !defined(__clang__)
/* GCC fails to automatically identify the correct overloaded functor to pick. (non-const-lvalue-ref & rvalue as argument)
we need to explicitly cast the functor like, static_cast<void(Animal::*)(std::string&)>(&Animal::setAnimalName).
*/ rtl::type().member<Animal>()
/*
GCC fails to automatically resolve the correct overloaded functor
when both a non-const lvalue reference and an rvalue overload exist.
To disambiguate, explicitly cast the member function pointer, e.g.:

static_cast<void (Animal::*)(std::string&)>(&Animal::setAnimalName);
*/
rtl::type().member<Animal>()
.method<std::string&>(animal::str_setAnimalName)
.build(static_cast<void(Animal::*)(std::string&)>(&Animal::setAnimalName)), //overloaded method, taking non-const lvalue reference as argument.

Expand Down
6 changes: 3 additions & 3 deletions CxxTestUtils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ ADD_LIBRARY(${PROJECT_NAME} STATIC "")

INCLUDE_DIRECTORIES(inc)
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/CxxTestProps/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/common")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/access/inc")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/detail/inc")

TARGET_LINK_LIBRARIES(${CXX_LIB_NAME} ReflectionTemplateLib)

# Add the source directory
INCLUDE(src/CMakeLists.txt)
16 changes: 4 additions & 12 deletions RTLBenchmarkApp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,6 @@ if(NOT benchmark_POPULATED)
add_subdirectory(${benchmark_SOURCE_DIR} ${benchmark_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

# ===============================
# Common Include Paths
# ===============================
set(RTL_INCLUDE_DIRS
inc
"${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/common"
"${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/detail/inc"
"${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/access/inc"
"${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/builder/inc"
)

# ===============================
# Test Executable
Expand All @@ -51,8 +41,10 @@ add_executable(${CXX_EXE_NAME}
src/StandardCall.h
src/StandardCall.cpp
src/StdFunction.cpp
src/ReflectedCall.h
src/ReflectedCall.cpp
src/ReflectedCallKnownReturn.h
src/ReflectedCallKnownReturn.cpp
src/ReflectedCallUnknownReturn.h
src/ReflectedCallUnknownReturn.cpp
)


Expand Down
13 changes: 6 additions & 7 deletions RTLBenchmarkApp/src/BenchMark.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@


#include <optional>
#include <iostream>
#include <functional>
#include <rtl/rtl.h>

#include "BenchMark.h"
#include "RTLibInterface.h"



namespace bm
Expand All @@ -20,29 +19,29 @@ namespace bm

namespace bm
{
void sendMessage(argStr_t pMsg)
void sendMessage(argStr_t pMsg) noexcept
{
if(g_work_load){
g_work_done = perform_work(pMsg);
}
}

void Node::sendMessage(argStr_t pMsg)
void Node::sendMessage(argStr_t pMsg) noexcept
{
if(g_work_load){
g_work_done = perform_work(pMsg);
}
}

retStr_t getMessage(argStr_t pMsg)
retStr_t getMessage(argStr_t pMsg) noexcept
{
if(g_work_load){
g_work_done = perform_work(pMsg);
}
return retStr_t(g_work_done->c_str());
}

retStr_t Node::getMessage(argStr_t pMsg)
retStr_t Node::getMessage(argStr_t pMsg) noexcept
{
if(g_work_load){
g_work_done = perform_work(pMsg);
Expand Down
4 changes: 2 additions & 2 deletions RTLBenchmarkApp/src/BenchMark.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ namespace bm

struct Node
{
void sendMessage(argStr_t);
retStr_t getMessage(argStr_t);
void sendMessage(argStr_t) noexcept;
retStr_t getMessage(argStr_t) noexcept;
};
}

Expand Down
119 changes: 0 additions & 119 deletions RTLBenchmarkApp/src/ReflectedCall.cpp

This file was deleted.

18 changes: 0 additions & 18 deletions RTLBenchmarkApp/src/ReflectedCall.h

This file was deleted.

Loading