retrolefty:
The fact that the arduino IDE does some preprocessing and that the IDE has lots of supplied optional arduino functions does not mean it's not truly C++, because it in fact calls the gcc C++ compiler
That same logic could be used to argue that FORTRAN is C because f2c exists. The fact is that pre-processing CAN break things so that the language is not C or C++ any more.
In my opinion, the amount of pre-processing done by the Arduino front-end is a trifle heavy handed. A few of the things it does are downright annoying -- like the way it misshandles things when there is a CPP directive it doesn't understand at the top of your file. But I would grant that the resulting language still counts as C/C++ in this case.