In file included from /usr/include/immer/detail/rbts/rbtree.hpp:24:0,
from /usr/include/immer/vector.hpp:23,
from simple.cpp:1:
/usr/include/immer/detail/rbts/position.hpp: In instantiation of ‘decltype(auto) immer::detail::rbts::regular_pos<NodeT>::last_oh(Visitor, immer::detail::rbts::count_t, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::count_t = unsigned int]’:
/usr/include/immer/detail/rbts/operations.hpp:816:33: required from ‘immer::detail::rbts::push_tail_visitor<NodeT>::node_t* immer::detail::rbts::visit_regular(immer::detail::rbts::push_tail_visitor<NodeT>::this_t, Pos&&, immer::detail::rbts::push_tail_visitor<NodeT>::node_t*, Args&& ...) [with Pos = immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Args = {}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::node_t = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::this_t = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >]’
/usr/include/immer/detail/rbts/position.hpp:309:29: required from ‘decltype(auto) immer::detail::rbts::regular_pos<NodeT>::visit(Visitor, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>]’
/usr/include/immer/detail/rbts/position.hpp:652:9: required from ‘decltype(auto) immer::detail::rbts::last_oh_regular(Pos&&, Visitor, immer::detail::rbts::count_t, Args&& ...) [with Pos = immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; immer::detail::rbts::count_t = unsigned int]’
/usr/include/immer/detail/rbts/position.hpp:874:29: required from ‘decltype(auto) immer::detail::rbts::regular_sub_pos<NodeT>::last_oh(Visitor, immer::detail::rbts::count_t, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::count_t = unsigned int]’
/usr/include/immer/detail/rbts/operations.hpp:816:33: required from ‘immer::detail::rbts::push_tail_visitor<NodeT>::node_t* immer::detail::rbts::visit_regular(immer::detail::rbts::push_tail_visitor<NodeT>::this_t, Pos&&, immer::detail::rbts::push_tail_visitor<NodeT>::node_t*, Args&& ...) [with Pos = immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Args = {}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::node_t = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::this_t = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >]’
/usr/include/immer/detail/rbts/position.hpp:957:29: required from ‘decltype(auto) immer::detail::rbts::regular_sub_pos<NodeT>::visit(Visitor, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>* const&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>]’
/usr/include/immer/detail/rbts/rbtree.hpp:335:65: required from ‘immer::detail::rbts::rbtree<T, MemoryPolicy, B, BL> immer::detail::rbts::rbtree<T, MemoryPolicy, B, BL>::push_back(T) const [with T = int; MemoryPolicy = immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>; unsigned int B = 5u; unsigned int BL = 6u]’
/usr/include/immer/vector.hpp:232:46: required from ‘immer::vector<T, MemoryPolicy, B, BL> immer::vector<T, MemoryPolicy, B, BL>::push_back(immer::vector<T, MemoryPolicy, B, BL>::value_type) const & [with T = int; MemoryPolicy = immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>; unsigned int B = 5u; unsigned int BL = 6u; immer::vector<T, MemoryPolicy, B, BL>::value_type = int]’
simple.cpp:6:34: required from here
/usr/include/immer/detail/rbts/position.hpp:304:29: error: use of ‘template<class Pos, class Visitor, class ... Args> decltype(auto) immer::detail::rbts::last_oh_regular(Pos&&, Visitor, immer::detail::rbts::count_t, Args&& ...)’ before deduction of ‘auto’
{ return last_oh_regular(*this, v, offset_hint, args...); }
^
/usr/include/immer/detail/rbts/position.hpp:304:29: error: use of ‘decltype(auto) immer::detail::rbts::last_oh_regular(Pos&&, Visitor, immer::detail::rbts::count_t, Args&& ...) [with Pos = immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; immer::detail::rbts::count_t = unsigned int]’ before deduction of ‘auto’
In file included from /usr/include/immer/detail/rbts/rbtree.hpp:25:0,
from /usr/include/immer/vector.hpp:23,
from simple.cpp:1:
/usr/include/immer/detail/rbts/operations.hpp: In instantiation of ‘immer::detail::rbts::push_tail_visitor<NodeT>::node_t* immer::detail::rbts::visit_regular(immer::detail::rbts::push_tail_visitor<NodeT>::this_t, Pos&&, immer::detail::rbts::push_tail_visitor<NodeT>::node_t*, Args&& ...) [with Pos = immer::detail::rbts::regular_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Args = {}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::node_t = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::this_t = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >]’:
/usr/include/immer/detail/rbts/position.hpp:309:29: required from ‘decltype(auto) immer::detail::rbts::regular_pos<NodeT>::visit(Visitor, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>]’
/usr/include/immer/detail/rbts/position.hpp:652:9: required from ‘decltype(auto) immer::detail::rbts::last_oh_regular(Pos&&, Visitor, immer::detail::rbts::count_t, Args&& ...) [with Pos = immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; immer::detail::rbts::count_t = unsigned int]’
/usr/include/immer/detail/rbts/position.hpp:874:29: required from ‘decltype(auto) immer::detail::rbts::regular_sub_pos<NodeT>::last_oh(Visitor, immer::detail::rbts::count_t, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>*&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::count_t = unsigned int]’
/usr/include/immer/detail/rbts/operations.hpp:816:33: required from ‘immer::detail::rbts::push_tail_visitor<NodeT>::node_t* immer::detail::rbts::visit_regular(immer::detail::rbts::push_tail_visitor<NodeT>::this_t, Pos&&, immer::detail::rbts::push_tail_visitor<NodeT>::node_t*, Args&& ...) [with Pos = immer::detail::rbts::regular_sub_pos<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >&; Args = {}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::node_t = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>; immer::detail::rbts::push_tail_visitor<NodeT>::this_t = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >]’
/usr/include/immer/detail/rbts/position.hpp:957:29: required from ‘decltype(auto) immer::detail::rbts::regular_sub_pos<NodeT>::visit(Visitor, Args&& ...) [with Visitor = immer::detail::rbts::push_tail_visitor<immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u> >; Args = {immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap, 1024ul>, immer::refcount_policy, immer::no_transience_policy, false, true>, 5u, 6u>* const&}; NodeT = immer::detail::rbts::node<int, immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>, 5u, 6u>]’
/usr/include/immer/detail/rbts/rbtree.hpp:335:65: required from ‘immer::detail::rbts::rbtree<T, MemoryPolicy, B, BL> immer::detail::rbts::rbtree<T, MemoryPolicy, B, BL>::push_back(T) const [with T = int; MemoryPolicy = immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>; unsigned int B = 5u; unsigned int BL = 6u]’
/usr/include/immer/vector.hpp:232:46: required from ‘immer::vector<T, MemoryPolicy, B, BL> immer::vector<T, MemoryPolicy, B, BL>::push_back(immer::vector<T, MemoryPolicy, B, BL>::value_type) const & [with T = int; MemoryPolicy = immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy>; unsigned int B = 5u; unsigned int BL = 6u; immer::vector<T, MemoryPolicy, B, BL>::value_type = int]’
simple.cpp:6:34: required from here
/usr/include/immer/detail/rbts/operations.hpp:817:52: error: second operand to the conditional operator is of type ‘void’, but the third operand is neither a throw-expression nor of type ‘void’
/* otherwise */ : node_t::make_path(pos.shift() - B, tail);