Предпочитайте стандартную библиотеку другим библиотекам и «ручному коду»
Причина
Код, использующий библиотеку, значительно проще в написании, чем код, напрямую работающий с возможностями языка, как правило короче, находится на более высоком уровне абстракции, а код библиотеки предположительно уже протестирован. Стандартная библиотека ISO C++ — одна из наиболее известных и хорошо протестированных библиотек. Она доступна как часть всех реализаций C++.
Пример
auto sum = accumulate(begin(a), end(a), 0.0); // хорошо
Диапазонная версия accumulate была бы ещё лучше:
auto sum = accumulate(v, 0.0); // лучше
Но не пишите вручную хорошо известный алгоритм:
int max = v.size(); // плохо: многословно, цель не выражена
double sum = 0.0;
for (int i = 0; i < max; ++i)
sum = sum + v[i];
Исключение
Большие части стандартной библиотеки полагаются на динамическое выделение памяти (свободная память). Эти части, в особенности контейнеры (но не алгоритмы), непригодны для некоторых приложений жёсткого реального времени и встраиваемых систем. В таких случаях рассмотрите предоставление/использование аналогичных средств — например, контейнера в стиле стандартной библиотеки, реализованного через пул памяти.
Контроль
Непросто. ??? Искать беспорядочные циклы, вложенные циклы, длинные функции, отсутствие вызовов функций, неиспользование встроенных типов. Цикломатическая сложность?