http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html http://www.cnblogs.com/BloodAndBone/archive/2011/01/18/1938053.html