1.
http://www.cnblogs.com/zhucde/archive/2009/03/06/1655247.html
2.
http://www.cppblog.com/timlly/archive/2010/02/22/89702.html