Boost logo

Boost :

Subject: [boost] [function] invoking without requiring boost::throw_exception
From: Peter Myerscough-Jackopson (peter.myerscough-jackopson_at_[hidden])
Date: 2010-09-02 11:36:26


Dear all,

 

I am using boost::function on an embedded platform, which requires me to
not use exceptions, and as commented in the thread associated with

 

http://article.gmane.org/gmane.comp.lib.boost.devel/195351

 

I am checking that the function object contains a function before
calling it. There is therefore no need for the invocation of the
function to check if it is valid, but also there is no method circumvent
this checking, and therefore my program requires the definition of
boost::throw_exception, when really it is not needed. This is a concern
because I intend on compiling my code into a library and do not wish to
require the user to define boost::throw_exception, especially when I am
guaranteeing it isn't going to be called from this site. I liked the
idea of a templated NOP for the function library, but at the very least
an unchecked invocation method would be great, or a nop-if-empty
invocation method would be useful.

 

A simple addition of the following would assist to some extend :

 

    result_type invoke(BOOST_FUNCTION_PARMS) const

    {

      return get_vtable()->invoker

               (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);

    }

 

With maybe a comment next to result_type
operator()(BOOST_FUNCTION_PARMS) const; suggesting the use of invoke()
when the function is pre-checked, or more importantly you are trying to
avoid exception usage.

 

Thanks in advance, and I hope I am not opening a new/old can of
worms.....

 

Peter

 

Dr Peter Myerscough-Jackopson - Principal Engineer

Tel: +44 (0)23 8076 7808 Fax: +44 (0)23 8076 0602
Web: http://www.macltd.com/ <BLOCKED::http://www.macltd.com/> Email:
peter.myerscough-jackopson_at_[hidden]
<mailto:peter.myerscough-jackopson_at_[hidden]>
MULTIPLE ACCESS COMMUNICATIONS LIMITED is a company registered in
England at Delta House, The University of Southampton Science Park,
Southampton, SO16 7NS, United Kingdom with Company Number 1979185 and
VAT Number GB 411942866

 


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