Boost logo

Boost :

From: Theodore Witkamp (ted_at_[hidden])
Date: 2006-12-13 19:24:03


Hi, I would like to get some feedback on some changes that I would
like to make to boost::function for my own use only and I figured that
this would be the best place for it.

I basically want to detect if there is a NULL "this" bound to a member
function. I want to do this so that i can prevent dereferencing a NULL
pointer when calling a member function. I hope the following code
example will clarify.
///////////////////////////////////////////////////////////////////////
// example code:
///////////////////////////////////////////////////////////////////////
struct X
{
  void f()
  {
    assert(this != NULL);
  }
};

my_smart_ptr<X> sp_x = new X();
my_weak_ptr<X> wp_x = sp_x;
boost::function0<void> _f = bind(&X::f,wp_x);
assert(!_f.empty());
sp_x.reset(); // wp_x == NULL

if(!_f.empty())
{
  _f(); // This will fail
}
////////////////////////////////////////////////////////////////////////

I can't use exceptions because the code size would be too great on my
embedded arm platform. Therefore I would like to have a member of
boost::function that would tell me if i could call the function. I
was thinking empty() but that may not be a good choice.
I am just looking for a little guidance and also any general feedback.

Thanks

-- 
Theodore Witkamp
CTO
RiffWare LLC
107 S Holliston Ave Apt 308
Pasadena, CA 91106
Mb. 626-372-0931

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