Finally, does anyone know why we don't use the stored size in the facet virtual functions that return strings? e.g.
virtual string do_grouping() const { return _M_data->_M_grouping; } We could save the cost of a strlen call: virtual string do_grouping() const { return string(_M_data->_M_grouping, _M_data->_M_grouping_size); }