id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc
9396,circular_buffer + gil compiler error,g.kuehnert ,Jan Gaspar,"When 'boost/gil/bit_aligned_pixel_iterator.hpp' is included, the compiler selects for whatever reason an std::uninitialized_copy overload from the gil header instead of boost::cb_detail::uninitialized_copy within boost::cb_detail::uninitialized_move_if_noexcept_impl (boost/circualr_buffer/details.hpp) for types with !boost::is_nothrow_move_constructible.
A workaround (solution?) is to fully qualify the call to boost::cb_detail::uninitialized_copy, but why the std overload gets even selected? Is this a compiler bug? Or a gil problem?
Tested on: Windows 7 SP1 x64 + MSVC 2010 SP1
{{{
#include
#include // comment this to resolve
struct Foo
{
Foo(const Foo&) {}
};
int main(int, char*[])
{
#if 1
boost::circular_buffer buffer;
buffer.set_capacity(42);
#endif
#if 0 // minimum example
typedef boost::cb_details::iterator<
boost::circular_buffer
, boost::cb_details::nonconst_traits<
std::allocator
>
> InputIterator;
boost::cb_details::uninitialized_move_if_noexcept_impl(InputIterator(), InputIterator(), (int*)nullptr, boost::false_type());
#endif
return 0;
}
}}}
",Bugs,new,To Be Determined,circular_buffer,Boost 1.55.0,Regression,,,