https://blog.csdn.net/q_l_s/article/details/51545373 http://www.cppblog.com/converse/archive/2010/06/20/118310.html https://www.iteye.com/blog/tcspecial-2090435