Source: https://web.pa.msu.edu/people/duxbury/courses/phy480/Cpp_refcard.pdf