Opened 7 years ago

Closed 5 weeks ago

#6744 closed Bugs (wontfix)

[Assign][GIL] Boost Assign and GIL incompatibility in gcc 4.3.2

Reported by: ATHundt@… Owned by: James E. King, III
Milestone: To Be Determined Component: assign
Version: Boost 1.49.0 Severity: Problem
Keywords: assign gil Cc:

Description

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

Change History (2)

comment:1 Changed 5 weeks ago by James E. King, III

Owner: changed from Thorsten Ottosen to James E. King, III

comment:2 Changed 5 weeks ago by James E. King, III

Resolution: wontfix
Status: newclosed

Please use gcc 4.8 or later.

Note: See TracTickets for help on using tickets.