STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
assert.h
Go to the documentation of this file.
1 /***
2 *assert.h - define the assert macro
3 *
4 * Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 * Defines the assert(exp) macro.
8 * [ANSI/System V]
9 *
10 * [Public]
11 *
12 ****/
13 
14 #ifdef _CRTBLD
15 #ifndef _ASSERT_OK
16 #error assert.h not for CRT internal use, use dbgint.h
17 #endif /* _ASSERT_OK */
18 #include <cruntime.h>
19 #endif /* _CRTBLD */
20 
21 #include <crtdefs.h>
22 
23 #undef assert
24 
25 #ifdef NDEBUG
26 
27 #define assert(_Expression) ((void)0)
28 
29 #else /* NDEBUG */
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif /* __cplusplus */
34 
35 _CRTIMP void __cdecl _wassert(_In_z_ const wchar_t * _Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line);
36 
37 #ifdef __cplusplus
38 }
39 #endif /* __cplusplus */
40 
41 #define assert(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
42 
43 #endif /* NDEBUG */
#define _CRTIMP
Definition: crtdefs.h:23
_CRTIMP void __cdecl _wassert(_In_z_ const wchar_t *_Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line)
#define _In_z_
Definition: sal.h:319
#define _In_
Definition: sal.h:314
_Check_return_ _In_z_ const char _Inout_ FILE * _File
Definition: stdio.h:226