libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
debug.hpp
1//
2// libsemigroups - C++ library for semigroups and monoids
3// Copyright (C) 2019-2025 James D. Mitchell
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17//
18
19// This file declares debugging functionality.
20
21#ifndef LIBSEMIGROUPS_DEBUG_HPP_
22#define LIBSEMIGROUPS_DEBUG_HPP_
23
24#include "config.hpp"
25
26#ifdef LIBSEMIGROUPS_DEBUG
27#include <cassert>
28#define LIBSEMIGROUPS_ASSERT(x) assert(x)
29#else
30#define LIBSEMIGROUPS_ASSERT(x)
31#endif
32
33#if (defined(__GNUC__) && __GNUC__ < 9 \
34 && !(defined(__clang__) || defined(__INTEL_COMPILER)))
35#error "GCC version 9.0 or higher is required"
36#endif
37
38#endif // LIBSEMIGROUPS_DEBUG_HPP_