http://www.cppblog.com/flashboy/archive/2009/01/04/71167.html http://www.cppblog.com/lxyfirst/archive/2008/10/29/65447.html http://www.cppblog.com/flashboy/archive/2008/09/12/61701.html