Skip to content

Commit 02037cf

Browse files
Make sure rename is applied
1 parent 43981f6 commit 02037cf

1 file changed

Lines changed: 16 additions & 23 deletions

File tree

include/rfl/internal/cpp26/get_field_names.hpp

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef RFL_INTERNAL_CPP26_GETFIELDNAMES_HPP_
22
#define RFL_INTERNAL_CPP26_GETFIELDNAMES_HPP_
33

4+
#include <format>
45
#include <functional>
56
#include <meta>
67
#include <type_traits>
@@ -32,6 +33,12 @@ consteval auto get_field_names_impl() {
3233
}
3334
}
3435

36+
template <auto _i, auto _j>
37+
consteval bool is_same() {
38+
static_assert(_i == _j, "Mismatched types");
39+
return _i == _j;
40+
}
41+
3542
template <class T>
3643
consteval auto get_field_names() {
3744
using Type = std::remove_cvref_t<T>;
@@ -44,31 +51,17 @@ consteval auto get_field_names() {
4451

4552
using TupleT = decltype(bind_to_tuple(std::declval<Type&>()));
4653

47-
static_assert(members.size() == tuple_size_v<TupleT>,
54+
static_assert(is_same<members.size(), tuple_size_v<TupleT>>(),
4855
"Number of members and tuple size mismatch");
4956

50-
constexpr bool no_flatten_fields = []<size_t... _is>(
51-
std::index_sequence<_is...>) {
52-
return (true && ... && !is_flatten_field_v<tuple_element_t<_is, TupleT>>);
53-
}(std::make_index_sequence<members.size()>{});
54-
55-
if constexpr (no_flatten_fields) {
56-
return [&]<size_t... _is>(std::index_sequence<_is...>) {
57-
return Literal<
58-
StringLiteral<std::meta::identifier_of(members[_is]).size() + 1>(
59-
std::meta::identifier_of(members[_is]))...>();
60-
}(std::make_index_sequence<members.size()>());
61-
62-
} else {
63-
return [&]<size_t... _is>(std::index_sequence<_is...>) {
64-
return concat_literals(
65-
get_field_names_impl<
66-
tuple_element_t<_is, TupleT>,
67-
Literal<StringLiteral<
68-
std::meta::identifier_of(members[_is]).size() + 1>(
69-
std::meta::identifier_of(members[_is]))>>()...);
70-
}(std::make_index_sequence<members.size()>());
71-
}
57+
return [&]<size_t... _is>(std::index_sequence<_is...>) {
58+
return concat_literals(
59+
get_field_names_impl<
60+
tuple_element_t<_is, TupleT>,
61+
Literal<StringLiteral<
62+
std::meta::identifier_of(members[_is]).size() + 1>(
63+
std::meta::identifier_of(members[_is]))>>()...);
64+
}(std::make_index_sequence<members.size()>());
7265
}
7366
}
7467

0 commit comments

Comments
 (0)