Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
math/assert.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2020 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
8 
9 #ifndef MI_MATH_ASSERT_H
10 #define MI_MATH_ASSERT_H
11 
12 #include <mi/base/config.h>
13 #include <mi/base/assert.h>
14 
15 namespace mi {
16 
17 namespace math {
18 
42 #if defined( mi_math_assert) && ! defined( mi_math_assert_msg) \
43  || ! defined( mi_math_assert) && defined( mi_math_assert_msg)
44 error "Only one of mi_math_assert and mi_math_assert_msg has been defined. Please define both."
45 #else
46 #ifndef mi_math_assert
47 
61 #define mi_math_assert(expr) mi_base_assert(expr)
62 
80 #define mi_math_assert_msg(expr, msg) mi_base_assert_msg(expr, msg)
81 
82 // Just for doxygen, begin
83 
89 #define mi_math_assert_enabled
90 #undef mi_math_assert_enabled
91 
92 // Just for doxygen, end
93 
94 #ifdef mi_base_assert_enabled
95 #define mi_math_assert_enabled
96 #endif // mi_math_assert_enabled
97 
98 #else // mi_math_assert
99 
100 #define mi_math_assert_enabled
101 
102 #endif // mi_math_assert
103 #endif // mi_math_assert xor mi_math_assert_msg
104 
105  // end group mi_math_assert
107 
108 } // namespace math
109 
110 } // namespace mi
111 
112 #endif // MI_MATH_ASSERT_H