diff options
Diffstat (limited to 'src/boost/libs/multi_array/test/assert.cpp')
-rw-r--r-- | src/boost/libs/multi_array/test/assert.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/boost/libs/multi_array/test/assert.cpp b/src/boost/libs/multi_array/test/assert.cpp new file mode 100644 index 00000000..7bdfb313 --- /dev/null +++ b/src/boost/libs/multi_array/test/assert.cpp @@ -0,0 +1,59 @@ +// Copyright 2007 The Trustees of Indiana University. + +// 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) + +// Boost.MultiArray Library +// Authors: Ronald Garcia +// Jeremy Siek +// Andrew Lumsdaine +// See http://www.boost.org/libs/multi_array for documentation. + +// +// Using the BOOST.ASSERT mechanism to replace library assertions +// with exceptions +// + +#include <boost/core/lightweight_test.hpp> + +#define BOOST_ENABLE_ASSERT_HANDLER +#include <boost/multi_array.hpp> // includes assert.hpp + +#include <stdexcept> + +namespace boost { + + void assertion_failed(char const* expr, char const* function, + char const* file, long line) { + throw std::runtime_error(expr); + } + + void assertion_failed_msg(char const * expr, char const * msg, + char const * function, + char const * file, long line) { + throw std::runtime_error(msg); + } + +} // namespace boost + +using namespace boost; + +int +main() { + + typedef multi_array<int,2> array_t; + + array_t A(extents[2][2]); + + array_t B(extents[3][3]); + + try { + A = B; + BOOST_ERROR("did not throw an exception"); + } catch (std::runtime_error&) { + //...all good + } + + return boost::report_errors(); +} |