API Documentation
Loading...
Searching...
No Matches
LibAssert.h
Go to the documentation of this file.
1
/**--------------------------------------------------------------------------------------------
2
Copyright (c) 2019, NDEVR LLC
3
tyler.parke@ndevr.org
4
__ __ ____ _____ __ __ _______
5
| \ | | | __ \ | ___|\ \ / / | __ \
6
| \ | | | | \ \ | |___ \ \ / / | |__) |
7
| . \| | | |__/ / | |___ \ V / | _ /
8
| |\ |_|_____/__|_____|___\_/____| | \ \
9
|__| \__________________________________| \__\
10
11
Subject to the terms of the Enterprise+ Agreement, NDEVR hereby grants
12
Licensee a limited, non-exclusive, non-transferable, royalty-free license
13
(without the right to sublicense) to use the API solely for the purpose of
14
Licensee's internal development efforts to develop applications for which
15
the API was provided.
16
17
The above copyright notice and this permission notice shall be included in all
18
copies or substantial portions of the Software.
19
20
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
21
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
22
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
23
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25
DEALINGS IN THE SOFTWARE.
26
27
Library: Base
28
File: LibAssert
29
Included in API: True
30
Author(s): Tyler Parke
31
*-----------------------------------------------------------------------------------------**/
32
#pragma once
33
#include "
DLLInfo.h
"
34
#include <functional>
35
namespace
NDEVR
36
{
37
#ifdef _DEBUG
38
#define USE_ASSERTIONS
39
#endif
40
#undef lib_assert
41
class
NDEVR_BASE_API
LibAssert
42
{
43
public
:
44
static
void
NAssert(
const
char
*
const
_Expression,
const
char
*
const
_Message,
const
char
*
const
_File,
unsigned
_Line);
45
//default = null, set to override assert failure behavior
46
static
std::function<void(
const
char
*
const
_Expression,
const
char
*
const
_Message,
const
char
*
const
_File,
unsigned
_Line)>
s_assert_callback
;
47
};
48
/**--------------------------------------------------------------------------------------------------
49
Fn: constexpr void lib_assert(bool value, const char* error_meesage)
50
51
\brief Asserts some logic in the code. Disabled in non debug mode by default. Can be re-enabled in release
52
using the USE_ASSERTIONS macro.
53
54
Author: Tyler Parke
55
56
Date: 2019-11-17
57
58
Exceptions:
59
Exception - Thrown when an exception error condition occurs.
60
61
Parameters:
62
value - True to value.
63
error_message - The error message.
64
*-----------------------------------------------------------------------------------------------**/
65
66
#ifdef USE_ASSERTIONS
67
#define lib_assert(expression, message) ( \
68
(!!(expression)) || (NDEVR::LibAssert::NAssert(#expression, message, __FILE__, (unsigned)(__LINE__)), 0) )
69
#else
70
#define lib_assert(expression, message) ((void)0)
71
#endif
72
}
73
DLLInfo.h
NDEVR_BASE_API
#define NDEVR_BASE_API
Definition
DLLInfo.h:78
NDEVR::LibAssert
Definition
LibAssert.h:42
NDEVR::LibAssert::s_assert_callback
static std::function< void(const char *const _Expression, const char *const _Message, const char *const _File, unsigned _Line)> s_assert_callback
Definition
LibAssert.h:46
NDEVR
Definition
ACIColor.h:37
Base
Headers
LibAssert.h