| // (C) Copyright Matt Borland 2021. |
| // Use, modification and distribution are 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) |
| // |
| // We deliberately use assert in here: |
| // |
| // boost-no-inspect |
| |
| #ifndef BOOST_MATH_TOOLS_ASSERT_HPP |
| #define BOOST_MATH_TOOLS_ASSERT_HPP |
| |
| #include <boost/math/tools/config.hpp> |
| |
| #ifdef BOOST_MATH_HAS_GPU_SUPPORT |
| |
| // Run time asserts are generally unsupported |
| |
| #define BOOST_MATH_ASSERT(expr) |
| #define BOOST_MATH_ASSERT_MSG(expr, msg) |
| #define BOOST_MATH_STATIC_ASSERT(expr) static_assert(expr, #expr " failed") |
| #define BOOST_MATH_STATIC_ASSERT_MSG(expr, msg) static_assert(expr, msg) |
| |
| #else |
| |
| #include <boost/math/tools/is_standalone.hpp> |
| |
| #ifndef BOOST_MATH_STANDALONE |
| |
| #include <boost/assert.hpp> |
| #include <boost/static_assert.hpp> |
| #define BOOST_MATH_ASSERT(expr) BOOST_ASSERT(expr) |
| #define BOOST_MATH_ASSERT_MSG(expr, msg) BOOST_ASSERT_MSG(expr, msg) |
| #define BOOST_MATH_STATIC_ASSERT(expr) BOOST_STATIC_ASSERT(expr) |
| #define BOOST_MATH_STATIC_ASSERT_MSG(expr, msg) BOOST_STATIC_ASSERT_MSG(expr, msg) |
| |
| #else // Standalone mode - use cassert |
| |
| #include <cassert> |
| #define BOOST_MATH_ASSERT(expr) assert(expr) |
| #define BOOST_MATH_ASSERT_MSG(expr, msg) assert((expr)&&(msg)) |
| #define BOOST_MATH_STATIC_ASSERT(expr) static_assert(expr, #expr " failed") |
| #define BOOST_MATH_STATIC_ASSERT_MSG(expr, msg) static_assert(expr, msg) |
| |
| #endif // Is standalone |
| |
| #endif // BOOST_MATH_HAS_GPU_SUPPORT |
| |
| #endif // BOOST_MATH_TOOLS_ASSERT_HPP |