<commit_before>#ifndef _GUARD_ASSERT_HPP_
#define _GUARD_ASSERT_HPP_


namespace bpmodule {
namespace exception {

PRAGMA_WARNING_PUSH
PRAGMA_WARNING_IGORE_UNUSED_PARAMETERS

/*! \brief Asserts that a condition is true, throwing an exception if it is not
 *
 * If \p condition is false, an exception of type EX is thrown.
 * The \p description and \p args are forwarded to the constructor
 * of the exception.
 */
template<typename EX, typename ... Targs>
void Assert(bool condition, const std::string & description, Targs &&... args)
{
    #ifndef NDEBUG
    if(!condition)
        throw EX(description, std::forward<Targs>(args)...);
    #endif
}

PRAGMA_WARNING_IGORE_UNUSED_POP<commit_msg>Horrible spelling<commit_after>#ifndef _GUARD_ASSERT_HPP_
#define _GUARD_ASSERT_HPP_


namespace bpmodule {
namespace exception {

PRAGMA_WARNING_PUSH
PRAGMA_WARNING_IGNORE_UNUSED_PARAMETERS

/*! \brief Asserts that a condition is true, throwing an exception if it is not
 *
 * If \p condition is false, an exception of type EX is thrown.
 * The \p description and \p args are forwarded to the constructor
 * of the exception.
 */
template<typename EX, typename ... Targs>
void Assert(bool condition, const std::string & description, Targs &&... args)
{
    #ifndef NDEBUG
    if(!condition)
        throw EX(description, std::forward<Targs>(args)...);
    #endif
}

PRAGMA_WARNING_POP
{'fraction_non_alphanumeric': 0.0899854862119013, 'fraction_numerical': 0.0, 'mean_word_length': 4.303846153846154, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2948453', 'n_tokens_mistral': 432, 'n_tokens_neox': 418, 'n_words': 140}