http://blog.csdn.net/kaizi318/article/details/7721624 http://www.cppblog.com/tx7do/archive/2010/08/19/124000.html