Earlier quoted context omitted.
I think you missed exceptions often being a problem in low level and embedded targets. That knocks out most of STL anyway. I also think you are a bit harsh on virtual functions - it introduces a single indirection, yes, but sometimes that is fully justified. RTTI on the other hand... of course depends a bit on target characteristics. Perhaps controversial, I've also found (especially bare) lambdas and even std::funct…
You can use quite a lot of STL even with -fno-exceptions. Things that you probably need to ditch are: std::vector std::list std::map std::unordered_map std::set std::unordered_set std::sort std::transform std::merge std::string std::regex std::swap std::function std::stable_partition But there are much more than that in STL.
Re: Modern C++ Programming Course
#221most (useful) containers are out, what else are left in STL for embedded systems, algorithms?