A few months ago Matt Gemmell created a fantastic writeup on creating open-source components. One salient point he missed, though, is that you must compile and test your code with the strictest warnings available. You never know who's going to be using your code and what warnings they have enabled. Assume the worst, and turn on nearly every warning you can in your project. Peter Hosey's list is a great start (there's even some AppleScript to automate turning on all these warnings). If you'd like to be extra cautious, use the
-Weverything flag in Clang to turn on all the warnings.