Source: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2612.pdf