Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
551443e
fix gcc/clang compile error.
panda-ptr Oct 3, 2025
9a58d1a
static-dispatch test cases, const-method resolution.
panda-ptr Oct 4, 2025
8713343
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
panda-ptr Oct 4, 2025
491cfed
strict-type-matching for static-typed dispatch, tests.
panda-ptr Oct 4, 2025
6e5fa13
std::function type-erasure, removed raw-fn-ptrs, flexible now.
panda-ptr Oct 6, 2025
8eece08
fix gcc/clang compile error.
panda-ptr Oct 6, 2025
01554f8
minor improvements, renames, clean-up.
panda-ptr Oct 6, 2025
66725cc
bug fix, general refactor, renames.
panda-ptr Oct 6, 2025
0410f86
cv/ref/ptr/qualifier based overload test setup.
panda-ptr Oct 7, 2025
51720da
clang/gcc compile error fix.
panda-ptr Oct 7, 2025
e592836
cvq/ref/ptr strict overload resolution tests
panda-ptr Oct 7, 2025
ceb72f1
added missing equality check in tests.
panda-ptr Oct 8, 2025
b1be57a
ptr overload enabled, const&& overload unsupported now.
panda-ptr Oct 8, 2025
048c681
clang/gcc compile error fix.
panda-ptr Oct 8, 2025
f20a579
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
panda-ptr Oct 8, 2025
5f810f4
minor equality bug fix in test-case.
panda-ptr Oct 8, 2025
ae8bf7c
ref/cref/by-value implicit resolution, added error::RefOverloadAmbigu…
panda-ptr Oct 9, 2025
9bab1c8
minor improvements, more test-case.
panda-ptr Oct 9, 2025
58f70e2
more test-cases added.
panda-ptr Oct 9, 2025
949f66b
minor optimizations & benchmarking tweaks.
panda-ptr Oct 9, 2025
b98c1cb
adding latest benchmarks logs.
panda-ptr Oct 9, 2025
2de39de
more test cases.
panda-ptr Oct 10, 2025
953b13c
few better renames.
panda-ptr Oct 10, 2025
6650dfb
bind() syntax enabled for new-dispatch-path design.
panda-ptr Oct 10, 2025
bce3232
new-dispatch-path integration, wip.
panda-ptr Oct 10, 2025
78bab98
improved unique-type-id for new dispatch design.
panda-ptr Oct 11, 2025
f3f086e
fix gcc/clang compile error.
panda-ptr Oct 11, 2025
ac65b04
better callable interface, wip.
panda-ptr Oct 12, 2025
2cb0562
better callable interface, wip.
panda-ptr Oct 12, 2025
097b089
better callable interface, wip.
panda-ptr Oct 13, 2025
c5b2746
callable integration, tests failing, wip.
panda-ptr Oct 13, 2025
f7649b9
return-erased rtl::function integrated, tetsed. wip.
panda-ptr Oct 14, 2025
9e3fb9a
fix gcc/clang compile error.
panda-ptr Oct 14, 2025
a9ee960
minor refactor
panda-ptr Oct 14, 2025
f298e11
refactor, better syntax for rtl::method
panda-ptr Oct 14, 2025
adc3b8c
return-erased rtl::method<> impl, wip.
panda-ptr Oct 15, 2025
1e9cd9f
return-erased rtl::method<> integration, wip.
panda-ptr Oct 15, 2025
7c40831
function-defs inside struct now, nested template err fix(clang-19)
panda-ptr Oct 15, 2025
31110b6
rtl::method static-type dispatch tests.
panda-ptr Oct 16, 2025
2fcfd2b
fix header include error clang/gcc
panda-ptr Oct 16, 2025
e1db2c5
return-erased rtl::method tests added.
panda-ptr Oct 16, 2025
f6f282f
minor improvement/refactor/formatting.
panda-ptr Oct 16, 2025
6b5c0ad
rtl::method<const record_t, _..> test cases added.
panda-ptr Oct 17, 2025
4b36853
fixed gcc overload resolution error while registration.
panda-ptr Oct 17, 2025
541e1a1
test case additions, minor refactor/renaming.
panda-ptr Oct 17, 2025
ea0b4fd
design improvements, phasing old one out.
panda-ptr Oct 20, 2025
d4d3965
gcc/clang compile error fix.
panda-ptr Oct 20, 2025
6c0f153
rename/refactor
panda-ptr Oct 20, 2025
aed37df
type-erasure for methods, design improved.
panda-ptr Oct 22, 2025
5380665
type-erased interface for methods. wip.
panda-ptr Oct 23, 2025
c49b501
benchmark code fixes.
panda-ptr Oct 24, 2025
4663467
benchmark for all-type-erased-method, refactor.
panda-ptr Oct 24, 2025
e6d46ae
latest benchmark logs added.
panda-ptr Oct 25, 2025
3693994
static & const method calls. wip.
panda-ptr Oct 26, 2025
db38f24
builder code cleanup/refactor. static-method calls- wip.
panda-ptr Oct 28, 2025
a106422
gcc/clang compilation error fix.
panda-ptr Oct 29, 2025
3da8c70
static-method-calls, tests failing. wip.
panda-ptr Oct 29, 2025
c645923
static-method calls, wip.
panda-ptr Oct 29, 2025
9b94e14
static-method call tests, wip.
panda-ptr Oct 30, 2025
ea32ea4
fix- gcc compile err i.e, expicit ref-overload resolution
panda-ptr Oct 30, 2025
dba3221
static-method call tests, wip.
panda-ptr Oct 30, 2025
04c3a65
introducing rtl::static_method.
panda-ptr Oct 30, 2025
b36f475
static-method, init-error for callables, wip
panda-ptr Oct 31, 2025
eb3f764
Updated readme.
panda-ptr Oct 31, 2025
d2c8eb0
Updated Readme.
panda-ptr Oct 31, 2025
4f82ff4
Updated Readme.
panda-ptr Oct 31, 2025
2382aef
static-method, test cases fix.
panda-ptr Nov 1, 2025
7bbdfa7
Updated readme.
panda-ptr Nov 1, 2025
f5eca8e
Updated Readme.
panda-ptr Nov 1, 2025
13fc6a4
Updated Readme.
panda-ptr Nov 1, 2025
125b2f5
Updated Readme, action yml.
panda-ptr Nov 1, 2025
0bdd773
Updated Readme.
panda-ptr Nov 1, 2025
5286a9f
Updated Readme.
panda-ptr Nov 2, 2025
ab3b9cc
static_method test cases, error-codes, doc.
panda-ptr Nov 2, 2025
1932383
Update README.md
panda-ptr Nov 2, 2025
7fca65c
Update README.md
panda-ptr Nov 2, 2025
422906a
Update README.md
panda-ptr Nov 2, 2025
ab87b86
added test case, readme update.
panda-ptr Nov 3, 2025
00c1eb5
Merge branch 'release' into develop
panda-ptr Nov 3, 2025
0e6d702
all test cases passing now.
panda-ptr Nov 3, 2025
3599c41
fixed conflicts.
panda-ptr Nov 3, 2025
0250333
Update README.md
panda-ptr Nov 3, 2025
1d29859
static_method, known args/return type tests. done.
panda-ptr Nov 4, 2025
7da867a
added latest benchmarks with std::string & std::string_view.
panda-ptr Nov 4, 2025
7aa25a7
Update README.md
panda-ptr Nov 4, 2025
d2b9aff
Refactor README for improved readability
panda-ptr Nov 4, 2025
68d4451
Update README.md
panda-ptr Nov 4, 2025
6e80bf1
return-erased static_method test, fixes, doc ups.
panda-ptr Nov 5, 2025
287323e
test-case & doc update.
panda-ptr Nov 5, 2025
c5d6c27
Create reflection-apis-redefined.txt
panda-ptr Nov 6, 2025
0d7382c
Rename reflection-apis-redefined.txt to reflection-apis-redefined.md
panda-ptr Nov 6, 2025
960e699
CxxTestRegistration: code-improvement, wip.
panda-ptr Nov 7, 2025
733052d
fix- gcc/clang err, missed include.
panda-ptr Nov 7, 2025
252ad6e
refactor, renames.
panda-ptr Nov 8, 2025
00e393e
CxxTestRegistration: improvements done.
panda-ptr Nov 8, 2025
e92d2eb
fix- gcc compile errors.
panda-ptr Nov 8, 2025
d710333
Readme update.
panda-ptr Nov 8, 2025
975891d
new constructor api- wip.
panda-ptr Nov 9, 2025
69eeded
header sanitization, minor bug fix, new ctor-apis:wip.
panda-ptr Nov 10, 2025
c952c4c
redundent code cleanup.
panda-ptr Nov 10, 2025
337eaf2
updated readme.md
panda-ptr Nov 10, 2025
15800a5
new constructor-api, wip.
panda-ptr Nov 11, 2025
0e90096
fix- gcc/clang compile error.
panda-ptr Nov 11, 2025
addfa4c
new ctor dispatch defined. wip.
panda-ptr Nov 11, 2025
5f81ff7
Update README.md
panda-ptr Nov 11, 2025
595ebc4
Update README.md
panda-ptr Nov 11, 2025
51f67b9
Update README.md
panda-ptr Nov 11, 2025
e2e37db
Update README.md
panda-ptr Nov 11, 2025
666afbd
default-ctor's fptr added in cache. wip.
panda-ptr Nov 12, 2025
33e48cc
erase_return function cache improvement.
panda-ptr Nov 13, 2025
6e49b7d
fix clang/gcc 'template' compile err.
panda-ptr Nov 13, 2025
e08ab47
parametrized-ctor dispatch in place now.
panda-ptr Nov 13, 2025
af2a203
new ctor api setup, wip
panda-ptr Nov 13, 2025
d514c4f
fix clang/gcc 'template' compile err.
panda-ptr Nov 14, 2025
5c7ed65
new-ctor-apis: code fixes. wip.
panda-ptr Nov 14, 2025
4bf6fe7
organizing fptr metadata, simplified hierarchy.
panda-ptr Nov 14, 2025
22d7c2e
organizing fptr metadata, wip.
panda-ptr Nov 14, 2025
0dd9111
organizing fptr metadata, wip..
panda-ptr Nov 14, 2025
5f8ec48
organizing metadata: function_ptr.h, inits. wip.
panda-ptr Nov 15, 2025
0943010
gcc/clang compile error fix.
panda-ptr Nov 15, 2025
2ae0414
organizing metadata: re-name/factor. wip.
panda-ptr Nov 15, 2025
1278e71
organizing metadata: wip.
panda-ptr Nov 15, 2025
25e8a86
fix clang/gcc template error.
panda-ptr Nov 15, 2025
bcde3bb
organizing metadata: method_ptr.h, wip.
panda-ptr Nov 16, 2025
b97efc2
organizing metadata: method_ptr_const.h, wip.
panda-ptr Nov 16, 2025
5b31ef8
organizing metadata: erased method lambda added.
panda-ptr Nov 16, 2025
47401bd
organizing metadata: method_const lambdas fix.
panda-ptr Nov 16, 2025
d92865b
minor renaming.
panda-ptr Nov 16, 2025
9c33ffa
general refactor, header
panda-ptr Nov 17, 2025
87233b5
organizing metadata: ctor-init improvements.
panda-ptr Nov 17, 2025
a8049ce
organizing metadata: added functor_cast.
panda-ptr Nov 17, 2025
a0c05f6
organizing metadata: functor_cast in use for function.
panda-ptr Nov 17, 2025
87ce185
organizing metadata: functor_cast with method-functor
panda-ptr Nov 18, 2025
8f5c643
clang/gcc template error fix.
panda-ptr Nov 18, 2025
adb6f55
organizing metadata: erasure_base.h removed.
panda-ptr Nov 18, 2025
c2fff8a
organizing metadata: removing lambda_base.h, wip.
panda-ptr Nov 18, 2025
e6eab16
organizing metadata: removed FunctorId.hpp.
panda-ptr Nov 18, 2025
eadead6
organizing metadata: removed lambda_base.
panda-ptr Nov 18, 2025
89adc92
organizing metadata: finished. cleanup done.
panda-ptr Nov 19, 2025
19b0359
function_ptr.h: using function pointer istead of lambda now.
panda-ptr Nov 19, 2025
16a77e0
fix clang/gcc compile err.
panda-ptr Nov 19, 2025
987e075
function/method_lambda, using function ptr (for voids).
panda-ptr Nov 19, 2025
cf8ace3
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
panda-ptr Nov 19, 2025
5e14c03
header includes based optimization.
panda-ptr Nov 29, 2025
243702b
erased-return: removed unnecessary lambdas.
panda-ptr Nov 30, 2025
d0689d1
erased-return: removed unnecessary std::function.
panda-ptr Nov 30, 2025
8aecbc4
erased-return: removed unnecessary lambdas. for const.
panda-ptr Nov 30, 2025
1121dc5
general refactor.
panda-ptr Dec 1, 2025
07c7ce5
refactor, files reorganized.
panda-ptr Dec 3, 2025
dfa2244
clang/gcc, template/typename error fix.
panda-ptr Dec 3, 2025
6a46e30
msvc compile err fix.
panda-ptr Dec 3, 2025
c73f201
rtl::constructor- wip.
panda-ptr Dec 10, 2025
042335d
rtl::constructor- defined. wip.
panda-ptr Dec 11, 2025
730452d
code improved, logic simplified.
panda-ptr Dec 15, 2025
3c8e96a
callable init errors, test cases.
panda-ptr Dec 15, 2025
acbfb3e
rtl::constructor- implementation done.
panda-ptr Dec 15, 2025
21f6060
rtl::constructor- default-ctor impl, basic tests.
panda-ptr Dec 16, 2025
e8728b0
rtl::constructor- test setup.
panda-ptr Dec 17, 2025
6910f69
clang/gcc compile error fix.
panda-ptr Dec 17, 2025
51a744d
updated ReadMe, new apis in ex.
panda-ptr Dec 17, 2025
5dafd26
rtl::constructor- by value call test.
panda-ptr Dec 17, 2025
4d2fc72
rtl::constructor- call by ref(perfect-fwd) test, bug fix.
panda-ptr Dec 18, 2025
bfd4165
rtl::constructor- ref overloads, auto resolution test.
panda-ptr Dec 18, 2025
0e848ce
new-ctor design regression, few colne fails.
panda-ptr Dec 18, 2025
5a3280c
rtl::constructor: regression fixes.
panda-ptr Dec 19, 2025
d620252
cloning, regression, all tests fixed. Passing.
panda-ptr Dec 19, 2025
356ccce
RObjectBuilder cleanup.
panda-ptr Dec 19, 2025
90e2598
code-move: concern seperation.
panda-ptr Dec 19, 2025
e9bcace
clang/gcc compile err fix.
panda-ptr Dec 19, 2025
a9ee76d
rtl::function regression tests. passed.
panda-ptr Dec 20, 2025
8d2d178
rtl::static_method integration, regression passed.
panda-ptr Dec 20, 2025
4c009a7
cleanup: phasing old dispatch, call() api.
panda-ptr Dec 20, 2025
ad09a99
rtl::constructor integration, no-args, regression passed.
panda-ptr Dec 20, 2025
b82c47e
rtl::constructor regression, tests passed.
panda-ptr Dec 20, 2025
493ce2c
phase-out old, cleanup, wip.
panda-ptr Dec 20, 2025
7ea4b96
phase-out-old: SetupConstructor trimmed.
panda-ptr Dec 21, 2025
81e9be9
phase-out-old-design: cleanup, wip.
panda-ptr Dec 21, 2025
4460b05
phase-out-old: SetupFunction trimmed.
panda-ptr Dec 21, 2025
1c2e78e
phase-out-old: SetupDispatch added.
panda-ptr Dec 21, 2025
620bb7d
phase-out-old: minor cleanup.
panda-ptr Dec 22, 2025
88cb79e
phase-out-old: FunctorContainer removed.
panda-ptr Dec 22, 2025
ff300a5
phase-out-old: refactor.
panda-ptr Dec 22, 2025
0194778
phase-out-old: integrating new callables in tests.
panda-ptr Dec 22, 2025
d3a7d58
phase-out-old: integrating new callables, wip.
panda-ptr Dec 23, 2025
eb741d4
replaced TypeId to traits::uid, warning: build time increased.
panda-ptr Dec 23, 2025
34c0598
'TargetTypeMismatch' handled in callers, build time OK.
panda-ptr Dec 23, 2025
8ce5974
regression: perfect-forwarding tests. fix, refactor.
panda-ptr Dec 23, 2025
038b4c0
error-handling in rtl::method improved.
panda-ptr Dec 24, 2025
b35d9a8
regression: CopyConstructorTests, wip.
panda-ptr Dec 24, 2025
afe2aba
design improvement: non-member return-erased-fn caller.
panda-ptr Dec 25, 2025
d5a8823
design improv: introduced dispatch::forward_call, wip.
panda-ptr Dec 26, 2025
7d04999
design improv: rtl::function done.
panda-ptr Dec 26, 2025
f7d186e
updated Readme.
panda-ptr Dec 26, 2025
e6a21d0
design improv: code cleanup.
panda-ptr Dec 26, 2025
d216177
design improv: removed std::any from all erased-return.
panda-ptr Dec 27, 2025
ba0646a
design improv: fn_void cleanup, wip.
panda-ptr Dec 27, 2025
b57b3b4
design improv: forward_call integration, wip.
panda-ptr Dec 27, 2025
82f151a
design improv: rtl::method, erased-target-known-return fixed.
panda-ptr Dec 28, 2025
6ce7383
design improv: removed enum 'fn_void'.
panda-ptr Dec 28, 2025
50594f6
design improv: forward_call integration.
panda-ptr Dec 28, 2025
1ab9ca4
regression: CopyConstructorTests, done.
panda-ptr Dec 28, 2025
cf5b49f
Update README.md
panda-ptr Dec 29, 2025
6bf632d
Update README.md
panda-ptr Dec 29, 2025
be771c0
Update README.md
panda-ptr Dec 29, 2025
51c22f9
Update README.md
panda-ptr Dec 30, 2025
fba2a13
files renamed/added.
panda-ptr Dec 30, 2025
13738c2
registration example-code refactored.
panda-ptr Dec 30, 2025
0947a82
introduced rtl::const_method, few tests failing.
panda-ptr Dec 31, 2025
b4940b9
gcc 'typename' compile error fix.
panda-ptr Dec 31, 2025
2ab876b
clang 'template' compile error fix.
panda-ptr Dec 31, 2025
dcbe022
test fixes, few known fails.
panda-ptr Dec 31, 2025
7cb2088
builder-code refactored, member_kind fix.
panda-ptr Jan 1, 2026
ccbc5e8
Registration code n metadata refinement
panda-ptr Jan 2, 2026
b0ec203
RObjectId, code cleanup.
panda-ptr Jan 2, 2026
c993f1d
minor changes and comment fixes.
panda-ptr Jan 3, 2026
23e0182
minor but important test refinement.
panda-ptr Jan 3, 2026
17330dd
minor test-cases refactoring.
panda-ptr Jan 4, 2026
ca868a2
const-methods: overload auto-resolution, wip.
panda-ptr Jan 4, 2026
5000d74
const-methods: overload auto-resolution, wip.
panda-ptr Jan 5, 2026
2b5da95
clang/gcc 'template' error fix.
panda-ptr Jan 5, 2026
df24e36
const-methods: refactor, wip.
panda-ptr Jan 5, 2026
583670c
const-methods: implicit call to non-const fixed.
panda-ptr Jan 6, 2026
d2ae123
const-methods: target-erased caller, const ready now.
panda-ptr Jan 6, 2026
c171ecd
last incomplete code-check-in fix.
panda-ptr Jan 6, 2026
f73a588
const-methods: MethodInvoker code refactor.
panda-ptr Jan 7, 2026
6baea03
const-methods: error-code placement.
panda-ptr Jan 10, 2026
22bc323
const-methods: all test-case pass now.
panda-ptr Jan 10, 2026
98460d9
regression: copy/move ctors with new callables.
panda-ptr Jan 10, 2026
b91f250
regression: MyReflectionTests.cpp with new callables.
panda-ptr Jan 11, 2026
4078555
regression: const-methods, new callables, done.
panda-ptr Jan 11, 2026
76ad267
gcc/clang compile err fix.
panda-ptr Jan 11, 2026
4a88e97
removed old method calling interfaces.
panda-ptr Jan 11, 2026
d03e2de
new dispatch for all reflected calls in place now.
panda-ptr Jan 12, 2026
5c39672
removed 'FunctorId', replaced by rtl::type_meta.
panda-ptr Jan 12, 2026
6ec6e6e
clean-up, refactor, files rename/delete.
panda-ptr Jan 12, 2026
15202ee
clean-up, refactor, renames/dels, license.
panda-ptr Jan 13, 2026
af5cd06
clang/gcc 'constexpr' compile err fix.
panda-ptr Jan 13, 2026
b432f27
added test coverage.
panda-ptr Jan 13, 2026
7f46b53
git-action fix, json-dump formatted.
panda-ptr Jan 13, 2026
3fe0eb4
gcov action job fix.
panda-ptr Jan 13, 2026
9825a06
gcov error fix.
panda-ptr Jan 13, 2026
12a45a0
git badge fix.
panda-ptr Jan 13, 2026
d0d7d21
added Codecov coverage upload.
panda-ptr Jan 13, 2026
d03610e
Readme, bagde fix.
panda-ptr Jan 13, 2026
98a35e9
fix codecov upload.
panda-ptr Jan 13, 2026
e149f08
readme, badge fix.
panda-ptr Jan 13, 2026
9db8f30
codecov, auth fix.
panda-ptr Jan 13, 2026
5c6d019
codecov config.
panda-ptr Jan 13, 2026
36608c4
Readme updated.
panda-ptr Jan 14, 2026
4c619db
resolved merge conflicts.
panda-ptr Jan 14, 2026
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
12 changes: 12 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
coverage:
status:
project:
rtl:
paths:
- ReflectionTemplateLib/rtl
target: 85%
informational: true

comment:
layout: "diff, flags, files"
behavior: default
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ name: RTL Build

on:
push:
branches: [ release ]
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ release ]
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
workflow_dispatch:
Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: RTL Coverage

on:
push:
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
workflow_dispatch:

jobs:
coverage:
name: RTL Coverage (Linux / GCC)
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Install coverage tools
run: |
sudo apt update
sudo apt install -y lcov gcovr ninja-build g++

- name: Configure (Coverage)
run: |
cmake -B build -G Ninja \
-DENABLE_COVERAGE=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_COMPILER=g++

- name: Build
run: cmake --build build --parallel

- name: Run tests
run: |
./bin/RTLTestRunApp

- name: Capture RTL coverage
run: |
lcov --capture --directory . \
--output-file coverage.info \
--ignore-errors=inconsistent,negative,mismatch

lcov --extract coverage.info \
'*ReflectionTemplateLib/rtl/*' \
-o coverage_rtl.info

- name: Generate HTML report
run: |
genhtml coverage_rtl.info \
--output-directory coverage_rtl \
--ignore-errors inconsistent,corrupt

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: rtl-coverage-report
path: coverage_rtl

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: coverage_rtl.info
flags: rtl
name: RTL-Core-Coverage
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
23 changes: 17 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
# CMakeLists.txt for the entire project
cmake_minimum_required(VERSION 3.20)
# Set the project name
project(CxxReflectionProject)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

# Add the subdirectories
# ----------------------------
# Coverage Support (Linux)
# ----------------------------
option(ENABLE_COVERAGE "Enable code coverage" OFF)

if(ENABLE_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
message(STATUS "Code coverage enabled")
add_compile_options(--coverage -O0 -g)
add_link_options(--coverage)
endif()

# ----------------------------
# 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)
7 changes: 1 addition & 6 deletions CxxTestProps/inc/Complex.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@

#include <string>

// C-style/free-functions.
std::string getComplexNumAsString();

std::string reverseString();

std::string reverseString(std::string pStr);

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

namespace complex
{
double getMagnitude();
Expand Down
43 changes: 43 additions & 0 deletions CxxTestProps/inc/StringConst.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#pragma once

#include <string>

// 'StrConst' - String-Const, all methods are const.
struct StrConst
{
constexpr static const char* struct_ = "StrConst";

std::string reverseString() const;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string revStrOverloadRefAndCRef(const std::string_view& pStr) const;
};
12 changes: 12 additions & 0 deletions CxxTestProps/inc/StringConstOverload.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#pragma once

#include <string>

struct StrConstOverload
{
constexpr static const char* struct_ = "StrConstOverload";

std::string reverseString();

std::string reverseString() const;
};
43 changes: 43 additions & 0 deletions CxxTestProps/inc/StringMute.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#pragma once

#include <string>

// 'StrMute' - String-Mutable, all methods are non-const.
struct StrMute
{
constexpr static const char* struct_ = "StrMute";

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);
};
37 changes: 37 additions & 0 deletions CxxTestProps/inc/StringOps.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#pragma once

#include <string>

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);
43 changes: 43 additions & 0 deletions CxxTestProps/inc/StringStatic.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#pragma once

#include <string>

// 'StrStatic' - String-Static, all methods are static.
struct StrStatic
{
constexpr static const char* struct_ = "StrStatic";

static std::string reverseString();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

static std::string revStrOverloadRefAndCRef(const std::string_view& pStr);
};
54 changes: 54 additions & 0 deletions CxxTestProps/inc/StringWrap.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#pragma once

#include <string>

struct StrWrap
{
const std::string m_str;
const std::string& sstr() const;

StrWrap(const std::string& pStr);
};

// 'StrWrapA' - String-Wrapper, only constructors for testing.
struct StrWrapA : public StrWrap
{
constexpr static const char* struct_ = "StrWrapA";

StrWrapA();

StrWrapA(std::string_view pStr); // (1) by value

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

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

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

StrWrapA(const char* pStr); // (5) pointer
};


// 'StrWrapB' - String-Wrapper, only constructors for testing.
struct StrWrapB : public StrWrap
{
constexpr static const char* struct_ = "StrWrapB";
StrWrapB(std::string& pStr);
StrWrapB(const std::string& pStr);
};


// 'StrWrapC' - String-Wrapper, only constructors for testing.
struct StrWrapC : public StrWrap
{
constexpr static const char* struct_ = "StrWrapC";
StrWrapC(std::string& pStr);
};


// 'StrWrapD' - String-Wrapper, only constructors for testing.
struct StrWrapD : public StrWrap
{
constexpr static const char* struct_ = "StrWrapD";
StrWrapD(const std::string& pStr);
};
Loading