Clang-format aims to provide this for C++.
http://clang.llvm.org/docs/ClangFormat.html http://www.irill.org/videos/euro-llvm-2013/jasper-hires.webm
http://clang.llvm.org/docs/ClangFormat.html http://www.irill.org/videos/euro-llvm-2013/jasper-hires.webm
It's powerful, fast and will most likely be the base for a lot of {h,l}inting in editors/IDE's moving forward.
edit: Somehow missed that they mentioned Clang not being mature enough when starting this project.