Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 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
6e5fa13
std::function type-erasure, removed raw-fn-ptrs, flexible now.
neeraj31285 Oct 6, 2025
8eece08
fix gcc/clang compile error.
neeraj31285 Oct 6, 2025
01554f8
minor improvements, renames, clean-up.
neeraj31285 Oct 6, 2025
66725cc
bug fix, general refactor, renames.
neeraj31285 Oct 6, 2025
0410f86
cv/ref/ptr/qualifier based overload test setup.
neeraj31285 Oct 7, 2025
51720da
clang/gcc compile error fix.
neeraj31285 Oct 7, 2025
e592836
cvq/ref/ptr strict overload resolution tests
neeraj31285 Oct 7, 2025
ceb72f1
added missing equality check in tests.
neeraj31285 Oct 8, 2025
b1be57a
ptr overload enabled, const&& overload unsupported now.
neeraj31285 Oct 8, 2025
048c681
clang/gcc compile error fix.
neeraj31285 Oct 8, 2025
f20a579
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
neeraj31285 Oct 8, 2025
5f810f4
minor equality bug fix in test-case.
neeraj31285 Oct 8, 2025
ae8bf7c
ref/cref/by-value implicit resolution, added error::RefOverloadAmbigu…
neeraj31285 Oct 9, 2025
9bab1c8
minor improvements, more test-case.
neeraj31285 Oct 9, 2025
58f70e2
more test-cases added.
neeraj31285 Oct 9, 2025
949f66b
minor optimizations & benchmarking tweaks.
neeraj31285 Oct 9, 2025
b98c1cb
adding latest benchmarks logs.
neeraj31285 Oct 9, 2025
2de39de
more test cases.
neeraj31285 Oct 10, 2025
953b13c
few better renames.
neeraj31285 Oct 10, 2025
6650dfb
bind() syntax enabled for new-dispatch-path design.
neeraj31285 Oct 10, 2025
bce3232
new-dispatch-path integration, wip.
neeraj31285 Oct 10, 2025
78bab98
improved unique-type-id for new dispatch design.
neeraj31285 Oct 11, 2025
f3f086e
fix gcc/clang compile error.
neeraj31285 Oct 11, 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)
20 changes: 0 additions & 20 deletions CxxTestProps/inc/Complex.h

This file was deleted.

48 changes: 48 additions & 0 deletions CxxTestProps/inc/ComplexStrings.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#pragma once

#include <string>

namespace complex
{
double getMagnitude();

void setReal(double pNum);

void setImaginary(double pNum);
}

std::string getComplexNumAsString();

std::string reverseString();

std::string reverseString(const char* pStr);

std::string reverseString(std::string pStr); // (1) by value

std::string reverseString(std::string& pStr); // (2) lvalue ref

std::string reverseString(const std::string& pStr); // (3) const lvalue ref

std::string reverseString(std::string&& pStr); // (4) rvalue ref

std::string reverseString(std::string* pStr); // (5) pointer

std::string reverseString(const std::string* pStr); // (6) pointer to const

std::string revStrConstRefArg(const std::string_view& pStr);

std::string revStrNonConstRefArg(std::string_view& pStr);

std::string revStrRValueRefArg(std::string_view&& pStr);

std::string revStrOverloadValRef(std::string_view pStr);

std::string revStrOverloadValRef(std::string_view& pStr);

std::string revStrOverloadValCRef(std::string_view pStr);

std::string revStrOverloadValCRef(const std::string_view& pStr);

std::string revStrOverloadRefAndCRef(std::string_view& pStr);

std::string revStrOverloadRefAndCRef(const std::string_view& pStr);
4 changes: 2 additions & 2 deletions CxxTestProps/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Create a variable containing the source files for your target
set(LOCAL_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/Book.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Complex.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Date.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Person.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Animal.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Library.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ComplexStrings.cpp"
)

SET(LOCAL_HEADERS
"${PROJECT_SOURCE_DIR}/inc/Book.h"
"${PROJECT_SOURCE_DIR}/inc/Complex.h"
"${PROJECT_SOURCE_DIR}/inc/Date.h"
"${PROJECT_SOURCE_DIR}/inc/Animal.h"
"${PROJECT_SOURCE_DIR}/inc/Person.h"
"${PROJECT_SOURCE_DIR}/inc/Library.h"
"${PROJECT_SOURCE_DIR}/inc/ComplexStrings.h"
)

# Add any additional source files if needed
Expand Down
58 changes: 0 additions & 58 deletions CxxTestProps/src/Complex.cpp

This file was deleted.

188 changes: 188 additions & 0 deletions CxxTestProps/src/ComplexStrings.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@

#include <complex>
#include <algorithm>

#include "ComplexStrings.h"

namespace complex
{
static double g_imgNumber;
static double g_realNumber;

double getMagnitude()
{
std::complex<double> z(g_realNumber, g_imgNumber);
return std::abs(z);
}

void setReal(double pNum) {
g_realNumber = pNum;
}

void setImaginary(double pNum) {
g_imgNumber = pNum;
}
}

std::string getComplexNumAsString()
{
return std::to_string(complex::g_realNumber) + "i" + (std::to_string(complex::g_imgNumber));
}

namespace test_utils {

const char* SUFFIX_ARG_void = "_arg_void";
const char* SUFFIX_ARG_const_char_ptr = "_arg_const_char_*";

const char* SUFFIX_ARG_std_string = "_arg_std::string";

const char* SUFFIX_ARG_std_string_ptr = "_arg_std::string*";
const char* SUFFIX_ARG_std_string_cptr = "_arg_const_std::string*";

const char* SUFFIX_ARG_std_string_lvref = "_arg_std::string&";
const char* SUFFIX_ARG_std_string_clvref = "_arg_const_std::string&";

const char* SUFFIX_ARG_std_string_rvref = "_arg_std::string&&";

const char* REV_STR_VOID_RET = "func_reverseString(void)->[return_str]";

const char* SUFFIX_ARG_std_string_view = "_arg_std::string_view";
const char* SUFFIX_ARG_std_string_view_lvref = "_arg_std::string_view&";
const char* SUFFIX_ARG_std_string_view_rvref = "_arg_std::string_view&&";
const char* SUFFIX_ARG_std_string_view_clvref = "_arg_const_std::string_view&";
}

using namespace test_utils;

std::string reverseString()
{
return std::string(REV_STR_VOID_RET) + SUFFIX_ARG_void;
}


std::string reverseString(const char* pStr)
{
std::string retStr = pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_const_char_ptr;
}


std::string reverseString(std::string pStr)
{
std::string retStr = pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string;
}


std::string reverseString(std::string& pStr)
{
std::string retStr = pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_lvref;
}


std::string reverseString(std::string&& pStr)
{
std::string retStr = pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_rvref;
}


std::string reverseString(const std::string& pStr)
{
std::string retStr = pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_clvref;
}


std::string reverseString(std::string* pStr)
{
std::string retStr = *pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_ptr;
}


std::string reverseString(const std::string* pStr)
{
std::string retStr = *pStr;
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_cptr;
}


std::string revStrConstRefArg(const std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_clvref;
}


std::string revStrRValueRefArg(std::string_view&& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_rvref;
}


std::string revStrNonConstRefArg(std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_lvref;
}


std::string revStrOverloadValCRef(std::string_view pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view;
}


std::string revStrOverloadValCRef(const std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_clvref;
}


std::string revStrOverloadValRef(std::string_view pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view;
}


std::string revStrOverloadValRef(std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_lvref;
}


std::string revStrOverloadRefAndCRef(std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_lvref;
}


std::string revStrOverloadRefAndCRef(const std::string_view& pStr)
{
std::string retStr(pStr);
std::reverse(retStr.begin(), retStr.end());
return retStr + SUFFIX_ARG_std_string_view_clvref;
}
6 changes: 2 additions & 4 deletions CxxTestRegistration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ 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")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/ReflectionTemplateLib/rtl/inc")

TARGET_LINK_LIBRARIES(${CXX_LIB_NAME} CxxTestProps)
TARGET_LINK_LIBRARIES(${CXX_LIB_NAME} ReflectionTemplateLib)

# Add the source directory
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
5 changes: 0 additions & 5 deletions CxxTestRegistration/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@ set(LOCAL_SOURCES

SET(LOCAL_HEADERS
"${PROJECT_SOURCE_DIR}/inc/TestMirrorProvider.h"
"${CMAKE_SOURCE_DIR}/CxxTestProps/inc/Book.h"
"${CMAKE_SOURCE_DIR}/CxxTestProps/inc/Complex.h"
"${CMAKE_SOURCE_DIR}/CxxTestProps/inc/Date.h"
"${CMAKE_SOURCE_DIR}/CxxTestProps/inc/Person.h"
"${CMAKE_SOURCE_DIR}/CxxTestProps/inc/Animal.h"
)

# Add any additional source files if needed
Expand Down
Loading