<h3>Specific improvements</h3>
<ol>
+ <li> New: There is now a new macro DeclExceptionMsg that allows to
+ declare an exception that does not take any run-time arguments
+ yet still allows to specify an error message.
+ <br>
+ (Wolfgang Bangerth, 2015/02/27)
+ </li>
+
<li> New: There is now a class std_cxx11::unique_ptr that provides
the functionality of std::unique_ptr in C++11 mode, and that
provides an emulation for older compilers.
class Exception0 : public dealii::ExceptionBase {}
+/**
+ * Declare an exception class derived from ExceptionBase that can take
+ * one runtime argument, but if none is given in the place where you
+ * want to throw the exception, it simply reverts to the default text
+ * provided when declaring the exception class through this macro.
+ *
+ * @ingroup Exceptions
+ */
+#define DeclExceptionMsg(Exception, defaulttext) \
+ class Exception : public dealii::ExceptionBase \
+ { \
+ public: \
+ Exception (const std::string &msg = defaulttext) : arg (msg) {} \
+ virtual ~Exception () throw () {} \
+ virtual void print_info (std::ostream &out) const { \
+ out << arg << std::endl; \
+ } \
+ private: \
+ const std::string arg; \
+ }
+
/**
* Declare an exception class derived from ExceptionBase with one additional
* parameter.
#define DeclException0(Exception0) \
static dealii::ExceptionBase& Exception0 ()
+/**
+ * Declare an exception class derived from ExceptionBase that can take
+ * one runtime argument, but if none is given in the place where you
+ * want to throw the exception, it simply reverts to the default text
+ * provided when declaring the exception class through this macro.
+ *
+ * @ingroup Exceptions
+ */
+#define DeclExceptionMsg(Exception, defaulttext) \
+ static dealii::ExceptionBase& Exception ()
/**
* Declare an exception class derived from ExceptionBase with one additional