[libc++][format][3/6] Adds a __container_buffer.
Instead of writing every character directly into the container by using
a `back_insert_iterator` the data is buffered in an `array`. This buffer
is then inserted to the container by calling its `insert` member function.
Since there's no guarantee every container's `insert` behaves properly
containers need to opt-in to this behaviour. The appropriate standard
containers opt-in to this behaviour.
This change improves the performance of the format functions that use a
`back_insert_iterator`.
Depends on D110495
Reviewed By: ldionne, vitaut, #libc
Differential Revision: https://reviews.llvm.org/D110497
NOKEYCHECK=True
GitOrigin-RevId: 889302292bf6607a6606a771bb2bf0ce919e80bc
diff --git a/include/module.modulemap b/include/module.modulemap
index 0f07fd1..ece960f 100644
--- a/include/module.modulemap
+++ b/include/module.modulemap
@@ -528,6 +528,7 @@
module __format {
module buffer { private header "__format/buffer.h" }
+ module enable_insertable { private header "__format/enable_insertable.h" }
module format_arg { private header "__format/format_arg.h" }
module format_args { private header "__format/format_args.h" }
module format_context {