Skip to content

Commit 1fb1339

Browse files
chris-durandsalkinium
authored andcommitted
[math] Fix enumerate() when range reference type is not a reference
1 parent 9587afc commit 1fb1339

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/modm/math/algorithm/enumerate.hpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212

1313
#pragma once
1414

15-
#include <stdint.h>
15+
#include <cstdint>
16+
#include <ranges>
1617
#include <tuple>
18+
#include <utility>
1719

1820
namespace modm
1921
{
@@ -31,7 +33,10 @@ constexpr auto enumerate(T && iterable)
3133
TIter iter;
3234
constexpr bool operator != (const iterator & other) const { return iter != other.iter; }
3335
constexpr void operator ++ () { ++i; ++iter; }
34-
constexpr auto operator * () const { return std::tie(i, *iter); }
36+
constexpr auto operator * () const
37+
{
38+
return std::tuple<size_t, std::ranges::range_reference_t<T>>{i, *iter};
39+
}
3540
};
3641
struct iterable_wrapper
3742
{

0 commit comments

Comments
 (0)