mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Specifically, this adds custom formatters using `path::operator string()` and `error_code::message()` and dereferences a (non-empty) optional. `fmtlib` provides formatters for these standard library types in `fmt/std.h`, but that file also requires RTTI (which we disable) for `std::exception` so we can't use it without either patching `fmtlib` (which they're open to: https://github.com/fmtlib/fmt/issues/3170) or enabling RTTI (which will require some consideration).
21 lines
572 B
C++
21 lines
572 B
C++
#pragma once
|
|
|
|
// Provides formatters for standard library types to be used with fmtlib.
|
|
// TODO: Patch fmtlib to support using `fmt/std.h` without RTTI
|
|
// (https://github.com/fmtlib/fmt/issues/3170).
|
|
|
|
#include <filesystem>
|
|
#include <fmt/format.h>
|
|
#include <string_view>
|
|
|
|
namespace fmt {
|
|
FMT_FORMAT_AS(std::filesystem::path, std::string);
|
|
}
|
|
|
|
template <>
|
|
struct fmt::formatter<std::error_code> : fmt::formatter<std::string> {
|
|
auto format(const std::error_code& e, format_context& ctx) const {
|
|
return fmt::formatter<std::string>::format(e.message(), ctx);
|
|
}
|
|
};
|