I use Emacs to write everything. So, in the last 12 months at least C, C++, D, Haskell, Ruby, and Python.
For Python I use rope and jedi. Auto-complete, goto definition and refactoring.
For C/C++ I use my own package cmake-ide. As the name implies, it only works for cmake builds. But it does work. Similarly to Python, autocomplete, on-the-fly syntax highlighting, goto-definition, ...
For D I use another one of my packages, flycheck-dmd-dub.
For Haskell I can't remember now but it'll all very good.
For Ruby I use flycheck, rubocop and rsense.
Not OP, but I use emacs + jedi[1] for Python development.
In addition to code completion, having documentation available to you as you type, and easily navigating code (e.g. jump to definition), you also have all the usual emacs goodies (unlimited undo/redo, easily defining keyboard macros, writing functions for emacs and binding them to keys).
I've had reasonable success with company mode and rtags for C/C++. Fairly straightforward to set up and reasonably accurate. I'd hesitate to call it streets ahead of even Xcode, let alone Visual Studio, but it does roughly what you'd hope for, without too much hassle. Definitely worth turning off company mode's complete-as-you type functionality, though...
After 9 years of using emacs, I still don't find it unambiguously better than Visual Studio for working with C/C++. The text editing is a lot better in emacs, but the code browsing/completion is not - and for large, multi-person projects I've always found the code browsing/completion functionality more important. You can always load files into emacs for one-off operations if you need to do something in particular.
For the life of me, I've never been able to get any advanced code stuff to work. Auto-complete etc.