* installing *source* package 'vrpr' ... ** this is package 'vrpr' version '0.1.1' ** package 'vrpr' successfully unpacked and MD5 sums checked ** using staged installation ** libs specified C++20 using C++ compiler: 'g++.exe (GCC) 14.3.0' using C++20 make[1]: Entering directory '/d/temp/2026_09_09_01_50_00_18435/RtmpM1B6AY/R.INSTALL407785937db0/vrpr/src' g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | auto const [cost, timeWarp] = uProposal.duration(); | ~~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:165:32: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 165 | costEvaluator.deltaCost(deltaCost, uProposal, vProposal); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:226:16: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | auto const [cost, timeWarp] = uProposal.duration(); | ~~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:165:32: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 165 | costEvaluator.deltaCost(deltaCost, uProposal, vProposal); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:226:16: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; 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:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [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}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:172:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [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}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:172:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [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}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:172:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [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}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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_::duration() const::&, 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::duration() const::&, 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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:172:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 226 | return evalSwapMove(U, V, costEvaluator); | ^~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | auto const [cost, timeWarp] = uProposal.duration(); | ~~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:115:32: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 115 | costEvaluator.deltaCost(deltaCost, uProposal, vProposal); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:215:16: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 215 | return evalRelocateMove(U, V, costEvaluator); | ^~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:122:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 215 | return evalRelocateMove(U, V, costEvaluator); | ^~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:122:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 215 | return evalRelocateMove(U, V, costEvaluator); | ^~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/Exchange.h:122:36: required from 'pyvrp::Cost pyvrp::search::Exchange::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]' 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::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]' 215 | return evalRelocateMove(U, V, costEvaluator); | ^~~~~~~~~~~~~~~~ vendor/pyvrp/search/Exchange.h:193:6: required from here 193 | Cost Exchange::evaluate(Route::Node *U, | ^~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:175:36: warning: possibly dangling reference to a temporary [-Wdangling-reference] 175 | ProblemData::Client const &clientData = data.location(idx); | ^~~~~~~~~~ vendor/pyvrp/Solution.cpp:175: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&()' 175 | ProblemData::Client const &clientData = data.location(idx); | ^ vendor/pyvrp/Solution.cpp: In constructor 'pyvrp::Solution::Solution(const pyvrp::ProblemData&, std::vector)': vendor/pyvrp/Solution.cpp:265:40: warning: possibly dangling reference to a temporary [-Wdangling-reference] 265 | ProblemData::Client const &clientData = data.location(client); | ^~~~~~~~~~ vendor/pyvrp/Solution.cpp:265: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&()' 265 | ProblemData::Client const &clientData = data.location(client); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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 > >::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 > >::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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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, std::optional)': 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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | 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:282:32: warning: possibly dangling reference to a temporary [-Wdangling-reference] 282 | ProblemData::Client const &uData = data.location(U->client()); | ^~~~~ vendor/pyvrp/search/LocalSearch.cpp:282: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&()' 282 | ProblemData::Client const &uData = data.location(U->client()); | ^ vendor/pyvrp/search/LocalSearch.cpp:327:36: warning: possibly dangling reference to a temporary [-Wdangling-reference] 327 | ProblemData::Client const &vData = data.location(V->client()); | ^~~~~ vendor/pyvrp/search/LocalSearch.cpp:327: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&()' 327 | 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:355:32: warning: possibly dangling reference to a temporary [-Wdangling-reference] 355 | ProblemData::Client const &uData = data.location(U->client()); | ^~~~~ vendor/pyvrp/search/LocalSearch.cpp:355: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&()' 355 | 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:430:36: warning: possibly dangling reference to a temporary [-Wdangling-reference] 430 | ProblemData::Client const &clientData = data.location(client); | ^~~~~~~~~~ vendor/pyvrp/search/LocalSearch.cpp:430: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&()' 430 | ProblemData::Client const &clientData = data.location(client); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | 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::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::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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | 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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ClientSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/primitives.cpp:64:34: required from here 64 | costEvaluator.deltaCost( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ClientSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ClientSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/primitives.cpp:64:34: required from here 64 | costEvaluator.deltaCost( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/primitives.cpp:91:34: required from here 91 | costEvaluator.deltaCost(deltaCost, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 92 | Route::Proposal(route->before(U->idx() - 1), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 93 | route->after(U->idx() + 1))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ vendor/pyvrp/search/Route.h: In instantiation of 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentBetween; auto:17 = {pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | 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::LocalSearchOperator::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::LocalSearchOperator::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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:20:44: required from here 20 | costEvaluator.deltaCost(deltaCost, proposal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:42:44: required from here 42 | costEvaluator.deltaCost(deltaCost, proposal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:42:44: required from here 42 | costEvaluator.deltaCost(deltaCost, proposal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:147:38: required from here 147 | costEvaluator.deltaCost( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:147:38: required from here 147 | costEvaluator.deltaCost( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | auto const [cost, timeWarp] = proposal.duration(); | ~~~~~~~~~~~~~~~~~^~ vendor/pyvrp/search/SwapStar.cpp:147:38: required from here 147 | costEvaluator.deltaCost( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^ g++ -std=gnu++20 -I"D:/RCompile/recent/R-4.6.1/include" -DNDEBUG -Ivendor/pyvrp -DNDEBUG -I'D:/RCompile/CRANpkg/lib/4.6/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:830:35: warning: possibly dangling reference to a temporary [-Wdangling-reference] 830 | ProblemData::Depot const &depot = route_.data.location(from); | ^~~~~ vendor/pyvrp/search/Route.h:830: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&()' 830 | 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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:402:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 402 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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 struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t > [with _Result = std::__invoke_result::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>; _Ret = void]' 183 | __enable_if_t...>; | ^~~~~ 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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 struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t > [with _Result = std::__invoke_result::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>; _Ret = void]' 183 | __enable_if_t...>; | ^~~~~ 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, void, true, void>, std::__call_is_nothrow::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:409:57: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&, const T&) 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]' 409 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBetween; auto:20 = {pyvrp::search::Route::SegmentBefore}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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::duration() const::&, 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>}]' 183 | __enable_if_t...>; | ^~~~~ 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = pyvrp::search::Route::SegmentBefore; auto:20 = {}]': vendor/pyvrp/search/Route.h:1151:21: required from 'pyvrp::search::Route::Proposal::duration() const:::: [with auto:18 = pyvrp::search::Route::Proposal::duration() const::::; auto:19 = {anonymous}::ReloadDepotSegment; auto:20 = {pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1151 | self(self, std::forward(args)...); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1155:14: required from 'pyvrp::search::Route::Proposal::duration() const:: [with auto:16 = pyvrp::search::Route::SegmentAfter; auto:17 = {{anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore}]' 1155 | merge(merge, std::forward(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 static std::__result_of_success()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = const pyvrp::search::Route::Proposal::duration() const::&; _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 struct std::__is_invocable_impl<_Result, _Ret, true, std::__void_t > [with _Result = std::__invoke_result::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>; _Ret = void]' 183 | __enable_if_t...>; | ^~~~~ 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 std::__detail::__first_t, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::__is_invocable_impl::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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_::duration() const::&, 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::duration() const::&, pyvrp::search::Route::SegmentAfter, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBefore>, const pyvrp::search::Route::Proposal::duration() const::&, 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::duration() const::&, 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 struct std::is_nothrow_invocable, const pyvrp::search::Route::Proposal::duration() const::&, std::tuple >' 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::duration() const::&; _Tuple = tuple]' 2936 | noexcept(__unpack_std_tuple) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/search/Route.h:1165:22: required from 'std::pair, pyvrp::Measure > pyvrp::search::Route::Proposal::duration() const [with Segments = {pyvrp::search::Route::SegmentBefore, pyvrp::search::Route::SegmentBetween, pyvrp::search::Route::SegmentBetween, {anonymous}::ReloadDepotSegment, pyvrp::search::Route::SegmentAfter}]' 1165 | return std::apply(fn, detail::reverse(segments_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vendor/pyvrp/CostEvaluator.h:313:56: required from 'bool pyvrp::CostEvaluator::deltaCost(pyvrp::Cost&, const T&) 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]' 313 | 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:1132:43: warning: possibly dangling reference to a temporary [-Wdangling-reference] 1132 | ProblemData::Depot const &depot = data.location(other.last()); | ^~~~~ vendor/pyvrp/search/Route.h:1132: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.6.1/bin/x64 -lR make[1]: Leaving directory '/d/temp/2026_09_09_01_50_00_18435/RtmpM1B6AY/R.INSTALL407785937db0/vrpr/src' make[1]: Entering directory '/d/temp/2026_09_09_01_50_00_18435/RtmpM1B6AY/R.INSTALL407785937db0/vrpr/src' make[1]: Leaving directory '/d/temp/2026_09_09_01_50_00_18435/RtmpM1B6AY/R.INSTALL407785937db0/vrpr/src' installing to d:/Rcompile/CRANpkg/lib/4.6/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.1.zip * DONE (vrpr)