- 
            The flags are implemented as a const data member of the facet. Facets
            are reference counted, and locales can share facets. Therefore changing
            the flags of a facet would have effects that are hard to predict. An
            alternative design would be to implement the flags using std::ios_base::xallocandstd::ios_base::iword.
            Then one could safely modify the flags, and one could define manipulators
            that do so. However, for that to work with dynamically linked libraries,
            a.cppfile would have to be added to the library. It was judged be more desirable
            to have a header-only library, than to have mutable flags and manipulators.
- 
            The facet nonfinite_num_putthrows an exception when thetrap_infinityortrap_nanflag is set
            and an attempt is made to format infinity or NaN. It would be better
            if the facet set thefail bitof the stream. However, facets
            derived fromstd::num_putdo not have access to the stream
            state.