https://blog.youkuaiyun.com/u010740725/article/details/51387810http://www.cppblog.com/prayer/archive/2009/12/24/103989.html