The Arduino/Avr Template Library (ATL) provides a C++ library that is very flexible to use and results in small binaries mainly through the use of (C++) templates, which are processed at compile time - not at runtime. That means a lot of structuring is done during compilation resulting in a smaller and faster runtime binary.
More documentation can be found here: