Mobile API Reference  MicroStrategy 2019
Asserte.h
Go to the documentation of this file.
1 //==============================================================================================
2 // FILENAME : Asserte.h
3 // AUTHOR : Juan Pablo Muraira
4 // CREATION : 10/19/2001
5 // Copyright (C) MicroStrategy Incorporated 2001
6 // All Rights Reserved
7 //==============================================================================================
8 #ifndef MBase_Asserte_h
9 #define MBase_Asserte_h
10 
11 // Sanity check:
12 //
13 // Diagnostic code frequently relies upon either
14 // _DEBUG or NDEBUG symbols defined -- in order
15 // to distinguish Debug/Release configurations.
16 //
17 // These symbols should be defined in the imake
18 // configuration files. Here, we only check that
19 // we didn't forget to define the proper symbol.
20 //
21 #if defined( _DEBUG ) && defined( NDEBUG )
22  #error Cannot have both _DEBUG and NDEBUG defined.
23 #endif
24 
25 #if !defined( _DEBUG ) && !defined( NDEBUG )
26  #error Please, update imake configuration to define either _DEBUG or NDEBUG.
27 #endif
28 
29 #ifdef WIN32
30  #include <crtdbg.h>
31 #else
32  #include <assert.h>
33 
34  #define _ASSERT(x) _ASSERTE(x)
35 
36  #ifdef NDEBUG
37  #define _ASSERTE(x) ((void)0)
38  #else
39  //#define _ASSERTE(x) ((void)((x) || (MBase::InteractiveAssert(#x, __FILE__, __LINE__), false)))
40  #define _ASSERTE(x) assert(x)
41  #endif
42 
43 
44 #endif // WIN32
45 
46 #endif // MBase_Asserte_h