Program Listing for File assert.hpp

Return to documentation for file (include/util/assert.hpp)

// SPDX-FileCopyrightText: 2021 Christian Göhring <mostsig@gmail.com>
// SPDX-License-Identifier: MIT

#ifndef THAT_THIS_UTIL_ASSERT_HEADER_IS_ALREADY_INCLUDED
#define THAT_THIS_UTIL_ASSERT_HEADER_IS_ALREADY_INCLUDED

#include <util/exception.hpp>

namespace util {

class assertion : public exception {
public:
    explicit assertion(const char* msg) : exception(msg) {}
};

}  // namespace util

#define util_assert(condition)                                  \
    if (!(condition)) {                                         \
        throw util::assertion{"assertion failed: " #condition}; \
    }

#endif  // THAT_THIS_UTIL_ASSERT_HEADER_IS_ALREADY_INCLUDED