[C++-sig] Re: Boost.Python in SUSE 9.0 or SUSE 9.1?

David Abrahams dave at boost-consulting.com
Wed Jul 7 15:25:33 CEST 2004


"Ralf W. Grosse-Kunstleve" <rwgk at yahoo.com> writes:

> --- Chris Hoeppler <hoeppler at diener.iap.physik.uni-tuebingen.de> wrote:
>> I just checked this for gcc-3.3.4 and gcc-3.4.0 (official), and
>> gcc-3.3.1 (as shipped by SuSE 8.2) So it will have to be non-SuSE gcc's
>> for the time being...
>
> Oh, sorry, I didn't see this before sending the other message a minute ago.
> Please disregard the other message.
> Ralf

Here's what you do.  You use that nasty preprocessor condition to
switch in this code:

  template <class ExceptionType, class Translate>
  struct translate_exception
  {
      typedef typename remove_reference<
                       ^^^^^^^
          typename add_const<ExceptionType>::type
      >::type exception_non_ref;

      inline bool operator()(
          exception_handler const& handler
        , function0<void> const& f
        , typename call_traits<Translate>::param_type translate) const
      {
          try
          {
              return handler(f);
          }
          catch(exception_non_ref& e)
                ^^^^^^^^^^^^^^^^^^                                 
          {
              translate(e);
              return true;
          }
      }
  };

Then you test it thoroughly.

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com




More information about the Cplusplus-sig mailing list