summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/multi_array/test/assert.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/multi_array/test/assert.cpp')
-rw-r--r--src/boost/libs/multi_array/test/assert.cpp59
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 000000000..7bdfb3130
--- /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();
+}