sol2
sol2 copied to clipboard
compile failed: sol::varidic_args::rbegin()[n]
for code like
sol::varidic_args args;
...
auto last = args.rbegin()[0];
auto second_to_last = args.rbegin()[1];
This code fails. looks operator - doesn't get defined.
/usr/include/c++/11/bits/stl_iterator.h: In instantiation of ‘constexpr std::reverse_iterator<_Iterator> std::reverse_iterator<_Iterator>::operator+(std::reverse_iterator
<_Iterator>::difference_type) const [with _Iterator = sol::stack_iterator<sol::stack_proxy, false>; std::reverse_iterator<_Iterator>::difference_type = long int]’:
/usr/include/c++/11/bits/stl_iterator.h:368:24: required from ‘constexpr std::reverse_iterator<_Iterator>::reference std::reverse_iterator<_Iterator>::operator[](std::r
everse_iterator<_Iterator>::difference_type) const [with _Iterator = sol::stack_iterator<sol::stack_proxy, false>; std::reverse_iterator<_Iterator>::reference = sol::stac
k_proxy; std::reverse_iterator<_Iterator>::difference_type = long int]’
/home/anhong/mir2x/server/src/serverluacoroutinerunner.cpp:134:9: required from here
/usr/include/c++/11/bits/stl_iterator.h:324:41: error: no match for ‘operator-’ (operand types are ‘const sol::stack_iterator<sol::stack_proxy, false>’ and ‘std::reverse_
iterator<sol::stack_iterator<sol::stack_proxy, false> >::difference_type’ {aka ‘long int’})
324 | { return reverse_iterator(current - __n); }
| ~~~~~~~~^~~~~