Loading...
Searching...
No Matches
ITHACAassert.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ██╗████████╗██╗ ██╗ █████╗ ██████╗ █████╗ ███████╗██╗ ██╗
3 ██║╚══██╔══╝██║ ██║██╔══██╗██╔════╝██╔══██╗ ██╔════╝██║ ██║
4 ██║ ██║ ███████║███████║██║ ███████║█████╗█████╗ ██║ ██║
5 ██║ ██║ ██╔══██║██╔══██║██║ ██╔══██║╚════╝██╔══╝ ╚██╗ ██╔╝
6 ██║ ██║ ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ╚████╔╝
7 ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═══╝
8
9 * In real Time Highly Advanced Computational Applications for Finite Volumes
10 * Copyright (C) 2017 by the ITHACA-FV authors
11-------------------------------------------------------------------------------
12License
13 This file is part of ITHACA-FV
14 ITHACA-FV is free software: you can redistribute it and/or modify
15 it under the terms of the GNU Lesser General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18 ITHACA-FV is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU Lesser General Public License for more details.
22 You should have received a copy of the GNU Lesser General Public License
23 along with ITHACA-FV. If not, see <http://www.gnu.org/licenses/>.
24\*---------------------------------------------------------------------------*/
25
26#include <iostream>
27
30
31#pragma once
32
33inline void __M_Assert(const char* expr_str, bool expr, const char* file,
34 int line, const char* msg)
35{
36 if (!expr)
37 {
38 std::cerr << "Assert failed:\t" << msg << "\n"
39 << "Expected:\t" << expr_str << "\n"
40 << "Source:\t\t" << file << ", line " << line << "\n";
41 abort();
42 }
43}
44
45#ifndef NDEBUG
46#define M_Assert(Expr, Msg) \
47__M_Assert(#Expr, Expr, __FILE__, __LINE__, Msg)
48#else
49#define M_Assert(Expr, Msg) ;
50#endif
51
void __M_Assert(const char *expr_str, bool expr, const char *file, int line, const char *msg)