" not " Arduino Language?

digitalWrite(LEDtoBlink, not digitalRead(LEDtoBlink));    //change state of the LED

I saw this on the forum which was posted up by a reputable member. Tried to compile and it compiles. My question is I have never come across the "not" syntax and having done a search on the Arduino language of this site did not find any info. Can someone explain this "not" syntax please

There is no such thing as the Arduino language

not in C++, which is what the Arduino is programmed in, is equivalent to to the not operator ! which you will find on the Arduino reference page and all over the Web

(deleted)

Ok. Thanks.

I have not checked but "not" is probably a C/C++ macro that gets converted to an exclamation point.

When did that happen?

-jim ee

When did that happen?

According to this explanation, the alternative operators were baked into C++ from the very start.

https://en.cppreference.com/w/cpp/language/operator_alternative

In Arduino version 1.8.1, the file arduino-1.8.1-windows/arduino-1.8.1/hardware/tools/avr/lib/gcc/avr/4.9.2/include/iso646.h

contains

#define not	!

but from what cattledog referenced, this should not be necessary.
I cannot say when this happened or how it gets used.

#define not	!

this should not be necessary.

Don't forget that Arduino include C code as well as C++ code.
The iso646.h file specifically defines them for non-C++ code.
It's not actually included in any Arduino core code (even the actual C modules.)
And it's part of avr-gcc (or gcc in general?), rather than an Arduino addition.

jimLee:
When did that happen?

C++: it has always been there.

C: <iso646.h> was added in 1995 in Amendment 1 to C90, unofficially known as C95.

Huh! Well its not all that surprising that I missed it. I wonder why the poor Germans don't get the {} stuff?

-jim lee