Boost logo

Boost Users :

From: Surya Kiran Gullapalli (skg_at_[hidden])
Date: 2005-02-09 04:12:29


> Hi,
> Please find the attached file.
> Whats wrong with bind, I'm getting compilation errors .
> ===================
> temp_bind.cpp: In constructor `temp::temp()':
> temp_bind.cpp:30: error: no matching function for call to `if_then
> (const
> boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<3, boost::lambda::function_action<3, boost::lambda::detail::unspecified> >, boost::tuples::tuple<bool (temp::*const)(int) const, temp* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, std::basic_ostream<char, std::char_traits<char> >&)'
> ==================

Well,
I was able to fix the previous problem, but i'm running into another
problem similar to this.
I'm using the same bind call, but this time i'm getting error like this.

=========================
cxtreeview.cpp:55: error: call of overloaded `bind(bool
(CXTreeView::*&)(Gtk::TreeIter&), CXTreeView* const, const
boost::lambda::lambda_functor<boost::lambda::placeholder<1> >&)' is
ambiguous
/nfs/skglnx/home/skg/.packages/boost-1.32.0/include/boost-1_32/boost/lambda/detail/bind_functions.hpp:415: note: candidates are: const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<3, boost::lambda::function_action<3, boost::lambda::detail::unspecified> >, typename boost::lambda::detail::bind_tuple_mapper<typename boost::lambda::detail::constify_non_funcs<T>::type, const Arg2, const Arg3, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>::type> > boost::lambda::bind(const Arg1&, const Arg2&, const Arg3&) [with Arg1 = bool (CXTreeView::*)(Gtk::TreeIter&), Arg2 = CXTreeView*, Arg3 = boost::lambda::lambda_functor<boost::lambda::placeholder<1> >]
/nfs/skglnx/home/skg/.packages/gnome-2.8/include/sigc++-2.0/sigc+
+/adaptors/bind.h:2104: note:
sigc::bind_functor<-0x000000001, T_functor, typename
sigc::unwrap_reference<T_type>::type, typename
sigc::unwrap_reference<T_bound1>::type, sigc::nil, sigc::nil, sigc::nil,
sigc::nil, sigc::nil> sigc::bind(const T_functor&, T_type1, T_type2)
[with T_type1 = CXTreeView*, T_type2 =
boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, T_functor
= bool (CXTreeView::*)(Gtk::TreeIter&)]
========================

I was not able to figure out how the const keyword is coming into
picture for the second argument of bind function.

Any help would be of great help.

Thanks,
Surya



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net