From 702e6da1bec8640723baabd1cc71fe8915f3febd Mon Sep 17 00:00:00 2001 From: FrancescoMerenda Date: Tue, 3 Feb 2026 21:17:41 +0100 Subject: [PATCH] fix: allows usage of stateful visitors inside rfl::Variant --- include/rfl/Variant.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/rfl/Variant.hpp b/include/rfl/Variant.hpp index 855a0462..6b92f947 100644 --- a/include/rfl/Variant.hpp +++ b/include/rfl/Variant.hpp @@ -223,7 +223,7 @@ class Variant { template void do_visit_no_result(F& _f, bool* _visited, std::integer_sequence) { - auto visit_one = [this](const F& _f, bool* _visited, + auto visit_one = [this](F& _f, bool* _visited, Index<_i>) { if (!*_visited && index_ == _i) { _f(get_alternative<_i>()); @@ -236,7 +236,7 @@ class Variant { template void do_visit_no_result(F& _f, bool* _visited, std::integer_sequence) const { - auto visit_one = [this](const F& _f, bool* _visited, + auto visit_one = [this](F& _f, bool* _visited, Index<_i>) { if (!*_visited && index_ == _i) { _f(get_alternative<_i>()); @@ -275,7 +275,7 @@ class Variant { template void do_visit_with_result(F& _f, std::optional* _result, std::integer_sequence) { - auto visit_one = [this](const F& _f, + auto visit_one = [this](F& _f, std::optional* _result, Index<_i>) { if (!*_result && index_ == _i) { @@ -288,7 +288,7 @@ class Variant { template void do_visit_with_result(F& _f, std::optional* _result, std::integer_sequence) const { - auto visit_one = [this](const F& _f, + auto visit_one = [this](F& _f, std::optional* _result, Index<_i>) { if (!*_result && index_ == _i) { @@ -328,7 +328,7 @@ class Variant { void do_visit_with_reference(F& _f, ResultType** _result, std::integer_sequence) { const auto visit_one = [this]( - const F& _f, ResultType** _result, Index<_i>) { + F& _f, ResultType** _result, Index<_i>) { if (!*_result && index_ == _i) { *_result = &_f(get_alternative<_i>()); } @@ -340,7 +340,7 @@ class Variant { void do_visit_with_reference(F& _f, ResultType** _result, std::integer_sequence) const { const auto visit_one = [this]( - const F& _f, ResultType** _result, Index<_i>) { + F& _f, ResultType** _result, Index<_i>) { if (!*_result && index_ == _i) { *_result = &_f(get_alternative<_i>()); }