A C++ template library for embedded applications
FreeC++ Embedded Template Library for deterministic, resource-constrained systems.
About A C++ template library for embedded applications
The Embedded Template Library (ETL) is a C++ template library specifically designed for embedded systems development. It provides a set of containers with fixed or maximum sizes defined at compile-time, avoiding dynamic memory allocation entirely. The library offers APIs closely resembling the C++ Standard Template Library (STL) for familiarity, while being compatible with C++98 and implementing features from later standards (C++11/14/17/20/23/26) where possible. ETL guarantees deterministic behavior, making it ideal for real-time and resource-constrained environments. It includes additional components and utilities useful in embedded contexts that are absent from the STL. The library requires no heap usage and is compatible with any compiler supporting C++03 or later.
Key Features
Pros & Cons
- Ideal for lower-resource embedded applications with strict memory constraints
- Deterministic behavior ensures predictable execution timing
- Memory requirements fully known at compile time
- Backports modern C++ features for older compilers lacking full standards support
- No heap allocation eliminates fragmentation and allocation failures
- Not a full STL replacement; some STL features may be missing or differently implemented
- Requires manual definition of container capacities (fixed size) which may increase design effort
- Learning curve for developers accustomed to dynamically resizable containers
- Limited to C++ projects; not applicable to other programming languages