From what I've read: Subversion, Git, Mercurial, Bazaar are good version control software. Subversion is a server based one.
But what is the best (and I encourage adding your own) system when the only requirements are:
This will be used with C++ if that matters and maybe C# in the future. I don't really want it to be cluttered by server interface things that I'll never use. The backward and forward I suppose implies branching.
If you are thinking about SVN then choose Hg instead, it's much better at branching and is decentralized. SVN is not. GIT, on the other hand, is but a lot of people use it centralized anyway (github, for instance).
It does not really matter what language you're gonna write in.
If you want to use Hg with Visual Studio then perhaps VisualHG is the thing for you.