FEDRA emulsion software from the OPERA Collaboration
sassert.hh
Go to the documentation of this file.
1
#ifndef __SASSERT_HH
2
#define __SASSERT_HH
3
// ********************************************************************
4
//
5
// source:
6
//
7
// type: source code
8
//
9
// created: 04. Apr 2001
10
//
11
// author: Thorsten Glebe
12
// HERA-B Collaboration
13
// Max-Planck-Institut fuer Kernphysik
14
// Saupfercheckweg 1
15
// 69117 Heidelberg
16
// Germany
17
// E-mail: T.Glebe@mpi-hd.mpg.de
18
//
19
// Description: An assert macro which is invoced only once (in contrast
20
// to standard assert(), which is repeatedly called).
21
// Sassert is more performant in case it is placed in a routine
22
// which is called more than once. Otherwise assert() is more
23
// performant.
24
//
25
// changes:
26
// 04 Apr 2001 (TG) creation
27
//
28
// ********************************************************************
29
35
//==============================================================================
36
// errfunc
37
//==============================================================================
38
static
bool
errfunc(
const
char
* expr,
const
char
* function,
39
const
unsigned
int
line) {
40
cerr <<
"Error in "
<< __FILE__ <<
", function "
<< function
41
<<
", Line "
<< line <<
": assertion "
<< expr <<
" failed!"
<< endl;
42
exit(-1);
43
return
false
;
44
}
45
55
//==============================================================================
56
// Sassert
57
//==============================================================================
58
#define Sassert(expr) static const bool sassertrc = (expr) ? true : errfunc(__STRING(expr),__FUNCTION__,__LINE__)
59
#endif
fedra_doxygen
src
libVt++
smatrix
include
sassert.hh
Generated by
1.9.3