[Boost-bugs] [Boost C++ Libraries] #6744: [Assign][GIL] Boost Assign and GIL incompatibility in gcc 4.3.2

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