Skip to content

Commit 0e38981

Browse files
committed
fix: Compilation error due to missing std::tuple_size_v
1 parent b1535c0 commit 0e38981

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/ltpl/tuple.hpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ concept WeaklyEqualityComparableWith =
5353
{ u != t } -> ConvertibleTo<bool>;
5454
};
5555

56+
// Not including <tuple> for std::tuple_size_v
57+
template <class T>
58+
inline constexpr std::size_t tuple_size_v = 1;
59+
60+
template <class... T>
61+
inline constexpr std::size_t tuple_size_v<ltpl::Tuple<T...>> = sizeof...(T);
62+
5663
// Test that the types list does not contain just one element that is decay-equal to T.
5764
template <class T, class, class...>
5865
inline constexpr bool is_not_exactly_v = true;
@@ -483,12 +490,12 @@ template <class... T>
483490
template <class... Tuples>
484491
[[nodiscard]] constexpr decltype(auto) tuple_cat(Tuples&&... tuples) noexcept
485492
{
486-
constexpr auto total_size = (std::tuple_size_v<std::remove_cvref_t<Tuples>> + ...);
493+
constexpr auto total_size = (detail::tuple_size_v<std::remove_cvref_t<Tuples>> + ...);
487494
constexpr auto indices = [&]
488495
{
489496
std::array<detail::TupleCatIndex, total_size> array{};
490497
size_t i{};
491-
for (std::size_t outer{}; auto tuple_size : {std::tuple_size_v<std::remove_cvref_t<Tuples>>...})
498+
for (std::size_t outer{}; auto tuple_size : {detail::tuple_size_v<std::remove_cvref_t<Tuples>>...})
492499
{
493500
for (size_t inner{}; inner != tuple_size; ++inner)
494501
{

0 commit comments

Comments
 (0)