diff --git a/include/rfl/internal/bind_to_tuple.hpp b/include/rfl/internal/bind_to_tuple.hpp index 68910046..fb35632f 100644 --- a/include/rfl/internal/bind_to_tuple.hpp +++ b/include/rfl/internal/bind_to_tuple.hpp @@ -1,9 +1,9 @@ #ifndef RFL_INTERNAL_BIND_TO_TUPLE_HPP_ #define RFL_INTERNAL_BIND_TO_TUPLE_HPP_ +#include #include #include -#include #include #include @@ -42,8 +42,8 @@ struct tuple_view_helper<0> { n, ...) \ template <> \ struct tuple_view_helper { \ - static auto tuple_view(auto& t) { \ - auto& [__VA_ARGS__] = t; \ + static auto tuple_view(auto& _t) { \ + auto& [__VA_ARGS__] = _t; \ return [](auto&... _refs) { \ return rfl::make_tuple(&_refs...); \ }(__VA_ARGS__); \ @@ -2822,13 +2822,13 @@ RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( #undef RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS template -auto tuple_view(T& t) { - return tuple_view_helper>::tuple_view(t); +auto bind_to_tuple(T& _t) { + return tuple_view_helper>::tuple_view(_t); } template auto bind_to_tuple(T& _t, const F& _f) { - auto view = tuple_view(_t); + auto view = bind_to_tuple(_t); return [&](std::index_sequence<_is...>) { return rfl::make_tuple(_f(rfl::get<_is>(view))...); } diff --git a/include/rfl/internal/to_flattened_ptr_tuple.hpp b/include/rfl/internal/to_flattened_ptr_tuple.hpp index ff53a635..81a1bff0 100644 --- a/include/rfl/internal/to_flattened_ptr_tuple.hpp +++ b/include/rfl/internal/to_flattened_ptr_tuple.hpp @@ -14,15 +14,15 @@ namespace internal { template auto flatten_ptr_tuple(PtrTuple&& _t) { - if constexpr (0 && !has_flatten_fields()) { + if constexpr (!has_flatten_fields()) { return std::forward(_t); } else { const auto get_one = [&](std::integral_constant) { using T = tuple_element_t<_i, std::remove_cvref_t>; if constexpr (is_flatten_field_v) { - return flatten_ptr_tuple(to_ptr_tuple(std::get<_i>(_t)->get())); + return flatten_ptr_tuple(to_ptr_tuple(rfl::get<_i>(_t)->get())); } else { - return rfl::make_tuple(std::get<_i>(_t)); + return rfl::make_tuple(rfl::get<_i>(_t)); } }; diff --git a/include/rfl/internal/to_ptr_tuple.hpp b/include/rfl/internal/to_ptr_tuple.hpp index d5c95088..3eefebe5 100644 --- a/include/rfl/internal/to_ptr_tuple.hpp +++ b/include/rfl/internal/to_ptr_tuple.hpp @@ -15,7 +15,7 @@ auto to_ptr_tuple(T& _t) { if constexpr (std::is_pointer_v>) { return to_ptr_tuple(*_t); } else { - return bind_to_tuple(_t, [](auto* _ptr) { return _ptr; }); + return bind_to_tuple(_t); } } diff --git a/include/rfl/parsing/Parser_default.hpp b/include/rfl/parsing/Parser_default.hpp index 4695736c..a043dad9 100644 --- a/include/rfl/parsing/Parser_default.hpp +++ b/include/rfl/parsing/Parser_default.hpp @@ -277,7 +277,7 @@ struct Parser { const InputVarType& _var) { auto t = T{}; auto view = ProcessorsType::template process(to_view(t)); - using ViewType = std::remove_cvref_t; + using ViewType = decltype(view); const auto err = Parser::read_view_with_default(_r, _var, &view); diff --git a/include/rfl/to_view.hpp b/include/rfl/to_view.hpp index f16ee0c4..d9c31a04 100644 --- a/include/rfl/to_view.hpp +++ b/include/rfl/to_view.hpp @@ -2,6 +2,7 @@ #define RFL_TO_VIEW_HPP_ #include +#include #include #include