http://cppalliance.org/../a/g