From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Wed, 29 May 2024 16:29:55 -0700 Subject: [PATCH 1/8] Use fmtlib --- include/.styleguide | 1 + include/sleipnir/util/assert.hpp | 5 +++-- include/sleipnir/util/print.hpp | 31 ++++++++++++++++++------------- src/.styleguide | 1 + src/optimization/problem.cpp | 1 + 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/include/.styleguide b/include/.styleguide index 1b6652d3d5886cf8c9eca0d855c21031775bad7c..4f4c76204071f90bf49eddb8c2aceb583b5e09ba 100644 --- a/include/.styleguide +++ b/include/.styleguide @@ -8,5 +8,6 @@ cppSrcFileInclude { includeOtherLibs { ^Eigen/ + ^fmt/ ^gch/ } diff --git a/include/sleipnir/util/assert.hpp b/include/sleipnir/util/assert.hpp index 75d8ffca32accbf66ffce30f073de1db2f42469b..53de01928b929793fa77885ec4a6d1a928bdc5a9 100644 --- a/include/sleipnir/util/assert.hpp +++ b/include/sleipnir/util/assert.hpp @@ -3,9 +3,10 @@ #pragma once #ifdef JORMUNGANDR -#include #include #include + +#include /** * Throw an exception in Python. */ @@ -13,7 +14,7 @@ do { \ if (!(condition)) { \ auto location = std::source_location::current(); \ - throw std::invalid_argument(std::format( \ + throw std::invalid_argument(fmt::format( \ "{}:{}: {}: Assertion `{}' failed.", location.file_name(), \ location.line(), location.function_name(), #condition)); \ } \ diff --git a/include/sleipnir/util/print.hpp b/include/sleipnir/util/print.hpp index fe430352dabf4cd6a890dc8007237c7a261dfd4b..055d5c9fa246201f1d8ae7ddca00b1159aeb2a57 100644 --- a/include/sleipnir/util/print.hpp +++ b/include/sleipnir/util/print.hpp @@ -4,10 +4,15 @@ #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS #include -#include #include #include +#if __has_include() +#include +#else +#include +#endif + #endif namespace slp { @@ -15,45 +20,45 @@ namespace slp { #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS /** - * Wrapper around std::print() that squelches write failure exceptions. + * Wrapper around fmt::print() that squelches write failure exceptions. */ template -inline void print(std::format_string fmt, T&&... args) { +inline void print(fmt::format_string fmt, T&&... args) { try { - std::print(fmt, std::forward(args)...); + fmt::print(fmt, std::forward(args)...); } catch (const std::system_error&) { } } /** - * Wrapper around std::print() that squelches write failure exceptions. + * Wrapper around fmt::print() that squelches write failure exceptions. */ template -inline void print(std::FILE* f, std::format_string fmt, T&&... args) { +inline void print(std::FILE* f, fmt::format_string fmt, T&&... args) { try { - std::print(f, fmt, std::forward(args)...); + fmt::print(f, fmt, std::forward(args)...); } catch (const std::system_error&) { } } /** - * Wrapper around std::println() that squelches write failure exceptions. + * Wrapper around fmt::println() that squelches write failure exceptions. */ template -inline void println(std::format_string fmt, T&&... args) { +inline void println(fmt::format_string fmt, T&&... args) { try { - std::println(fmt, std::forward(args)...); + fmt::println(fmt, std::forward(args)...); } catch (const std::system_error&) { } } /** - * Wrapper around std::println() that squelches write failure exceptions. + * Wrapper around fmt::println() that squelches write failure exceptions. */ template -inline void println(std::FILE* f, std::format_string fmt, T&&... args) { +inline void println(std::FILE* f, fmt::format_string fmt, T&&... args) { try { - std::println(f, fmt, std::forward(args)...); + fmt::println(f, fmt, std::forward(args)...); } catch (const std::system_error&) { } } diff --git a/src/.styleguide b/src/.styleguide index 1b6652d3d5886cf8c9eca0d855c21031775bad7c..4f4c76204071f90bf49eddb8c2aceb583b5e09ba 100644 --- a/src/.styleguide +++ b/src/.styleguide @@ -8,5 +8,6 @@ cppSrcFileInclude { includeOtherLibs { ^Eigen/ + ^fmt/ ^gch/ } diff --git a/src/optimization/problem.cpp b/src/optimization/problem.cpp index c3331197e2365934273f57422b79fa18c2b78a5b..09828cdb6d7cddff692b9d17603dc0c11cd5a3ec 100644 --- a/src/optimization/problem.cpp +++ b/src/optimization/problem.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include "optimization/bounds.hpp"