Согласно cppreference , std::accumulate
живет в <numeric>
, однако, когда я компилирую с использованием gcc 5.4:
$gcc --version | grep gcc
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
, я считаю, что он успешно компилируется, если только#include - это <algorithm>
.Я могу воспроизвести это , используя gcc 5.3 на godbolt .Правильное поведение замечено в более поздних версиях gcc.
Я пытаюсь перенести нашу настройку разработки с Ubuntu 16.04 на 18.04 (gcc 5.4 на gcc 7.3), и разработчики продолжают допускать эту ошибку(включая <algorithm>
вместо <numeric>
) и поскольку gcc 5.4 не жалуется, мы не заметим этого, пока я не соберу более поздние версии gcc.В конце концов мы все будем 18 апреля, но тем временем ...
Есть ли способ заставить gcc 5.4 пометить это как ошибку или предупреждение?