Skip to content

Instantly share code, notes, and snippets.

@johnmcfarlane
Last active February 21, 2023 18:36
Show Gist options
  • Select an option

  • Save johnmcfarlane/7d41deca96360d915fd2dab7ac40391d to your computer and use it in GitHub Desktop.

Select an option

Save johnmcfarlane/7d41deca96360d915fd2dab7ac40391d to your computer and use it in GitHub Desktop.
Links related to problems embedded ppl have with C++ and the things we're doing to fix that

The Quest for Embedded C++

There are many problems with C++ and the embedded community which mean they don't get along so well. Here are some resources that might help explain the problems and their solutions.

The Problem

The Fixers

SG14

  • 🌏 SG14 forum - the hub for SG14 organization and discussion
  • 💻 GitHub repo - a fairly random assortment of code projects

GCC

Conferences

WG21, The Fixes

Major Initiatives

  • 📰 P0829 Freestanding proposal - fix the existing subset of C++ aimed at OS-less platforms
  • 📰 P1105 Leaving no room for a lower-level language: A C++ Subset - make non-zero-overhead C++ featues optional at compile time
  • 📰 P0709 Zero-overhead deterministic exceptions: Throwing values - fix exceptions at the language level
  • 📰 P1026 A call for a Data Persistence (iostream v2) study group - support memory that isn't lost when a system is switched off
  • 📰 P1031 Low level file i/o library - support raw-metal access to file systems as provided by UNIX, Microsoft etc.

Finding Alternatives to Exceptions

  • 📰 P0762 Concerns about expected<T, E> from the Boost.Outcome peer review
  • 📰 P0824 Summary of SG14 discussion on <system_error>: towards exception-less error handling
  • 📰 P1028 SG14 status_code and standard error object for P0709 Zero-overhead deterministic exceptions

Generally Cool Stuff of Interest to Embedded Developers

  • 📰 P0784 Standard containers and constexpr - compile-time heap allocation and container support
  • 📰 P1040 std::embed - pulling in data files into the compilation process

External Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment