http://www.cppblog.com/kevinlynx/archive/2008/03/17/44678.html
http://baike.baidu.com/link?url=x5m_944-dd6MAaw6VNv3ZqXvco9wp6_EZvy9l-ff8JJwW4njeiaLaYtcw4w5bcUYczeSGXtPbyLznIMePSy7s_