OK. Fair enough. I was thinking in terms of full ANSI-C++, which GCC *does* support. There are lots of people who play fast and loose with what they call their compiler.
Actually, I probably would call it a subset of C++, which I think is fair and honest.
At our club, there is quite a bit of 8-bit micro-controller usage, and almost everybody is using some version of C (usually a subset that does not support floating points, long precision, etc.) To date, I have not seen our members using C++ subset or OOP languages for the 8-bit micro controllers yet. Doesn't mean that it is not happening, just that I have not seen it.
I've never heard of Wiring. I'll have to check up on it.
My hobby is programming languages. I eventually got tired of waiting for somebody to put together a language with the features I wanted, so I wrote my own. It is called Easy-C and you can read up on it here, if you are so inclined:
Since there is no standard definition of what "object-oriented" means, some people might not accept my claim that Easy-C is an ojbject-oriented language. To be specific, I support static method calls and I use a slightly different syntax to do it:
In C++:
result = object.method(arg, ....);
In Easy-C:
result := method@(object, arg, ...)
Virtual methods are supportable, but it requires some work from the user to make them happen.
The bottom line is that I like it and I use it. I have used it to compile code for the x86, MIPS, and AVR computer instruction sets.
I was actually talking in terms of implementing exceptions. They place a serious burden on the the compiler/linker/run-time system. It was exciting figuring out how to make all of that work efficiently back in early '90's.
-Wayne