Skip to content

Embedded Template Library (ETL)

lbuild module: modm:etl

ETL is a MIT licensed template library which augments the STL with embedded friendly containers and algorithms.


This module pre-configures ETL by adding these macros:

  • ETL_TARGET_OS_FREERTOS: if built together with the modm:freertos module.

To add your own configuration you can create a <etl_profile.h> file which will automatically be included by ETL.

Debugging ETL

This module reroutes ETLs assertions to modm_assert but only for the default configuration. Defining any of ETL_NO_CHECKS, ETL_THROW_EXCEPTIONS or ETL_LOG_ERRORS will use original ETL mechanism.

Make sure you have implemented the modm_abandon handler! See the modm:architecture:assert module for details.

An ETL assertion failure in release mode is fairly cryptic:

Assertion 'etl' failed!

If you run this again in debug mode, you'll note a much more detailed assertion description:

Assertion 'etl' failed!
  modm/ext/etl/etl/ipool.h:369 -> "pool_no_allocation"


modm:etl modm_etl modm: etl modm_architecture_assert modm: architecture: assert modm_etl->modm_architecture_assert