World Builder
1.1.0-pre
A geodynamic initial conditions generator
assert.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2018-2024 by the authors of the World Builder code.
3
4
This file is part of the World Builder.
5
6
This program is free software: you can redistribute it and/or modify
7
it under the terms of the GNU Lesser General Public License as published
8
by the Free Software Foundation, either version 2 of the License, or
9
(at your option) any later version.
10
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU Lesser General Public License for more details.
15
16
You should have received a copy of the GNU Lesser General Public License
17
along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
#ifndef WORLD_BUILDER_ASSERT_H_
20
#define WORLD_BUILDER_ASSERT_H_
21
22
#include <sstream>
23
24
namespace
WorldBuilder
25
{
26
#ifndef NDEBUG
27
# define WBAssert(condition, message) \
28
do { \
29
if (! (condition)) { \
30
std::stringstream smessage; \
31
smessage << "Assert `" #condition "` failed in " << __FILE__ \
32
<< " at line " << __LINE__ << ": " << message << std::endl << std::endl << "Error not recoverable, aborting program."; \
33
throw std::runtime_error(smessage.str()); \
34
} \
35
} while (false)
36
#else
37
# define WBAssert(condition, message) do { } while (false)
38
#endif
39
40
# define WBAssertThrow(condition, message) \
41
do { \
42
if (! (condition)) { \
43
std::stringstream smessage; \
44
smessage << "AssertThrow `" #condition "` failed in " << __FILE__ \
45
<< " at line " << __LINE__ << ": " << message << std::endl << std::endl << "Error not recoverable, aborting program."; \
46
throw std::runtime_error(smessage.str()); \
47
} \
48
} while (false)
49
50
51
# define WBAssertThrowExc(condition, exc, message) \
52
do { \
53
if (! (condition)) { \
54
exc \
55
std::stringstream smessage; \
56
smessage << "AssertThrow `" #condition "` failed in " << __FILE__ \
57
<< " at line " << __LINE__ << ": " << message << std::endl; \
58
throw std::runtime_error(smessage.str()); \
59
} \
60
} while (false)
61
}
// namespace WorldBuilder
62
63
#endif
WorldBuilder
Definition:
cartesian.cc:24
include
world_builder
assert.h
Generated by
1.8.13