Thanks for your replies.
That sounds like a I'm mistaken and the observed compiler behavior has nothing to do with Arduino "compiler magic". Moreover, I derive from your questions it is not C++ specific either. Hence, I'll head over to PIO to discuss it there.
westfw:
#define __AVR_ATmega328__Well; THAT shouldn't need to be there; it should be getting defined for you by the compiler/etc.
I added this for Arduino IDE not for PlatformIO. ![]()
Best