Unity 3D has gotten extremely popular in the last couple of years, and is by far the easiest to use engine I know of.
I generally don't trust "game engines" much, because they're nearly always badly written, hard to use, and impossible to extend. It's just not a very good metaphor for "all the stuff you need when writing a game".
But from what I've seen, Unity actually pulls it off. I guess that's why it's so popular.
However, its API is designed to use through Mono, so while you get all the languages supported there (I believe Unity recommends using Javascript, but C# is a fairly popular choice too), I don't think it supports C++ directly.
The question is then, do you really need your game to be written in C++?
But whichever route you go, make sure that the graphics engine you pick has actually been used in real games. Basically, the litmus test for any engine (and one that I'm not at all sure either of the ones you listed lives up to) is that it can be used to make a reasonable game. That's why advice such as this exists. When writing an "engine", it is extremely easy to get sidetracked, into writing engine code for its own sake, ending up with a huge framework of miscellaneous functionality which has actually never been used in a game, and so, when someone tries to do that, it falls apart, performs terribly, or is hard to use and lacks important functionality.
So scratch any engine which doesn't have an actual complete game built on it. Not a graphics demo, but a game. Whether a big commercial AAA game, or an indie game or some hobby project someone made to get familiar with the engine, the important thing is that someone has made a game with it, and that the game looks convincing to you as a showcase for the engine.