$ make range.v3.view.join && ctest range.v3.view.join --rerun-failed --output-on-failure
1/1 Test #207: range.v3.test.view.join ..........Subprocess aborted***Exception: 0.16 sec
terminate called after throwing an instance of 'std::exception'
what(): std::exception
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.17 sec
The following tests FAILED:
207 - range.v3.test.view.join (Subprocess aborted)
Errors while running CTest
This throwing_view | ranges::views::cache1 | ranges::views::join pattern used to work fine before the mentioned commit.
I couldn't easily find docs about exception-safety guarantees of cache1/join, but the code looks reasonable so I assume it's "valid".
https://github.com/ericniebler/range-v3/commit/d800a032132512a54c291ce55a2a43e0460591c7 changed this clearly
noexcept
functionto this which may throw if
*inner
throws:A simple repro like
This
throwing_view | ranges::views::cache1 | ranges::views::join
pattern used to work fine before the mentioned commit. I couldn't easily find docs about exception-safety guarantees of cache1/join, but the code looks reasonable so I assume it's "valid".