|
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