@Rick: Please don't be aggressive on language comparison, as it isn't our intention to compete: we're simply proud of the time we invested in the wrapper that, to us, paid off.
Dynamic Vectors
Indeed, all languages can provide the given functionality - however, as far as it goes now, only C# implements it. This means you *can* do it in C/C++, but you'll have to make the headers yourself. And believe me, it's a tedious task. Also, we do not use reflection (hard to maintain), but delegates.
The line that was posted was this:
cube.Position.X += sphere.Rotation.Y;
The simplest and natural translation to C/C++ would therefore be:
EntityPosition(cube).X += EntityRotation(sphere).Y;
However, trying that, you will realize that it has no effect. This is because the Vector3 returned by EntityPosition isn't dynamic, and therefore, changes applied to it do not apply engine commands. You will merely store a variable and increment it, but not set its value back.
Simplified Casts
Of course, you'll still be able to increment the cube's X position in a longer manner. But version 2 was all about usability. For instance, you can declare a whole vector by a float or integer, due to an extensive set of operators and casts we created. Example:
sun.Rotation = 45;
This will set the sun's rotation to 45 degrees in all directions.
Advanced Accessors
What do we mean by "advanced accessors"? Have a look at this page: Unified Get/Set accessors. Our custom engine DLL and headers fully implement them, giving you much more flexibility and control.
@klepto2: Sorry for the vertex stuff, many things are bugged in this sector. We'll look into it very soon.