Hacker News new | ask | show | jobs
by maxxxxx 2687 days ago
Not necessarily. The types may just have very long names. In C++ for iterating through STL container auto is a godsend. The types are very straightforward and easy to reason about but just long.

for (auto it = s.begin(); it != s.end(); it++) {

is much easier to write than

for (vector<int>::iterator it = s.begin(); it!=s.end(); it++) {

2 comments

I try to avoid using STL because it A) throws exceptions, B) has really convoluted type names, and C) dynamically allocates memory. These are all things you avoid in the embedded space.
Makes sense for embedded.
Any use of templates has the same problem, including templates that are used to generate highly efficient static constants and non-branching-at-runtime code.
Example?

Templates (template metaprogramming) help to avoid exceptions. You can check invariants first and jump into efficient code.

or almost like python:

for (auto &element: s){

even better with structured bindings:

for (auto [key, value]: map){