Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#687 closed defect (fixed)

concept_check doesn't compile with gcc3

Reported by: Peter Owned by: Jari Häkkinen
Priority: major Milestone: yat 0.8
Component: build Version: trunk
Keywords: Cc:


I get the following error message

/bin/sh ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../yat/utility  -I../.. -DHAVE_INLINE=1 -DGSL_RANGE_CHECK_OFF -DNDEBUG  -I/home/peterj/include  -Wall -pedantic -O3 -Wno-long-long   -MT KernelLookup.lo -MD -MP -MF .deps/KernelLookup.Tpo -c -o KernelLookup.lo
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../../yat/utility -I../.. -DHAVE_INLINE=1 -DGSL_RANGE_CHECK_OFF -DNDEBUG -I/home/peterj/include -Wall -pedantic -O3 -Wno-long-long -MT KernelLookup.lo -MD -MP -MF .deps/KernelLookup.Tpo -c  -fPIC -DPIC -o .libs/KernelLookup.o
../../yat/utility/concept_check.h: In instantiation of `theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup>':
/home/peterj/include/boost/concept/detail/has_constraints.hpp:40:   instantiated from `boost::concept::not_satisfied<theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup> >'
/home/peterj/include/boost/mpl/if.hpp:67:   instantiated from `boost::mpl::if_<boost::concept::not_satisfied<theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup> >, boost::concept::constraint<theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup> >, boost::concept::requirement<theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup> > >'
/home/peterj/include/boost/concept/detail/general.hpp:47:   instantiated from `boost::concept::requirement_<void (*)(theplu::yat::utility::Container2D<const theplu::yat::classifier::KernelLookup>)>'
../../yat/utility/Container2DIterator.h:91:   instantiated from `theplu::yat::utility::Container2DIterator<Container, value, reference>::Container2DIterator(Container&, size_t, size_t) [with Container = const theplu::yat::classifier::KernelLookup, value = const double, reference = const double]'   instantiated from here
../../yat/utility/concept_check.h:73: error: `theplu::yat::utility::Container2D<T>::Container2D() [with T = const theplu::yat::classifier::KernelLookup]' and `theplu::yat::utility::Container2D<T>::Container2D() [with T = const theplu::yat::classifier::KernelLookup]' cannot be overloaded


Red Hat Enterprise Linux WS release 4 (Nahant Update 8)

which uses

g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)

Change History (3)

comment:1 Changed 11 years ago by Peter

related to ticket #648

comment:2 Changed 11 years ago by Peter

Resolution: fixed
Status: newclosed

(In [2657]) fixes #687. Add an autoconf test to test this case and remove the constructor (with PP magic) when compiler cannot handle it.

comment:3 Changed 11 years ago by Peter

For the record, boost uses some PP magic to distinguish GCC 4 from earlier versions and that is why the conflict was not seen with gcc4.

Note: See TracTickets for help on using tickets.