Differences with C++

I understand the Arduino language is C++ for the most part but not fully. It doesn't accept access modifiers such as protected or public in class inheritance, e.g. class A : public B ... for the Arduino IDE 2.3.4 targeting an UNO R3 board. If I compile the exact same sketch and targeting the same board from PlatformIO it's fine.

PlatformIO appears to be using the avr-g++ compiler, I have no idea what the Arduino IDE is using for the UNO boards or why it rejects perfectly good C++ syntax. Which brings me back to wanting to find a reference to the differences between Arduino's C++ and ISO standard C++.