You'll need to configure clangd or ccls correctly with neovim's lsp, which in turn requires your build chain to be clean. It's definitely a huge time sink. Feel free to email me if you have specific issues!
I was doing a school project in c++ and I tried configuring ccls but in the end I just gave up and did the project without LSP. Like you said it came with some prebuilt tooling and ccls did not feel particularly beginner friendly to get working as I am not familiar at all with the c++ toolchain.
It (mostly) worked out of the box in another project with only some minor quirks though