Package: libboost-dev Version: 1.33.1-4 Severity: normal Tags: patch this simple source:
#include <boost/bind.hpp>
#include <boost/signal.hpp>
struct connection
{
boost::signal<void()> disc_sig;
};
struct statement
{
statement(connection & c);
void disconnect() {}
};
statement::statement(connection & c)
{
c.disc_sig.connect(boost::bind(&statement::disconnect, this));
}
compile with no problem on g++-4.0, but with g++-4.1 this is the
output:
/usr/include/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 = statement*]’:
/usr/include/boost/bind.hpp:239: instantiated from ‘void
boost::_bi::list1<A1>::accept(V&) const [with V =
boost::signals::detail::bound_objects_visitor, A1 =
boost::_bi::value<statement*>]’
/usr/include/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 = void, F =
boost::_mfi::mf0<void, statement>, L =
boost::_bi::list1<boost::_bi::value<statement*> >]’
/usr/include/boost/bind.hpp:1213: 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 = void, F =
boost::_mfi::mf0<void, statement>, L =
boost::_bi::list1<boost::_bi::value<statement*> >]’
/usr/include/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<void,
boost::_mfi::mf0<void, statement>,
boost::_bi::list1<boost::_bi::value<statement*> > >]’
/usr/include/boost/signals/slot.hpp:121: instantiated from
‘boost::slot<SlotFunction>::slot(const F&) [with F = boost::_bi::bind_t<void,
boost::_mfi::mf0<void, statement>,
boost::_bi::list1<boost::_bi::value<statement*> > >, SlotFunction =
boost::function<void ()(), std::allocator<void> >]’
boost_test.cpp:18: instantiated from here
/usr/include/boost/bind.hpp:1208: error: no matching function for call to
‘visit_each(boost::signals::detail::bound_objects_visitor&, statement* const&,
int)’
The attached simple patch seem to be a solution.
This bug make me unable to package wengophone-ng for sid with gcc-4.1.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-2-686
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8)
Versions of packages libboost-dev depends on:
ii libstdc++6-4.0-dev [libstdc++ 4.0.3-4 The GNU Standard C++ Library v3 (d
ii libstdc++6-4.1-dev [libstdc++ 4.1.1-7 The GNU Standard C++ Library v3 (d
libboost-dev recommends no packages.
-- no debconf information
--
---------------------------------------------------------------------
| Marco Nenciarini | Debian/GNU Linux Developer - Plug Member |
| [EMAIL PROTECTED] | http://www.prato.linux.it/~mnencia |
---------------------------------------------------------------------
Key fingerprint = FED9 69C7 9E67 21F5 7D95 5270 6864 730D F095 E5E4
*** /usr/include/boost/bind.hpp~ 2005-10-16 23:27:52.000000000 +0200 --- /usr/include/boost/bind.hpp 2006-07-04 18:22:17.000000000 +0200 *************** *** 27,32 **** --- 27,33 ---- #include <boost/type.hpp> #include <boost/bind/arg.hpp> #include <boost/detail/workaround.hpp> + #include <boost/visit_each.hpp> // Borland-specific bug, visit_each() silently fails to produce code
#include <boost/bind.hpp>
#include <boost/signal.hpp>
struct connection
{
boost::signal<void()> disc_sig;
};
struct statement
{
statement(connection & c);
void disconnect() {}
};
statement::statement(connection & c)
{
c.disc_sig.connect(boost::bind(&statement::disconnect, this));
}
signature.asc
Description: Digital signature

