Opened 11 years ago
Closed 4 years ago
#6744 closed Bugs (wontfix)
[Assign][GIL] Boost Assign and GIL incompatibility in gcc 4.3.2
Reported by: | 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 by , 4 years ago
Owner: | changed from | to
---|
comment:2 by , 4 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Please use gcc 4.8 or later.