Source: http://open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3583.pdf