ETL is a C++ template container library focused on embedded applications and resource-limited environments. Its main purpose is to provide easy to use support for different allocation strategies for containers. The motivation is to make the allocation model explicit, discoverable and easy to change. This results in declarations like
// A vector of Items with reserved capacity of 128 on stack
Etl::Static::Vector<Item, 128> items;or
// A map of int-Item pairs with a pool allocator of 64 entries
Etl::Pooled::Map<int, Item, 64> items;It provides
- Array, Vector, List, Map, Multimap, Set types
- interfaces and behavioral concepts mostly compatible with stl - it works as a drop-in replacement for most use cases
- improved interoperability - e.g.
swap()works between different allocators as a fallback to move/copy - C++ 03 support, no exceptions
It's important to note that ETL is not a standard compilant stl implementation and it will never be.
More info coming soon. Check out and try it until then, pull requests are welcome.