mt
 All Classes Files Functions Enumerations Groups Pages
CAssertTemplate.hpp
1 /***************************************************************************
2  * Copyright (C) 2006 by Adolfo Rodriguez *
3  * adolfo.rodriguez@upc.edu *
4  * *
5  * The contents of this file were taken from Bjarne Stroustroup's *
6  * "The C++ Programming Language", third edition, p. 753. *
7  * This program is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * This program is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15  * GNU General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU General Public License *
18  * along with this program; if not, write to the *
19  * Free Software Foundation, Inc., *
20  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21  ***************************************************************************/
22 
23 
25 
26 // HEADER GUARD
27 #ifndef ASSERT_TEMPLATE_H
28 #define ASSERT_TEMPLATE_H
29 
30 
31 // DEBUGGING OPTIONS
32 #define NDEBUG // Not debugging macro
33 
34 #ifdef NDEBUG
35 const bool ARG_CHECK = false; // We are not debugging, disable checks
36 #else
37 const bool ARG_CHECK = true; // We are debugging
38 #endif
39 
40 
42 
43 template<class A, class E> inline void Assert(A assertion, E excep)
44 {
45  if (!assertion) throw excep;
46 }
47 
48 #endif // ASSERT_TEMPLATE_H