SG14
A library for Study Group 14 of Working Group 21 (C++) (by WG21-SG14)
compile-time-init-build
C++ library for composing modular firmware at compile-time. (by intel)
SG14 | compile-time-init-build | |
---|---|---|
7 | 10 | |
489 | 409 | |
1.6% | 7.1% | |
1.8 | 9.3 | |
about 2 years ago | about 24 hours ago | |
C++ | C++ | |
- | Boost Software License 1.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
SG14
Posts with mentions or reviews of SG14.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-31.
- Callbacks in embedded | heapless environment
-
How to create callback function for publishing hardware events in C++?
There was a proposal for an `inplace_function` that uses static memory. There was a full implementation made. It's not the best solution for this problem though
-
C++20 compile-time functional operators that work on function pointers
There was a proposal for such functionality but I don't know what happened to it. It seems abandoned. There is full implementation in the same repo.
-
`std::function`overhead and alternatives
The only faster alternative that doesn't lose much flexibility would be to roll your own custom version of std::function that has a medium sized std::aligned_storage_t (or just an std::max_align_t aligned array of std::byte or unsigned char) buffer instead of using a dynamic allocation to hold its functor data. (Or use an implementation of the proposed inplace_function such as https://github.com/WG21-SG14/SG14/blob/master/SG14/inplace_function.h )
-
Can anyone point me to a good resource for SG11/14?
There's a repository for SG14 on GitHub here: https://github.com/WG21-SG14/SG14
-
Use UB optimisation with std::function if you know it's bound, and with std::any if you know what type is held
The SG14 inplace_function takes a similar approach to what you suggest. The only minor downside there is that the way it's implemented makes the type unsafe to use across dll boundaries, due to possible mismatching addresses of the default binding. I guess that's not really a consideration for the C++ standard though, and anyway since std::function can allocate then it's inherently unsafe in that scenario anyway.
-
Fixed math header only library with MIT licence
He was trying to standardize his implementation, but I (sadly) don't know what's happened to it since then: https://github.com/WG21-SG14/SG14/blob/master/Docs/Proposals/Fixed_Point_Library_Proposal.md
compile-time-init-build
Posts with mentions or reviews of compile-time-init-build.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-31.
- C++ library for composing modular firmware at compile-time
- Cib: C++ library for composing modular firmware at compile-time
- Callbacks in embedded | heapless environment
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
cib: a hyper-modern way that intel is doing it's foundational infrastructure
- Cib – Compile-Time Initialization and Build
-
Future of embedded coding architecture
What are your thoughts about this CIB library by Intel, https://github.com/intel/compile-time-init-build I am interested to see if this is a generalized and good approach to use compile time polymorphism in MCUs.
- GitHub - intel/compile-time-init-build: C++ library for composing modular firmware at compile-time.
What are some alternatives?
When comparing SG14 and compile-time-init-build you can also consider the following projects:
fixed_math - FixedMath: A High-Performance C++17 Library for Fixed-Point 48.16 Arithmetic
amp-embedded-infra-lib - amp-embedded-infra-lib is a set of C++ libraries and headers that provide heap-less, STL like, infrastructure for embedded software development