Use unpack istead directly get with std::index_sequence

This commit is contained in:
sha512sum 2024-03-26 09:15:40 +00:00
parent 904cb20387
commit 888ec0f342

View file

@ -278,9 +278,11 @@ consteval auto TopologicalSort(const DependencyGraph<DependencyGraphElement<Name
constexpr utempl::Tuple storage = Map(utempl::Tuple{Dependencies...}, constexpr utempl::Tuple storage = Map(utempl::Tuple{Dependencies...},
[&]<utempl::TupleLike Tuple>(Tuple&& tuple){ [&]<utempl::TupleLike Tuple>(Tuple&& tuple){
static constexpr auto Size = utempl::kTupleSize<Tuple>; static constexpr auto Size = utempl::kTupleSize<Tuple>;
return [&]<std::size_t... Is>(std::index_sequence<Is...>) -> std::array<std::size_t, Size> { return utempl::Unpack(std::forward<Tuple>(tuple),
return {Find(names, Get<Is>(std::forward<Tuple>(tuple)))...}; [&]<typename... Args>(Args&&... args) -> std::array<std::size_t, Size> {
}(std::make_index_sequence<Size>()); return {Find(names, std::forward<Args>(args))...};
}
);
}); });
constexpr auto Size = utempl::kTupleSize<decltype(storage)>; constexpr auto Size = utempl::kTupleSize<decltype(storage)>;
const std::array adj = utempl::Map(storage, const std::array adj = utempl::Map(storage,