github.com/searKing/golang/go@v1.2.74/os/signal/cgo/include/boost/assert.hpp (about)

     1  //
     2  //  boost/assert.hpp - BOOST_ASSERT(expr)
     3  //                     BOOST_ASSERT_MSG(expr, msg)
     4  //                     BOOST_VERIFY(expr)
     5  //                     BOOST_VERIFY_MSG(expr, msg)
     6  //                     BOOST_ASSERT_IS_VOID
     7  //
     8  //  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
     9  //  Copyright (c) 2007, 2014 Peter Dimov
    10  //  Copyright (c) Beman Dawes 2011
    11  //  Copyright (c) 2015 Ion Gaztanaga
    12  //
    13  //  Distributed under the Boost Software License, Version 1.0.
    14  //  See accompanying file LICENSE_1_0.txt or copy at
    15  //  http://www.boost.org/LICENSE_1_0.txt
    16  //
    17  //  Note: There are no include guards. This is intentional.
    18  //
    19  //  See http://www.boost.org/libs/assert/assert.html for documentation.
    20  //
    21  
    22  //
    23  // Stop inspect complaining about use of 'assert':
    24  //
    25  // boostinspect:naassert_macro
    26  //
    27  
    28  //
    29  // BOOST_ASSERT, BOOST_ASSERT_MSG, BOOST_ASSERT_IS_VOID
    30  //
    31  
    32  #undef BOOST_ASSERT
    33  #undef BOOST_ASSERT_MSG
    34  #undef BOOST_ASSERT_IS_VOID
    35  
    36  #if defined(BOOST_DISABLE_ASSERTS) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) )
    37  
    38  # define BOOST_ASSERT(expr) ((void)0)
    39  # define BOOST_ASSERT_MSG(expr, msg) ((void)0)
    40  # define BOOST_ASSERT_IS_VOID
    41  
    42  #elif defined(BOOST_ENABLE_ASSERT_HANDLER) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) )
    43  
    44  #include <boost/config.hpp> // for BOOST_LIKELY
    45  #include <boost/current_function.hpp>
    46  
    47  namespace boost
    48  {
    49      void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
    50      void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line); // user defined
    51  } // namespace boost
    52  
    53  #define BOOST_ASSERT(expr) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
    54  #define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
    55  
    56  #else
    57  
    58  # include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
    59  
    60  # define BOOST_ASSERT(expr) assert(expr)
    61  # define BOOST_ASSERT_MSG(expr, msg) assert((expr)&&(msg))
    62  #if defined(NDEBUG)
    63  # define BOOST_ASSERT_IS_VOID
    64  #endif
    65  
    66  #endif
    67  
    68  //
    69  // BOOST_VERIFY, BOOST_VERIFY_MSG
    70  //
    71  
    72  #undef BOOST_VERIFY
    73  #undef BOOST_VERIFY_MSG
    74  
    75  #if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
    76  
    77  # define BOOST_VERIFY(expr) ((void)(expr))
    78  # define BOOST_VERIFY_MSG(expr, msg) ((void)(expr))
    79  
    80  #else
    81  
    82  # define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
    83  # define BOOST_VERIFY_MSG(expr, msg) BOOST_ASSERT_MSG(expr,msg)
    84  
    85  #endif