The operator has become a function template that is parametrized to suit all kinds of streams. The
problem with the field width is addressed by writing the fraction first to a string stream without
setting any specific width. The constructed string is then sent to the stream passed as the argument.
This results in the characters representing the fraction being written with only one write operation,
to which the field width is applied.