Std::format проверяет время компиляции, если возможно, время выполнения в противном случае ⇐ C++
-
Anonymous
Std::format проверяет время компиляции, если возможно, время выполнения в противном случае
Мне хотелось бы иметь оболочку вокруг std::format (или fmt::format), которая, если возможно, использует проверки строки формата во время компиляции и возвращается к время выполнения проверяет, если нет. К сожалению, я понятия не имею, как выяснить, возможна ли проверка во время компиляции.
#include #include шаблон [[nodiscard]] auto Format(std::format_string fmt, Args&&... args) { return std::format(fmt, std::forward(args)...); } шаблон [[nodiscard]] автоматический формат (std::string_view fmt, Args&&... args) { return std::vformat(fmt, std::make_format_args(args...)); } std::string foo() { вернуть "Фу{}"; } constexpr inline std::string_view str = "Foo{}"; интервал основной() { std::cout
Мне хотелось бы иметь оболочку вокруг std::format (или fmt::format), которая, если возможно, использует проверки строки формата во время компиляции и возвращается к время выполнения проверяет, если нет. К сожалению, я понятия не имею, как выяснить, возможна ли проверка во время компиляции.
#include #include шаблон [[nodiscard]] auto Format(std::format_string fmt, Args&&... args) { return std::format(fmt, std::forward(args)...); } шаблон [[nodiscard]] автоматический формат (std::string_view fmt, Args&&... args) { return std::vformat(fmt, std::make_format_args(args...)); } std::string foo() { вернуть "Фу{}"; } constexpr inline std::string_view str = "Foo{}"; интервал основной() { std::cout
Мобильная версия