Sha256: 007962f7a94b8146c09df023bca4bf267389ec02c16a0a2942fee9f916763328

Contents?: true

Size: 1.95 KB

Versions: 112

Compression:

Stored size: 1.95 KB

Contents

#ifndef BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_

#if (defined _MSC_VER) && (_MSC_VER >= 1200)
#  pragma once
#endif

//----------------------------------------------------------------------
// (C) Copyright 2004 Pavel Vozenilek.
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
//
//
// This file contains helper macros used when exception support may be
// disabled (as indicated by macro BOOST_NO_EXCEPTIONS).
//
// Before picking up these macros you may consider using RAII techniques
// to deal with exceptions - their syntax can be always the same with 
// or without exception support enabled.
//

/* Example of use:

void foo() {
  BOOST_TRY {
    ...
  } BOOST_CATCH(const std::bad_alloc&) {
      ...
      BOOST_RETHROW
  } BOOST_CATCH(const std::exception& e) {
      ...
  }
  BOOST_CATCH_END
}

With exception support enabled it will expand into:

void foo() {
  { try {
    ...
  } catch (const std::bad_alloc&) {
      ...
      throw;
  } catch (const std::exception& e) {
      ...
  }
  }
}

With exception support disabled it will expand into:

void foo() {
  { if(true) {
    ...
  } else if (false) {
      ...
  } else if (false)  {
      ...
  }
  }
}
*/
//----------------------------------------------------------------------

#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>

#if !(defined BOOST_NO_EXCEPTIONS)
#    define BOOST_TRY { try
#    define BOOST_CATCH(x) catch(x)
#    define BOOST_RETHROW throw;
#    define BOOST_CATCH_END }
#else
#    if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#        define BOOST_TRY { if ("")
#        define BOOST_CATCH(x) else if (!"")
#    else
#        define BOOST_TRY { if (true)
#        define BOOST_CATCH(x) else if (false)
#    endif
#    define BOOST_RETHROW
#    define BOOST_CATCH_END }
#endif


#endif 

Version data entries

112 entries across 112 versions & 4 rubygems

Version Path
passenger-5.0.24 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-5.0.23 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-5.0.22 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-4.0.60 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.21 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-5.0.20 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-5.0.19 src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
passenger-5.0.18 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.17 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.16 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.15 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.14 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.13 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.11 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.10 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.9 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.8 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.7 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.6 ext/boost/detail/no_exceptions_support.hpp
passenger-5.0.5 ext/boost/detail/no_exceptions_support.hpp