Sleipnir C++ API
Loading...
Searching...
No Matches
print.hpp
1// Copyright (c) Sleipnir contributors
2
3#pragma once
4
5#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
6#include <cstdio>
7#include <print>
8#include <system_error>
9#include <utility>
10
11#endif
12
13namespace slp {
14
15#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
16
20template <typename... T>
21inline void print(std::format_string<T...> fmt, T&&... args) {
22 try {
23 std::print(fmt, std::forward<T>(args)...);
24 } catch (const std::system_error&) {
25 }
26}
27
31template <typename... T>
32inline void print(std::FILE* f, std::format_string<T...> fmt, T&&... args) {
33 try {
34 std::print(f, fmt, std::forward<T>(args)...);
35 } catch (const std::system_error&) {
36 }
37}
38
42template <typename... T>
43inline void println(std::format_string<T...> fmt, T&&... args) {
44 try {
45 std::println(fmt, std::forward<T>(args)...);
46 } catch (const std::system_error&) {
47 }
48}
49
53template <typename... T>
54inline void println(std::FILE* f, std::format_string<T...> fmt, T&&... args) {
55 try {
56 std::println(f, fmt, std::forward<T>(args)...);
57 } catch (const std::system_error&) {
58 }
59}
60
61#else
62
63template <typename... Args>
64inline void print([[maybe_unused]] Args&&... args) {}
65
66template <typename... Args>
67inline void println([[maybe_unused]] Args&&... args) {}
68
69#endif
70
71} // namespace slp