diff --git a/xml/issue3975.xml b/xml/issue3975.xml index 0a9a46015e..3903c3b385 100644 --- a/xml/issue3975.xml +++ b/xml/issue3975.xml @@ -17,6 +17,40 @@ would need to have (e.g., it does not provide a means to initialize the expositi library was not designed to be able to work with user specializations of std::basic_format_context, declaring such specializations should be explicitly disallowed.
+ +
+This wording is relative to
Modify the
++ ++-1- An instance of basic_format_context holds formatting state consisting of the formatting arguments and +the output iterator. +
+-?- The behavior of a program that adds specializations of basic_format_context is undefined. + +-2- Out shall model output_iterator<const charT&>. + +
+During the reflector discussion, Dietmar pointed out that the constraint can in principle be checked statically (e.g. when the +Library creates or refers to an instantiation of basic_format_context), so we can reduce the rather draconian consequence of +"undefined behaviour" to "ill-formed, no diagnostics required". Furthermore, the new wording also adds the same constraint to +basic_format_parse_context as suggested by Tim. This is needed, since only one public constructor is specified, but +that specification does not allow to construct an object a non-zero num_args_ or with the type information necessary +for the check_dynamic_spec* functions, so the library has an unspecified way to realize this. +
+++[Drafting note: The suggested wording form is borrowed from exactly the same wording form used for allocator_traits.] +
+
Modify the
Modify the
+++-1- An instance of basic_format_parse_context holds the format string parsing state consisting of the format +string range being parsed and the argument counter for automatic indexing. +
+-?- If a program declares an explicit or partial specialization of basic_format_parse_context, the program is ill-formed, +no diagnostic required. + +