I tried diving into the source code, and immediately ran into something new :: everywhere and starting googling....
Namespaces?!? - Looks like a solution in search of a problem.
The whole point of object oriented programming was to prevent reaching inside of objects from the outside, thus making then implementation independent from use... Namespaces seem to break that. Like leaving the cover off a machine so that you can push on one of the relay contacts by hand.
C, C#, C++ feel to me like Greek all sorts of keywords that make no sense, and random !@#$%^&*():"<>?[] everywhere
Somewhere at the top of all that code, there has to at least be one actual pointer variable where you keep track of the last revision, isn't there?