Better Enums
spdlog
Better Enums | spdlog | |
---|---|---|
5 | 44 | |
1,593 | 22,302 | |
- | - | |
3.7 | 8.9 | |
3 months ago | 2 days ago | |
C++ | C++ | |
BSD 2-clause "Simplified" License | MIT |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Better Enums
-
How to convert an enum to string in C++
I really like better_enums instead of magic_enums. There’s no limit on enum size with it: http://aantron.github.io/better-enums/
It was heavily used at a former employer of mine, so definitely a solid production-ready solution.
-
What C++ library do you wish existed but hasn’t been created yet?
IIRC I then switched to another library doing the same stuff: https://github.com/aantron/better-enums It is not as magical, as it uses a special macro to define the enum, using dedicated syntax. So it only works for enums you yourself define. However, it did work a lot better for me with enums with huge values.
-
Behind the magic of magic_enum
I can't keep up! First we have better enum, then some guy at a conference says we have to use wise enum instead, and now you speak of magic enum!
- What are some cool modern libraries you enjoy using?
-
let's all be chads
If you need a laugh today, look at Better Enums library for C++. If you thought moving from C to C++ would let you leave macros behind, think again! Enums in C++ still suck (a bit less than in C though), so someone built a library to help with that. And it's built on macros. So you can only have 64 entries per enum. And the library's code is barely readable.
spdlog
-
Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
Why a new lib instead of using or contributing to an existing one as spdlog?
https://github.com/gabime/spdlog
-
C++ Game Utility Libraries: for Game Dev Rustaceans
GitHub repo: gabime/spdlog
-
Easy logging A logging system for c++20
SpdLog https://github.com/gabime/spdlog
- Blackbox library for embedded systems
- cpp macros
-
Compiled logging library suggestion(s)?
The usual recommendation when logging libraries are brought up is spdlog, which is however header-only. It's available on Conan-center.
-
What a good debugger can do
* Aha! In digging up the docs for NDC, I found this[1], which does mention a book for your reading list: "Patterns for Logging Diagnostic Messages" part of the book "Pattern Languages of Program Design 3" edited by Martin et al.
[1] https://github.com/gabime/spdlog
- Does spdlog::get()->critical throw?
-
CMake question
FetchContent_Declare( spdlog GIT_REPOSITORY https://github.com/gabime/spdlog GIT_TAG origin/v1.x ) FetchContent_MakeAvailable(spdlog)
-
I want to slightly change the behavior of the std::cout
Typically, you'd use a logging library to handle stuff like this. I personally like spdlog. You use different logger functions (info, warn, error) and depending on what level you have set for the logger (or globally) some of the functions become no-ops. E.g. When not running in verbose mode all spdlog::info() do nothing.
What are some alternatives?
C++ Format - A modern formatting library
glog - C++ implementation of the Google logging module
stb - stb single-file public domain libraries for C/C++
Boost.Log - Boost Logging library
Klib - A standalone and lightweight C library
easyloggingpp - C++ logging library. It is extremely powerful, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
American Fuzzy Lop - american fuzzy lop - a security-oriented fuzzer
G3log - G3log is an asynchronous, "crash safe", logger that is easy to use with default logging sinks or you can add your own. G3log is made with plain C++14 (C++11 support up to release 1.3.2) with no external libraries (except gtest used for unit tests). G3log is made to be cross-platform, currently running on OSX, Windows and several Linux distros. See Readme below for details of usage.
Cppcheck - static analysis of C/C++ code
plog - Portable, simple and extensible C++ logging library
constexpr-8cc - Compile-time C Compiler implemented as C++14 constant expressions
log4cplus - log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.