Every IDE I\'ve tried fails to provide code-completion when something template-related is used. For example,
boost::shared_ptr
Actually this is a fairly simple template use-case, Qt Creator can handle this easily and more complex template code aswell.
Eclipse + the CDT plugin will handle this as well as the other tools mentioned
Visual Studio with Visual Assist X handles that case, but still fails more complex code.
Netbeans sometimes gets it right, but not always. It's non-deterministic: seemingly similar code may get parsed, or not, depending on the whim of the IDE.
I believe Slickedit (http://www.slickedit.com) handles this pretty well.
This works in Eclipse CDT, but you may have to explcitly set the include paths under Project->Properties->C/C++ General->Paths and Symbols. Under my env. I had to dig down and explicitly add the include\c++\4.2.1 and include\c++\4.2.1\m68k-elf. Just having the directory specified to the cross compiler root \include did not allow content assist to work. Of course once you add the directories, rebuild the index.
You might need to check your Windows->Preferenes->C/C++->Indexer Cache Limit settings and increase them if they are too small. I have mine set to a max of 256MB.