Boost logo

Boost :

From: Lars Gullik Bjønnes (larsbj_at_[hidden])
Date: 2006-02-20 12:22:23


We se some strange problems with GCC 4.1 (the prerelease/release
candidate) with use of boost::signal and boost::bind. Have anyone run
the regressions tests for this GCC version?

g++ (GCC) 4.1.0 20060219 (prerelease

We get errors of this form:

g++ -DHAVE_CONFIG_H -I. -I. -I../../src -I./.. -I../../boost -Wextra
 -Wall -I/usr/X11R6/include -g -O -MT render_graphic.lo -MD -MP -MF
 .deps/render_graphic.Tpo -c render_graphic.C -o render_graphic.o
In file included from ../../boost/boost/config.hpp:35,
                 from ../../boost/boost/bind.hpp:23,
                 from ../../src/support/translator.h:16,
                 from ../../src/graphics/GraphicsTypes.h:18,
                 from ../../src/graphics/GraphicsLoader.h:27,
                 from render_graphic.h:17,
                 from render_graphic.C:13:
../../boost/boost/config/compiler/gcc.hpp:92:7: warning: #warning
 "Unknown compiler version - please run the configure tests and report
 the results"
../../boost/boost/bind.hpp: In function 'void boost::visit_each(V&,
 const boost::_bi::value<T>&, int) [with V =
 boost::signals::detail::bound_objects_visitor, T = const
 InsetBase*]':
../../boost/boost/bind.hpp:296: instantiated from 'void
 boost::_bi::list2<A1, A2>::accept(V&) const [with V =
 boost::signals::detail::bound_objects_visitor, A1 =
 boost::reference_wrapper<const LyX>, A2 = boost::_bi::value<const
 InsetBase*>]'
../../boost/boost/bind/bind_template.hpp:150: instantiated from
 'void boost::_bi::bind_t<R, F, L>::accept(V&) const [with V =
 boost::signals::detail::bound_objects_visitor, R = const Buffer*
 const, F = boost::_mfi::cmf1<const Buffer* const, LyX, const
 InsetBase*>, L = boost::_bi::list2<boost::reference_wrapper<const
 LyX>, boost::_bi::value<const InsetBase*> >]'
../../boost/boost/bind.hpp:1110: instantiated from 'void
 boost::visit_each(V&, const boost::_bi::bind_t<R, F, L>&, int) [with
 V = boost::signals::detail::bound_objects_visitor, R = const Buffer*
 const, F = boost::_mfi::cmf1<const Buffer* const, LyX, const
 InsetBase*>, L = boost::_bi::list2<boost::reference_wrapper<const
 LyX>, boost::_bi::value<const InsetBase*> >]'
../../boost/boost/visit_each.hpp:25: instantiated from 'void
 boost::visit_each(Visitor&, const T&) [with Visitor =
 boost::signals::detail::bound_objects_visitor, T =
 boost::_bi::bind_t<const Buffer* const, boost::_mfi::cmf1<const
 Buffer* const, LyX, const InsetBase*>,
 boost::_bi::list2<boost::reference_wrapper<const LyX>,
 boost::_bi::value<const InsetBase*> > >]'
../../boost/boost/signals/slot.hpp:121: instantiated from
 'boost::slot<SlotFunction>::slot(const F&) [with F =
 boost::_bi::bind_t<const Buffer* const, boost::_mfi::cmf1<const
 Buffer* const, LyX, const InsetBase*>,
 boost::_bi::list2<boost::reference_wrapper<const LyX>,
 boost::_bi::value<const InsetBase*> > >, SlotFunction =
 boost::function<void ()(), std::allocator<void> >]'
render_graphic.C:44: instantiated from here
../../boost/boost/bind.hpp:1105: error: no matching function for call
 to 'visit_each(boost::signals::detail::bound_objects_visitor&, const
 InsetBase* const&, int)'

This patch "fixes" the compile problems but we do not really want to
apply it.



Any opinions on this?

Is it something strange hidden in our code, boost or a real regression
in gcc?

-- 
	Lgb


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk