<commit_before>#pragma once
#include <fmt/format.h>
#include <source_location>
#include <system_error>
#include <utility>

namespace stdplus
{
namespace exception
{

struct WouldBlock : public std::system_error
{
    WouldBlock(const char* what);
    WouldBlock(const std::string& what);
};

struct Eof : public std::system_error
{
    Eof(const char* what);
    Eof(const std::string& what);
};

template <typename F>
auto ignore(F&& f, const std::source_location location =
                       std::source_location::current())
{
    return ignore(std::forward<F>(f), location.file_name(), location.line(),
                  location.function_name());
}
<commit_msg>exception: Fix for older clang<commit_after>#pragma once
#include <fmt/format.h>
#include <source_location>
#include <system_error>
#include <utility>

#if __has_builtin(__builtin_source_location)
#include <source_location>
#else
#include <experimental/source_location>
#endif

namespace stdplus
{
namespace exception
{
namespace detail
{
#if __has_builtin(__builtin_source_location)
using source_location = std::source_location;
#else
using source_location = std::experimental::source_location;
#endif
} // namespace detail

struct WouldBlock : public std::system_error
{
    WouldBlock(const char* what);
    WouldBlock(const std::string& what);
};

struct Eof : public std::system_error
{
    Eof(const char* what);
    Eof(const std::string& what);
};

template <typename F>
auto ignore(F&& f, const detail::source_location location =
                       detail::source_location::current())
{
    return ignore(std::forward<F>(f), location.file_name(), location.line(),
                  location.function_name());
}

{'fraction_non_alphanumeric': 0.12632821723730814, 'fraction_numerical': 0.0, 'mean_word_length': 4.726351351351352, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, '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': '493484', 'n_tokens_mistral': 510, 'n_tokens_neox': 507, 'n_words': 124}