Of course, it depends on what exactly what you want to do.
GATE and UIMA are both frameworks for NLP, mostly designed around the idea of information management and extraction. It's not really fair to say GATE has more features than UIMA, since strictly they are both only frameworks. However GATE is bundled with ANNIE which does have a lot of nice features which may be useful you (again, depending on what you want to do). UIMA is bundled with the OpenNLP libraries which mirror some, but not all, of these features, but are written in Java so would require loading the JVM.
You could find similar features to GATE/ANNIE or UIMA/OpenNLP using C++ libraries, but the nice thing about the two frameworks is that they are coherent and don't require a lot of 'glue code' to make individual libraries talk to each other.
What's the reason behind not wanting to wrap GATE in C++ code? I can appreciate that it would add to the complexity of the project, but if your worries are about performance/memory then the JVM may be the least of your worries. NLP tools tend to be very memory hungry, expect to give up half a gig for NER models, more for a statistical parser.