Why do you mention AVR? AVR-GCC has C++ support, that's what made the original Arduino (before they switched to ARM) approachable to beginners.
It's a very restricted subset of C++ that has almost no advantages over plain C, and some number of disadvantages.
- constexpr instead of macros
- if constexpr instead of macros
- stronger type checking
- type inference
- strong type enumerations
- namespacing instead of pre-historic naming prefixes
- classes as means to enforce type invariants
I see some advantages.