Hi John,


We already have <concepts> and <cstdint>, for example, when the freestanding 
implementation of libstdc++ is used. You can check in the C++ standard[1] all 
we have until now and you also can take a look at the Freestanding Proposal 
(p0829)[2] of Ben Craig to know more about what we can have in the future. If 
you want to contribute with something in this field, I think that maybe it's a 
good idea to take a look at https://gitlab.com/avr-libstdcxx, which is an 
effort to implement the p0829 in gcc.



[1] https://timsong-cpp.github.io/cppwp/n4861/compliance

[2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0829r4.html





---- On Mon, 01 Feb 2021 16:20:01 -0300 John A. Leuenhagen 
<john+avr-...@zlima12.com> wrote ----


Hi all, 
 
I enjoy working in C++ with avr-gcc. Since C++11, there have been a 
number of low overhead features that can really make programming nicer. 
Unfortunately, a fair number of these are part of the standard library, 
and thus aren't available with avr-gcc. 
 
Naturally, much of the C++ standard library isn't remotely suitable for 
AVRs, and should not be supported. However, there are a fair amount of 
features that I believe would work very nicely, and would be worthwhile 
to support. For example, std::array, std::optional, <concepts>, and the 
C++ counterparts to the C standard headers (e.g. <cstdint>). 
 
It seems that the usual solution for those seeking this functionality is 
to make their own implementation. While it works, I think it would be 
nice to have it provided by avr-gcc, if possible. I'd prefer to keep the 
boilerplate in the compiler rather than my projects. 
 
Is there a reason beyond a lack of interest that these features are not 
supported? I would be happy to work on this if so. Would selectively 
picking out parts of libstdc++ be a reasonable approach?

Reply via email to