Subject: [Boost-bugs] [Boost C++ Libraries] #6744: [Assign][GIL] Boost Assign and GIL incompatibility in gcc 4.3.2
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-03-29 19:36:22
#6744: [Assign][GIL] Boost Assign and GIL incompatibility in gcc 4.3.2
-------------------------------+--------------------------------------------
Reporter: ATHundt@⦠| Owner: nesotto
Type: Bugs | Status: new
Milestone: To Be Determined | Component: assign
Version: Boost 1.49.0 | Severity: Problem
Keywords: assign gil |
-------------------------------+--------------------------------------------
The following source code compiles under clang 3.1, but fails under gcc
4.3.2 with boost version 1.46. It doesn't look like there are updates to
either library in the boost news list since then.
#include <vector>
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
#include <boost/gil/gil_all.hpp>
int main(int argc, char** argv){
using namespace boost::assign;
std::vector<int> values;
values += 1, 2, 3, 4;
typedef boost::gil::rgb8_pixel_t pt;
std::vector<pt> pixValues;
pixValues += pt(1,2,3),pt(2,3,4);
}
-------------------------------------
Compiler versions:
FAILED:
gcc (SUSE Linux) 4.3.2 [gcc-4_3-branch revision 141291]
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
[100%] Building CXX object CMakeFiles/boostAssign.dir/boostAssign.cpp.o
/usr/local/include/boost-1_46/boost/mpl/push_back_fwd.hpp: In function
âboost::assign::list_inserter<boost::assign_detail::call_push_back<std::vector<_Tp,
_Alloc> >, V> boost::assign::operator+=(std::vector<_Tp, _Alloc>&, V2)
[with V = boost::gil::pixel<unsigned char,
boost::gil::layout<boost::mpl::vector3<boost::gil::red_t,
boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> >
>, A = std::allocator<boost::gil::pixel<unsigned char,
boost::gil::layout<boost::mpl::vector3<boost::gil::red_t,
boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> >
> >, V2 = boost::gil::pixel<unsigned char,
boost::gil::layout<boost::mpl::vector3<boost::gil::red_t,
boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> >
>]â:
/home/ahundt/sandbox/boostAssign.cpp:12: instantiated from here
/usr/local/include/boost-1_46/boost/mpl/push_back_fwd.hpp:20: error:
âtemplate<class Sequence, class T> struct boost::mpl::push_backâ is not a
function,
/usr/local/include/boost-1_46/boost/assign/list_inserter.hpp:348: error:
conflict with âtemplate<class C>
boost::assign::list_inserter<boost::assign_detail::call_push_back<C>,
typename C::value_type> boost::assign::push_back(C&)â
/usr/local/include/boost-1_46/boost/assign/std/vector.hpp:31: error: in
call to âpush_backâ
make[2]: *** [CMakeFiles/boostAssign.dir/boostAssign.cpp.o] Error 1
make[1]: *** [CMakeFiles/boostAssign.dir/all] Error 2
make: *** [all] Error 2
SUCCEEDED:
Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/6744> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC