clangd understands your C++ code and adds smart features to your editor: code completion, compile errors, definition, and more. clangd is a language server that can work with many editors via a plugin. Here’s Visual Studio Code with the clangd plugin, demonstrating code completion.
Emacs client/library for the language server protocol
...Choose between full-blown IDE with flashy UI or minimal distraction-free. Supports all features in Language Server Protocol v3.14. Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer). If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point. For UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline.