* installing *source* package 'vrpr' ...
** this is package 'vrpr' version '0.1.0'
** package 'vrpr' successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C++ compiler: 'g++.exe (GCC) 14.3.0'
using C++20
make[1]: Entering directory '/d/temp/2026_07_06_01_50_00_29022/Rtmpeatz3D/R.INSTALL11d984c7f5150/vrpr/src'
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c cpp11.cpp -o cpp11.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c local_search.cpp -o local_search.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/Exchange.h:4,
                 from local_search.cpp:17:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:165:32:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  165 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:165:32:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  165 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:172:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  172 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  173 |                 deltaCost,
      |                 ~~~~~~~~~~          
  174 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  175 |                                 route->between(V->idx(), V->idx() + M - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  176 |                                 route->between(U->idx() + N, V->idx() - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  178 |                                 route->after(V->idx() + M)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:172:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  172 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  173 |                 deltaCost,
      |                 ~~~~~~~~~~          
  174 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  175 |                                 route->between(V->idx(), V->idx() + M - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  176 |                                 route->between(U->idx() + N, V->idx() - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  178 |                                 route->after(V->idx() + M)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:172:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  172 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  173 |                 deltaCost,
      |                 ~~~~~~~~~~          
  174 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  175 |                                 route->between(V->idx(), V->idx() + M - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  176 |                                 route->between(U->idx() + N, V->idx() - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  178 |                                 route->after(V->idx() + M)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:172:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalSwapMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  172 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  173 |                 deltaCost,
      |                 ~~~~~~~~~~          
  174 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  175 |                                 route->between(V->idx(), V->idx() + M - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  176 |                                 route->between(U->idx() + N, V->idx() - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  178 |                                 route->after(V->idx() + M)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:226:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 3; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  226 |         return evalSwapMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:115:32:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalRelocateMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  115 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:215:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  215 |         return evalRelocateMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:122:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalRelocateMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  122 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  123 |                 deltaCost,
      |                 ~~~~~~~~~~          
  124 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  125 |                                 route->between(U->idx() + N, V->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |                                 route->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:215:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  215 |         return evalRelocateMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:122:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalRelocateMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  122 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  123 |                 deltaCost,
      |                 ~~~~~~~~~~          
  124 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  125 |                                 route->between(U->idx() + N, V->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |                                 route->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:215:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  215 |         return evalRelocateMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/Exchange.h:122:36:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evalRelocateMove(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  122 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  123 |                 deltaCost,
      |                 ~~~~~~~~~~          
  124 |                 Route::Proposal(route->before(U->idx() - 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  125 |                                 route->between(U->idx() + N, V->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126 |                                 route->between(U->idx(), U->idx() + N - 1),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |                                 route->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:215:16:   required from 'pyvrp::Cost pyvrp::search::Exchange<N, M>::evaluate(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) [with long long unsigned int N = 3; long long unsigned int M = 0; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  215 |         return evalRelocateMove(U, V, costEvaluator);
      |                ^~~~~~~~~~~~~~~~
vendor/pyvrp/search/Exchange.h:193:6:   required from here
  193 | Cost Exchange<N, M>::evaluate(Route::Node *U,
      |      ^~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c problem_data.cpp -o problem_data.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c sanity.cpp -o sanity.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c solution.cpp -o solution.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/ProblemData.cpp -o vendor/pyvrp/ProblemData.o
vendor/pyvrp/ProblemData.cpp: In member function 'void pyvrp::ProblemData::validate() const':
vendor/pyvrp/ProblemData.cpp:574:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  574 |         ProblemData::Client const &client = location(idx);
      |                                    ^~~~~~
vendor/pyvrp/ProblemData.cpp:574:57: note: the temporary was destroyed at the end of the full expression '((const pyvrp::ProblemData*)this)->pyvrp::ProblemData::location(idx).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  574 |         ProblemData::Client const &client = location(idx);
      |                                                         ^
vendor/pyvrp/ProblemData.cpp:625:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  625 |             ProblemData::Client const &clientData = location(client);
      |                                        ^~~~~~~~~~
vendor/pyvrp/ProblemData.cpp:625:68: note: the temporary was destroyed at the end of the full expression '((const pyvrp::ProblemData*)this)->pyvrp::ProblemData::location(((long long unsigned int)client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  625 |             ProblemData::Client const &clientData = location(client);
      |                                                                    ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/CostEvaluator.cpp -o vendor/pyvrp/CostEvaluator.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/Solution.cpp -o vendor/pyvrp/Solution.o
vendor/pyvrp/Solution.cpp: In constructor 'pyvrp::Solution::Solution(const pyvrp::ProblemData&, pyvrp::RandomNumberGenerator&)':
vendor/pyvrp/Solution.cpp:174:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  174 |         ProblemData::Client const &clientData = data.location(idx);
      |                                    ^~~~~~~~~~
vendor/pyvrp/Solution.cpp:174:66: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(idx).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  174 |         ProblemData::Client const &clientData = data.location(idx);
      |                                                                  ^
vendor/pyvrp/Solution.cpp: In constructor 'pyvrp::Solution::Solution(const pyvrp::ProblemData&, std::vector<pyvrp::Route>)':
vendor/pyvrp/Solution.cpp:264:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  264 |             ProblemData::Client const &clientData = data.location(client);
      |                                        ^~~~~~~~~~
vendor/pyvrp/Solution.cpp:264:73: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(client).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  264 |             ProblemData::Client const &clientData = data.location(client);
      |                                                                         ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/Route.cpp -o vendor/pyvrp/Route.o
vendor/pyvrp/Route.cpp: In member function 'void pyvrp::Route::makeSchedule(const pyvrp::ProblemData&)':
vendor/pyvrp/Route.cpp:161:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  161 |         ProblemData::Depot const &start = data.location(trip.startDepot());
      |                                   ^~~~~
vendor/pyvrp/Route.cpp:161:74: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& trip)->pyvrp::Trip::startDepot()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  161 |         ProblemData::Depot const &start = data.location(trip.startDepot());
      |                                                                          ^
vendor/pyvrp/Route.cpp:181:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  181 |             ProblemData::Client const &clientData = data.location(client);
      |                                        ^~~~~~~~~~
vendor/pyvrp/Route.cpp:181:73: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((long long unsigned int)client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  181 |             ProblemData::Client const &clientData = data.location(client);
      |                                                                         ^
vendor/pyvrp/Route.cpp:194:31: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  194 |     ProblemData::Depot const &end = data.location(endDepot_);
      |                               ^~~
vendor/pyvrp/Route.cpp:194:60: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((pyvrp::Route*)this)->pyvrp::Route::endDepot_).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  194 |     ProblemData::Depot const &end = data.location(endDepot_);
      |                                                            ^
vendor/pyvrp/Route.cpp: In constructor 'pyvrp::Route::Route(const pyvrp::ProblemData&, Trips, size_t)':
vendor/pyvrp/Route.cpp:266:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  266 |         ProblemData::Depot const &end = data.location(trip->endDepot());
      |                                   ^~~
vendor/pyvrp/Route.cpp:266:71: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(trip.std::reverse_iterator<__gnu_cxx::__normal_iterator<pyvrp::Trip*, std::vector<pyvrp::Trip> > >::operator->()->pyvrp::Trip::endDepot()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  266 |         ProblemData::Depot const &end = data.location(trip->endDepot());
      |                                                                       ^
vendor/pyvrp/Route.cpp:274:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  274 |             ProblemData::Client const &clientData = data.location(client);
      |                                        ^~~~~~~~~~
vendor/pyvrp/Route.cpp:274:73: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((long long unsigned int)client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  274 |             ProblemData::Client const &clientData = data.location(client);
      |                                                                         ^
vendor/pyvrp/Route.cpp:281:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  281 |         ProblemData::Depot const &start = data.location(trip->startDepot());
      |                                   ^~~~~
vendor/pyvrp/Route.cpp:281:75: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(trip.std::reverse_iterator<__gnu_cxx::__normal_iterator<pyvrp::Trip*, std::vector<pyvrp::Trip> > >::operator->()->pyvrp::Trip::startDepot()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  281 |         ProblemData::Depot const &start = data.location(trip->startDepot());
      |                                                                           ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/Trip.cpp -o vendor/pyvrp/Trip.o
vendor/pyvrp/Trip.cpp: In constructor 'pyvrp::Trip::Trip(const pyvrp::ProblemData&, Visits, size_t, std::optional<long long unsigned int>, std::optional<long long unsigned int>)':
vendor/pyvrp/Trip.cpp:67:31: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   67 |     ProblemData::Depot const &depot = data.location(startDepot_);
      |                               ^~~~~
vendor/pyvrp/Trip.cpp:67:64: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((pyvrp::Trip*)this)->pyvrp::Trip::startDepot_).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
   67 |     ProblemData::Depot const &depot = data.location(startDepot_);
      |                                                                ^
vendor/pyvrp/Trip.cpp:75:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   75 |         ProblemData::Client const &clientData = data.location(client);
      |                                    ^~~~~~~~~~
vendor/pyvrp/Trip.cpp:75:69: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((long long unsigned int)client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   75 |         ProblemData::Client const &clientData = data.location(client);
      |                                                                     ^
vendor/pyvrp/Trip.cpp:96:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   96 |             ProblemData::Client const &clientData = data.location(client);
      |                                        ^~~~~~~~~~
vendor/pyvrp/Trip.cpp:96:73: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(((long long unsigned int)client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   96 |             ProblemData::Client const &clientData = data.location(client);
      |                                                                         ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/DurationSegment.cpp -o vendor/pyvrp/DurationSegment.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/LoadSegment.cpp -o vendor/pyvrp/LoadSegment.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/DynamicBitset.cpp -o vendor/pyvrp/DynamicBitset.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/RandomNumberGenerator.cpp -o vendor/pyvrp/RandomNumberGenerator.o
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/LocalSearch.cpp -o vendor/pyvrp/search/LocalSearch.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/LocalSearch.h:5,
                 from vendor/pyvrp/search/LocalSearch.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/LocalSearch.cpp: In member function 'void pyvrp::search::LocalSearch::applyOptionalClientMoves(pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&)':
vendor/pyvrp/search/LocalSearch.cpp:281:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  281 |     ProblemData::Client const &uData = data.location(U->client());
      |                                ^~~~~
vendor/pyvrp/search/LocalSearch.cpp:281:65: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::LocalSearch*)this)->pyvrp::search::LocalSearch::data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  281 |     ProblemData::Client const &uData = data.location(U->client());
      |                                                                 ^
vendor/pyvrp/search/LocalSearch.cpp:326:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  326 |         ProblemData::Client const &vData = data.location(V->client());
      |                                    ^~~~~
vendor/pyvrp/search/LocalSearch.cpp:326:69: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::LocalSearch*)this)->pyvrp::search::LocalSearch::data)->pyvrp::ProblemData::location(V->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  326 |         ProblemData::Client const &vData = data.location(V->client());
      |                                                                     ^
vendor/pyvrp/search/LocalSearch.cpp: In member function 'void pyvrp::search::LocalSearch::applyGroupMoves(pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&)':
vendor/pyvrp/search/LocalSearch.cpp:354:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  354 |     ProblemData::Client const &uData = data.location(U->client());
      |                                ^~~~~
vendor/pyvrp/search/LocalSearch.cpp:354:65: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::LocalSearch*)this)->pyvrp::search::LocalSearch::data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  354 |     ProblemData::Client const &uData = data.location(U->client());
      |                                                                 ^
vendor/pyvrp/search/LocalSearch.cpp: In member function 'void pyvrp::search::LocalSearch::markRequiredMissingAsPromising()':
vendor/pyvrp/search/LocalSearch.cpp:429:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  429 |         ProblemData::Client const &clientData = data.location(client);
      |                                    ^~~~~~~~~~
vendor/pyvrp/search/LocalSearch.cpp:429:69: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::LocalSearch*)this)->pyvrp::search::LocalSearch::data)->pyvrp::ProblemData::location(client).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  429 |         ProblemData::Client const &clientData = data.location(client);
      |                                                                     ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/SearchSpace.cpp -o vendor/pyvrp/search/SearchSpace.o
In file included from vendor/pyvrp/search/SearchSpace.h:7,
                 from vendor/pyvrp/search/SearchSpace.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/Route.cpp -o vendor/pyvrp/search/Route.o
In file included from vendor/pyvrp/search/Route.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/Route.cpp: In member function 'void pyvrp::search::Route::update()':
vendor/pyvrp/search/Route.cpp:241:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  241 |         ProblemData::Client const &clientData = data.location(node->client());
      |                                    ^~~~~~~~~~
vendor/pyvrp/search/Route.cpp:241:77: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(node->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  241 |         ProblemData::Client const &clientData = data.location(node->client());
      |                                                                             ^
vendor/pyvrp/search/Route.cpp:257:31: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  257 |     ProblemData::Depot const &start = data.location(startDepot());
      |                               ^~~~~
vendor/pyvrp/search/Route.cpp:257:65: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(((pyvrp::search::Route*)this)->pyvrp::search::Route::startDepot()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  257 |     ProblemData::Depot const &start = data.location(startDepot());
      |                                                                 ^
vendor/pyvrp/search/Route.cpp:262:31: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  262 |     ProblemData::Depot const &end = data.location(endDepot());
      |                               ^~~
vendor/pyvrp/search/Route.cpp:262:61: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(((pyvrp::search::Route*)this)->pyvrp::search::Route::endDepot()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  262 |     ProblemData::Depot const &end = data.location(endDepot());
      |                                                             ^
vendor/pyvrp/search/Route.cpp:273:40: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  273 |             ProblemData::Client const &client = data.location(node->client());
      |                                        ^~~~~~
vendor/pyvrp/search/Route.cpp:273:77: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(node->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  273 |             ProblemData::Client const &client = data.location(node->client());
      |                                                                             ^
vendor/pyvrp/search/Route.cpp:278:39: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  278 |             ProblemData::Depot const &depot = data.location(node->client());
      |                                       ^~~~~
vendor/pyvrp/search/Route.cpp:278:75: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(node->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  278 |             ProblemData::Depot const &depot = data.location(node->client());
      |                                                                           ^
vendor/pyvrp/search/Route.cpp:298:39: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  298 |             ProblemData::Depot const &depot = data.location(visits[prev]);
      |                                       ^~~~~
vendor/pyvrp/search/Route.cpp:298:73: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(((pyvrp::search::Route*)this)->pyvrp::search::Route::visits.std::vector<long long unsigned int>::operator[](((long long unsigned int)prev))).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  298 |             ProblemData::Depot const &depot = data.location(visits[prev]);
      |                                                                         ^
vendor/pyvrp/search/Route.cpp:321:39: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  321 |             ProblemData::Depot const &depot = data.location(visits[idx]);
      |                                       ^~~~~
vendor/pyvrp/search/Route.cpp:321:72: note: the temporary was destroyed at the end of the full expression '(&((pyvrp::search::Route*)this)->pyvrp::search::Route::data)->pyvrp::ProblemData::location(((pyvrp::search::Route*)this)->pyvrp::search::Route::visits.std::vector<long long unsigned int>::operator[](((long long unsigned int)idx))).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  321 |             ProblemData::Depot const &depot = data.location(visits[idx]);
      |                                                                        ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/Solution.cpp -o vendor/pyvrp/search/Solution.o
In file included from vendor/pyvrp/search/Solution.h:7,
                 from vendor/pyvrp/search/Solution.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/primitives.cpp -o vendor/pyvrp/search/primitives.o
In file included from vendor/pyvrp/search/primitives.h:6,
                 from vendor/pyvrp/search/primitives.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/primitives.cpp: In member function 'pyvrp::DurationSegment {anonymous}::ClientSegment::duration(size_t) const':
vendor/pyvrp/search/primitives.cpp:39:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   39 |         pyvrp::ProblemData::Client const &clientData = data.location(client);
      |                                           ^~~~~~~~~~
vendor/pyvrp/search/primitives.cpp:39:76: note: the temporary was destroyed at the end of the full expression '(&((const {anonymous}::ClientSegment*)this)->{anonymous}::ClientSegment::data)->pyvrp::ProblemData::location(((size_t)((const {anonymous}::ClientSegment*)this)->{anonymous}::ClientSegment::client)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   39 |         pyvrp::ProblemData::Client const &clientData = data.location(client);
      |                                                                            ^
vendor/pyvrp/search/primitives.cpp: In function 'pyvrp::Cost pyvrp::search::insertCost(Route::Node*, Route::Node*, const pyvrp::ProblemData&, const pyvrp::CostEvaluator&)':
vendor/pyvrp/search/primitives.cpp:59:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   59 |     ProblemData::Client const &client = data.location(U->client());
      |                                ^~~~~~
vendor/pyvrp/search/primitives.cpp:59:66: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   59 |     ProblemData::Client const &client = data.location(U->client());
      |                                                                  ^
vendor/pyvrp/search/primitives.cpp: In function 'pyvrp::Cost pyvrp::search::removeCost(Route::Node*, const pyvrp::ProblemData&, const pyvrp::CostEvaluator&)':
vendor/pyvrp/search/primitives.cpp:85:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   85 |         ProblemData::Client const &client = data.location(U->client());
      |                                    ^~~~~~
vendor/pyvrp/search/primitives.cpp:85:70: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   85 |         ProblemData::Client const &client = data.location(U->client());
      |                                                                      ^
vendor/pyvrp/search/primitives.cpp: In function 'pyvrp::Cost pyvrp::search::inplaceCost(Route::Node*, Route::Node*, const pyvrp::ProblemData&, const pyvrp::CostEvaluator&)':
vendor/pyvrp/search/primitives.cpp:107:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  107 |     ProblemData::Client const &uClient = data.location(U->client());
      |                                ^~~~~~~
vendor/pyvrp/search/primitives.cpp:107:67: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  107 |     ProblemData::Client const &uClient = data.location(U->client());
      |                                                                   ^
vendor/pyvrp/search/primitives.cpp:108:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  108 |     ProblemData::Client const &vClient = data.location(V->client());
      |                                ^~~~~~~
vendor/pyvrp/search/primitives.cpp:108:67: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location(V->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
  108 |     ProblemData::Client const &vClient = data.location(V->client());
      |                                                                   ^
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ClientSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/primitives.cpp:64:34:   required from here
   64 |     costEvaluator.deltaCost<true>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   65 |         deltaCost,
      |         ~~~~~~~~~~                
   66 |         Route::Proposal(route->before(V->idx()),
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   67 |                         ClientSegment(data, U->client()),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |                         route->after(V->idx() + 1)));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ClientSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ClientSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/primitives.cpp:64:34:   required from here
   64 |     costEvaluator.deltaCost<true>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   65 |         deltaCost,
      |         ~~~~~~~~~~                
   66 |         Route::Proposal(route->before(V->idx()),
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   67 |                         ClientSegment(data, U->client()),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |                         route->after(V->idx() + 1)));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/primitives.cpp:91:34:   required from here
   91 |     costEvaluator.deltaCost<true>(deltaCost,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
   92 |                                   Route::Proposal(route->before(U->idx() - 1),
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |                                                   route->after(U->idx() + 1)));
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/PerturbationManager.cpp -o vendor/pyvrp/search/PerturbationManager.o
In file included from vendor/pyvrp/search/SearchSpace.h:7,
                 from vendor/pyvrp/search/PerturbationManager.h:6,
                 from vendor/pyvrp/search/PerturbationManager.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/SwapTails.cpp -o vendor/pyvrp/search/SwapTails.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/SwapTails.h:4,
                 from vendor/pyvrp/search/SwapTails.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapTails.cpp:69:32:   required from here
   69 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapTails.cpp:69:32:   required from here
   69 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapTails.cpp:81:32:   required from here
   81 |         costEvaluator.deltaCost(deltaCost, uProposal, vProposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/SwapStar.cpp -o vendor/pyvrp/search/SwapStar.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/SwapStar.h:4,
                 from vendor/pyvrp/search/SwapStar.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/SwapStar.cpp: In member function 'pyvrp::Cost pyvrp::search::SwapStar::deltaLoadCost(pyvrp::search::Route::Node*, pyvrp::search::Route::Node*, const pyvrp::CostEvaluator&) const':
vendor/pyvrp/search/SwapStar.cpp:70:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   70 |     ProblemData::Client const &uClient = data.location(U->client());
      |                                ^~~~~~~
vendor/pyvrp/search/SwapStar.cpp:70:67: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::SwapStar*)this)->pyvrp::search::SwapStar::pyvrp::search::RouteOperator.pyvrp::search::RouteOperator::pyvrp::search::LocalSearchOperator<pyvrp::search::Route>.pyvrp::search::LocalSearchOperator<pyvrp::search::Route>::data)->pyvrp::ProblemData::location(U->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   70 |     ProblemData::Client const &uClient = data.location(U->client());
      |                                                                   ^
vendor/pyvrp/search/SwapStar.cpp:71:32: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   71 |     ProblemData::Client const &vClient = data.location(V->client());
      |                                ^~~~~~~
vendor/pyvrp/search/SwapStar.cpp:71:67: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::SwapStar*)this)->pyvrp::search::SwapStar::pyvrp::search::RouteOperator.pyvrp::search::RouteOperator::pyvrp::search::LocalSearchOperator<pyvrp::search::Route>.pyvrp::search::LocalSearchOperator<pyvrp::search::Route>::data)->pyvrp::ProblemData::location(V->pyvrp::search::Route::Node::client()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Client&()'
   71 |     ProblemData::Client const &vClient = data.location(V->client());
      |                                                                   ^
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = true; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:20:44:   required from here
   20 |         costEvaluator.deltaCost<true, true>(deltaCost, proposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = true; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:42:44:   required from here
   42 |         costEvaluator.deltaCost<true, true>(deltaCost, proposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = true; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:42:44:   required from here
   42 |         costEvaluator.deltaCost<true, true>(deltaCost, proposal);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:147:38:   required from here
  147 |         costEvaluator.deltaCost<true>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  148 |             deltaCost,
      |             ~~~~~~~~~~                
  149 |             Route::Proposal(route->before(V->idx()),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  150 |                             U->route()->at(U->idx()),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                             route->between(V->idx() + 1, remove->idx() - 1),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                             route->after(remove->idx() + 1)));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:147:38:   required from here
  147 |         costEvaluator.deltaCost<true>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  148 |             deltaCost,
      |             ~~~~~~~~~~                
  149 |             Route::Proposal(route->before(V->idx()),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  150 |                             U->route()->at(U->idx()),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                             route->between(V->idx() + 1, remove->idx() - 1),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                             route->after(remove->idx() + 1)));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = true; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/SwapStar.cpp:147:38:   required from here
  147 |         costEvaluator.deltaCost<true>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  148 |             deltaCost,
      |             ~~~~~~~~~~                
  149 |             Route::Proposal(route->before(V->idx()),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  150 |                             U->route()->at(U->idx()),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                             route->between(V->idx() + 1, remove->idx() - 1),
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                             route->after(remove->idx() + 1)));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/SwapRoutes.cpp -o vendor/pyvrp/search/SwapRoutes.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/SwapRoutes.h:4,
                 from vendor/pyvrp/search/SwapRoutes.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
g++  -std=gnu++20 -I"D:/RCompile/recent/R-4.5.3/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.5/cpp11/include'   -I"d:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c vendor/pyvrp/search/RelocateWithDepot.cpp -o vendor/pyvrp/search/RelocateWithDepot.o
In file included from vendor/pyvrp/search/LocalSearchOperator.h:8,
                 from vendor/pyvrp/search/RelocateWithDepot.h:4,
                 from vendor/pyvrp/search/RelocateWithDepot.cpp:1:
vendor/pyvrp/search/Route.h: In member function 'pyvrp::DurationSegment pyvrp::search::Route::SegmentBetween::duration(size_t) const':
vendor/pyvrp/search/Route.h:829:35: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                   ^~~~~
vendor/pyvrp/search/Route.h:829:68: note: the temporary was destroyed at the end of the full expression '(&((const pyvrp::search::Route::SegmentBetween*)this)->pyvrp::search::Route::SegmentBetween::route_.pyvrp::search::Route::data)->pyvrp::ProblemData::location(((long long unsigned int)from)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
  829 |         ProblemData::Depot const &depot = route_.data.location(from);
      |                                                                    ^
vendor/pyvrp/search/RelocateWithDepot.cpp: In member function 'pyvrp::DurationSegment {anonymous}::ReloadDepotSegment::duration(size_t) const':
vendor/pyvrp/search/RelocateWithDepot.cpp:43:42: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   43 |         pyvrp::ProblemData::Depot const &depot = data_.location(depot_);
      |                                          ^~~~~
vendor/pyvrp/search/RelocateWithDepot.cpp:43:71: note: the temporary was destroyed at the end of the full expression '(&((const {anonymous}::ReloadDepotSegment*)this)->{anonymous}::ReloadDepotSegment::data_)->pyvrp::ProblemData::location(((size_t)((const {anonymous}::ReloadDepotSegment*)this)->{anonymous}::ReloadDepotSegment::depot_)).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
   43 |         pyvrp::ProblemData::Depot const &depot = data_.location(depot_);
      |                                                                       ^
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:401:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  401 |         auto const [cost, timeWarp] = uProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:71:36:   required from here
   71 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
   72 |                 deltaCost,
      |                 ~~~~~~~~~~          
   73 |                 uProposal,
      |                 ~~~~~~~~~~          
   74 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   75 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   76 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
   77 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:71:36:   required from here
   71 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
   72 |                 deltaCost,
      |                 ~~~~~~~~~~          
   73 |                 uProposal,
      |                 ~~~~~~~~~~          
   74 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   75 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   76 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
   77 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:71:36:   required from here
   71 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
   72 |                 deltaCost,
      |                 ~~~~~~~~~~          
   73 |                 uProposal,
      |                 ~~~~~~~~~~          
   74 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   75 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   76 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
   77 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ReloadDepotSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:71:36:   required from here
   71 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
   72 |                 deltaCost,
      |                 ~~~~~~~~~~          
   73 |                 uProposal,
      |                 ~~~~~~~~~~          
   74 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   75 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   76 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
   77 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:90:40:   required from here
   90 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   91 |                     deltaCost,
      |                     ~~~~~~~~~~          
   92 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
   96 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:90:40:   required from here
   90 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   91 |                     deltaCost,
      |                     ~~~~~~~~~~          
   92 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
   96 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ReloadDepotSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:90:40:   required from here
   90 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   91 |                     deltaCost,
      |                     ~~~~~~~~~~          
   92 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
   96 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   recursively required by substitution of 'template<class _Result, class _Ret> struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t<typename _CTp::type> > [with _Result = std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>; _Ret = void]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:90:40:   required from here
   90 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   91 |                     deltaCost,
      |                     ~~~~~~~~~~          
   92 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
   96 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:98:40:   required from here
   98 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   99 |                     deltaCost,
      |                     ~~~~~~~~~~          
  100 |                     Route::Proposal(route->before(V->idx()),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  103 |                                     route->between(V->idx() + 1, U->idx() - 1),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                                     route->after(U->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:98:40:   required from here
   98 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   99 |                     deltaCost,
      |                     ~~~~~~~~~~          
  100 |                     Route::Proposal(route->before(V->idx()),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  103 |                                     route->between(V->idx() + 1, U->idx() - 1),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                                     route->after(U->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:98:40:   required from here
   98 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   99 |                     deltaCost,
      |                     ~~~~~~~~~~          
  100 |                     Route::Proposal(route->before(V->idx()),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  103 |                                     route->between(V->idx() + 1, U->idx() - 1),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                                     route->after(U->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ReloadDepotSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   recursively required by substitution of 'template<class _Result, class _Ret> struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t<typename _CTp::type> > [with _Result = std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>; _Ret = void]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>}]'
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:98:40:   required from here
   98 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
   99 |                     deltaCost,
      |                     ~~~~~~~~~~          
  100 |                     Route::Proposal(route->before(V->idx()),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  103 |                                     route->between(V->idx() + 1, U->idx() - 1),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |                                     route->after(U->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:129:36:   required from here
  129 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  130 |                 deltaCost,
      |                 ~~~~~~~~~~          
  131 |                 uProposal,
      |                 ~~~~~~~~~~          
  132 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  133 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
  134 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  135 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ReloadDepotSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:129:36:   required from here
  129 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  130 |                 deltaCost,
      |                 ~~~~~~~~~~          
  131 |                 uProposal,
      |                 ~~~~~~~~~~          
  132 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  133 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
  134 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  135 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:408:57:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<uArgs ...>&, const T<vArgs ...>&) const [with bool exact = false; bool skipLoad = false; uArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}; vArgs = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  408 |         auto const [cost, timeWarp] = vProposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:129:36:   required from here
  129 |             costEvaluator.deltaCost(
      |             ~~~~~~~~~~~~~~~~~~~~~~~^
  130 |                 deltaCost,
      |                 ~~~~~~~~~~          
  131 |                 uProposal,
      |                 ~~~~~~~~~~          
  132 |                 Route::Proposal(vRoute->before(V->idx()),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  133 |                                 uRoute->at(U->idx()),
      |                                 ~~~~~~~~~~~~~~~~~~~~~
  134 |                                 ReloadDepotSegment(data, depot),
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  135 |                                 vRoute->after(V->idx() + 1)));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:148:40:   required from here
  148 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
  149 |                     deltaCost,
      |                     ~~~~~~~~~~          
  150 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  153 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  154 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->{anonymous}::ReloadDepotSegment::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   required from 'struct std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:148:40:   required from here
  148 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
  149 |                     deltaCost,
      |                     ~~~~~~~~~~          
  150 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  153 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  154 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   required from 'struct std::__result_of_impl<false, false, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2671:12:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:148:40:   required from here
  148 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
  149 |                     deltaCost,
      |                     ~~~~~~~~~~          
  150 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  153 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  154 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBetween::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]':
vendor/pyvrp/search/Route.h:1150:21:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)> [with auto:18 = pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>::<lambda(const auto:18&, auto:19&&, auto:20&& ...)>; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1150 |                 self(self, std::forward<decltype(args)>(args)...);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1154:14:   required from 'pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)> [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 1154 |         merge(merge, std::forward<decltype(args)>(args)...);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2655:26:   required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Args = {pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]'
 2655 |       std::declval<_Fn>()(std::declval<_Args>()...)
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:2666:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   recursively required by substitution of 'template<class _Result, class _Ret> struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t<typename _CTp::type> > [with _Result = std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>; _Ret = void]'
  183 |                                       __enable_if_t<bool(_Bn::value)>...>;
      |                                                               ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:183:35:   required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]'
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:199:42:   required from 'struct std::__and_<std::__is_invocable_impl<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow<std::__invoke_result<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
  199 |     : decltype(__detail::__and_fn<_Bn...>(0))
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/type_traits:3200:12:   required from 'struct std::is_nothrow_invocable<const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>'
 3200 |     struct is_nothrow_invocable
      |            ^~~~~~~~~~~~~~~~~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2905:30:   required from 'constexpr const bool std::__unpack_std_tuple<template<class _Fn, class ... _ArgTypes> struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&, std::tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore> >'
 2905 |       = _Trait<_Tp, _Up...>::value;
      |                              ^~~~~
D:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.3.0/include/c++/tuple:2936:14:   required from 'constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&) [with _Fn = const pyvrp::search::Route::Proposal<pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter>::duration() const::<lambda(auto:16&&, auto:17&& ...)>&; _Tuple = tuple<pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>]'
 2936 |     noexcept(__unpack_std_tuple<is_nothrow_invocable, _Fn, _Tuple>)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1164:22:   required from 'std::pair<pyvrp::Measure<pyvrp::MeasureType::COST, long long int>, pyvrp::Measure<pyvrp::MeasureType::DURATION, long long int> > pyvrp::search::Route::Proposal<Segments>::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]'
 1164 |     return std::apply(fn, detail::reverse(segments_));
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/CostEvaluator.h:312:56:   required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T<Args ...>&) const [with bool exact = false; bool skipLoad = false; Args = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}; T = pyvrp::search::Route::Proposal; pyvrp::Cost = pyvrp::Measure<pyvrp::MeasureType::COST, long long int>]'
  312 |         auto const [cost, timeWarp] = proposal.duration();
      |                                       ~~~~~~~~~~~~~~~~~^~
vendor/pyvrp/search/RelocateWithDepot.cpp:148:40:   required from here
  148 |                 costEvaluator.deltaCost(
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^
  149 |                     deltaCost,
      |                     ~~~~~~~~~~          
  150 |                     Route::Proposal(route->before(U->idx() - 1),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  151 |                                     route->between(U->idx() + 1, V->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  152 |                                     route->at(U->idx()),
      |                                     ~~~~~~~~~~~~~~~~~~~~
  153 |                                     ReloadDepotSegment(data, depot),
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  154 |                                     route->after(V->idx() + 1)));
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vendor/pyvrp/search/Route.h:1131:43: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1131 |                 ProblemData::Depot const &depot = data.location(other.last());
      |                                           ^~~~~
vendor/pyvrp/search/Route.h:1131:43: note: the temporary was destroyed at the end of the full expression '(& data)->pyvrp::ProblemData::location((& other)->pyvrp::search::Route::SegmentBefore::last()).pyvrp::ProblemData::Location::operator const pyvrp::ProblemData::Depot&()'
g++ -shared -s -static-libgcc -o vrpr.dll tmp.def cpp11.o local_search.o problem_data.o sanity.o solution.o vendor/pyvrp/ProblemData.o vendor/pyvrp/CostEvaluator.o vendor/pyvrp/Solution.o vendor/pyvrp/Route.o vendor/pyvrp/Trip.o vendor/pyvrp/DurationSegment.o vendor/pyvrp/LoadSegment.o vendor/pyvrp/DynamicBitset.o vendor/pyvrp/RandomNumberGenerator.o vendor/pyvrp/search/LocalSearch.o vendor/pyvrp/search/SearchSpace.o vendor/pyvrp/search/Route.o vendor/pyvrp/search/Solution.o vendor/pyvrp/search/primitives.o vendor/pyvrp/search/PerturbationManager.o vendor/pyvrp/search/SwapTails.o vendor/pyvrp/search/SwapStar.o vendor/pyvrp/search/SwapRoutes.o vendor/pyvrp/search/RelocateWithDepot.o -Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib -LD:/RCompile/recent/R-4.5.3/bin/x64 -lR
make[1]: Leaving directory '/d/temp/2026_07_06_01_50_00_29022/Rtmpeatz3D/R.INSTALL11d984c7f5150/vrpr/src'
make[1]: Entering directory '/d/temp/2026_07_06_01_50_00_29022/Rtmpeatz3D/R.INSTALL11d984c7f5150/vrpr/src'
make[1]: Leaving directory '/d/temp/2026_07_06_01_50_00_29022/Rtmpeatz3D/R.INSTALL11d984c7f5150/vrpr/src'
installing to d:/Rcompile/CRANpkg/lib/4.5/00LOCK-vrpr/00new/vrpr/libs/x64
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* MD5 sums
packaged installation of 'vrpr' as vrpr_0.1.0.zip
* DONE (vrpr)