From a191994221e0d143aacfd8e70106cbd25d2b6da4 Mon Sep 17 00:00:00 2001 From: "Dr. Patrick Urbanke" Date: Tue, 27 Jan 2026 23:26:20 +0100 Subject: [PATCH 1/2] Allow the mixing of rename and default var --- include/rfl/internal/is_default_val_v.hpp | 5 +++++ tests/json/test_default_val.cpp | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/rfl/internal/is_default_val_v.hpp b/include/rfl/internal/is_default_val_v.hpp index 98977549..40253738 100644 --- a/include/rfl/internal/is_default_val_v.hpp +++ b/include/rfl/internal/is_default_val_v.hpp @@ -4,6 +4,7 @@ #include #include "../DefaultVal.hpp" +#include "../Rename.hpp" namespace rfl::internal { @@ -16,6 +17,10 @@ class is_default_val : public std::false_type {}; template class is_default_val> : public std::true_type {}; +template +class is_default_val>> : public std::true_type { +}; + template constexpr bool is_default_val_v = is_default_val>>::value; diff --git a/tests/json/test_default_val.cpp b/tests/json/test_default_val.cpp index 1039746e..74ec5d41 100644 --- a/tests/json/test_default_val.cpp +++ b/tests/json/test_default_val.cpp @@ -10,6 +10,7 @@ struct Person { std::string first_name; rfl::DefaultVal last_name = "Simpson"; rfl::DefaultVal town; + rfl::Rename<"country", rfl::DefaultVal> home_country = "USA"; }; TEST(json, test_default_val) { @@ -31,6 +32,6 @@ TEST(json, test_default_val) { write_and_read( Person{"Waylon", "Smith", "Springfield"}, - R"({"first_name":"Waylon","last_name":"Smith","town":"Springfield"})"); + R"({"first_name":"Waylon","last_name":"Smith","town":"Springfield","country":"USA"})"); } } // namespace test_default_val From a28c856b219bedd5b79b1cdec90e2bf3a3378cc7 Mon Sep 17 00:00:00 2001 From: "Dr. Patrick Urbanke" Date: Tue, 27 Jan 2026 23:38:09 +0100 Subject: [PATCH 2/2] Minor tweaks --- include/rfl/internal/is_default_val_v.hpp | 1 + tests/json/test_default_val.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/include/rfl/internal/is_default_val_v.hpp b/include/rfl/internal/is_default_val_v.hpp index 40253738..d0811eb5 100644 --- a/include/rfl/internal/is_default_val_v.hpp +++ b/include/rfl/internal/is_default_val_v.hpp @@ -5,6 +5,7 @@ #include "../DefaultVal.hpp" #include "../Rename.hpp" +#include "StringLiteral.hpp" namespace rfl::internal { diff --git a/tests/json/test_default_val.cpp b/tests/json/test_default_val.cpp index 74ec5d41..9ef09671 100644 --- a/tests/json/test_default_val.cpp +++ b/tests/json/test_default_val.cpp @@ -29,6 +29,7 @@ TEST(json, test_default_val) { EXPECT_EQ(homer.first_name, "Homer"); EXPECT_EQ(homer.last_name.value(), "Simpson"); EXPECT_EQ(homer.town.value(), ""); + EXPECT_EQ(homer.home_country().value(), "USA"); write_and_read( Person{"Waylon", "Smith", "Springfield"},