* 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)