Sort all includes in src/gromacs
[alexxy/gromacs.git] / src / gromacs / utility / gmxassert.h
index 7e0c8695a6a76ae8cec6baa4e7d297d968b3fb9e..a919080d3259d00b214cf8c37ebb1057f83ae636 100644 (file)
@@ -1,38 +1,42 @@
 /*
+ * This file is part of the GROMACS molecular simulation package.
  *
- *                This source code is part of
+ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
  *
- *                 G   R   O   M   A   C   S
- *
- *          GROningen MAchine for Chemical Simulations
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
  *
- * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS development team,
- * check out http://www.gromacs.org for more information.
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
  *
- * If you want to redistribute modifications, please consider that
- * scientific software is very special. Version control is crucial -
- * bugs must be traceable. We will be happy to consider code for
- * inclusion in the official distribution, but derived work must not
- * be called official GROMACS. Details are found in the README & COPYING
- * files - if they are missing, get the official version at www.gromacs.org.
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
  *
  * To help us fund GROMACS development, we humbly ask that you cite
- * the papers on the package - you can find them in the top README file.
- *
- * For more info, check our website at http://www.gromacs.org
+ * the research papers on the package. Check out http://www.gromacs.org.
  */
 /*! \file
  * \brief
  * Defines assert macros customized for Gromacs.
  *
- * \author Teemu Murtola <teemu.murtola@cbr.su.se>
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
  * \inpublicapi
  * \ingroup module_utility
  */
 #define GMX_UTILITY_GMXASSERT_H
 
 #include <boost/current_function.hpp>
-#include <boost/exception/detail/attribute_noreturn.hpp>
 
-/*! \addtopublicapi
- * \{
- */
+#include "gromacs/utility/basedefinitions.h"
 
-/*! \brief
+//! \addtogroup module_utility
+//! \{
+
+/*! \def GMX_RELEASE_ASSERT
+ * \brief
  * Macro for asserts that should also be present in the release version.
  *
  * Regardless of NDEBUG, this macro checks \p condition, and if it is not true,
  * should only be used in a context where it is safe to throw an exception to
  * keep the option open.
  */
+#ifdef GMX_DISABLE_ASSERTS
+#define GMX_RELEASE_ASSERT(condition, msg)
+#else
 #define GMX_RELEASE_ASSERT(condition, msg) \
     ((void) ((condition) ? (void)0 : \
-        ::gmx::internal::assertHandler(#condition, msg, \
-            BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)))
+             ::gmx::internal::assertHandler(#condition, msg, \
+                                            BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)))
+#endif
 /*! \def GMX_ASSERT
  * \brief
  * Macro for debug asserts.
@@ -75,7 +84,7 @@
 #define GMX_ASSERT(condition, msg) GMX_RELEASE_ASSERT(condition, msg)
 #endif
 
-/*!\}*/
+//! \}
 
 namespace gmx
 {
@@ -92,11 +101,11 @@ namespace internal
  *
  * \ingroup module_utility
  */
-BOOST_ATTRIBUTE_NORETURN
+gmx_noreturn
 void assertHandler(const char *condition, const char *msg,
                    const char *func, const char *file, int line);
 
-} // namespace internal
+}   // namespace internal
 //! \endcond
 
 } // namespace gmx