diff --git a/ProcessLib/Assembly/ParallelVectorMatrixAssembler.cpp b/ProcessLib/Assembly/ParallelVectorMatrixAssembler.cpp index 14b9d24a6b91aa2c6b3cdfe0a1d773b994e35ab6..c649e5ce3e6a655a858875ee839dde7101b1852d 100644 --- a/ProcessLib/Assembly/ParallelVectorMatrixAssembler.cpp +++ b/ProcessLib/Assembly/ParallelVectorMatrixAssembler.cpp @@ -12,10 +12,7 @@ #include <cstdlib> #include <fstream> -#include <range/v3/range/conversion.hpp> #include <range/v3/view/iota.hpp> -#include <range/v3/view/transform.hpp> -#include <range/v3/view/zip.hpp> #include <vector> #include "BaseLib/StringTools.h" @@ -115,15 +112,18 @@ collectActiveLocalAssemblers( ProcessLib::LocalAssemblerInterface> const& local_assemblers, std::vector<std::size_t> const& active_elements) { - auto id_and_local_asm = [&local_assemblers](std::size_t const id) - -> std::tuple<std::ptrdiff_t, std::reference_wrapper< - ProcessLib::LocalAssemblerInterface>> - { return {id, local_assemblers[id]}; }; - auto create_ids_asm_pairs = [&](auto const& element_ids) { - return element_ids | ranges::views::transform(id_and_local_asm) | - ranges::to<std::vector>(); + std::vector<std::tuple< + std::ptrdiff_t, + std::reference_wrapper<ProcessLib::LocalAssemblerInterface>>> + result; + result.reserve(static_cast<std::size_t>(element_ids.size())); + for (auto const id : element_ids) + { + result.push_back({id, local_assemblers[id]}); + } + return result; }; if (active_elements.empty())