Возможно, специалист Grammatech даже не знал про -passes=2. Возможно, о нем не знают и многие пользователи анализатора. Имо, этот параметр изначально стоило его делать не =1 по умолчанию, а обязательным к указанию
Чтобы, если потом окажется, что в целях оптимизации надо заменить std::list на std::vector, достаточно было поменять тип в одном месте. Меня самого совсем недавно auto спас от сотен строк кода на шаблонах или макросах (нужна была таблица, корректно отображающая одномерные/двумерные вектора любых числовых типов)
в некоторых случаях может резолвнуться в неконстантную ссылку, а мутабельный доступ к контейнеру с implicit shared memory (например, как в контейнерах Qt) приведет к лишнему копированию данных
но синтаксис через {} относится не только к спискам инициализации. В некоторых контекстах это как раз-таки создание объекта через конструктор с подходящей сигнатурой.
Майерс в «Эффективном и современном с++» упоминал, что операции со счетчиками атомарны.
Вот вы исследовали реализацию gcc, а что по поводу потокобезопасности разделенного указателя говорит стандарт?
там итератор странно реализован: operator * вместо пары ключ/значение возвращает значение, но имеет методы key/value
std::sort
Вот вы исследовали реализацию gcc, а что по поводу потокобезопасности разделенного указателя говорит стандарт?