TL;DR
- no exceptions
- no recursion
- no malloc()/free() in the inner-loop
replies(9):
- no exceptions
- no recursion
- no malloc()/free() in the inner-loop
You can compile with exceptions enabled, use the STL, but strictly enforce no allocations after initialization. It depends on how strict is the spec you are trying to hit.
- C++ Exceptions Reduce Firmware Code Size, ACCU [1]
- C++ Exceptions for Smaller Firmware, CppCon [2]