You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
iterator::reference is a reference type: 1
iterator_range::reference is a reference type: 1
first[0] returns a reference type: 0
range[0] returns a reference type: 1
first[0] == 0
Segmentation fault (core dumped)
Expected behavior: range[0] returns 0.
If Boost headers are copied to ./boost and the program is compiled with g++ -I. option, the compiler produces the following warning:
In file included from ./boost/range/iterator_range.hpp:13,
from test_counting_iterator_range_indexing.cpp:2:
./boost/range/iterator_range_core.hpp: In instantiation of ‘boost::iterator_range_detail::iterator_range_base<IteratorT, boost::iterators::random_access_traversal_tag>::reference boost::iterator_range_detail::iterator_range_base<IteratorT, boost::iterators::random_access_traversal_tag>::operator[](boost::iterator_range_detail::iterator_range_base<IteratorT, boost::iterators::random_access_traversal_tag>::difference_type) const [with IteratorT = boost::iterators::counting_iterator<int>; boost::iterator_range_detail::iterator_range_base<IteratorT, boost::iterators::random_access_traversal_tag>::reference = const int&; boost::iterator_range_detail::iterator_range_base<IteratorT, boost::iterators::random_access_traversal_tag>::difference_type = long int]’:
test_counting_iterator_range_indexing.cpp:23:43: required from here
./boost/range/iterator_range_core.hpp:391:32: warning: returning reference to temporary [-Wreturn-local-addr]
return this->m_Begin[at];
^
The reason for the segmentation fault is that iterator_range::operator[] returns a reference to a stack-allocated object returned by counting_iterator::operator[].
The text was updated successfully, but these errors were encountered:
Example:
Output:
Expected behavior:
range[0]
returns0
.If Boost headers are copied to
./boost
and the program is compiled with g++-I.
option, the compiler produces the following warning:The reason for the segmentation fault is that
iterator_range::operator[]
returns a reference to a stack-allocated object returned bycounting_iterator::operator[]
.The text was updated successfully, but these errors were encountered: