Freestanding C++ - Past, Present, and Future
summary
Defines which library pieces are guaranteed on bare-metal: only a small header set plus C stdlib functions abort, atexit and exit are required, while C++ requires new/delete, exceptions, RTTI and floating‑point support today; compilers like GCC keep built‑in knowledge of functions such as memcpy/memmove (and treat them special even with -ffreestanding), and -ffreestanding disables most other built‑ins so link behavior is consistent. Proposals like P1105 and library papers (e.g. P1366/P1367) aim to make some features optional and to expand freestanding guarantees; practical workarounds include wrapping borrowed stdlib bits in a private namespace and using inline namespaces per target.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 1:00Portability
- 4:02Portability benefits
- 5:45Types of implementations
- 8:14C11 Standard
- 8:57Headers
- 10:45Functions
- 12:01C headers
- 13:31Library restrictions
- 14:37Startup and termination
- 16:41Core language features
- 18:09Exceptions
- 20:20Library
- 21:27Toolchains
- 22:40Freestanding flag
- 23:20Builtin knowledge
- 25:02F flag
- 31:04GCC exceptions
- 31:47Alternative library distribution
- 33:53Pipe trades header
- 35:57Standards Committee
- 36:49Leaving No Room for a Lower Level Language
- 38:40Exceptions in STL
- 40:16Concerns
- 41:59What can you do
- 42:10If youre an application developer
- 42:22The paper number
- 42:35Library paper
- 42:56Application developer
- 43:56Library parts
- 48:25Library Developer
- 48:48Library Author
- 49:23Stick to the freestanding
- 50:28Questions
related talks
01h 37mC++ And Beyond: Discussion
01h 14m"Technical Specifications & C++17"
01h 00mDealing with Embedded Limitations
01h 11mC++ in the World of Embedded Systems
01h 02mC++ Committee's Library Evolution Working Group Panel
01h 02mFree Your Functions!
52mC++ for Embedded Development
01h 31mWhat C++ Needs to be Safe
