Отже, виявляється, ви працюєте в Emacs. Як гадаєте, це суттєва інформація, щоб вам підказали, що робити?
Ну і люди, окрім того, щоб питати, ще й в гуглі шукають. І комусь може бути корисним дізнатися, що саме треба налаштувати в Emacs для clang, щоб бібліотека ranges використовувалася без помилок. Чому б вам для них не написати, що саме ви змінили в налаштуваннях?
У мене діагностика в Emacs відбувається за допомогою lsp-mode i flycheck.
Я грався з налаштуваннями і вимкнув flycheck в lsp-mode ось такою командою lsp-diagnostics-provider :none.
Тому lsp-mode використав свій lsp сервер clangd зі своїми налаштуваннями.
У нього стандартне налаштування с++17, а <ranges> з с++20.
І оскільки lsp-mode вже не бачив моїх налаштувань, то видавав помилку.
Загалом, якщо не втручатися в налаштування,
то lsp-mode автоматично шукає flycheck і якщо знаходить, то використовує його для діагностики.
У свою чергу flycheck визначає всі наявні у вас чекери та проганяє їх один за одним крізь ваш код.