A C++ template library for embedded applications
Designed and maintained by
Aster Consulting Ltd

Compilers


The library is intended to be used on multiple platforms and devices and attempts to detect the compiler type and
version to accommodate any differences. Not every single combination of compiler/IDE/device/library template have
been, or can realistically be,  checked. If you have issues porting the library to your platform then contact me, and I will
do my best to resolve any incompatibilities.

If you have no issues, or have solved it by yourself then please let me know so that I may add information about it to
this page.

I can be contacted here.

It is intended to be compatible with devices that do not natively support 8 bit types.

Visual Studio

Has been compiled under VS2015 & VS2017.
No known issues.

GCC

Has been compiled under GNU GCC  on Windows & Linux.
No known issues.

Keil uVision

ARM

Define the macro __STDC_LIMIT_MACROS in the project properties.
Compiled with version 5 & 6 ARM compilers.
No known issues.

TI Code Composer

MPS430

Define the macro __STDC_LIMIT_MACROS in the project properties.
No known issues.

IAR Embedded Workbench

ARM

No known issues.

Arduino

Arduino IDE


Visual Studio with Visual Micro extension

The Arduino programming platform is not supplied with an implementation of the STL. The ETL requires some parts of
the STL to compile and therefore one must be acquired. A suitable implementation may be downloaded from the
Arduino library resource; It is called ArduinoSTL.
Add #include <ArduinoSTL.h> to the start of every file that uses the ETL.
Remember to add the directory to the include path.

Partially tested for Zero, Uno, Yún, Mega, Industrial 101 and Leonardo boards using test_embedded_compile.cpp

Issues

Zero
<algorithm> must be edited to move the template function iter_swap before the declaration of swap_ranges.
The template class variant will not currently compile unless the header file is renamed. Why?!


Due
Fails to find ArduinoSTL.h even though it is present.
If ArduinoSTL.h is removed, then fails with printf has not been declared.

General
It may be necessary to add the following lines to the beginning of the file.
#undef min
#undef max