title: Using Emacs as an IDE
body: <p>Currently my workflow with Emacs when I am coding in C or C++ involves three windows.  The largest on the right contains the file I am working with.  The left is split into two, the bottom being a shell which I use to type in compile or make commands, and the top is often some sort of documentation or README file that I want to consult while I am working.  Now I know there are some pretty expert Emacs users out there, and I am curious what other Emacs functionally is useful if the intention is to use it as a complete IDE.  Specifically, most IDEs usually fulfill these functions is some form or another:</p>
  
  <ul>
  <li>Source code editor</li>
  <li>Compiler</li>
  <li>Debugging</li>
  <li>Documentation Lookup</li>
  <li>Version Control</li>
  <li>OO features like class lookup and object inspector </li>
  </ul>
  
  <p>For a few of these, it's pretty obvious how Emacs can fit these functions, but what about the rest?  Also, if a specific language must be focused on, I'd say it should be C++. </p>
  
  <p><strong>Edit:</strong> One user pointed out that I should have been more specific when I said 'what about the rest'.  Mostly I was curious about efficient version control, as well as documentation lookup.  For example, in SLIME it is fairly easy to do a quick hyperspec lookup on a Lisp function.  Is there a quick way to look up something in C++ STL documentation (if I forgot the exact syntax of <a href="http://www.sgi.com/tech/stl/hash_map.html" rel="noreferrer">hash_map</a>, for example)?</p>