1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Add deterministic C++ reference adapter

This commit is contained in:
Andraxion 2026-07-29 14:53:21 -04:00
parent f00aa65a73
commit 7bee0220c2
7 changed files with 1915 additions and 0 deletions

View file

@ -0,0 +1,19 @@
[
{
"arguments": [
"c++",
"-std=c++20",
"-Iinclude",
"-c",
"src/main.cpp"
],
"directory": ".",
"file": "src/main.cpp"
},
{
"command": "c++ -std=c++20 -Iinclude -c src/worker.cpp",
"directory": ".",
"file": "src/worker.cpp",
"output": "worker.o"
}
]

View file

@ -0,0 +1,15 @@
#pragma once
#include "detail.hpp"
namespace demo {
struct Config {
int limit;
};
inline int effective_limit(const Config& config) {
return normalize(config.limit);
}
} // namespace demo

View file

@ -0,0 +1,12 @@
#pragma once
namespace demo {
inline int normalize(int value) {
if (value < 0) {
return 0;
}
return value;
}
} // namespace demo

View file

@ -0,0 +1,17 @@
#include "../include/config.hpp"
namespace demo {
int execute(int value) {
Config config{value};
if (value == 0) {
return effective_limit(config);
}
return normalize(value);
}
} // namespace demo
int main() {
return demo::execute(3);
}

View file

@ -0,0 +1,17 @@
#include "../include/config.hpp"
namespace demo {
class Worker {
public:
int run(int value) {
for (int attempt = 0; attempt < 2; ++attempt) {
if (value > attempt) {
return effective_limit(Config{value});
}
}
return 0;
}
};
} // namespace demo