// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // /*++ --*/ #ifndef __PAL_ASSERT_H__ #define __PAL_ASSERT_H__ #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus // // C_ASSERT() can be used to perform many compile-time assertions: // type sizes, field offsets, etc. // #define C_ASSERT(e) static_assert(e, #e) // // CPP_ASSERT() can be used within a class definition, to perform a // compile-time assertion involving private names within the class. // #define CPP_ASSERT(n, e) static_assert(e, #e) #endif // __cplusplus #if defined(_DEBUG) #include "assert_only.h" #define _ASSERTE(e) Assert(e) #else // !DEBUG #define _ASSERTE(e) ((void)0) #endif #ifndef assert #define assert(e) _ASSERTE(e) #endif // assert #ifdef __cplusplus } #endif #endif // __PAL_ASSERT_H__