id summary reporter owner description type status milestone component version severity resolution keywords cc 5162 boost::iterator_range< T* > is unsafe nicos@… Neil Groves "The following code compiles and does not generate any warning: {{{ #include int main() { double v[] = { 1.0,2.0,3.0 }; boost::iterator_range r = boost::make_iterator_range( v ); } }}} The culprits are adl_begin, adl_end, as in this case, they perform a C-style cast from double* to float*: {{{ template struct iterator_range_impl { template< class ForwardRange > static IteratorT adl_begin( ForwardRange& r ) { return IteratorT( boost::begin( r ) ); } template< class ForwardRange > static IteratorT adl_end( ForwardRange& r ) { return IteratorT( boost::end( r ) ); } }; }}}" Bugs closed To Be Determined range Boost 1.45.0 Problem fixed