[libcxx-commits] [libcxx] a0071b9 - [libc++] Removes cpp17_output_iterator's default constructor.

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Tue Feb 8 08:38:46 PST 2022


Author: Mark de Wever
Date: 2022-02-08T17:38:30+01:00
New Revision: a0071b9353a671b49b8904784b20248dd389f7a6

URL: https://github.com/llvm/llvm-project/commit/a0071b9353a671b49b8904784b20248dd389f7a6
DIFF: https://github.com/llvm/llvm-project/commit/a0071b9353a671b49b8904784b20248dd389f7a6.diff

LOG: [libc++] Removes cpp17_output_iterator's default constructor.

This has been suggested in D117950.

Reviewed By: ldionne, #libc, philnik

Differential Revision: https://reviews.llvm.org/D118971

Added: 
    

Modified: 
    libcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
    libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
    libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
    libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
    libcxx/test/support/test_iterators.h

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.pass.cpp b/libcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.pass.cpp
index 50283947ceaef..bffd441812c2f 100644
--- a/libcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.pass.cpp
@@ -66,10 +66,9 @@ void test() {
   const int *oa2 = Expectations::oa2;
   ((void)oa2); // Prevent unused warning
   std::minstd_rand g;
-  SampleIterator end;
-  end = std::sample(PopulationIterator(ia),
-                                  PopulationIterator(ia + is),
-                                  SampleIterator(oa), os, g);
+  SampleIterator end = std::sample(PopulationIterator(ia),
+                                   PopulationIterator(ia + is),
+                                   SampleIterator(oa), os, g);
   assert(static_cast<std::size_t>(end.base() - oa) == std::min(os, is));
   // sample() is deterministic but non-reproducible;
   // its results can vary between implementations.
@@ -123,10 +122,9 @@ void test_small_population() {
   SampleItem oa[os];
   const SampleItem oa1[] = {1, 2, 3, 4, 5};
   std::minstd_rand g;
-  SampleIterator end;
-  end = std::sample(PopulationIterator(ia),
-                                  PopulationIterator(ia + is),
-                                  SampleIterator(oa), os, g);
+  SampleIterator end = std::sample(PopulationIterator(ia),
+                                   PopulationIterator(ia + is),
+                                   SampleIterator(oa), os, g);
   assert(static_cast<std::size_t>(end.base() - oa) == std::min(os, is));
   typedef typename std::iterator_traits<PopulationIterator>::iterator_category PopulationCategory;
   if (std::is_base_of<std::forward_iterator_tag, PopulationCategory>::value) {

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
index 84d918816fc02..c3f5b563e2cae 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
@@ -51,7 +51,6 @@ class my_numpunct
 void test1()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -72,7 +71,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -80,7 +79,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -88,7 +87,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -96,7 +95,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -106,7 +105,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -114,7 +113,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -122,7 +121,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -130,7 +129,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -143,7 +142,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -151,7 +150,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -159,7 +158,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -167,7 +166,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -177,7 +176,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -185,7 +184,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -193,7 +192,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -201,7 +200,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -217,7 +216,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -225,7 +224,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -233,7 +232,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -241,7 +240,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -251,7 +250,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -259,7 +258,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -267,7 +266,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -275,7 +274,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -288,7 +287,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -296,7 +295,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -304,7 +303,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -312,7 +311,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -322,7 +321,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -330,7 +329,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -338,7 +337,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -346,7 +345,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -365,7 +364,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -373,7 +372,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -381,7 +380,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -389,7 +388,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -399,7 +398,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -407,7 +406,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -415,7 +414,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -423,7 +422,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -436,7 +435,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -444,7 +443,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -452,7 +451,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -460,7 +459,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -470,7 +469,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -478,7 +477,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -486,7 +485,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -494,7 +493,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -510,7 +509,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -518,7 +517,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -526,7 +525,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -534,7 +533,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -544,7 +543,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -552,7 +551,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -560,7 +559,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -568,7 +567,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -581,7 +580,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -589,7 +588,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -597,7 +596,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -605,7 +604,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -615,7 +614,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -623,7 +622,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -631,7 +630,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -639,7 +638,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -661,7 +660,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -669,7 +668,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -677,7 +676,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -685,7 +684,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -695,7 +694,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -703,7 +702,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -711,7 +710,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -719,7 +718,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -732,7 +731,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -740,7 +739,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -748,7 +747,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -756,7 +755,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -766,7 +765,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -774,7 +773,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -782,7 +781,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -790,7 +789,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -806,7 +805,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -814,7 +813,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -822,7 +821,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -830,7 +829,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -840,7 +839,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -848,7 +847,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -856,7 +855,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -864,7 +863,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -877,7 +876,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -885,7 +884,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -893,7 +892,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -901,7 +900,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -911,7 +910,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -919,7 +918,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -927,7 +926,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -935,7 +934,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -954,7 +953,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -962,7 +961,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -970,7 +969,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -978,7 +977,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -988,7 +987,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -996,7 +995,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1004,7 +1003,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1012,7 +1011,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1025,7 +1024,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -1033,7 +1032,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -1041,7 +1040,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -1049,7 +1048,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -1059,7 +1058,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -1067,7 +1066,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -1075,7 +1074,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -1083,7 +1082,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -1099,7 +1098,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1107,7 +1106,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1115,7 +1114,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1123,7 +1122,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1133,7 +1132,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1141,7 +1140,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1149,7 +1148,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1157,7 +1156,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1170,7 +1169,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -1178,7 +1177,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -1186,7 +1185,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -1194,7 +1193,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -1204,7 +1203,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -1212,7 +1211,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -1220,7 +1219,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -1228,7 +1227,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -1250,7 +1249,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1258,7 +1257,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1266,7 +1265,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1274,7 +1273,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1284,7 +1283,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1292,7 +1291,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1300,7 +1299,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1308,7 +1307,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1321,7 +1320,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000");
                                     assert(ios.width() == 0);
@@ -1329,7 +1328,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000******************");
                                     assert(ios.width() == 0);
@@ -1337,7 +1336,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1345,7 +1344,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1355,7 +1354,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000");
                                     assert(ios.width() == 0);
@@ -1363,7 +1362,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000******************");
                                     assert(ios.width() == 0);
@@ -1371,7 +1370,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1379,7 +1378,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1395,7 +1394,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1403,7 +1402,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1411,7 +1410,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1419,7 +1418,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1429,7 +1428,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1437,7 +1436,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1445,7 +1444,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1453,7 +1452,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1466,7 +1465,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000");
                                     assert(ios.width() == 0);
@@ -1474,7 +1473,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000*****************");
                                     assert(ios.width() == 0);
@@ -1482,7 +1481,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0.00000");
                                     assert(ios.width() == 0);
@@ -1490,7 +1489,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0.00000");
                                     assert(ios.width() == 0);
@@ -1500,7 +1499,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000");
                                     assert(ios.width() == 0);
@@ -1508,7 +1507,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000*****************");
                                     assert(ios.width() == 0);
@@ -1516,7 +1515,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0;00000");
                                     assert(ios.width() == 0);
@@ -1524,7 +1523,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0;00000");
                                     assert(ios.width() == 0);
@@ -1543,7 +1542,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1551,7 +1550,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1559,7 +1558,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1567,7 +1566,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1577,7 +1576,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1585,7 +1584,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1593,7 +1592,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1601,7 +1600,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1614,7 +1613,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000");
                                     assert(ios.width() == 0);
@@ -1622,7 +1621,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000******************");
                                     assert(ios.width() == 0);
@@ -1630,7 +1629,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1638,7 +1637,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1648,7 +1647,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000");
                                     assert(ios.width() == 0);
@@ -1656,7 +1655,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000******************");
                                     assert(ios.width() == 0);
@@ -1664,7 +1663,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1672,7 +1671,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1688,7 +1687,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1696,7 +1695,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1704,7 +1703,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1712,7 +1711,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1722,7 +1721,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1730,7 +1729,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1738,7 +1737,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1746,7 +1745,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1759,7 +1758,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000");
                                     assert(ios.width() == 0);
@@ -1767,7 +1766,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000*****************");
                                     assert(ios.width() == 0);
@@ -1775,7 +1774,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0.00000");
                                     assert(ios.width() == 0);
@@ -1783,7 +1782,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0.00000");
                                     assert(ios.width() == 0);
@@ -1793,7 +1792,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000");
                                     assert(ios.width() == 0);
@@ -1801,7 +1800,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000*****************");
                                     assert(ios.width() == 0);
@@ -1809,7 +1808,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0;00000");
                                     assert(ios.width() == 0);
@@ -1817,7 +1816,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0;00000");
                                     assert(ios.width() == 0);
@@ -1839,7 +1838,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1847,7 +1846,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1855,7 +1854,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1863,7 +1862,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1873,7 +1872,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1881,7 +1880,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1889,7 +1888,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1897,7 +1896,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1910,7 +1909,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1918,7 +1917,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000********");
                                     assert(ios.width() == 0);
@@ -1926,7 +1925,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1934,7 +1933,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1944,7 +1943,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1952,7 +1951,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000********");
                                     assert(ios.width() == 0);
@@ -1960,7 +1959,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1968,7 +1967,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1984,7 +1983,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1992,7 +1991,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2000,7 +1999,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2008,7 +2007,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2018,7 +2017,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2026,7 +2025,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2034,7 +2033,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2042,7 +2041,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2055,7 +2054,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2063,7 +2062,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2071,7 +2070,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2079,7 +2078,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2089,7 +2088,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2097,7 +2096,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2105,7 +2104,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2113,7 +2112,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2132,7 +2131,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2140,7 +2139,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2148,7 +2147,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2156,7 +2155,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2166,7 +2165,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2174,7 +2173,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2182,7 +2181,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2190,7 +2189,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2203,7 +2202,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2211,7 +2210,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000********");
                                     assert(ios.width() == 0);
@@ -2219,7 +2218,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2227,7 +2226,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2237,7 +2236,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2245,7 +2244,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000********");
                                     assert(ios.width() == 0);
@@ -2253,7 +2252,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2261,7 +2260,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2277,7 +2276,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2285,7 +2284,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2293,7 +2292,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2301,7 +2300,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2311,7 +2310,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2319,7 +2318,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2327,7 +2326,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2335,7 +2334,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2348,7 +2347,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2356,7 +2355,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2364,7 +2363,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2372,7 +2371,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2382,7 +2381,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2390,7 +2389,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2398,7 +2397,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2406,7 +2405,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2428,7 +2427,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2436,7 +2435,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2444,7 +2443,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2452,7 +2451,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2462,7 +2461,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2470,7 +2469,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2478,7 +2477,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2486,7 +2485,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2499,7 +2498,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2507,7 +2506,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2515,7 +2514,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2523,7 +2522,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2533,7 +2532,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2541,7 +2540,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2549,7 +2548,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2557,7 +2556,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2573,7 +2572,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2581,7 +2580,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2589,7 +2588,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2597,7 +2596,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2607,7 +2606,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2615,7 +2614,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2623,7 +2622,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2631,7 +2630,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2644,7 +2643,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2652,7 +2651,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2660,7 +2659,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2668,7 +2667,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2678,7 +2677,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2686,7 +2685,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2694,7 +2693,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2702,7 +2701,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2721,7 +2720,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2729,7 +2728,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2737,7 +2736,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2745,7 +2744,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2755,7 +2754,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2763,7 +2762,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2771,7 +2770,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2779,7 +2778,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2792,7 +2791,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2800,7 +2799,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2808,7 +2807,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2816,7 +2815,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2826,7 +2825,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2834,7 +2833,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2842,7 +2841,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2850,7 +2849,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2866,7 +2865,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2874,7 +2873,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2882,7 +2881,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2890,7 +2889,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2900,7 +2899,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2908,7 +2907,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2916,7 +2915,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2924,7 +2923,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2937,7 +2936,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2945,7 +2944,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2953,7 +2952,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2961,7 +2960,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2971,7 +2970,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2979,7 +2978,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2987,7 +2986,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2995,7 +2994,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -3012,7 +3011,6 @@ void test1()
 void test2()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -3033,7 +3031,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -3041,7 +3039,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -3049,7 +3047,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3057,7 +3055,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3067,7 +3065,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -3075,7 +3073,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -3083,7 +3081,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3091,7 +3089,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3104,7 +3102,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -3112,7 +3110,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -3120,7 +3118,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3128,7 +3126,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3138,7 +3136,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -3146,7 +3144,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -3154,7 +3152,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3162,7 +3160,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3178,7 +3176,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -3186,7 +3184,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -3194,7 +3192,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -3202,7 +3200,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -3212,7 +3210,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -3220,7 +3218,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -3228,7 +3226,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -3236,7 +3234,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -3249,7 +3247,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -3257,7 +3255,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -3265,7 +3263,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -3273,7 +3271,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3283,7 +3281,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -3291,7 +3289,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -3299,7 +3297,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -3307,7 +3305,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3326,7 +3324,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -3334,7 +3332,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -3342,7 +3340,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3350,7 +3348,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3360,7 +3358,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -3368,7 +3366,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -3376,7 +3374,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3384,7 +3382,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3397,7 +3395,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -3405,7 +3403,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -3413,7 +3411,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -3421,7 +3419,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -3431,7 +3429,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -3439,7 +3437,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -3447,7 +3445,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -3455,7 +3453,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -3471,7 +3469,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -3479,7 +3477,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -3487,7 +3485,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -3495,7 +3493,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -3505,7 +3503,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -3513,7 +3511,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -3521,7 +3519,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -3529,7 +3527,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -3542,7 +3540,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -3550,7 +3548,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -3558,7 +3556,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -3566,7 +3564,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -3576,7 +3574,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -3584,7 +3582,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -3592,7 +3590,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -3600,7 +3598,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -3622,7 +3620,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -3630,7 +3628,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -3638,7 +3636,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3646,7 +3644,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3656,7 +3654,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -3664,7 +3662,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -3672,7 +3670,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3680,7 +3678,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -3693,7 +3691,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -3701,7 +3699,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -3709,7 +3707,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3717,7 +3715,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3727,7 +3725,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -3735,7 +3733,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -3743,7 +3741,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3751,7 +3749,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3767,7 +3765,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -3775,7 +3773,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -3783,7 +3781,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -3791,7 +3789,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -3801,7 +3799,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -3809,7 +3807,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -3817,7 +3815,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -3825,7 +3823,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -3838,7 +3836,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -3846,7 +3844,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -3854,7 +3852,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -3862,7 +3860,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -3872,7 +3870,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -3880,7 +3878,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -3888,7 +3886,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -3896,7 +3894,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -3915,7 +3913,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -3923,7 +3921,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -3931,7 +3929,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3939,7 +3937,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3949,7 +3947,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -3957,7 +3955,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -3965,7 +3963,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3973,7 +3971,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -3986,7 +3984,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -3994,7 +3992,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -4002,7 +4000,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -4010,7 +4008,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -4020,7 +4018,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -4028,7 +4026,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -4036,7 +4034,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -4044,7 +4042,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -4060,7 +4058,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -4068,7 +4066,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -4076,7 +4074,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -4084,7 +4082,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -4094,7 +4092,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -4102,7 +4100,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -4110,7 +4108,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -4118,7 +4116,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -4131,7 +4129,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -4139,7 +4137,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -4147,7 +4145,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -4155,7 +4153,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -4165,7 +4163,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -4173,7 +4171,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -4181,7 +4179,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -4189,7 +4187,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -4211,7 +4209,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4219,7 +4217,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09**************");
                                     assert(ios.width() == 0);
@@ -4227,7 +4225,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4235,7 +4233,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4245,7 +4243,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4253,7 +4251,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09**************");
                                     assert(ios.width() == 0);
@@ -4261,7 +4259,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4269,7 +4267,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4282,7 +4280,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4290,7 +4288,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09**************");
                                     assert(ios.width() == 0);
@@ -4298,7 +4296,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4306,7 +4304,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4316,7 +4314,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4324,7 +4322,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09**************");
                                     assert(ios.width() == 0);
@@ -4332,7 +4330,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4340,7 +4338,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4356,7 +4354,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4364,7 +4362,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09*************");
                                     assert(ios.width() == 0);
@@ -4372,7 +4370,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4380,7 +4378,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4390,7 +4388,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4398,7 +4396,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09*************");
                                     assert(ios.width() == 0);
@@ -4406,7 +4404,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4414,7 +4412,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4427,7 +4425,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4435,7 +4433,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09*************");
                                     assert(ios.width() == 0);
@@ -4443,7 +4441,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4451,7 +4449,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -4461,7 +4459,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4469,7 +4467,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09*************");
                                     assert(ios.width() == 0);
@@ -4477,7 +4475,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4485,7 +4483,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -4504,7 +4502,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4512,7 +4510,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09**************");
                                     assert(ios.width() == 0);
@@ -4520,7 +4518,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4528,7 +4526,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4538,7 +4536,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4546,7 +4544,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09**************");
                                     assert(ios.width() == 0);
@@ -4554,7 +4552,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4562,7 +4560,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4575,7 +4573,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4583,7 +4581,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09**************");
                                     assert(ios.width() == 0);
@@ -4591,7 +4589,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4599,7 +4597,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4609,7 +4607,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4617,7 +4615,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09**************");
                                     assert(ios.width() == 0);
@@ -4625,7 +4623,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4633,7 +4631,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4649,7 +4647,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4657,7 +4655,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09*************");
                                     assert(ios.width() == 0);
@@ -4665,7 +4663,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4673,7 +4671,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4683,7 +4681,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4691,7 +4689,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09*************");
                                     assert(ios.width() == 0);
@@ -4699,7 +4697,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4707,7 +4705,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4720,7 +4718,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4728,7 +4726,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09*************");
                                     assert(ios.width() == 0);
@@ -4736,7 +4734,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4744,7 +4742,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -4754,7 +4752,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4762,7 +4760,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09*************");
                                     assert(ios.width() == 0);
@@ -4770,7 +4768,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4778,7 +4776,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -4800,7 +4798,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -4808,7 +4806,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -4816,7 +4814,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -4824,7 +4822,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -4834,7 +4832,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -4842,7 +4840,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -4850,7 +4848,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -4858,7 +4856,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -4871,7 +4869,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -4879,7 +4877,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -4887,7 +4885,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -4895,7 +4893,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -4905,7 +4903,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -4913,7 +4911,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -4921,7 +4919,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -4929,7 +4927,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -4945,7 +4943,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -4953,7 +4951,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -4961,7 +4959,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -4969,7 +4967,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -4979,7 +4977,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -4987,7 +4985,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -4995,7 +4993,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5003,7 +5001,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5016,7 +5014,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5024,7 +5022,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -5032,7 +5030,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5040,7 +5038,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5050,7 +5048,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5058,7 +5056,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -5066,7 +5064,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5074,7 +5072,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5093,7 +5091,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -5101,7 +5099,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -5109,7 +5107,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5117,7 +5115,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5127,7 +5125,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5135,7 +5133,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -5143,7 +5141,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5151,7 +5149,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5164,7 +5162,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5172,7 +5170,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -5180,7 +5178,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5188,7 +5186,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5198,7 +5196,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5206,7 +5204,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -5214,7 +5212,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5222,7 +5220,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5238,7 +5236,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5246,7 +5244,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -5254,7 +5252,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5262,7 +5260,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5272,7 +5270,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5280,7 +5278,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -5288,7 +5286,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5296,7 +5294,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5309,7 +5307,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5317,7 +5315,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -5325,7 +5323,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5333,7 +5331,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -5343,7 +5341,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5351,7 +5349,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -5359,7 +5357,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5367,7 +5365,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -5389,7 +5387,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -5397,7 +5395,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -5405,7 +5403,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5413,7 +5411,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5423,7 +5421,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5431,7 +5429,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -5439,7 +5437,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5447,7 +5445,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5460,7 +5458,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5468,7 +5466,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5476,7 +5474,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5484,7 +5482,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5494,7 +5492,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5502,7 +5500,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5510,7 +5508,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5518,7 +5516,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5534,7 +5532,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5542,7 +5540,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -5550,7 +5548,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5558,7 +5556,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5568,7 +5566,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5576,7 +5574,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -5584,7 +5582,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5592,7 +5590,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5605,7 +5603,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5613,7 +5611,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5621,7 +5619,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5629,7 +5627,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5639,7 +5637,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5647,7 +5645,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5655,7 +5653,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5663,7 +5661,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5682,7 +5680,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -5690,7 +5688,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -5698,7 +5696,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5706,7 +5704,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5716,7 +5714,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5724,7 +5722,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -5732,7 +5730,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5740,7 +5738,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5753,7 +5751,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5761,7 +5759,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5769,7 +5767,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5777,7 +5775,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5787,7 +5785,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5795,7 +5793,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5803,7 +5801,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5811,7 +5809,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5827,7 +5825,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5835,7 +5833,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -5843,7 +5841,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -5851,7 +5849,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -5861,7 +5859,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5869,7 +5867,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -5877,7 +5875,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5885,7 +5883,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -5898,7 +5896,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5906,7 +5904,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5914,7 +5912,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5922,7 +5920,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5932,7 +5930,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5940,7 +5938,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5948,7 +5946,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5956,7 +5954,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5973,7 +5971,6 @@ void test2()
 void test3()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -5995,7 +5992,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -6003,7 +6000,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -6011,7 +6008,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6019,7 +6016,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6029,7 +6026,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -6037,7 +6034,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -6045,7 +6042,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6053,7 +6050,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6066,7 +6063,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -6074,7 +6071,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -6082,7 +6079,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -6090,7 +6087,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -6100,7 +6097,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -6108,7 +6105,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -6116,7 +6113,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -6124,7 +6121,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -6140,7 +6137,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -6148,7 +6145,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -6156,7 +6153,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -6164,7 +6161,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -6174,7 +6171,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -6182,7 +6179,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -6190,7 +6187,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -6198,7 +6195,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -6211,7 +6208,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -6219,7 +6216,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -6227,7 +6224,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -6235,7 +6232,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -6245,7 +6242,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -6253,7 +6250,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -6261,7 +6258,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -6269,7 +6266,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -6288,7 +6285,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -6296,7 +6293,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -6304,7 +6301,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6312,7 +6309,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6322,7 +6319,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -6330,7 +6327,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -6338,7 +6335,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6346,7 +6343,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -6359,7 +6356,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -6367,7 +6364,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -6375,7 +6372,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -6383,7 +6380,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -6393,7 +6390,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -6401,7 +6398,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -6409,7 +6406,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -6417,7 +6414,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -6433,7 +6430,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -6441,7 +6438,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -6449,7 +6446,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -6457,7 +6454,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -6467,7 +6464,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -6475,7 +6472,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -6483,7 +6480,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -6491,7 +6488,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -6504,7 +6501,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -6512,7 +6509,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -6520,7 +6517,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -6528,7 +6525,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -6538,7 +6535,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -6546,7 +6543,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -6554,7 +6551,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -6562,7 +6559,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -6584,7 +6581,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -6592,7 +6589,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -6600,7 +6597,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6608,7 +6605,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6618,7 +6615,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -6626,7 +6623,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -6634,7 +6631,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6642,7 +6639,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6655,7 +6652,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -6663,7 +6660,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -6671,7 +6668,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6679,7 +6676,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6689,7 +6686,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -6697,7 +6694,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -6705,7 +6702,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6713,7 +6710,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6729,7 +6726,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -6737,7 +6734,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -6745,7 +6742,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -6753,7 +6750,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -6763,7 +6760,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -6771,7 +6768,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -6779,7 +6776,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -6787,7 +6784,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -6800,7 +6797,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -6808,7 +6805,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -6816,7 +6813,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -6824,7 +6821,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -6834,7 +6831,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -6842,7 +6839,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -6850,7 +6847,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -6858,7 +6855,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -6877,7 +6874,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -6885,7 +6882,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -6893,7 +6890,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6901,7 +6898,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6911,7 +6908,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -6919,7 +6916,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -6927,7 +6924,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6935,7 +6932,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -6948,7 +6945,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -6956,7 +6953,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -6964,7 +6961,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6972,7 +6969,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -6982,7 +6979,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -6990,7 +6987,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -6998,7 +6995,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -7006,7 +7003,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -7022,7 +7019,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -7030,7 +7027,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -7038,7 +7035,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -7046,7 +7043,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -7056,7 +7053,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -7064,7 +7061,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -7072,7 +7069,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -7080,7 +7077,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -7093,7 +7090,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -7101,7 +7098,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -7109,7 +7106,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -7117,7 +7114,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -7127,7 +7124,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -7135,7 +7132,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -7143,7 +7140,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -7151,7 +7148,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -7173,7 +7170,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -7181,7 +7178,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -7189,7 +7186,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7197,7 +7194,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7207,7 +7204,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -7215,7 +7212,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -7223,7 +7220,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7231,7 +7228,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7244,7 +7241,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -7252,7 +7249,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -7260,7 +7257,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7268,7 +7265,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7278,7 +7275,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -7286,7 +7283,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -7294,7 +7291,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7302,7 +7299,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7318,7 +7315,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -7326,7 +7323,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -7334,7 +7331,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -7342,7 +7339,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -7352,7 +7349,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -7360,7 +7357,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -7368,7 +7365,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -7376,7 +7373,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -7389,7 +7386,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -7397,7 +7394,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -7405,7 +7402,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -7413,7 +7410,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -7423,7 +7420,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -7431,7 +7428,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -7439,7 +7436,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -7447,7 +7444,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -7466,7 +7463,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -7474,7 +7471,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -7482,7 +7479,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7490,7 +7487,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7500,7 +7497,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -7508,7 +7505,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -7516,7 +7513,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7524,7 +7521,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7537,7 +7534,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -7545,7 +7542,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -7553,7 +7550,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7561,7 +7558,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -7571,7 +7568,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -7579,7 +7576,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -7587,7 +7584,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7595,7 +7592,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -7611,7 +7608,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -7619,7 +7616,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -7627,7 +7624,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -7635,7 +7632,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -7645,7 +7642,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -7653,7 +7650,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -7661,7 +7658,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -7669,7 +7666,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -7682,7 +7679,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -7690,7 +7687,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -7698,7 +7695,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -7706,7 +7703,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -7716,7 +7713,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -7724,7 +7721,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -7732,7 +7729,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -7740,7 +7737,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -7762,7 +7759,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7770,7 +7767,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -7778,7 +7775,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7786,7 +7783,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7796,7 +7793,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7804,7 +7801,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -7812,7 +7809,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7820,7 +7817,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7833,7 +7830,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7841,7 +7838,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -7849,7 +7846,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7857,7 +7854,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7867,7 +7864,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7875,7 +7872,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -7883,7 +7880,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7891,7 +7888,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7907,7 +7904,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7915,7 +7912,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -7923,7 +7920,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7931,7 +7928,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7941,7 +7938,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7949,7 +7946,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -7957,7 +7954,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7965,7 +7962,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -7978,7 +7975,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -7986,7 +7983,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -7994,7 +7991,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8002,7 +7999,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8012,7 +8009,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8020,7 +8017,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -8028,7 +8025,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8036,7 +8033,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8055,7 +8052,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8063,7 +8060,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -8071,7 +8068,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8079,7 +8076,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8089,7 +8086,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8097,7 +8094,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -8105,7 +8102,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8113,7 +8110,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8126,7 +8123,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8134,7 +8131,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -8142,7 +8139,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8150,7 +8147,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8160,7 +8157,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8168,7 +8165,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -8176,7 +8173,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8184,7 +8181,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8200,7 +8197,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8208,7 +8205,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -8216,7 +8213,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8224,7 +8221,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8234,7 +8231,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8242,7 +8239,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -8250,7 +8247,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8258,7 +8255,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8271,7 +8268,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8279,7 +8276,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -8287,7 +8284,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8295,7 +8292,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -8305,7 +8302,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8313,7 +8310,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -8321,7 +8318,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8329,7 +8326,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -8351,7 +8348,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8359,7 +8356,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8367,7 +8364,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8375,7 +8372,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8385,7 +8382,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8393,7 +8390,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8401,7 +8398,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8409,7 +8406,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8422,7 +8419,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8430,7 +8427,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8438,7 +8435,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8446,7 +8443,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8456,7 +8453,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8464,7 +8461,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8472,7 +8469,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8480,7 +8477,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8496,7 +8493,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8504,7 +8501,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8512,7 +8509,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8520,7 +8517,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8530,7 +8527,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8538,7 +8535,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8546,7 +8543,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8554,7 +8551,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8567,7 +8564,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8575,7 +8572,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8583,7 +8580,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8591,7 +8588,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8601,7 +8598,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8609,7 +8606,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8617,7 +8614,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8625,7 +8622,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8644,7 +8641,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8652,7 +8649,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8660,7 +8657,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8668,7 +8665,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8678,7 +8675,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8686,7 +8683,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8694,7 +8691,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8702,7 +8699,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8715,7 +8712,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8723,7 +8720,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8731,7 +8728,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8739,7 +8736,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8749,7 +8746,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8757,7 +8754,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8765,7 +8762,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8773,7 +8770,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8789,7 +8786,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8797,7 +8794,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8805,7 +8802,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8813,7 +8810,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8823,7 +8820,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8831,7 +8828,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8839,7 +8836,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8847,7 +8844,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8860,7 +8857,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8868,7 +8865,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8876,7 +8873,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8884,7 +8881,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8894,7 +8891,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8902,7 +8899,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8910,7 +8907,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8918,7 +8915,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8935,7 +8932,6 @@ void test3()
 void test4()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -8957,7 +8953,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890");
                                     assert(ios.width() == 0);
@@ -8965,7 +8961,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890***************");
                                     assert(ios.width() == 0);
@@ -8973,7 +8969,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -8981,7 +8977,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -8991,7 +8987,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -8999,7 +8995,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0***********");
                                     assert(ios.width() == 0);
@@ -9007,7 +9003,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9015,7 +9011,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9028,7 +9024,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.");
                                     assert(ios.width() == 0);
@@ -9036,7 +9032,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.**************");
                                     assert(ios.width() == 0);
@@ -9044,7 +9040,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -9052,7 +9048,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -9062,7 +9058,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9070,7 +9066,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;**********");
                                     assert(ios.width() == 0);
@@ -9078,7 +9074,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9086,7 +9082,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9102,7 +9098,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890");
                                     assert(ios.width() == 0);
@@ -9110,7 +9106,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890**************");
                                     assert(ios.width() == 0);
@@ -9118,7 +9114,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************+1234567890");
                                     assert(ios.width() == 0);
@@ -9126,7 +9122,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**************1234567890");
                                     assert(ios.width() == 0);
@@ -9136,7 +9132,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9144,7 +9140,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0**********");
                                     assert(ios.width() == 0);
@@ -9152,7 +9148,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9160,7 +9156,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9173,7 +9169,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.");
                                     assert(ios.width() == 0);
@@ -9181,7 +9177,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.*************");
                                     assert(ios.width() == 0);
@@ -9189,7 +9185,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1234567890.");
                                     assert(ios.width() == 0);
@@ -9197,7 +9193,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1234567890.");
                                     assert(ios.width() == 0);
@@ -9207,7 +9203,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9215,7 +9211,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;*********");
                                     assert(ios.width() == 0);
@@ -9223,7 +9219,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9231,7 +9227,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9250,7 +9246,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890");
                                     assert(ios.width() == 0);
@@ -9258,7 +9254,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890***************");
                                     assert(ios.width() == 0);
@@ -9266,7 +9262,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -9274,7 +9270,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -9284,7 +9280,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9292,7 +9288,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0***********");
                                     assert(ios.width() == 0);
@@ -9300,7 +9296,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9308,7 +9304,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9321,7 +9317,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.");
                                     assert(ios.width() == 0);
@@ -9329,7 +9325,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.**************");
                                     assert(ios.width() == 0);
@@ -9337,7 +9333,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -9345,7 +9341,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -9355,7 +9351,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9363,7 +9359,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;**********");
                                     assert(ios.width() == 0);
@@ -9371,7 +9367,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9379,7 +9375,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9395,7 +9391,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890");
                                     assert(ios.width() == 0);
@@ -9403,7 +9399,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890**************");
                                     assert(ios.width() == 0);
@@ -9411,7 +9407,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************+1234567890");
                                     assert(ios.width() == 0);
@@ -9419,7 +9415,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**************1234567890");
                                     assert(ios.width() == 0);
@@ -9429,7 +9425,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9437,7 +9433,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0**********");
                                     assert(ios.width() == 0);
@@ -9445,7 +9441,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9453,7 +9449,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -9466,7 +9462,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.");
                                     assert(ios.width() == 0);
@@ -9474,7 +9470,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.*************");
                                     assert(ios.width() == 0);
@@ -9482,7 +9478,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1234567890.");
                                     assert(ios.width() == 0);
@@ -9490,7 +9486,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1234567890.");
                                     assert(ios.width() == 0);
@@ -9500,7 +9496,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9508,7 +9504,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;*********");
                                     assert(ios.width() == 0);
@@ -9516,7 +9512,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9524,7 +9520,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -9546,7 +9542,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -9554,7 +9550,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -9562,7 +9558,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9570,7 +9566,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9580,7 +9576,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9588,7 +9584,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -9596,7 +9592,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9604,7 +9600,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9617,7 +9613,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -9625,7 +9621,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -9633,7 +9629,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9641,7 +9637,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9651,7 +9647,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9659,7 +9655,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -9667,7 +9663,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9675,7 +9671,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9691,7 +9687,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -9699,7 +9695,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -9707,7 +9703,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -9715,7 +9711,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9725,7 +9721,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9733,7 +9729,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -9741,7 +9737,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9749,7 +9745,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9762,7 +9758,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -9770,7 +9766,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -9778,7 +9774,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -9786,7 +9782,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9796,7 +9792,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9804,7 +9800,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -9812,7 +9808,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9820,7 +9816,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9839,7 +9835,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -9847,7 +9843,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -9855,7 +9851,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9863,7 +9859,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9873,7 +9869,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9881,7 +9877,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -9889,7 +9885,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9897,7 +9893,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9910,7 +9906,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -9918,7 +9914,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -9926,7 +9922,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9934,7 +9930,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -9944,7 +9940,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9952,7 +9948,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -9960,7 +9956,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9968,7 +9964,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -9984,7 +9980,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -9992,7 +9988,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -10000,7 +9996,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -10008,7 +10004,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -10018,7 +10014,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10026,7 +10022,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -10034,7 +10030,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10042,7 +10038,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10055,7 +10051,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -10063,7 +10059,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -10071,7 +10067,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -10079,7 +10075,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -10089,7 +10085,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10097,7 +10093,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -10105,7 +10101,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10113,7 +10109,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -10135,7 +10131,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10143,7 +10139,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -10151,7 +10147,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10159,7 +10155,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10169,7 +10165,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10177,7 +10173,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -10185,7 +10181,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10193,7 +10189,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10206,7 +10202,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10214,7 +10210,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -10222,7 +10218,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10230,7 +10226,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10240,7 +10236,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10248,7 +10244,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -10256,7 +10252,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10264,7 +10260,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10280,7 +10276,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10288,7 +10284,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -10296,7 +10292,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10304,7 +10300,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10314,7 +10310,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10322,7 +10318,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -10330,7 +10326,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10338,7 +10334,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10351,7 +10347,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10359,7 +10355,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -10367,7 +10363,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10375,7 +10371,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10385,7 +10381,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10393,7 +10389,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -10401,7 +10397,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10409,7 +10405,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10428,7 +10424,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10436,7 +10432,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -10444,7 +10440,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10452,7 +10448,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10462,7 +10458,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10470,7 +10466,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -10478,7 +10474,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10486,7 +10482,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10499,7 +10495,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10507,7 +10503,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -10515,7 +10511,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10523,7 +10519,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10533,7 +10529,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10541,7 +10537,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -10549,7 +10545,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10557,7 +10553,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10573,7 +10569,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10581,7 +10577,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -10589,7 +10585,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10597,7 +10593,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10607,7 +10603,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10615,7 +10611,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -10623,7 +10619,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10631,7 +10627,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10644,7 +10640,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10652,7 +10648,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -10660,7 +10656,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10668,7 +10664,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -10678,7 +10674,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10686,7 +10682,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -10694,7 +10690,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10702,7 +10698,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -10723,7 +10719,6 @@ void test4()
 void test5()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -10745,7 +10740,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -10753,7 +10748,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -10761,7 +10756,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -10769,7 +10764,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -10779,7 +10774,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -10787,7 +10782,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -10795,7 +10790,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -10803,7 +10798,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -10816,7 +10811,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00");
                                     assert(ios.width() == 0);
@@ -10824,7 +10819,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00******************");
                                     assert(ios.width() == 0);
@@ -10832,7 +10827,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.e+00");
                                     assert(ios.width() == 0);
@@ -10840,7 +10835,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.e+00");
                                     assert(ios.width() == 0);
@@ -10850,7 +10845,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00");
                                     assert(ios.width() == 0);
@@ -10858,7 +10853,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00******************");
                                     assert(ios.width() == 0);
@@ -10866,7 +10861,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;e+00");
                                     assert(ios.width() == 0);
@@ -10874,7 +10869,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;e+00");
                                     assert(ios.width() == 0);
@@ -10890,7 +10885,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -10898,7 +10893,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -10906,7 +10901,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -10914,7 +10909,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -10924,7 +10919,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -10932,7 +10927,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -10940,7 +10935,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -10948,7 +10943,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -10961,7 +10956,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00");
                                     assert(ios.width() == 0);
@@ -10969,7 +10964,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00******************");
                                     assert(ios.width() == 0);
@@ -10977,7 +10972,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.e+00");
                                     assert(ios.width() == 0);
@@ -10985,7 +10980,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.e+00");
                                     assert(ios.width() == 0);
@@ -10995,7 +10990,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00");
                                     assert(ios.width() == 0);
@@ -11003,7 +10998,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00******************");
                                     assert(ios.width() == 0);
@@ -11011,7 +11006,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;e+00");
                                     assert(ios.width() == 0);
@@ -11019,7 +11014,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;e+00");
                                     assert(ios.width() == 0);
@@ -11038,7 +11033,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -11046,7 +11041,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -11054,7 +11049,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -11062,7 +11057,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -11072,7 +11067,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -11080,7 +11075,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -11088,7 +11083,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -11096,7 +11091,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -11109,7 +11104,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00");
                                     assert(ios.width() == 0);
@@ -11117,7 +11112,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00******************");
                                     assert(ios.width() == 0);
@@ -11125,7 +11120,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.E+00");
                                     assert(ios.width() == 0);
@@ -11133,7 +11128,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.E+00");
                                     assert(ios.width() == 0);
@@ -11143,7 +11138,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00");
                                     assert(ios.width() == 0);
@@ -11151,7 +11146,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00******************");
                                     assert(ios.width() == 0);
@@ -11159,7 +11154,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;E+00");
                                     assert(ios.width() == 0);
@@ -11167,7 +11162,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;E+00");
                                     assert(ios.width() == 0);
@@ -11183,7 +11178,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -11191,7 +11186,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -11199,7 +11194,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -11207,7 +11202,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -11217,7 +11212,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -11225,7 +11220,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -11233,7 +11228,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -11241,7 +11236,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -11254,7 +11249,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00");
                                     assert(ios.width() == 0);
@@ -11262,7 +11257,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00******************");
                                     assert(ios.width() == 0);
@@ -11270,7 +11265,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.E+00");
                                     assert(ios.width() == 0);
@@ -11278,7 +11273,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.E+00");
                                     assert(ios.width() == 0);
@@ -11288,7 +11283,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00");
                                     assert(ios.width() == 0);
@@ -11296,7 +11291,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00******************");
                                     assert(ios.width() == 0);
@@ -11304,7 +11299,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;E+00");
                                     assert(ios.width() == 0);
@@ -11312,7 +11307,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;E+00");
                                     assert(ios.width() == 0);
@@ -11334,7 +11329,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11342,7 +11337,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11350,7 +11345,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11358,7 +11353,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -11368,7 +11363,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11376,7 +11371,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11384,7 +11379,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11392,7 +11387,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -11405,7 +11400,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11413,7 +11408,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11421,7 +11416,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11429,7 +11424,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -11439,7 +11434,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11447,7 +11442,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11455,7 +11450,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11463,7 +11458,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -11479,7 +11474,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11487,7 +11482,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11495,7 +11490,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11503,7 +11498,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -11513,7 +11508,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11521,7 +11516,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11529,7 +11524,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11537,7 +11532,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -11550,7 +11545,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11558,7 +11553,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11566,7 +11561,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -11574,7 +11569,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -11584,7 +11579,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11592,7 +11587,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -11600,7 +11595,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -11608,7 +11603,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -11627,7 +11622,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11635,7 +11630,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11643,7 +11638,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11651,7 +11646,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -11661,7 +11656,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11669,7 +11664,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11677,7 +11672,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11685,7 +11680,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -11698,7 +11693,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11706,7 +11701,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11714,7 +11709,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11722,7 +11717,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -11732,7 +11727,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11740,7 +11735,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11748,7 +11743,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11756,7 +11751,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -11772,7 +11767,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11780,7 +11775,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11788,7 +11783,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11796,7 +11791,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -11806,7 +11801,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11814,7 +11809,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11822,7 +11817,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11830,7 +11825,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -11843,7 +11838,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11851,7 +11846,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11859,7 +11854,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -11867,7 +11862,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -11877,7 +11872,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11885,7 +11880,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -11893,7 +11888,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -11901,7 +11896,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -11923,7 +11918,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -11931,7 +11926,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -11939,7 +11934,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -11947,7 +11942,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -11957,7 +11952,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -11965,7 +11960,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -11973,7 +11968,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -11981,7 +11976,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -11994,7 +11989,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12002,7 +11997,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -12010,7 +12005,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12018,7 +12013,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12028,7 +12023,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12036,7 +12031,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -12044,7 +12039,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12052,7 +12047,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12068,7 +12063,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12076,7 +12071,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -12084,7 +12079,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12092,7 +12087,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12102,7 +12097,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12110,7 +12105,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -12118,7 +12113,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12126,7 +12121,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12139,7 +12134,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12147,7 +12142,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -12155,7 +12150,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12163,7 +12158,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -12173,7 +12168,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12181,7 +12176,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -12189,7 +12184,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12197,7 +12192,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -12216,7 +12211,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12224,7 +12219,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -12232,7 +12227,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12240,7 +12235,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12250,7 +12245,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12258,7 +12253,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -12266,7 +12261,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12274,7 +12269,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12287,7 +12282,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12295,7 +12290,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -12303,7 +12298,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12311,7 +12306,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12321,7 +12316,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12329,7 +12324,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -12337,7 +12332,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12345,7 +12340,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12361,7 +12356,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12369,7 +12364,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -12377,7 +12372,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12385,7 +12380,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12395,7 +12390,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12403,7 +12398,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -12411,7 +12406,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12419,7 +12414,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12432,7 +12427,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12440,7 +12435,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -12448,7 +12443,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12456,7 +12451,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -12466,7 +12461,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12474,7 +12469,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -12482,7 +12477,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12490,7 +12485,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -12513,7 +12508,6 @@ void test5()
 void test6()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -12535,7 +12529,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -12543,7 +12537,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -12551,7 +12545,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -12559,7 +12553,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -12569,7 +12563,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -12577,7 +12571,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -12585,7 +12579,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -12593,7 +12587,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -12606,7 +12600,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -12614,7 +12608,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -12622,7 +12616,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -12630,7 +12624,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -12640,7 +12634,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -12648,7 +12642,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -12656,7 +12650,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -12664,7 +12658,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -12680,7 +12674,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -12688,7 +12682,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -12696,7 +12690,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -12704,7 +12698,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -12714,7 +12708,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -12722,7 +12716,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -12730,7 +12724,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -12738,7 +12732,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -12751,7 +12745,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -12759,7 +12753,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -12767,7 +12761,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -12775,7 +12769,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -12785,7 +12779,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -12793,7 +12787,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -12801,7 +12795,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -12809,7 +12803,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -12828,7 +12822,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -12836,7 +12830,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -12844,7 +12838,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -12852,7 +12846,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -12862,7 +12856,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -12870,7 +12864,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -12878,7 +12872,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -12886,7 +12880,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -12899,7 +12893,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -12907,7 +12901,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -12915,7 +12909,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -12923,7 +12917,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -12933,7 +12927,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -12941,7 +12935,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -12949,7 +12943,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -12957,7 +12951,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -12973,7 +12967,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -12981,7 +12975,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -12989,7 +12983,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -12997,7 +12991,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -13007,7 +13001,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -13015,7 +13009,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -13023,7 +13017,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -13031,7 +13025,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -13044,7 +13038,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -13052,7 +13046,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -13060,7 +13054,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -13068,7 +13062,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -13078,7 +13072,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -13086,7 +13080,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -13094,7 +13088,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -13102,7 +13096,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -13124,7 +13118,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09");
                                     assert(ios.width() == 0);
@@ -13132,7 +13126,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09******************");
                                     assert(ios.width() == 0);
@@ -13140,7 +13134,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13148,7 +13142,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13158,7 +13152,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09");
                                     assert(ios.width() == 0);
@@ -13166,7 +13160,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09******************");
                                     assert(ios.width() == 0);
@@ -13174,7 +13168,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13182,7 +13176,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13195,7 +13189,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09");
                                     assert(ios.width() == 0);
@@ -13203,7 +13197,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09******************");
                                     assert(ios.width() == 0);
@@ -13211,7 +13205,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13219,7 +13213,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13229,7 +13223,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09");
                                     assert(ios.width() == 0);
@@ -13237,7 +13231,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09******************");
                                     assert(ios.width() == 0);
@@ -13245,7 +13239,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13253,7 +13247,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13269,7 +13263,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09");
                                     assert(ios.width() == 0);
@@ -13277,7 +13271,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09*****************");
                                     assert(ios.width() == 0);
@@ -13285,7 +13279,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2e+09");
                                     assert(ios.width() == 0);
@@ -13293,7 +13287,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13303,7 +13297,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09");
                                     assert(ios.width() == 0);
@@ -13311,7 +13305,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09*****************");
                                     assert(ios.width() == 0);
@@ -13319,7 +13313,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2e+09");
                                     assert(ios.width() == 0);
@@ -13327,7 +13321,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13340,7 +13334,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09");
                                     assert(ios.width() == 0);
@@ -13348,7 +13342,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09*****************");
                                     assert(ios.width() == 0);
@@ -13356,7 +13350,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2e+09");
                                     assert(ios.width() == 0);
@@ -13364,7 +13358,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2e+09");
                                     assert(ios.width() == 0);
@@ -13374,7 +13368,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09");
                                     assert(ios.width() == 0);
@@ -13382,7 +13376,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09*****************");
                                     assert(ios.width() == 0);
@@ -13390,7 +13384,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2e+09");
                                     assert(ios.width() == 0);
@@ -13398,7 +13392,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2e+09");
                                     assert(ios.width() == 0);
@@ -13417,7 +13411,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09");
                                     assert(ios.width() == 0);
@@ -13425,7 +13419,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09******************");
                                     assert(ios.width() == 0);
@@ -13433,7 +13427,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13441,7 +13435,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13451,7 +13445,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09");
                                     assert(ios.width() == 0);
@@ -13459,7 +13453,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09******************");
                                     assert(ios.width() == 0);
@@ -13467,7 +13461,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13475,7 +13469,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13488,7 +13482,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09");
                                     assert(ios.width() == 0);
@@ -13496,7 +13490,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09******************");
                                     assert(ios.width() == 0);
@@ -13504,7 +13498,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13512,7 +13506,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13522,7 +13516,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09");
                                     assert(ios.width() == 0);
@@ -13530,7 +13524,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09******************");
                                     assert(ios.width() == 0);
@@ -13538,7 +13532,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13546,7 +13540,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13562,7 +13556,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09");
                                     assert(ios.width() == 0);
@@ -13570,7 +13564,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09*****************");
                                     assert(ios.width() == 0);
@@ -13578,7 +13572,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2E+09");
                                     assert(ios.width() == 0);
@@ -13586,7 +13580,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13596,7 +13590,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09");
                                     assert(ios.width() == 0);
@@ -13604,7 +13598,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09*****************");
                                     assert(ios.width() == 0);
@@ -13612,7 +13606,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2E+09");
                                     assert(ios.width() == 0);
@@ -13620,7 +13614,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13633,7 +13627,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09");
                                     assert(ios.width() == 0);
@@ -13641,7 +13635,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09*****************");
                                     assert(ios.width() == 0);
@@ -13649,7 +13643,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2E+09");
                                     assert(ios.width() == 0);
@@ -13657,7 +13651,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2E+09");
                                     assert(ios.width() == 0);
@@ -13667,7 +13661,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09");
                                     assert(ios.width() == 0);
@@ -13675,7 +13669,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09*****************");
                                     assert(ios.width() == 0);
@@ -13683,7 +13677,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2E+09");
                                     assert(ios.width() == 0);
@@ -13691,7 +13685,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2E+09");
                                     assert(ios.width() == 0);
@@ -13719,7 +13713,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13727,7 +13721,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13735,7 +13729,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13743,7 +13737,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13753,7 +13747,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13761,7 +13755,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13769,7 +13763,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13777,7 +13771,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13790,7 +13784,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13798,7 +13792,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13806,7 +13800,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13814,7 +13808,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13824,7 +13818,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13832,7 +13826,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13840,7 +13834,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13848,7 +13842,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13864,7 +13858,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13872,7 +13866,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13880,7 +13874,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13888,7 +13882,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13898,7 +13892,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13906,7 +13900,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13914,7 +13908,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13922,7 +13916,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13935,7 +13929,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13943,7 +13937,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13951,7 +13945,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13959,7 +13953,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13969,7 +13963,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13977,7 +13971,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13985,7 +13979,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -13993,7 +13987,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -14012,7 +14006,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14020,7 +14014,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14028,7 +14022,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14036,7 +14030,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14046,7 +14040,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14054,7 +14048,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14062,7 +14056,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14070,7 +14064,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14083,7 +14077,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14091,7 +14085,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14099,7 +14093,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14107,7 +14101,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14117,7 +14111,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14125,7 +14119,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14133,7 +14127,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14141,7 +14135,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14157,7 +14151,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14165,7 +14159,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14173,7 +14167,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14181,7 +14175,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14191,7 +14185,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14199,7 +14193,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14207,7 +14201,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14215,7 +14209,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14228,7 +14222,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14236,7 +14230,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14244,7 +14238,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14252,7 +14246,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14262,7 +14256,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14270,7 +14264,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14278,7 +14272,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14286,7 +14280,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -14303,7 +14297,6 @@ void test6()
 void test7()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -14325,7 +14318,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14333,7 +14326,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14341,7 +14334,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14349,7 +14342,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14359,7 +14352,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14367,7 +14360,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14375,7 +14368,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14383,7 +14376,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14396,7 +14389,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14404,7 +14397,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -14412,7 +14405,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14420,7 +14413,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14430,7 +14423,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14438,7 +14431,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -14446,7 +14439,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14454,7 +14447,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14470,7 +14463,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14478,7 +14471,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14486,7 +14479,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14494,7 +14487,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14504,7 +14497,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14512,7 +14505,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14520,7 +14513,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14528,7 +14521,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14541,7 +14534,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14549,7 +14542,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -14557,7 +14550,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14565,7 +14558,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14575,7 +14568,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14583,7 +14576,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -14591,7 +14584,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14599,7 +14592,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -14618,7 +14611,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14626,7 +14619,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -14634,7 +14627,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14642,7 +14635,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -14652,7 +14645,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14660,7 +14653,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -14668,7 +14661,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14676,7 +14669,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -14689,7 +14682,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14697,7 +14690,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -14705,7 +14698,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14713,7 +14706,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14723,7 +14716,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14731,7 +14724,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -14739,7 +14732,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14747,7 +14740,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14763,7 +14756,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14771,7 +14764,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -14779,7 +14772,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14787,7 +14780,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -14797,7 +14790,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14805,7 +14798,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -14813,7 +14806,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -14821,7 +14814,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -14834,7 +14827,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14842,7 +14835,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -14850,7 +14843,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14858,7 +14851,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -14868,7 +14861,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14876,7 +14869,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -14884,7 +14877,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14892,7 +14885,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -14914,7 +14907,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14922,7 +14915,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14930,7 +14923,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14938,7 +14931,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14948,7 +14941,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14956,7 +14949,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -14964,7 +14957,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -14972,7 +14965,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -14985,7 +14978,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -14993,7 +14986,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -15001,7 +14994,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15009,7 +15002,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15019,7 +15012,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15027,7 +15020,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -15035,7 +15028,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15043,7 +15036,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15059,7 +15052,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15067,7 +15060,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15075,7 +15068,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15083,7 +15076,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15093,7 +15086,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15101,7 +15094,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15109,7 +15102,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15117,7 +15110,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15130,7 +15123,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15138,7 +15131,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -15146,7 +15139,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15154,7 +15147,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15164,7 +15157,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15172,7 +15165,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -15180,7 +15173,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15188,7 +15181,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15207,7 +15200,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15215,7 +15208,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15223,7 +15216,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15231,7 +15224,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15241,7 +15234,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15249,7 +15242,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15257,7 +15250,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15265,7 +15258,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15278,7 +15271,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15286,7 +15279,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -15294,7 +15287,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15302,7 +15295,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15312,7 +15305,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15320,7 +15313,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -15328,7 +15321,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15336,7 +15329,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15352,7 +15345,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15360,7 +15353,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15368,7 +15361,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15376,7 +15369,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15386,7 +15379,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15394,7 +15387,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15402,7 +15395,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15410,7 +15403,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15423,7 +15416,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15431,7 +15424,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -15439,7 +15432,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15447,7 +15440,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15457,7 +15450,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15465,7 +15458,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -15473,7 +15466,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15481,7 +15474,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15503,7 +15496,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15511,7 +15504,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15519,7 +15512,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15527,7 +15520,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15537,7 +15530,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15545,7 +15538,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15553,7 +15546,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15561,7 +15554,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15574,7 +15567,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15582,7 +15575,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -15590,7 +15583,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15598,7 +15591,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15608,7 +15601,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15616,7 +15609,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -15624,7 +15617,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15632,7 +15625,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15648,7 +15641,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15656,7 +15649,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15664,7 +15657,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15672,7 +15665,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15682,7 +15675,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15690,7 +15683,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -15698,7 +15691,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -15706,7 +15699,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -15719,7 +15712,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15727,7 +15720,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -15735,7 +15728,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15743,7 +15736,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -15753,7 +15746,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15761,7 +15754,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -15769,7 +15762,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15777,7 +15770,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -15796,7 +15789,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15804,7 +15797,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15812,7 +15805,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15820,7 +15813,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15830,7 +15823,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15838,7 +15831,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15846,7 +15839,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15854,7 +15847,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15867,7 +15860,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15875,7 +15868,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -15883,7 +15876,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15891,7 +15884,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -15901,7 +15894,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15909,7 +15902,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -15917,7 +15910,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15925,7 +15918,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -15941,7 +15934,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15949,7 +15942,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15957,7 +15950,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15965,7 +15958,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -15975,7 +15968,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15983,7 +15976,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -15991,7 +15984,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -15999,7 +15992,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -16012,7 +16005,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -16020,7 +16013,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -16028,7 +16021,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -16036,7 +16029,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -16046,7 +16039,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -16054,7 +16047,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -16062,7 +16055,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -16070,7 +16063,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -16093,7 +16086,6 @@ void test7()
 void test8()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -16115,7 +16107,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16123,7 +16115,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16131,7 +16123,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16139,7 +16131,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16149,7 +16141,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16157,7 +16149,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16165,7 +16157,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16173,7 +16165,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16186,7 +16178,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16194,7 +16186,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16202,7 +16194,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16210,7 +16202,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16220,7 +16212,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16228,7 +16220,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16236,7 +16228,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16244,7 +16236,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16260,7 +16252,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16268,7 +16260,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16276,7 +16268,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16284,7 +16276,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16294,7 +16286,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16302,7 +16294,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16310,7 +16302,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16318,7 +16310,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16331,7 +16323,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16339,7 +16331,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16347,7 +16339,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16355,7 +16347,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16365,7 +16357,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16373,7 +16365,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16381,7 +16373,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16389,7 +16381,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16408,7 +16400,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16416,7 +16408,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -16424,7 +16416,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16432,7 +16424,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16442,7 +16434,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16450,7 +16442,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -16458,7 +16450,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16466,7 +16458,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16479,7 +16471,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16487,7 +16479,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -16495,7 +16487,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16503,7 +16495,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16513,7 +16505,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16521,7 +16513,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -16529,7 +16521,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16537,7 +16529,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16553,7 +16545,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16561,7 +16553,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -16569,7 +16561,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16577,7 +16569,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16587,7 +16579,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16595,7 +16587,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -16603,7 +16595,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16611,7 +16603,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16624,7 +16616,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16632,7 +16624,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -16640,7 +16632,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16648,7 +16640,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16658,7 +16650,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16666,7 +16658,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -16674,7 +16666,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16682,7 +16674,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -16704,7 +16696,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16712,7 +16704,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16720,7 +16712,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16728,7 +16720,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16738,7 +16730,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16746,7 +16738,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16754,7 +16746,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16762,7 +16754,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16775,7 +16767,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16783,7 +16775,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16791,7 +16783,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16799,7 +16791,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16809,7 +16801,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16817,7 +16809,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -16825,7 +16817,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16833,7 +16825,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16849,7 +16841,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16857,7 +16849,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16865,7 +16857,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16873,7 +16865,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16883,7 +16875,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16891,7 +16883,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16899,7 +16891,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16907,7 +16899,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16920,7 +16912,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16928,7 +16920,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16936,7 +16928,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16944,7 +16936,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16954,7 +16946,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16962,7 +16954,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -16970,7 +16962,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16978,7 +16970,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -16997,7 +16989,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17005,7 +16997,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17013,7 +17005,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17021,7 +17013,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17031,7 +17023,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17039,7 +17031,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17047,7 +17039,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17055,7 +17047,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17068,7 +17060,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17076,7 +17068,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17084,7 +17076,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17092,7 +17084,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17102,7 +17094,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17110,7 +17102,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17118,7 +17110,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17126,7 +17118,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17142,7 +17134,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17150,7 +17142,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17158,7 +17150,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17166,7 +17158,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17176,7 +17168,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17184,7 +17176,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17192,7 +17184,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17200,7 +17192,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17213,7 +17205,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17221,7 +17213,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17229,7 +17221,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17237,7 +17229,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17247,7 +17239,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17255,7 +17247,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17263,7 +17255,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17271,7 +17263,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17299,7 +17291,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17307,7 +17299,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -17315,7 +17307,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17323,7 +17315,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17333,7 +17325,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17341,7 +17333,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -17349,7 +17341,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17357,7 +17349,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17370,7 +17362,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17378,7 +17370,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1.26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -17386,7 +17378,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17394,7 +17386,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17404,7 +17396,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17412,7 +17404,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x1;26580b488p+30********");
                                     assert(ios.width() == 0);
@@ -17420,7 +17412,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17428,7 +17420,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x********1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17444,7 +17436,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17452,7 +17444,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -17460,7 +17452,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17468,7 +17460,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17478,7 +17470,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17486,7 +17478,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -17494,7 +17486,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17502,7 +17494,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17515,7 +17507,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17523,7 +17515,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1.26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -17531,7 +17523,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17539,7 +17531,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1.26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17549,7 +17541,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17557,7 +17549,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x1;26580b488p+30*******");
                                     assert(ios.width() == 0);
@@ -17565,7 +17557,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17573,7 +17565,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0x1;26580b488p+30");
                                     assert(ios.width() == 0);
@@ -17592,7 +17584,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17600,7 +17592,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17608,7 +17600,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17616,7 +17608,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17626,7 +17618,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17634,7 +17626,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17642,7 +17634,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17650,7 +17642,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17663,7 +17655,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17671,7 +17663,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1.26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17679,7 +17671,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17687,7 +17679,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17697,7 +17689,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17705,7 +17697,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X1;26580B488P+30********");
                                     assert(ios.width() == 0);
@@ -17713,7 +17705,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17721,7 +17713,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X********1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17737,7 +17729,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17745,7 +17737,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17753,7 +17745,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17761,7 +17753,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17771,7 +17763,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17779,7 +17771,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17787,7 +17779,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17795,7 +17787,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17808,7 +17800,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17816,7 +17808,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1.26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17824,7 +17816,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17832,7 +17824,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1.26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17842,7 +17834,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17850,7 +17842,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X1;26580B488P+30*******");
                                     assert(ios.width() == 0);
@@ -17858,7 +17850,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0X1;26580B488P+30");
                                     assert(ios.width() == 0);
@@ -17866,7 +17858,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0X1;26580B488P+30");
                                     assert(ios.width() == 0);

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
index 3366e78751ede..f90d7e4b64d50 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
@@ -51,7 +51,6 @@ class my_numpunct
 void test1()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -72,7 +71,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -80,7 +79,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -88,7 +87,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -96,7 +95,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -106,7 +105,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -114,7 +113,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -122,7 +121,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -130,7 +129,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -143,7 +142,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -151,7 +150,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -159,7 +158,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -167,7 +166,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -177,7 +176,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -185,7 +184,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -193,7 +192,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -201,7 +200,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -217,7 +216,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -225,7 +224,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -233,7 +232,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -241,7 +240,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -251,7 +250,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -259,7 +258,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -267,7 +266,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -275,7 +274,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -288,7 +287,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -296,7 +295,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -304,7 +303,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -312,7 +311,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -322,7 +321,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -330,7 +329,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -338,7 +337,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -346,7 +345,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -365,7 +364,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -373,7 +372,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -381,7 +380,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -389,7 +388,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -399,7 +398,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -407,7 +406,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -415,7 +414,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -423,7 +422,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -436,7 +435,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -444,7 +443,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -452,7 +451,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -460,7 +459,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -470,7 +469,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -478,7 +477,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -486,7 +485,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -494,7 +493,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -510,7 +509,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -518,7 +517,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -526,7 +525,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -534,7 +533,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -544,7 +543,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -552,7 +551,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -560,7 +559,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -568,7 +567,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -581,7 +580,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -589,7 +588,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -597,7 +596,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -605,7 +604,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -615,7 +614,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -623,7 +622,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -631,7 +630,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -639,7 +638,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -661,7 +660,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -669,7 +668,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -677,7 +676,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -685,7 +684,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -695,7 +694,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -703,7 +702,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -711,7 +710,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -719,7 +718,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -732,7 +731,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -740,7 +739,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -748,7 +747,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -756,7 +755,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -766,7 +765,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -774,7 +773,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -782,7 +781,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -790,7 +789,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -806,7 +805,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -814,7 +813,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -822,7 +821,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -830,7 +829,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -840,7 +839,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -848,7 +847,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -856,7 +855,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -864,7 +863,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -877,7 +876,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -885,7 +884,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -893,7 +892,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -901,7 +900,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -911,7 +910,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -919,7 +918,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -927,7 +926,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -935,7 +934,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -954,7 +953,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -962,7 +961,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -970,7 +969,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -978,7 +977,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -988,7 +987,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -996,7 +995,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1004,7 +1003,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1012,7 +1011,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1025,7 +1024,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -1033,7 +1032,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -1041,7 +1040,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -1049,7 +1048,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -1059,7 +1058,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -1067,7 +1066,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -1075,7 +1074,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -1083,7 +1082,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -1099,7 +1098,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1107,7 +1106,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1115,7 +1114,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1123,7 +1122,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1133,7 +1132,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1141,7 +1140,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1149,7 +1148,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1157,7 +1156,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1170,7 +1169,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -1178,7 +1177,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -1186,7 +1185,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -1194,7 +1193,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -1204,7 +1203,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -1212,7 +1211,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -1220,7 +1219,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -1228,7 +1227,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -1250,7 +1249,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1258,7 +1257,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1266,7 +1265,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1274,7 +1273,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1284,7 +1283,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1292,7 +1291,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1300,7 +1299,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1308,7 +1307,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1321,7 +1320,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000");
                                     assert(ios.width() == 0);
@@ -1329,7 +1328,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000******************");
                                     assert(ios.width() == 0);
@@ -1337,7 +1336,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1345,7 +1344,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1355,7 +1354,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000");
                                     assert(ios.width() == 0);
@@ -1363,7 +1362,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000******************");
                                     assert(ios.width() == 0);
@@ -1371,7 +1370,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1379,7 +1378,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1395,7 +1394,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1403,7 +1402,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1411,7 +1410,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1419,7 +1418,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1429,7 +1428,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1437,7 +1436,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1445,7 +1444,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1453,7 +1452,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1466,7 +1465,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000");
                                     assert(ios.width() == 0);
@@ -1474,7 +1473,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000*****************");
                                     assert(ios.width() == 0);
@@ -1482,7 +1481,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0.00000");
                                     assert(ios.width() == 0);
@@ -1490,7 +1489,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0.00000");
                                     assert(ios.width() == 0);
@@ -1500,7 +1499,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000");
                                     assert(ios.width() == 0);
@@ -1508,7 +1507,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000*****************");
                                     assert(ios.width() == 0);
@@ -1516,7 +1515,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0;00000");
                                     assert(ios.width() == 0);
@@ -1524,7 +1523,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0;00000");
                                     assert(ios.width() == 0);
@@ -1543,7 +1542,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1551,7 +1550,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1559,7 +1558,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1567,7 +1566,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1577,7 +1576,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1585,7 +1584,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1593,7 +1592,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1601,7 +1600,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1614,7 +1613,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000");
                                     assert(ios.width() == 0);
@@ -1622,7 +1621,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000******************");
                                     assert(ios.width() == 0);
@@ -1630,7 +1629,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1638,7 +1637,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0.00000");
                                     assert(ios.width() == 0);
@@ -1648,7 +1647,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000");
                                     assert(ios.width() == 0);
@@ -1656,7 +1655,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000******************");
                                     assert(ios.width() == 0);
@@ -1664,7 +1663,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1672,7 +1671,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************0;00000");
                                     assert(ios.width() == 0);
@@ -1688,7 +1687,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1696,7 +1695,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1704,7 +1703,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1712,7 +1711,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1722,7 +1721,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1730,7 +1729,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -1738,7 +1737,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -1746,7 +1745,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -1759,7 +1758,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000");
                                     assert(ios.width() == 0);
@@ -1767,7 +1766,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000*****************");
                                     assert(ios.width() == 0);
@@ -1775,7 +1774,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0.00000");
                                     assert(ios.width() == 0);
@@ -1783,7 +1782,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0.00000");
                                     assert(ios.width() == 0);
@@ -1793,7 +1792,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000");
                                     assert(ios.width() == 0);
@@ -1801,7 +1800,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000*****************");
                                     assert(ios.width() == 0);
@@ -1809,7 +1808,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+0;00000");
                                     assert(ios.width() == 0);
@@ -1817,7 +1816,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************0;00000");
                                     assert(ios.width() == 0);
@@ -1839,7 +1838,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1847,7 +1846,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1855,7 +1854,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1863,7 +1862,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1873,7 +1872,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -1881,7 +1880,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -1889,7 +1888,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1897,7 +1896,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -1910,7 +1909,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1918,7 +1917,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000********");
                                     assert(ios.width() == 0);
@@ -1926,7 +1925,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1934,7 +1933,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -1944,7 +1943,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1952,7 +1951,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000********");
                                     assert(ios.width() == 0);
@@ -1960,7 +1959,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1968,7 +1967,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -1984,7 +1983,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -1992,7 +1991,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2000,7 +1999,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2008,7 +2007,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2018,7 +2017,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2026,7 +2025,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2034,7 +2033,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2042,7 +2041,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2055,7 +2054,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2063,7 +2062,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2071,7 +2070,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2079,7 +2078,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2089,7 +2088,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2097,7 +2096,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2105,7 +2104,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2113,7 +2112,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2132,7 +2131,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2140,7 +2139,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2148,7 +2147,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2156,7 +2155,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2166,7 +2165,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2174,7 +2173,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2182,7 +2181,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2190,7 +2189,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2203,7 +2202,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2211,7 +2210,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000********");
                                     assert(ios.width() == 0);
@@ -2219,7 +2218,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2227,7 +2226,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2237,7 +2236,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2245,7 +2244,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000********");
                                     assert(ios.width() == 0);
@@ -2253,7 +2252,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2261,7 +2260,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2277,7 +2276,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2285,7 +2284,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2293,7 +2292,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2301,7 +2300,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2311,7 +2310,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2319,7 +2318,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2327,7 +2326,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2335,7 +2334,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2348,7 +2347,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2356,7 +2355,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2364,7 +2363,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2372,7 +2371,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -2382,7 +2381,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2390,7 +2389,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -2398,7 +2397,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2406,7 +2405,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -2428,7 +2427,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2436,7 +2435,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2444,7 +2443,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2452,7 +2451,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2462,7 +2461,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2470,7 +2469,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2478,7 +2477,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2486,7 +2485,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2499,7 +2498,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2507,7 +2506,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2515,7 +2514,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2523,7 +2522,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2533,7 +2532,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2541,7 +2540,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2549,7 +2548,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2557,7 +2556,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2573,7 +2572,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2581,7 +2580,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2589,7 +2588,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2597,7 +2596,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2607,7 +2606,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2615,7 +2614,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2623,7 +2622,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2631,7 +2630,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2644,7 +2643,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2652,7 +2651,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2660,7 +2659,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2668,7 +2667,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2678,7 +2677,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2686,7 +2685,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2694,7 +2693,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2702,7 +2701,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2721,7 +2720,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2729,7 +2728,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2737,7 +2736,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2745,7 +2744,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2755,7 +2754,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -2763,7 +2762,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -2771,7 +2770,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2779,7 +2778,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -2792,7 +2791,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2800,7 +2799,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2808,7 +2807,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2816,7 +2815,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2826,7 +2825,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2834,7 +2833,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2842,7 +2841,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2850,7 +2849,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2866,7 +2865,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2874,7 +2873,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2882,7 +2881,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2890,7 +2889,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2900,7 +2899,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -2908,7 +2907,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -2916,7 +2915,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -2924,7 +2923,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -2937,7 +2936,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2945,7 +2944,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2953,7 +2952,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2961,7 +2960,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2971,7 +2970,7 @@ void test1()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2979,7 +2978,7 @@ void test1()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2987,7 +2986,7 @@ void test1()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -2995,7 +2994,7 @@ void test1()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -3012,7 +3011,6 @@ void test1()
 void test2()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -3033,7 +3031,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3041,7 +3039,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3049,7 +3047,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3057,7 +3055,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3067,7 +3065,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3075,7 +3073,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3083,7 +3081,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3091,7 +3089,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3104,7 +3102,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3112,7 +3110,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3120,7 +3118,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3128,7 +3126,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3138,7 +3136,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3146,7 +3144,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3154,7 +3152,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3162,7 +3160,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3178,7 +3176,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3186,7 +3184,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3194,7 +3192,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3202,7 +3200,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3212,7 +3210,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3220,7 +3218,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3228,7 +3226,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3236,7 +3234,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3249,7 +3247,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3257,7 +3255,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3265,7 +3263,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3273,7 +3271,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3283,7 +3281,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3291,7 +3289,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3299,7 +3297,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3307,7 +3305,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3326,7 +3324,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3334,7 +3332,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3342,7 +3340,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3350,7 +3348,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3360,7 +3358,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3368,7 +3366,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3376,7 +3374,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3384,7 +3382,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3397,7 +3395,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3405,7 +3403,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3413,7 +3411,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3421,7 +3419,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3431,7 +3429,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3439,7 +3437,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3447,7 +3445,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3455,7 +3453,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3471,7 +3469,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3479,7 +3477,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3487,7 +3485,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3495,7 +3493,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3505,7 +3503,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3513,7 +3511,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3521,7 +3519,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3529,7 +3527,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3542,7 +3540,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3550,7 +3548,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3558,7 +3556,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3566,7 +3564,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3576,7 +3574,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3584,7 +3582,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3592,7 +3590,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3600,7 +3598,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3622,7 +3620,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3630,7 +3628,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3638,7 +3636,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3646,7 +3644,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3656,7 +3654,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3664,7 +3662,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3672,7 +3670,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3680,7 +3678,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3693,7 +3691,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3701,7 +3699,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3709,7 +3707,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3717,7 +3715,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3727,7 +3725,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3735,7 +3733,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3743,7 +3741,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3751,7 +3749,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3767,7 +3765,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3775,7 +3773,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3783,7 +3781,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3791,7 +3789,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3801,7 +3799,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3809,7 +3807,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3817,7 +3815,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3825,7 +3823,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3838,7 +3836,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3846,7 +3844,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -3854,7 +3852,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -3862,7 +3860,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -3872,7 +3870,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -3880,7 +3878,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -3888,7 +3886,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -3896,7 +3894,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -3915,7 +3913,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3923,7 +3921,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3931,7 +3929,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3939,7 +3937,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3949,7 +3947,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -3957,7 +3955,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -3965,7 +3963,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -3973,7 +3971,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -3986,7 +3984,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -3994,7 +3992,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -4002,7 +4000,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -4010,7 +4008,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -4020,7 +4018,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -4028,7 +4026,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -4036,7 +4034,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -4044,7 +4042,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -4060,7 +4058,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4068,7 +4066,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4076,7 +4074,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4084,7 +4082,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4094,7 +4092,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4102,7 +4100,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4110,7 +4108,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4118,7 +4116,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4131,7 +4129,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -4139,7 +4137,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -4147,7 +4145,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -4155,7 +4153,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -4165,7 +4163,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -4173,7 +4171,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -4181,7 +4179,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -4189,7 +4187,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -4211,7 +4209,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4219,7 +4217,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4227,7 +4225,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4235,7 +4233,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4245,7 +4243,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4253,7 +4251,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4261,7 +4259,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4269,7 +4267,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4282,7 +4280,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000");
                                     assert(ios.width() == 0);
@@ -4290,7 +4288,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000*****************");
                                     assert(ios.width() == 0);
@@ -4298,7 +4296,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.00000");
                                     assert(ios.width() == 0);
@@ -4306,7 +4304,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.00000");
                                     assert(ios.width() == 0);
@@ -4316,7 +4314,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000");
                                     assert(ios.width() == 0);
@@ -4324,7 +4322,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000*****************");
                                     assert(ios.width() == 0);
@@ -4332,7 +4330,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;00000");
                                     assert(ios.width() == 0);
@@ -4340,7 +4338,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;00000");
                                     assert(ios.width() == 0);
@@ -4356,7 +4354,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4364,7 +4362,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4372,7 +4370,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4380,7 +4378,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4390,7 +4388,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4398,7 +4396,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4406,7 +4404,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4414,7 +4412,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4427,7 +4425,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000");
                                     assert(ios.width() == 0);
@@ -4435,7 +4433,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000*****************");
                                     assert(ios.width() == 0);
@@ -4443,7 +4441,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.00000");
                                     assert(ios.width() == 0);
@@ -4451,7 +4449,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.00000");
                                     assert(ios.width() == 0);
@@ -4461,7 +4459,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000");
                                     assert(ios.width() == 0);
@@ -4469,7 +4467,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000*****************");
                                     assert(ios.width() == 0);
@@ -4477,7 +4475,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;00000");
                                     assert(ios.width() == 0);
@@ -4485,7 +4483,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;00000");
                                     assert(ios.width() == 0);
@@ -4504,7 +4502,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4512,7 +4510,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4520,7 +4518,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4528,7 +4526,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4538,7 +4536,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4546,7 +4544,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4554,7 +4552,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4562,7 +4560,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4575,7 +4573,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000");
                                     assert(ios.width() == 0);
@@ -4583,7 +4581,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000*****************");
                                     assert(ios.width() == 0);
@@ -4591,7 +4589,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.00000");
                                     assert(ios.width() == 0);
@@ -4599,7 +4597,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.00000");
                                     assert(ios.width() == 0);
@@ -4609,7 +4607,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000");
                                     assert(ios.width() == 0);
@@ -4617,7 +4615,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000*****************");
                                     assert(ios.width() == 0);
@@ -4625,7 +4623,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;00000");
                                     assert(ios.width() == 0);
@@ -4633,7 +4631,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;00000");
                                     assert(ios.width() == 0);
@@ -4649,7 +4647,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4657,7 +4655,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4665,7 +4663,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4673,7 +4671,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4683,7 +4681,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4691,7 +4689,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4699,7 +4697,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4707,7 +4705,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4720,7 +4718,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000");
                                     assert(ios.width() == 0);
@@ -4728,7 +4726,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000*****************");
                                     assert(ios.width() == 0);
@@ -4736,7 +4734,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.00000");
                                     assert(ios.width() == 0);
@@ -4744,7 +4742,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.00000");
                                     assert(ios.width() == 0);
@@ -4754,7 +4752,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000");
                                     assert(ios.width() == 0);
@@ -4762,7 +4760,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000*****************");
                                     assert(ios.width() == 0);
@@ -4770,7 +4768,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;00000");
                                     assert(ios.width() == 0);
@@ -4778,7 +4776,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;00000");
                                     assert(ios.width() == 0);
@@ -4800,7 +4798,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4808,7 +4806,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4816,7 +4814,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4824,7 +4822,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4834,7 +4832,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4842,7 +4840,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4850,7 +4848,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4858,7 +4856,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4871,7 +4869,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -4879,7 +4877,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -4887,7 +4885,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -4895,7 +4893,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -4905,7 +4903,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -4913,7 +4911,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -4921,7 +4919,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -4929,7 +4927,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -4945,7 +4943,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4953,7 +4951,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4961,7 +4959,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -4969,7 +4967,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -4979,7 +4977,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -4987,7 +4985,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -4995,7 +4993,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5003,7 +5001,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5016,7 +5014,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5024,7 +5022,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5032,7 +5030,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5040,7 +5038,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5050,7 +5048,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5058,7 +5056,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5066,7 +5064,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5074,7 +5072,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5093,7 +5091,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5101,7 +5099,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5109,7 +5107,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5117,7 +5115,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5127,7 +5125,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5135,7 +5133,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5143,7 +5141,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5151,7 +5149,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5164,7 +5162,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5172,7 +5170,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5180,7 +5178,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5188,7 +5186,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5198,7 +5196,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5206,7 +5204,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5214,7 +5212,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5222,7 +5220,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5238,7 +5236,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5246,7 +5244,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5254,7 +5252,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5262,7 +5260,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5272,7 +5270,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5280,7 +5278,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5288,7 +5286,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5296,7 +5294,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5309,7 +5307,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5317,7 +5315,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5325,7 +5323,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5333,7 +5331,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0.000000000000000");
                                     assert(ios.width() == 0);
@@ -5343,7 +5341,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5351,7 +5349,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000*******");
                                     assert(ios.width() == 0);
@@ -5359,7 +5357,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******-0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5367,7 +5365,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******0;000000000000000");
                                     assert(ios.width() == 0);
@@ -5389,7 +5387,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5397,7 +5395,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5405,7 +5403,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5413,7 +5411,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5423,7 +5421,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5431,7 +5429,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5439,7 +5437,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5447,7 +5445,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5460,7 +5458,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5468,7 +5466,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5476,7 +5474,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5484,7 +5482,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5494,7 +5492,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5502,7 +5500,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5510,7 +5508,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5518,7 +5516,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5534,7 +5532,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5542,7 +5540,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5550,7 +5548,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5558,7 +5556,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5568,7 +5566,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5576,7 +5574,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5584,7 +5582,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5592,7 +5590,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5605,7 +5603,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5613,7 +5611,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5621,7 +5619,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5629,7 +5627,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5639,7 +5637,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5647,7 +5645,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5655,7 +5653,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5663,7 +5661,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5682,7 +5680,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5690,7 +5688,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5698,7 +5696,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5706,7 +5704,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5716,7 +5714,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5724,7 +5722,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5732,7 +5730,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5740,7 +5738,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5753,7 +5751,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5761,7 +5759,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5769,7 +5767,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5777,7 +5775,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5787,7 +5785,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5795,7 +5793,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5803,7 +5801,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5811,7 +5809,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5827,7 +5825,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5835,7 +5833,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5843,7 +5841,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5851,7 +5849,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5861,7 +5859,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -5869,7 +5867,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -5877,7 +5875,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -5885,7 +5883,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -5898,7 +5896,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5906,7 +5904,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5914,7 +5912,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5922,7 +5920,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5932,7 +5930,7 @@ void test2()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5940,7 +5938,7 @@ void test2()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5948,7 +5946,7 @@ void test2()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5956,7 +5954,7 @@ void test2()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -5973,7 +5971,6 @@ void test2()
 void test3()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -5994,7 +5991,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -6002,7 +5999,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -6010,7 +6007,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6018,7 +6015,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6028,7 +6025,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -6036,7 +6033,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -6044,7 +6041,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6052,7 +6049,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6065,7 +6062,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -6073,7 +6070,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -6081,7 +6078,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6089,7 +6086,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6099,7 +6096,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -6107,7 +6104,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -6115,7 +6112,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6123,7 +6120,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6139,7 +6136,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -6147,7 +6144,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -6155,7 +6152,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -6163,7 +6160,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -6173,7 +6170,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -6181,7 +6178,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -6189,7 +6186,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -6197,7 +6194,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -6210,7 +6207,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -6218,7 +6215,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -6226,7 +6223,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -6234,7 +6231,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6244,7 +6241,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -6252,7 +6249,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -6260,7 +6257,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -6268,7 +6265,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6287,7 +6284,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -6295,7 +6292,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -6303,7 +6300,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6311,7 +6308,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6321,7 +6318,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -6329,7 +6326,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -6337,7 +6334,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6345,7 +6342,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6358,7 +6355,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -6366,7 +6363,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -6374,7 +6371,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -6382,7 +6379,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -6392,7 +6389,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -6400,7 +6397,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -6408,7 +6405,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -6416,7 +6413,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -6432,7 +6429,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -6440,7 +6437,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -6448,7 +6445,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -6456,7 +6453,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -6466,7 +6463,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -6474,7 +6471,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -6482,7 +6479,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -6490,7 +6487,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -6503,7 +6500,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -6511,7 +6508,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -6519,7 +6516,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -6527,7 +6524,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -6537,7 +6534,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -6545,7 +6542,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -6553,7 +6550,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -6561,7 +6558,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -6583,7 +6580,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -6591,7 +6588,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -6599,7 +6596,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6607,7 +6604,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6617,7 +6614,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -6625,7 +6622,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -6633,7 +6630,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6641,7 +6638,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -6654,7 +6651,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -6662,7 +6659,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -6670,7 +6667,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6678,7 +6675,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6688,7 +6685,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -6696,7 +6693,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -6704,7 +6701,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6712,7 +6709,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6728,7 +6725,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -6736,7 +6733,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -6744,7 +6741,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -6752,7 +6749,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -6762,7 +6759,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -6770,7 +6767,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -6778,7 +6775,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -6786,7 +6783,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -6799,7 +6796,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -6807,7 +6804,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -6815,7 +6812,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -6823,7 +6820,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -6833,7 +6830,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -6841,7 +6838,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -6849,7 +6846,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -6857,7 +6854,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -6876,7 +6873,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -6884,7 +6881,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -6892,7 +6889,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6900,7 +6897,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6910,7 +6907,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -6918,7 +6915,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -6926,7 +6923,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6934,7 +6931,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -6947,7 +6944,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -6955,7 +6952,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -6963,7 +6960,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -6971,7 +6968,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -6981,7 +6978,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -6989,7 +6986,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -6997,7 +6994,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -7005,7 +7002,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -7021,7 +7018,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -7029,7 +7026,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -7037,7 +7034,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -7045,7 +7042,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -7055,7 +7052,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -7063,7 +7060,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -7071,7 +7068,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -7079,7 +7076,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -7092,7 +7089,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -7100,7 +7097,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -7108,7 +7105,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -7116,7 +7113,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -7126,7 +7123,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -7134,7 +7131,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -7142,7 +7139,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -7150,7 +7147,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -7172,7 +7169,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7180,7 +7177,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09**************");
                                     assert(ios.width() == 0);
@@ -7188,7 +7185,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7196,7 +7193,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7206,7 +7203,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7214,7 +7211,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09**************");
                                     assert(ios.width() == 0);
@@ -7222,7 +7219,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7230,7 +7227,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7243,7 +7240,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7251,7 +7248,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457e+09**************");
                                     assert(ios.width() == 0);
@@ -7259,7 +7256,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7267,7 +7264,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7277,7 +7274,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7285,7 +7282,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457e+09**************");
                                     assert(ios.width() == 0);
@@ -7293,7 +7290,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7301,7 +7298,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7317,7 +7314,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7325,7 +7322,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09*************");
                                     assert(ios.width() == 0);
@@ -7333,7 +7330,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7341,7 +7338,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7351,7 +7348,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7359,7 +7356,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09*************");
                                     assert(ios.width() == 0);
@@ -7367,7 +7364,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7375,7 +7372,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7388,7 +7385,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7396,7 +7393,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457e+09*************");
                                     assert(ios.width() == 0);
@@ -7404,7 +7401,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7412,7 +7409,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457e+09");
                                     assert(ios.width() == 0);
@@ -7422,7 +7419,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7430,7 +7427,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457e+09*************");
                                     assert(ios.width() == 0);
@@ -7438,7 +7435,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7446,7 +7443,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457e+09");
                                     assert(ios.width() == 0);
@@ -7465,7 +7462,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7473,7 +7470,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09**************");
                                     assert(ios.width() == 0);
@@ -7481,7 +7478,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7489,7 +7486,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7499,7 +7496,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7507,7 +7504,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09**************");
                                     assert(ios.width() == 0);
@@ -7515,7 +7512,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7523,7 +7520,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7536,7 +7533,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7544,7 +7541,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.23457E+09**************");
                                     assert(ios.width() == 0);
@@ -7552,7 +7549,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7560,7 +7557,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7570,7 +7567,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7578,7 +7575,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;23457E+09**************");
                                     assert(ios.width() == 0);
@@ -7586,7 +7583,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7594,7 +7591,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7610,7 +7607,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7618,7 +7615,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09*************");
                                     assert(ios.width() == 0);
@@ -7626,7 +7623,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7634,7 +7631,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7644,7 +7641,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7652,7 +7649,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09*************");
                                     assert(ios.width() == 0);
@@ -7660,7 +7657,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7668,7 +7665,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7681,7 +7678,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7689,7 +7686,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.23457E+09*************");
                                     assert(ios.width() == 0);
@@ -7697,7 +7694,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7705,7 +7702,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1.23457E+09");
                                     assert(ios.width() == 0);
@@ -7715,7 +7712,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7723,7 +7720,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;23457E+09*************");
                                     assert(ios.width() == 0);
@@ -7731,7 +7728,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7739,7 +7736,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1;23457E+09");
                                     assert(ios.width() == 0);
@@ -7761,7 +7758,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -7769,7 +7766,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -7777,7 +7774,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -7785,7 +7782,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -7795,7 +7792,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7803,7 +7800,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -7811,7 +7808,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7819,7 +7816,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7832,7 +7829,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -7840,7 +7837,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -7848,7 +7845,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -7856,7 +7853,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -7866,7 +7863,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -7874,7 +7871,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -7882,7 +7879,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -7890,7 +7887,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -7906,7 +7903,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -7914,7 +7911,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -7922,7 +7919,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -7930,7 +7927,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -7940,7 +7937,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7948,7 +7945,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -7956,7 +7953,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7964,7 +7961,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -7977,7 +7974,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -7985,7 +7982,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -7993,7 +7990,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8001,7 +7998,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8011,7 +8008,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8019,7 +8016,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -8027,7 +8024,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8035,7 +8032,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8054,7 +8051,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -8062,7 +8059,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -8070,7 +8067,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8078,7 +8075,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8088,7 +8085,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8096,7 +8093,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -8104,7 +8101,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8112,7 +8109,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8125,7 +8122,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8133,7 +8130,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -8141,7 +8138,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8149,7 +8146,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8159,7 +8156,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8167,7 +8164,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -8175,7 +8172,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8183,7 +8180,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8199,7 +8196,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8207,7 +8204,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -8215,7 +8212,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8223,7 +8220,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8233,7 +8230,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8241,7 +8238,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -8249,7 +8246,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8257,7 +8254,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8270,7 +8267,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8278,7 +8275,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -8286,7 +8283,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8294,7 +8291,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -8304,7 +8301,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8312,7 +8309,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -8320,7 +8317,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8328,7 +8325,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -8350,7 +8347,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -8358,7 +8355,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -8366,7 +8363,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8374,7 +8371,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8384,7 +8381,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8392,7 +8389,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -8400,7 +8397,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8408,7 +8405,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8421,7 +8418,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8429,7 +8426,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8437,7 +8434,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8445,7 +8442,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8455,7 +8452,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8463,7 +8460,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8471,7 +8468,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8479,7 +8476,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8495,7 +8492,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8503,7 +8500,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -8511,7 +8508,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8519,7 +8516,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8529,7 +8526,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8537,7 +8534,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -8545,7 +8542,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8553,7 +8550,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8566,7 +8563,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8574,7 +8571,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8582,7 +8579,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8590,7 +8587,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8600,7 +8597,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8608,7 +8605,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8616,7 +8613,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8624,7 +8621,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8643,7 +8640,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125");
                                     assert(ios.width() == 0);
@@ -8651,7 +8648,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125***********");
                                     assert(ios.width() == 0);
@@ -8659,7 +8656,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8667,7 +8664,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8677,7 +8674,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8685,7 +8682,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125*******");
                                     assert(ios.width() == 0);
@@ -8693,7 +8690,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8701,7 +8698,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8714,7 +8711,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8722,7 +8719,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8730,7 +8727,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8738,7 +8735,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8748,7 +8745,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8756,7 +8753,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8764,7 +8761,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8772,7 +8769,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8788,7 +8785,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8796,7 +8793,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125**********");
                                     assert(ios.width() == 0);
@@ -8804,7 +8801,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1234567890.125");
                                     assert(ios.width() == 0);
@@ -8812,7 +8809,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1234567890.125");
                                     assert(ios.width() == 0);
@@ -8822,7 +8819,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8830,7 +8827,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125******");
                                     assert(ios.width() == 0);
@@ -8838,7 +8835,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8846,7 +8843,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******1_234_567_89_0;125");
                                     assert(ios.width() == 0);
@@ -8859,7 +8856,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8867,7 +8864,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8875,7 +8872,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8883,7 +8880,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8893,7 +8890,7 @@ void test3()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8901,7 +8898,7 @@ void test3()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8909,7 +8906,7 @@ void test3()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8917,7 +8914,7 @@ void test3()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -8934,7 +8931,6 @@ void test3()
 void test4()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -8955,7 +8951,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -8963,7 +8959,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -8971,7 +8967,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -8979,7 +8975,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -8989,7 +8985,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -8997,7 +8993,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9005,7 +9001,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9013,7 +9009,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9026,7 +9022,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9034,7 +9030,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9042,7 +9038,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9050,7 +9046,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9060,7 +9056,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9068,7 +9064,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9076,7 +9072,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9084,7 +9080,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9100,7 +9096,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9108,7 +9104,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9116,7 +9112,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9124,7 +9120,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9134,7 +9130,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9142,7 +9138,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9150,7 +9146,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9158,7 +9154,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9171,7 +9167,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9179,7 +9175,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9187,7 +9183,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9195,7 +9191,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9205,7 +9201,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9213,7 +9209,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9221,7 +9217,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9229,7 +9225,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9248,7 +9244,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9256,7 +9252,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9264,7 +9260,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9272,7 +9268,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9282,7 +9278,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9290,7 +9286,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9298,7 +9294,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9306,7 +9302,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9319,7 +9315,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9327,7 +9323,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9335,7 +9331,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9343,7 +9339,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9353,7 +9349,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9361,7 +9357,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9369,7 +9365,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9377,7 +9373,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9393,7 +9389,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9401,7 +9397,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9409,7 +9405,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9417,7 +9413,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9427,7 +9423,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9435,7 +9431,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9443,7 +9439,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9451,7 +9447,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9464,7 +9460,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9472,7 +9468,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9480,7 +9476,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9488,7 +9484,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9498,7 +9494,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9506,7 +9502,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9514,7 +9510,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9522,7 +9518,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9544,7 +9540,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9552,7 +9548,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9560,7 +9556,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9568,7 +9564,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9578,7 +9574,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9586,7 +9582,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9594,7 +9590,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9602,7 +9598,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9615,7 +9611,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9623,7 +9619,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9631,7 +9627,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9639,7 +9635,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9649,7 +9645,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9657,7 +9653,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9665,7 +9661,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9673,7 +9669,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9689,7 +9685,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9697,7 +9693,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9705,7 +9701,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9713,7 +9709,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9723,7 +9719,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9731,7 +9727,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9739,7 +9735,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9747,7 +9743,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9760,7 +9756,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9768,7 +9764,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9776,7 +9772,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9784,7 +9780,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9794,7 +9790,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -9802,7 +9798,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -9810,7 +9806,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -9818,7 +9814,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -9837,7 +9833,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9845,7 +9841,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9853,7 +9849,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9861,7 +9857,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9871,7 +9867,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9879,7 +9875,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9887,7 +9883,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9895,7 +9891,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9908,7 +9904,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9916,7 +9912,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9924,7 +9920,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9932,7 +9928,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9942,7 +9938,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9950,7 +9946,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9958,7 +9954,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -9966,7 +9962,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -9982,7 +9978,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -9990,7 +9986,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -9998,7 +9994,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10006,7 +10002,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10016,7 +10012,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10024,7 +10020,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10032,7 +10028,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10040,7 +10036,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10053,7 +10049,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10061,7 +10057,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10069,7 +10065,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10077,7 +10073,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10087,7 +10083,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10095,7 +10091,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10103,7 +10099,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10111,7 +10107,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10133,7 +10129,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10141,7 +10137,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10149,7 +10145,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10157,7 +10153,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10167,7 +10163,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10175,7 +10171,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10183,7 +10179,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10191,7 +10187,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10204,7 +10200,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10212,7 +10208,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10220,7 +10216,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10228,7 +10224,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10238,7 +10234,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10246,7 +10242,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10254,7 +10250,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10262,7 +10258,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10278,7 +10274,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10286,7 +10282,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10294,7 +10290,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10302,7 +10298,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10312,7 +10308,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10320,7 +10316,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10328,7 +10324,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10336,7 +10332,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10349,7 +10345,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10357,7 +10353,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10365,7 +10361,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10373,7 +10369,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10383,7 +10379,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf");
                                     assert(ios.width() == 0);
@@ -10391,7 +10387,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-inf*********************");
                                     assert(ios.width() == 0);
@@ -10399,7 +10395,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-inf");
                                     assert(ios.width() == 0);
@@ -10407,7 +10403,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************inf");
                                     assert(ios.width() == 0);
@@ -10426,7 +10422,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10434,7 +10430,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10442,7 +10438,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10450,7 +10446,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10460,7 +10456,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10468,7 +10464,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10476,7 +10472,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10484,7 +10480,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10497,7 +10493,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10505,7 +10501,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10513,7 +10509,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10521,7 +10517,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10531,7 +10527,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10539,7 +10535,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10547,7 +10543,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10555,7 +10551,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10571,7 +10567,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10579,7 +10575,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10587,7 +10583,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10595,7 +10591,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10605,7 +10601,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10613,7 +10609,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10621,7 +10617,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10629,7 +10625,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10642,7 +10638,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10650,7 +10646,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10658,7 +10654,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10666,7 +10662,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10676,7 +10672,7 @@ void test4()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF");
                                     assert(ios.width() == 0);
@@ -10684,7 +10680,7 @@ void test4()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-INF*********************");
                                     assert(ios.width() == 0);
@@ -10692,7 +10688,7 @@ void test4()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-INF");
                                     assert(ios.width() == 0);
@@ -10700,7 +10696,7 @@ void test4()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************INF");
                                     assert(ios.width() == 0);
@@ -10721,7 +10717,6 @@ void test4()
 void test5()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -10742,7 +10737,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10750,7 +10745,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10758,7 +10753,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10766,7 +10761,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10776,7 +10771,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10784,7 +10779,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10792,7 +10787,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10800,7 +10795,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10813,7 +10808,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10821,7 +10816,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10829,7 +10824,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10837,7 +10832,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10847,7 +10842,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10855,7 +10850,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10863,7 +10858,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10871,7 +10866,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10887,7 +10882,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10895,7 +10890,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10903,7 +10898,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10911,7 +10906,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10921,7 +10916,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10929,7 +10924,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10937,7 +10932,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10945,7 +10940,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10958,7 +10953,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -10966,7 +10961,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -10974,7 +10969,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10982,7 +10977,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -10992,7 +10987,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan");
                                     assert(ios.width() == 0);
@@ -11000,7 +10995,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "nan**********************");
                                     assert(ios.width() == 0);
@@ -11008,7 +11003,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -11016,7 +11011,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************nan");
                                     assert(ios.width() == 0);
@@ -11035,7 +11030,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11043,7 +11038,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11051,7 +11046,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11059,7 +11054,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11069,7 +11064,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11077,7 +11072,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11085,7 +11080,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11093,7 +11088,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11106,7 +11101,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11114,7 +11109,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11122,7 +11117,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11130,7 +11125,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11140,7 +11135,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11148,7 +11143,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11156,7 +11151,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11164,7 +11159,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11180,7 +11175,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11188,7 +11183,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11196,7 +11191,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11204,7 +11199,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11214,7 +11209,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11222,7 +11217,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11230,7 +11225,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11238,7 +11233,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11251,7 +11246,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11259,7 +11254,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11267,7 +11262,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11275,7 +11270,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11285,7 +11280,7 @@ void test5()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN");
                                     assert(ios.width() == 0);
@@ -11293,7 +11288,7 @@ void test5()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "NAN**********************");
                                     assert(ios.width() == 0);
@@ -11301,7 +11296,7 @@ void test5()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11309,7 +11304,7 @@ void test5()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************NAN");
                                     assert(ios.width() == 0);
@@ -11334,7 +11329,6 @@ void test5()
 void test6()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -11356,7 +11350,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -11364,7 +11358,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -11372,7 +11366,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11380,7 +11374,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11390,7 +11384,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -11398,7 +11392,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -11406,7 +11400,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11414,7 +11408,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11427,7 +11421,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -11435,7 +11429,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -11443,7 +11437,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -11451,7 +11445,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -11461,7 +11455,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -11469,7 +11463,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -11477,7 +11471,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -11485,7 +11479,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -11501,7 +11495,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -11509,7 +11503,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -11517,7 +11511,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -11525,7 +11519,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -11535,7 +11529,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -11543,7 +11537,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -11551,7 +11545,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -11559,7 +11553,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -11572,7 +11566,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -11580,7 +11574,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -11588,7 +11582,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -11596,7 +11590,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -11606,7 +11600,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -11614,7 +11608,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -11622,7 +11616,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -11630,7 +11624,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -11649,7 +11643,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -11657,7 +11651,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -11665,7 +11659,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11673,7 +11667,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11683,7 +11677,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0");
                                     assert(ios.width() == 0);
@@ -11691,7 +11685,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0************************");
                                     assert(ios.width() == 0);
@@ -11699,7 +11693,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11707,7 +11701,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************************0");
                                     assert(ios.width() == 0);
@@ -11720,7 +11714,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.");
                                     assert(ios.width() == 0);
@@ -11728,7 +11722,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.***********************");
                                     assert(ios.width() == 0);
@@ -11736,7 +11730,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -11744,7 +11738,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0.");
                                     assert(ios.width() == 0);
@@ -11754,7 +11748,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;");
                                     assert(ios.width() == 0);
@@ -11762,7 +11756,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;***********************");
                                     assert(ios.width() == 0);
@@ -11770,7 +11764,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -11778,7 +11772,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************0;");
                                     assert(ios.width() == 0);
@@ -11794,7 +11788,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -11802,7 +11796,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -11810,7 +11804,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -11818,7 +11812,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -11828,7 +11822,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0");
                                     assert(ios.width() == 0);
@@ -11836,7 +11830,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0***********************");
                                     assert(ios.width() == 0);
@@ -11844,7 +11838,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************+0");
                                     assert(ios.width() == 0);
@@ -11852,7 +11846,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***********************0");
                                     assert(ios.width() == 0);
@@ -11865,7 +11859,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.");
                                     assert(ios.width() == 0);
@@ -11873,7 +11867,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.**********************");
                                     assert(ios.width() == 0);
@@ -11881,7 +11875,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0.");
                                     assert(ios.width() == 0);
@@ -11889,7 +11883,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0.");
                                     assert(ios.width() == 0);
@@ -11899,7 +11893,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;");
                                     assert(ios.width() == 0);
@@ -11907,7 +11901,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;**********************");
                                     assert(ios.width() == 0);
@@ -11915,7 +11909,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************+0;");
                                     assert(ios.width() == 0);
@@ -11923,7 +11917,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********************0;");
                                     assert(ios.width() == 0);
@@ -11945,7 +11939,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -11953,7 +11947,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -11961,7 +11955,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -11969,7 +11963,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -11979,7 +11973,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -11987,7 +11981,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -11995,7 +11989,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12003,7 +11997,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12016,7 +12010,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -12024,7 +12018,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -12032,7 +12026,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12040,7 +12034,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12050,7 +12044,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -12058,7 +12052,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -12066,7 +12060,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12074,7 +12068,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12090,7 +12084,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -12098,7 +12092,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -12106,7 +12100,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -12114,7 +12108,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -12124,7 +12118,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -12132,7 +12126,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -12140,7 +12134,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -12148,7 +12142,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -12161,7 +12155,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -12169,7 +12163,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -12177,7 +12171,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -12185,7 +12179,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -12195,7 +12189,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -12203,7 +12197,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -12211,7 +12205,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -12219,7 +12213,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -12238,7 +12232,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -12246,7 +12240,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -12254,7 +12248,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12262,7 +12256,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12272,7 +12266,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -12280,7 +12274,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -12288,7 +12282,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12296,7 +12290,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12309,7 +12303,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0");
                                     assert(ios.width() == 0);
@@ -12317,7 +12311,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0**********************");
                                     assert(ios.width() == 0);
@@ -12325,7 +12319,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12333,7 +12327,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0.0");
                                     assert(ios.width() == 0);
@@ -12343,7 +12337,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0");
                                     assert(ios.width() == 0);
@@ -12351,7 +12345,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0**********************");
                                     assert(ios.width() == 0);
@@ -12359,7 +12353,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12367,7 +12361,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************0;0");
                                     assert(ios.width() == 0);
@@ -12383,7 +12377,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -12391,7 +12385,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -12399,7 +12393,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -12407,7 +12401,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -12417,7 +12411,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -12425,7 +12419,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -12433,7 +12427,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -12441,7 +12435,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -12454,7 +12448,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0");
                                     assert(ios.width() == 0);
@@ -12462,7 +12456,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0*********************");
                                     assert(ios.width() == 0);
@@ -12470,7 +12464,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0.0");
                                     assert(ios.width() == 0);
@@ -12478,7 +12472,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0.0");
                                     assert(ios.width() == 0);
@@ -12488,7 +12482,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0");
                                     assert(ios.width() == 0);
@@ -12496,7 +12490,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0*********************");
                                     assert(ios.width() == 0);
@@ -12504,7 +12498,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************+0;0");
                                     assert(ios.width() == 0);
@@ -12512,7 +12506,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********************0;0");
                                     assert(ios.width() == 0);
@@ -12534,7 +12528,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -12542,7 +12536,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -12550,7 +12544,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12558,7 +12552,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12568,7 +12562,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -12576,7 +12570,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -12584,7 +12578,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12592,7 +12586,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12605,7 +12599,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -12613,7 +12607,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -12621,7 +12615,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12629,7 +12623,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12639,7 +12633,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -12647,7 +12641,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -12655,7 +12649,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12663,7 +12657,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12679,7 +12673,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -12687,7 +12681,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -12695,7 +12689,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -12703,7 +12697,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -12713,7 +12707,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -12721,7 +12715,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -12729,7 +12723,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -12737,7 +12731,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -12750,7 +12744,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -12758,7 +12752,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -12766,7 +12760,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -12774,7 +12768,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -12784,7 +12778,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -12792,7 +12786,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -12800,7 +12794,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -12808,7 +12802,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -12827,7 +12821,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -12835,7 +12829,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -12843,7 +12837,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12851,7 +12845,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12861,7 +12855,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -12869,7 +12863,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -12877,7 +12871,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12885,7 +12879,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12898,7 +12892,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000");
                                     assert(ios.width() == 0);
@@ -12906,7 +12900,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000*****************");
                                     assert(ios.width() == 0);
@@ -12914,7 +12908,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12922,7 +12916,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0.000000");
                                     assert(ios.width() == 0);
@@ -12932,7 +12926,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000");
                                     assert(ios.width() == 0);
@@ -12940,7 +12934,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000*****************");
                                     assert(ios.width() == 0);
@@ -12948,7 +12942,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12956,7 +12950,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************0;000000");
                                     assert(ios.width() == 0);
@@ -12972,7 +12966,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -12980,7 +12974,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -12988,7 +12982,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -12996,7 +12990,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -13006,7 +13000,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -13014,7 +13008,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -13022,7 +13016,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -13030,7 +13024,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -13043,7 +13037,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000");
                                     assert(ios.width() == 0);
@@ -13051,7 +13045,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000****************");
                                     assert(ios.width() == 0);
@@ -13059,7 +13053,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0.000000");
                                     assert(ios.width() == 0);
@@ -13067,7 +13061,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0.000000");
                                     assert(ios.width() == 0);
@@ -13077,7 +13071,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000");
                                     assert(ios.width() == 0);
@@ -13085,7 +13079,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000****************");
                                     assert(ios.width() == 0);
@@ -13093,7 +13087,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************+0;000000");
                                     assert(ios.width() == 0);
@@ -13101,7 +13095,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+****************0;000000");
                                     assert(ios.width() == 0);
@@ -13123,7 +13117,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13131,7 +13125,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13139,7 +13133,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13147,7 +13141,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13157,7 +13151,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13165,7 +13159,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13173,7 +13167,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13181,7 +13175,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13194,7 +13188,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13202,7 +13196,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13210,7 +13204,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13218,7 +13212,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13228,7 +13222,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13236,7 +13230,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13244,7 +13238,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13252,7 +13246,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13268,7 +13262,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13276,7 +13270,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13284,7 +13278,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13292,7 +13286,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13302,7 +13296,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13310,7 +13304,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13318,7 +13312,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13326,7 +13320,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13339,7 +13333,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13347,7 +13341,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13355,7 +13349,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13363,7 +13357,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13373,7 +13367,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13381,7 +13375,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13389,7 +13383,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13397,7 +13391,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13416,7 +13410,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13424,7 +13418,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13432,7 +13426,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13440,7 +13434,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13450,7 +13444,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13458,7 +13452,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13466,7 +13460,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13474,7 +13468,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13487,7 +13481,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13495,7 +13489,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13503,7 +13497,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13511,7 +13505,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13521,7 +13515,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13529,7 +13523,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;0000000000000000*******");
                                     assert(ios.width() == 0);
@@ -13537,7 +13531,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13545,7 +13539,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13561,7 +13555,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13569,7 +13563,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13577,7 +13571,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13585,7 +13579,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13595,7 +13589,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13603,7 +13597,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13611,7 +13605,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13619,7 +13613,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13632,7 +13626,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13640,7 +13634,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13648,7 +13642,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13656,7 +13650,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -13666,7 +13660,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13674,7 +13668,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -13682,7 +13676,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******+0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13690,7 +13684,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -13712,7 +13706,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13720,7 +13714,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13728,7 +13722,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13736,7 +13730,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13746,7 +13740,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13754,7 +13748,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13762,7 +13756,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13770,7 +13764,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13783,7 +13777,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13791,7 +13785,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13799,7 +13793,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13807,7 +13801,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13817,7 +13811,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13825,7 +13819,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13833,7 +13827,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13841,7 +13835,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13857,7 +13851,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13865,7 +13859,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13873,7 +13867,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13881,7 +13875,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13891,7 +13885,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13899,7 +13893,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13907,7 +13901,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13915,7 +13909,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13928,7 +13922,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13936,7 +13930,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13944,7 +13938,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13952,7 +13946,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13962,7 +13956,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13970,7 +13964,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13978,7 +13972,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -13986,7 +13980,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14005,7 +13999,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14013,7 +14007,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14021,7 +14015,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14029,7 +14023,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14039,7 +14033,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14047,7 +14041,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14055,7 +14049,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14063,7 +14057,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14076,7 +14070,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14084,7 +14078,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14092,7 +14086,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14100,7 +14094,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14110,7 +14104,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14118,7 +14112,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14126,7 +14120,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14134,7 +14128,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14150,7 +14144,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14158,7 +14152,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14166,7 +14160,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14174,7 +14168,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14184,7 +14178,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14192,7 +14186,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14200,7 +14194,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14208,7 +14202,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14221,7 +14215,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14229,7 +14223,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14237,7 +14231,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14245,7 +14239,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14255,7 +14249,7 @@ void test6()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14263,7 +14257,7 @@ void test6()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14271,7 +14265,7 @@ void test6()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14279,7 +14273,7 @@ void test6()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -14296,7 +14290,6 @@ void test6()
 void test7()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -14318,7 +14311,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14326,7 +14319,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14334,7 +14327,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14342,7 +14335,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14352,7 +14345,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14360,7 +14353,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14368,7 +14361,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14376,7 +14369,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14389,7 +14382,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -14397,7 +14390,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -14405,7 +14398,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -14413,7 +14406,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -14423,7 +14416,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -14431,7 +14424,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -14439,7 +14432,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -14447,7 +14440,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -14463,7 +14456,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14471,7 +14464,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14479,7 +14472,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14487,7 +14480,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14497,7 +14490,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14505,7 +14498,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14513,7 +14506,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14521,7 +14514,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14534,7 +14527,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -14542,7 +14535,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -14550,7 +14543,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -14558,7 +14551,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -14568,7 +14561,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -14576,7 +14569,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -14584,7 +14577,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -14592,7 +14585,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -14611,7 +14604,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14619,7 +14612,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14627,7 +14620,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14635,7 +14628,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14645,7 +14638,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14653,7 +14646,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14661,7 +14654,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14669,7 +14662,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14682,7 +14675,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -14690,7 +14683,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -14698,7 +14691,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -14706,7 +14699,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -14716,7 +14709,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -14724,7 +14717,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -14732,7 +14725,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -14740,7 +14733,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -14756,7 +14749,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14764,7 +14757,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14772,7 +14765,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14780,7 +14773,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14790,7 +14783,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0");
                                     assert(ios.width() == 0);
@@ -14798,7 +14791,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0***********************");
                                     assert(ios.width() == 0);
@@ -14806,7 +14799,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********************-0");
                                     assert(ios.width() == 0);
@@ -14814,7 +14807,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-***********************0");
                                     assert(ios.width() == 0);
@@ -14827,7 +14820,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.");
                                     assert(ios.width() == 0);
@@ -14835,7 +14828,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.**********************");
                                     assert(ios.width() == 0);
@@ -14843,7 +14836,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0.");
                                     assert(ios.width() == 0);
@@ -14851,7 +14844,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0.");
                                     assert(ios.width() == 0);
@@ -14861,7 +14854,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;");
                                     assert(ios.width() == 0);
@@ -14869,7 +14862,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;**********************");
                                     assert(ios.width() == 0);
@@ -14877,7 +14870,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********************-0;");
                                     assert(ios.width() == 0);
@@ -14885,7 +14878,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-**********************0;");
                                     assert(ios.width() == 0);
@@ -14907,7 +14900,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -14915,7 +14908,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -14923,7 +14916,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -14931,7 +14924,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -14941,7 +14934,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -14949,7 +14942,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -14957,7 +14950,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -14965,7 +14958,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -14978,7 +14971,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -14986,7 +14979,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -14994,7 +14987,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15002,7 +14995,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15012,7 +15005,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15020,7 +15013,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15028,7 +15021,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15036,7 +15029,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15052,7 +15045,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15060,7 +15053,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15068,7 +15061,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15076,7 +15069,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15086,7 +15079,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15094,7 +15087,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15102,7 +15095,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15110,7 +15103,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15123,7 +15116,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15131,7 +15124,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15139,7 +15132,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15147,7 +15140,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15157,7 +15150,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15165,7 +15158,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15173,7 +15166,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15181,7 +15174,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15200,7 +15193,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15208,7 +15201,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15216,7 +15209,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15224,7 +15217,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15234,7 +15227,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15242,7 +15235,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15250,7 +15243,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15258,7 +15251,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15271,7 +15264,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15279,7 +15272,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15287,7 +15280,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15295,7 +15288,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15305,7 +15298,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15313,7 +15306,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15321,7 +15314,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15329,7 +15322,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15345,7 +15338,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15353,7 +15346,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15361,7 +15354,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15369,7 +15362,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15379,7 +15372,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15387,7 +15380,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15395,7 +15388,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15403,7 +15396,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15416,7 +15409,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0");
                                     assert(ios.width() == 0);
@@ -15424,7 +15417,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0*********************");
                                     assert(ios.width() == 0);
@@ -15432,7 +15425,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0.0");
                                     assert(ios.width() == 0);
@@ -15440,7 +15433,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0.0");
                                     assert(ios.width() == 0);
@@ -15450,7 +15443,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0");
                                     assert(ios.width() == 0);
@@ -15458,7 +15451,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0*********************");
                                     assert(ios.width() == 0);
@@ -15466,7 +15459,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********************-0;0");
                                     assert(ios.width() == 0);
@@ -15474,7 +15467,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*********************0;0");
                                     assert(ios.width() == 0);
@@ -15496,7 +15489,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15504,7 +15497,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15512,7 +15505,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15520,7 +15513,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15530,7 +15523,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15538,7 +15531,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15546,7 +15539,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15554,7 +15547,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15567,7 +15560,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15575,7 +15568,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15583,7 +15576,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15591,7 +15584,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15601,7 +15594,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15609,7 +15602,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15617,7 +15610,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15625,7 +15618,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15641,7 +15634,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15649,7 +15642,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15657,7 +15650,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15665,7 +15658,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15675,7 +15668,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15683,7 +15676,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15691,7 +15684,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15699,7 +15692,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15712,7 +15705,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15720,7 +15713,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15728,7 +15721,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15736,7 +15729,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15746,7 +15739,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15754,7 +15747,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15762,7 +15755,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15770,7 +15763,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15789,7 +15782,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15797,7 +15790,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15805,7 +15798,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15813,7 +15806,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15823,7 +15816,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15831,7 +15824,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15839,7 +15832,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15847,7 +15840,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15860,7 +15853,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15868,7 +15861,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15876,7 +15869,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15884,7 +15877,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15894,7 +15887,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15902,7 +15895,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15910,7 +15903,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15918,7 +15911,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -15934,7 +15927,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -15942,7 +15935,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -15950,7 +15943,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -15958,7 +15951,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -15968,7 +15961,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -15976,7 +15969,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -15984,7 +15977,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -15992,7 +15985,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -16005,7 +15998,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000");
                                     assert(ios.width() == 0);
@@ -16013,7 +16006,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000****************");
                                     assert(ios.width() == 0);
@@ -16021,7 +16014,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0.000000");
                                     assert(ios.width() == 0);
@@ -16029,7 +16022,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0.000000");
                                     assert(ios.width() == 0);
@@ -16039,7 +16032,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000");
                                     assert(ios.width() == 0);
@@ -16047,7 +16040,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000****************");
                                     assert(ios.width() == 0);
@@ -16055,7 +16048,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****************-0;000000");
                                     assert(ios.width() == 0);
@@ -16063,7 +16056,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-****************0;000000");
                                     assert(ios.width() == 0);
@@ -16085,7 +16078,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16093,7 +16086,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16101,7 +16094,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16109,7 +16102,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16119,7 +16112,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16127,7 +16120,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16135,7 +16128,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16143,7 +16136,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16156,7 +16149,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16164,7 +16157,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16172,7 +16165,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16180,7 +16173,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16190,7 +16183,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16198,7 +16191,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16206,7 +16199,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16214,7 +16207,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16230,7 +16223,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16238,7 +16231,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16246,7 +16239,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16254,7 +16247,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16264,7 +16257,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16272,7 +16265,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16280,7 +16273,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16288,7 +16281,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16301,7 +16294,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16309,7 +16302,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16317,7 +16310,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16325,7 +16318,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16335,7 +16328,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16343,7 +16336,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16351,7 +16344,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16359,7 +16352,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16378,7 +16371,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16386,7 +16379,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16394,7 +16387,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16402,7 +16395,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16412,7 +16405,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16420,7 +16413,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16428,7 +16421,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16436,7 +16429,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16449,7 +16442,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16457,7 +16450,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16465,7 +16458,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16473,7 +16466,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16483,7 +16476,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16491,7 +16484,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16499,7 +16492,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16507,7 +16500,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16523,7 +16516,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16531,7 +16524,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16539,7 +16532,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16547,7 +16540,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16557,7 +16550,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16565,7 +16558,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16573,7 +16566,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16581,7 +16574,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16594,7 +16587,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16602,7 +16595,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16610,7 +16603,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16618,7 +16611,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0.0000000000000000");
                                     assert(ios.width() == 0);
@@ -16628,7 +16621,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16636,7 +16629,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0000000000000000******");
                                     assert(ios.width() == 0);
@@ -16644,7 +16637,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******-0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16652,7 +16645,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******0;0000000000000000");
                                     assert(ios.width() == 0);
@@ -16674,7 +16667,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16682,7 +16675,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16690,7 +16683,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16698,7 +16691,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16708,7 +16701,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16716,7 +16709,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16724,7 +16717,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16732,7 +16725,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16745,7 +16738,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16753,7 +16746,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16761,7 +16754,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16769,7 +16762,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16779,7 +16772,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16787,7 +16780,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16795,7 +16788,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16803,7 +16796,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16819,7 +16812,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16827,7 +16820,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16835,7 +16828,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16843,7 +16836,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16853,7 +16846,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16861,7 +16854,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16869,7 +16862,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16877,7 +16870,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16890,7 +16883,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16898,7 +16891,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16906,7 +16899,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16914,7 +16907,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16924,7 +16917,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16932,7 +16925,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16940,7 +16933,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16948,7 +16941,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16967,7 +16960,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16975,7 +16968,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16983,7 +16976,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -16991,7 +16984,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17001,7 +16994,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17009,7 +17002,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17017,7 +17010,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17025,7 +17018,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17038,7 +17031,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17046,7 +17039,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17054,7 +17047,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17062,7 +17055,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17072,7 +17065,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17080,7 +17073,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17088,7 +17081,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17096,7 +17089,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17112,7 +17105,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17120,7 +17113,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17128,7 +17121,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17136,7 +17129,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17146,7 +17139,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17154,7 +17147,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17162,7 +17155,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17170,7 +17163,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17183,7 +17176,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17191,7 +17184,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17199,7 +17192,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17207,7 +17200,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17217,7 +17210,7 @@ void test7()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17225,7 +17218,7 @@ void test7()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17233,7 +17226,7 @@ void test7()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17241,7 +17234,7 @@ void test7()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
                                     assert(ios.width() == 0);
@@ -17258,7 +17251,6 @@ void test7()
 void test8()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -17280,7 +17272,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890");
                                     assert(ios.width() == 0);
@@ -17288,7 +17280,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890***************");
                                     assert(ios.width() == 0);
@@ -17296,7 +17288,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -17304,7 +17296,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -17314,7 +17306,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17322,7 +17314,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0***********");
                                     assert(ios.width() == 0);
@@ -17330,7 +17322,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17338,7 +17330,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17351,7 +17343,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.");
                                     assert(ios.width() == 0);
@@ -17359,7 +17351,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.**************");
                                     assert(ios.width() == 0);
@@ -17367,7 +17359,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -17375,7 +17367,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -17385,7 +17377,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17393,7 +17385,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;**********");
                                     assert(ios.width() == 0);
@@ -17401,7 +17393,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17409,7 +17401,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17425,7 +17417,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890");
                                     assert(ios.width() == 0);
@@ -17433,7 +17425,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890**************");
                                     assert(ios.width() == 0);
@@ -17441,7 +17433,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************+1234567890");
                                     assert(ios.width() == 0);
@@ -17449,7 +17441,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**************1234567890");
                                     assert(ios.width() == 0);
@@ -17459,7 +17451,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17467,7 +17459,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0**********");
                                     assert(ios.width() == 0);
@@ -17475,7 +17467,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17483,7 +17475,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17496,7 +17488,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.");
                                     assert(ios.width() == 0);
@@ -17504,7 +17496,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.*************");
                                     assert(ios.width() == 0);
@@ -17512,7 +17504,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1234567890.");
                                     assert(ios.width() == 0);
@@ -17520,7 +17512,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1234567890.");
                                     assert(ios.width() == 0);
@@ -17530,7 +17522,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17538,7 +17530,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;*********");
                                     assert(ios.width() == 0);
@@ -17546,7 +17538,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17554,7 +17546,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17573,7 +17565,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890");
                                     assert(ios.width() == 0);
@@ -17581,7 +17573,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890***************");
                                     assert(ios.width() == 0);
@@ -17589,7 +17581,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -17597,7 +17589,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***************1234567890");
                                     assert(ios.width() == 0);
@@ -17607,7 +17599,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17615,7 +17607,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0***********");
                                     assert(ios.width() == 0);
@@ -17623,7 +17615,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17631,7 +17623,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17644,7 +17636,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.");
                                     assert(ios.width() == 0);
@@ -17652,7 +17644,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.**************");
                                     assert(ios.width() == 0);
@@ -17660,7 +17652,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -17668,7 +17660,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************1234567890.");
                                     assert(ios.width() == 0);
@@ -17678,7 +17670,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17686,7 +17678,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;**********");
                                     assert(ios.width() == 0);
@@ -17694,7 +17686,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17702,7 +17694,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17718,7 +17710,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890");
                                     assert(ios.width() == 0);
@@ -17726,7 +17718,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890**************");
                                     assert(ios.width() == 0);
@@ -17734,7 +17726,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**************+1234567890");
                                     assert(ios.width() == 0);
@@ -17742,7 +17734,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**************1234567890");
                                     assert(ios.width() == 0);
@@ -17752,7 +17744,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17760,7 +17752,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0**********");
                                     assert(ios.width() == 0);
@@ -17768,7 +17760,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "**********+1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17776,7 +17768,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+**********1_234_567_89_0");
                                     assert(ios.width() == 0);
@@ -17789,7 +17781,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.");
                                     assert(ios.width() == 0);
@@ -17797,7 +17789,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.*************");
                                     assert(ios.width() == 0);
@@ -17805,7 +17797,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************+1234567890.");
                                     assert(ios.width() == 0);
@@ -17813,7 +17805,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*************1234567890.");
                                     assert(ios.width() == 0);
@@ -17823,7 +17815,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17831,7 +17823,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;*********");
                                     assert(ios.width() == 0);
@@ -17839,7 +17831,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********+1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17847,7 +17839,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*********1_234_567_89_0;");
                                     assert(ios.width() == 0);
@@ -17869,7 +17861,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -17877,7 +17869,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -17885,7 +17877,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -17893,7 +17885,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -17903,7 +17895,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -17911,7 +17903,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -17919,7 +17911,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -17927,7 +17919,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -17940,7 +17932,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -17948,7 +17940,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -17956,7 +17948,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -17964,7 +17956,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -17974,7 +17966,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -17982,7 +17974,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -17990,7 +17982,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -17998,7 +17990,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18014,7 +18006,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18022,7 +18014,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -18030,7 +18022,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18038,7 +18030,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18048,7 +18040,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18056,7 +18048,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -18064,7 +18056,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18072,7 +18064,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18085,7 +18077,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18093,7 +18085,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -18101,7 +18093,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18109,7 +18101,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18119,7 +18111,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18127,7 +18119,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -18135,7 +18127,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18143,7 +18135,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18162,7 +18154,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -18170,7 +18162,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -18178,7 +18170,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18186,7 +18178,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18196,7 +18188,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18204,7 +18196,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -18212,7 +18204,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18220,7 +18212,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18233,7 +18225,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1");
                                     assert(ios.width() == 0);
@@ -18241,7 +18233,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.1*************");
                                     assert(ios.width() == 0);
@@ -18249,7 +18241,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18257,7 +18249,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18267,7 +18259,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18275,7 +18267,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;1*********");
                                     assert(ios.width() == 0);
@@ -18283,7 +18275,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18291,7 +18283,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18307,7 +18299,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18315,7 +18307,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -18323,7 +18315,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18331,7 +18323,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18341,7 +18333,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18349,7 +18341,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -18357,7 +18349,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18365,7 +18357,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18378,7 +18370,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18386,7 +18378,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.1************");
                                     assert(ios.width() == 0);
@@ -18394,7 +18386,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************+1234567890.1");
                                     assert(ios.width() == 0);
@@ -18402,7 +18394,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+************1234567890.1");
                                     assert(ios.width() == 0);
@@ -18412,7 +18404,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18420,7 +18412,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;1********");
                                     assert(ios.width() == 0);
@@ -18428,7 +18420,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18436,7 +18428,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********1_234_567_89_0;1");
                                     assert(ios.width() == 0);
@@ -18458,7 +18450,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18466,7 +18458,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -18474,7 +18466,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18482,7 +18474,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18492,7 +18484,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18500,7 +18492,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -18508,7 +18500,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18516,7 +18508,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18529,7 +18521,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18537,7 +18529,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -18545,7 +18537,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18553,7 +18545,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18563,7 +18555,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18571,7 +18563,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -18579,7 +18571,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18587,7 +18579,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18603,7 +18595,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18611,7 +18603,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -18619,7 +18611,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18627,7 +18619,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18637,7 +18629,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18645,7 +18637,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -18653,7 +18645,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18661,7 +18653,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18674,7 +18666,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18682,7 +18674,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -18690,7 +18682,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18698,7 +18690,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18708,7 +18700,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18716,7 +18708,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -18724,7 +18716,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18732,7 +18724,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18751,7 +18743,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18759,7 +18751,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -18767,7 +18759,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18775,7 +18767,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18785,7 +18777,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18793,7 +18785,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -18801,7 +18793,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18809,7 +18801,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18822,7 +18814,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18830,7 +18822,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1234567890.125000********");
                                     assert(ios.width() == 0);
@@ -18838,7 +18830,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18846,7 +18838,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18856,7 +18848,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18864,7 +18856,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1_234_567_89_0;125000****");
                                     assert(ios.width() == 0);
@@ -18872,7 +18864,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18880,7 +18872,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "****1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18896,7 +18888,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18904,7 +18896,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -18912,7 +18904,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18920,7 +18912,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18930,7 +18922,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18938,7 +18930,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -18946,7 +18938,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18954,7 +18946,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -18967,7 +18959,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18975,7 +18967,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1234567890.125000*******");
                                     assert(ios.width() == 0);
@@ -18983,7 +18975,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******+1234567890.125000");
                                     assert(ios.width() == 0);
@@ -18991,7 +18983,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******1234567890.125000");
                                     assert(ios.width() == 0);
@@ -19001,7 +18993,7 @@ void test8()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -19009,7 +19001,7 @@ void test8()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1_234_567_89_0;125000***");
                                     assert(ios.width() == 0);
@@ -19017,7 +19009,7 @@ void test8()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "***+1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -19025,7 +19017,7 @@ void test8()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+***1_234_567_89_0;125000");
                                     assert(ios.width() == 0);
@@ -19046,7 +19038,6 @@ void test8()
 void test9()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -19068,7 +19059,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -19076,7 +19067,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -19084,7 +19075,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -19092,7 +19083,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -19102,7 +19093,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -19110,7 +19101,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -19118,7 +19109,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -19126,7 +19117,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -19139,7 +19130,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00");
                                     assert(ios.width() == 0);
@@ -19147,7 +19138,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00******************");
                                     assert(ios.width() == 0);
@@ -19155,7 +19146,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.e+00");
                                     assert(ios.width() == 0);
@@ -19163,7 +19154,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.e+00");
                                     assert(ios.width() == 0);
@@ -19173,7 +19164,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00");
                                     assert(ios.width() == 0);
@@ -19181,7 +19172,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00******************");
                                     assert(ios.width() == 0);
@@ -19189,7 +19180,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;e+00");
                                     assert(ios.width() == 0);
@@ -19197,7 +19188,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;e+00");
                                     assert(ios.width() == 0);
@@ -19213,7 +19204,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -19221,7 +19212,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -19229,7 +19220,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -19237,7 +19228,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -19247,7 +19238,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00");
                                     assert(ios.width() == 0);
@@ -19255,7 +19246,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0e+00*******************");
                                     assert(ios.width() == 0);
@@ -19263,7 +19254,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0e+00");
                                     assert(ios.width() == 0);
@@ -19271,7 +19262,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0e+00");
                                     assert(ios.width() == 0);
@@ -19284,7 +19275,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00");
                                     assert(ios.width() == 0);
@@ -19292,7 +19283,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.e+00******************");
                                     assert(ios.width() == 0);
@@ -19300,7 +19291,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.e+00");
                                     assert(ios.width() == 0);
@@ -19308,7 +19299,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.e+00");
                                     assert(ios.width() == 0);
@@ -19318,7 +19309,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00");
                                     assert(ios.width() == 0);
@@ -19326,7 +19317,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;e+00******************");
                                     assert(ios.width() == 0);
@@ -19334,7 +19325,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;e+00");
                                     assert(ios.width() == 0);
@@ -19342,7 +19333,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;e+00");
                                     assert(ios.width() == 0);
@@ -19361,7 +19352,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -19369,7 +19360,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -19377,7 +19368,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -19385,7 +19376,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -19395,7 +19386,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -19403,7 +19394,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -19411,7 +19402,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -19419,7 +19410,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -19432,7 +19423,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00");
                                     assert(ios.width() == 0);
@@ -19440,7 +19431,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00******************");
                                     assert(ios.width() == 0);
@@ -19448,7 +19439,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.E+00");
                                     assert(ios.width() == 0);
@@ -19456,7 +19447,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.E+00");
                                     assert(ios.width() == 0);
@@ -19466,7 +19457,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00");
                                     assert(ios.width() == 0);
@@ -19474,7 +19465,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00******************");
                                     assert(ios.width() == 0);
@@ -19482,7 +19473,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;E+00");
                                     assert(ios.width() == 0);
@@ -19490,7 +19481,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;E+00");
                                     assert(ios.width() == 0);
@@ -19506,7 +19497,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -19514,7 +19505,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -19522,7 +19513,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -19530,7 +19521,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -19540,7 +19531,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00");
                                     assert(ios.width() == 0);
@@ -19548,7 +19539,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0E+00*******************");
                                     assert(ios.width() == 0);
@@ -19556,7 +19547,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************-0E+00");
                                     assert(ios.width() == 0);
@@ -19564,7 +19555,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*******************0E+00");
                                     assert(ios.width() == 0);
@@ -19577,7 +19568,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00");
                                     assert(ios.width() == 0);
@@ -19585,7 +19576,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.E+00******************");
                                     assert(ios.width() == 0);
@@ -19593,7 +19584,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0.E+00");
                                     assert(ios.width() == 0);
@@ -19601,7 +19592,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0.E+00");
                                     assert(ios.width() == 0);
@@ -19611,7 +19602,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00");
                                     assert(ios.width() == 0);
@@ -19619,7 +19610,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;E+00******************");
                                     assert(ios.width() == 0);
@@ -19627,7 +19618,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0;E+00");
                                     assert(ios.width() == 0);
@@ -19635,7 +19626,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0;E+00");
                                     assert(ios.width() == 0);
@@ -19657,7 +19648,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19665,7 +19656,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19673,7 +19664,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19681,7 +19672,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -19691,7 +19682,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19699,7 +19690,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19707,7 +19698,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19715,7 +19706,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -19728,7 +19719,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19736,7 +19727,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19744,7 +19735,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19752,7 +19743,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -19762,7 +19753,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19770,7 +19761,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19778,7 +19769,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19786,7 +19777,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -19802,7 +19793,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19810,7 +19801,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19818,7 +19809,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19826,7 +19817,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -19836,7 +19827,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19844,7 +19835,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19852,7 +19843,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19860,7 +19851,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -19873,7 +19864,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19881,7 +19872,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19889,7 +19880,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0e+00");
                                     assert(ios.width() == 0);
@@ -19897,7 +19888,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0e+00");
                                     assert(ios.width() == 0);
@@ -19907,7 +19898,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19915,7 +19906,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0e+00*****************");
                                     assert(ios.width() == 0);
@@ -19923,7 +19914,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0e+00");
                                     assert(ios.width() == 0);
@@ -19931,7 +19922,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0e+00");
                                     assert(ios.width() == 0);
@@ -19950,7 +19941,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -19958,7 +19949,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -19966,7 +19957,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -19974,7 +19965,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -19984,7 +19975,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -19992,7 +19983,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20000,7 +19991,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20008,7 +19999,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -20021,7 +20012,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20029,7 +20020,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20037,7 +20028,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20045,7 +20036,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -20055,7 +20046,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20063,7 +20054,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20071,7 +20062,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20079,7 +20070,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -20095,7 +20086,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20103,7 +20094,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20111,7 +20102,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20119,7 +20110,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -20129,7 +20120,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20137,7 +20128,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20145,7 +20136,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20153,7 +20144,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -20166,7 +20157,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20174,7 +20165,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20182,7 +20173,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0.0E+00");
                                     assert(ios.width() == 0);
@@ -20190,7 +20181,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0.0E+00");
                                     assert(ios.width() == 0);
@@ -20200,7 +20191,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20208,7 +20199,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;0E+00*****************");
                                     assert(ios.width() == 0);
@@ -20216,7 +20207,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0;0E+00");
                                     assert(ios.width() == 0);
@@ -20224,7 +20215,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0;0E+00");
                                     assert(ios.width() == 0);
@@ -20246,7 +20237,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20254,7 +20245,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -20262,7 +20253,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20270,7 +20261,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20280,7 +20271,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20288,7 +20279,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -20296,7 +20287,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20304,7 +20295,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20317,7 +20308,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20325,7 +20316,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -20333,7 +20324,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20341,7 +20332,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20351,7 +20342,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20359,7 +20350,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -20367,7 +20358,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20375,7 +20366,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20391,7 +20382,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20399,7 +20390,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -20407,7 +20398,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20415,7 +20406,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20425,7 +20416,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20433,7 +20424,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -20441,7 +20432,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20449,7 +20440,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20462,7 +20453,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20470,7 +20461,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000e+00************");
                                     assert(ios.width() == 0);
@@ -20478,7 +20469,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20486,7 +20477,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000e+00");
                                     assert(ios.width() == 0);
@@ -20496,7 +20487,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20504,7 +20495,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000e+00************");
                                     assert(ios.width() == 0);
@@ -20512,7 +20503,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20520,7 +20511,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000e+00");
                                     assert(ios.width() == 0);
@@ -20539,7 +20530,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20547,7 +20538,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -20555,7 +20546,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20563,7 +20554,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20573,7 +20564,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20581,7 +20572,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -20589,7 +20580,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20597,7 +20588,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20610,7 +20601,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20618,7 +20609,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -20626,7 +20617,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20634,7 +20625,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20644,7 +20635,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20652,7 +20643,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -20660,7 +20651,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20668,7 +20659,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20684,7 +20675,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20692,7 +20683,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -20700,7 +20691,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20708,7 +20699,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20718,7 +20709,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20726,7 +20717,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -20734,7 +20725,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20742,7 +20733,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20755,7 +20746,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20763,7 +20754,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0.000000E+00************");
                                     assert(ios.width() == 0);
@@ -20771,7 +20762,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20779,7 +20770,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0.000000E+00");
                                     assert(ios.width() == 0);
@@ -20789,7 +20780,7 @@ void test9()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20797,7 +20788,7 @@ void test9()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0;000000E+00************");
                                     assert(ios.width() == 0);
@@ -20805,7 +20796,7 @@ void test9()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "************-0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20813,7 +20804,7 @@ void test9()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-************0;000000E+00");
                                     assert(ios.width() == 0);
@@ -20836,7 +20827,6 @@ void test9()
 void test10()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -20858,7 +20848,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -20866,7 +20856,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -20874,7 +20864,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -20882,7 +20872,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -20892,7 +20882,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09");
                                     assert(ios.width() == 0);
@@ -20900,7 +20890,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1e+09********************");
                                     assert(ios.width() == 0);
@@ -20908,7 +20898,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -20916,7 +20906,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1e+09");
                                     assert(ios.width() == 0);
@@ -20929,7 +20919,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09");
                                     assert(ios.width() == 0);
@@ -20937,7 +20927,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.e+09*******************");
                                     assert(ios.width() == 0);
@@ -20945,7 +20935,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -20953,7 +20943,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.e+09");
                                     assert(ios.width() == 0);
@@ -20963,7 +20953,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09");
                                     assert(ios.width() == 0);
@@ -20971,7 +20961,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;e+09*******************");
                                     assert(ios.width() == 0);
@@ -20979,7 +20969,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -20987,7 +20977,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;e+09");
                                     assert(ios.width() == 0);
@@ -21003,7 +20993,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -21011,7 +21001,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -21019,7 +21009,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -21027,7 +21017,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -21037,7 +21027,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09");
                                     assert(ios.width() == 0);
@@ -21045,7 +21035,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1e+09*******************");
                                     assert(ios.width() == 0);
@@ -21053,7 +21043,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1e+09");
                                     assert(ios.width() == 0);
@@ -21061,7 +21051,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1e+09");
                                     assert(ios.width() == 0);
@@ -21074,7 +21064,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09");
                                     assert(ios.width() == 0);
@@ -21082,7 +21072,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.e+09******************");
                                     assert(ios.width() == 0);
@@ -21090,7 +21080,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.e+09");
                                     assert(ios.width() == 0);
@@ -21098,7 +21088,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.e+09");
                                     assert(ios.width() == 0);
@@ -21108,7 +21098,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09");
                                     assert(ios.width() == 0);
@@ -21116,7 +21106,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;e+09******************");
                                     assert(ios.width() == 0);
@@ -21124,7 +21114,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;e+09");
                                     assert(ios.width() == 0);
@@ -21132,7 +21122,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;e+09");
                                     assert(ios.width() == 0);
@@ -21151,7 +21141,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -21159,7 +21149,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -21167,7 +21157,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -21175,7 +21165,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -21185,7 +21175,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09");
                                     assert(ios.width() == 0);
@@ -21193,7 +21183,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1E+09********************");
                                     assert(ios.width() == 0);
@@ -21201,7 +21191,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -21209,7 +21199,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********************1E+09");
                                     assert(ios.width() == 0);
@@ -21222,7 +21212,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09");
                                     assert(ios.width() == 0);
@@ -21230,7 +21220,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.E+09*******************");
                                     assert(ios.width() == 0);
@@ -21238,7 +21228,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -21246,7 +21236,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1.E+09");
                                     assert(ios.width() == 0);
@@ -21256,7 +21246,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09");
                                     assert(ios.width() == 0);
@@ -21264,7 +21254,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;E+09*******************");
                                     assert(ios.width() == 0);
@@ -21272,7 +21262,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -21280,7 +21270,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************1;E+09");
                                     assert(ios.width() == 0);
@@ -21296,7 +21286,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -21304,7 +21294,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -21312,7 +21302,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -21320,7 +21310,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -21330,7 +21320,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09");
                                     assert(ios.width() == 0);
@@ -21338,7 +21328,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1E+09*******************");
                                     assert(ios.width() == 0);
@@ -21346,7 +21336,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*******************+1E+09");
                                     assert(ios.width() == 0);
@@ -21354,7 +21344,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*******************1E+09");
                                     assert(ios.width() == 0);
@@ -21367,7 +21357,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09");
                                     assert(ios.width() == 0);
@@ -21375,7 +21365,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.E+09******************");
                                     assert(ios.width() == 0);
@@ -21383,7 +21373,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1.E+09");
                                     assert(ios.width() == 0);
@@ -21391,7 +21381,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1.E+09");
                                     assert(ios.width() == 0);
@@ -21401,7 +21391,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09");
                                     assert(ios.width() == 0);
@@ -21409,7 +21399,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;E+09******************");
                                     assert(ios.width() == 0);
@@ -21417,7 +21407,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************+1;E+09");
                                     assert(ios.width() == 0);
@@ -21425,7 +21415,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+******************1;E+09");
                                     assert(ios.width() == 0);
@@ -21447,7 +21437,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09");
                                     assert(ios.width() == 0);
@@ -21455,7 +21445,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09******************");
                                     assert(ios.width() == 0);
@@ -21463,7 +21453,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21471,7 +21461,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21481,7 +21471,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09");
                                     assert(ios.width() == 0);
@@ -21489,7 +21479,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09******************");
                                     assert(ios.width() == 0);
@@ -21497,7 +21487,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21505,7 +21495,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21518,7 +21508,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09");
                                     assert(ios.width() == 0);
@@ -21526,7 +21516,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2e+09******************");
                                     assert(ios.width() == 0);
@@ -21534,7 +21524,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21542,7 +21532,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21552,7 +21542,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09");
                                     assert(ios.width() == 0);
@@ -21560,7 +21550,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2e+09******************");
                                     assert(ios.width() == 0);
@@ -21568,7 +21558,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21576,7 +21566,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21592,7 +21582,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09");
                                     assert(ios.width() == 0);
@@ -21600,7 +21590,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09*****************");
                                     assert(ios.width() == 0);
@@ -21608,7 +21598,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2e+09");
                                     assert(ios.width() == 0);
@@ -21616,7 +21606,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21626,7 +21616,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09");
                                     assert(ios.width() == 0);
@@ -21634,7 +21624,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09*****************");
                                     assert(ios.width() == 0);
@@ -21642,7 +21632,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2e+09");
                                     assert(ios.width() == 0);
@@ -21650,7 +21640,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21663,7 +21653,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09");
                                     assert(ios.width() == 0);
@@ -21671,7 +21661,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2e+09*****************");
                                     assert(ios.width() == 0);
@@ -21679,7 +21669,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2e+09");
                                     assert(ios.width() == 0);
@@ -21687,7 +21677,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2e+09");
                                     assert(ios.width() == 0);
@@ -21697,7 +21687,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09");
                                     assert(ios.width() == 0);
@@ -21705,7 +21695,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2e+09*****************");
                                     assert(ios.width() == 0);
@@ -21713,7 +21703,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2e+09");
                                     assert(ios.width() == 0);
@@ -21721,7 +21711,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2e+09");
                                     assert(ios.width() == 0);
@@ -21740,7 +21730,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09");
                                     assert(ios.width() == 0);
@@ -21748,7 +21738,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09******************");
                                     assert(ios.width() == 0);
@@ -21756,7 +21746,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21764,7 +21754,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21774,7 +21764,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09");
                                     assert(ios.width() == 0);
@@ -21782,7 +21772,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09******************");
                                     assert(ios.width() == 0);
@@ -21790,7 +21780,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -21798,7 +21788,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -21811,7 +21801,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09");
                                     assert(ios.width() == 0);
@@ -21819,7 +21809,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.2E+09******************");
                                     assert(ios.width() == 0);
@@ -21827,7 +21817,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21835,7 +21825,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21845,7 +21835,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09");
                                     assert(ios.width() == 0);
@@ -21853,7 +21843,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;2E+09******************");
                                     assert(ios.width() == 0);
@@ -21861,7 +21851,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -21869,7 +21859,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************1;2E+09");
                                     assert(ios.width() == 0);
@@ -21885,7 +21875,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09");
                                     assert(ios.width() == 0);
@@ -21893,7 +21883,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09*****************");
                                     assert(ios.width() == 0);
@@ -21901,7 +21891,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2E+09");
                                     assert(ios.width() == 0);
@@ -21909,7 +21899,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21919,7 +21909,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09");
                                     assert(ios.width() == 0);
@@ -21927,7 +21917,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09*****************");
                                     assert(ios.width() == 0);
@@ -21935,7 +21925,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2E+09");
                                     assert(ios.width() == 0);
@@ -21943,7 +21933,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2E+09");
                                     assert(ios.width() == 0);
@@ -21956,7 +21946,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09");
                                     assert(ios.width() == 0);
@@ -21964,7 +21954,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.2E+09*****************");
                                     assert(ios.width() == 0);
@@ -21972,7 +21962,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1.2E+09");
                                     assert(ios.width() == 0);
@@ -21980,7 +21970,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1.2E+09");
                                     assert(ios.width() == 0);
@@ -21990,7 +21980,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09");
                                     assert(ios.width() == 0);
@@ -21998,7 +21988,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;2E+09*****************");
                                     assert(ios.width() == 0);
@@ -22006,7 +21996,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************+1;2E+09");
                                     assert(ios.width() == 0);
@@ -22014,7 +22004,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+*****************1;2E+09");
                                     assert(ios.width() == 0);
@@ -22042,7 +22032,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22050,7 +22040,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22058,7 +22048,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22066,7 +22056,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22076,7 +22066,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22084,7 +22074,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22092,7 +22082,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22100,7 +22090,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22113,7 +22103,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22121,7 +22111,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22129,7 +22119,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22137,7 +22127,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22147,7 +22137,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22155,7 +22145,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22163,7 +22153,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22171,7 +22161,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22187,7 +22177,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22195,7 +22185,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22203,7 +22193,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22211,7 +22201,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22221,7 +22211,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22229,7 +22219,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22237,7 +22227,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22245,7 +22235,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22258,7 +22248,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22266,7 +22256,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22274,7 +22264,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22282,7 +22272,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22292,7 +22282,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22300,7 +22290,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22308,7 +22298,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22316,7 +22306,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
                                     assert(ios.width() == 0);
@@ -22335,7 +22325,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22343,7 +22333,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22351,7 +22341,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22359,7 +22349,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22369,7 +22359,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22377,7 +22367,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22385,7 +22375,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22393,7 +22383,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22406,7 +22396,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22414,7 +22404,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22422,7 +22412,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22430,7 +22420,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22440,7 +22430,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22448,7 +22438,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22456,7 +22446,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22464,7 +22454,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22480,7 +22470,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22488,7 +22478,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22496,7 +22486,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22504,7 +22494,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22514,7 +22504,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22522,7 +22512,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22530,7 +22520,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22538,7 +22528,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22551,7 +22541,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22559,7 +22549,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22567,7 +22557,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22575,7 +22565,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22585,7 +22575,7 @@ void test10()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22593,7 +22583,7 @@ void test10()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22601,7 +22591,7 @@ void test10()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22609,7 +22599,7 @@ void test10()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
                                     assert(ios.width() == 0);
@@ -22626,7 +22616,6 @@ void test10()
 void test11()
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
@@ -22648,7 +22637,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22656,7 +22645,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -22664,7 +22653,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22672,7 +22661,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -22682,7 +22671,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22690,7 +22679,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -22698,7 +22687,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22706,7 +22695,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -22719,7 +22708,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22727,7 +22716,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -22735,7 +22724,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22743,7 +22732,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22753,7 +22742,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22761,7 +22750,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -22769,7 +22758,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22777,7 +22766,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22793,7 +22782,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22801,7 +22790,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -22809,7 +22798,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22817,7 +22806,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -22827,7 +22816,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22835,7 +22824,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -22843,7 +22832,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -22851,7 +22840,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -22864,7 +22853,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22872,7 +22861,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -22880,7 +22869,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22888,7 +22877,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -22898,7 +22887,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22906,7 +22895,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -22914,7 +22903,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22922,7 +22911,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -22941,7 +22930,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -22949,7 +22938,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -22957,7 +22946,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -22965,7 +22954,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -22975,7 +22964,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -22983,7 +22972,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -22991,7 +22980,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -22999,7 +22988,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23012,7 +23001,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23020,7 +23009,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -23028,7 +23017,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23036,7 +23025,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23046,7 +23035,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23054,7 +23043,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -23062,7 +23051,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23070,7 +23059,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23086,7 +23075,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23094,7 +23083,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23102,7 +23091,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23110,7 +23099,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23120,7 +23109,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23128,7 +23117,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23136,7 +23125,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23144,7 +23133,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23157,7 +23146,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23165,7 +23154,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -23173,7 +23162,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23181,7 +23170,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23191,7 +23180,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23199,7 +23188,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -23207,7 +23196,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23215,7 +23204,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23237,7 +23226,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23245,7 +23234,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23253,7 +23242,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23261,7 +23250,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23271,7 +23260,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23279,7 +23268,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23287,7 +23276,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23295,7 +23284,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23308,7 +23297,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23316,7 +23305,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -23324,7 +23313,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23332,7 +23321,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23342,7 +23331,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23350,7 +23339,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -23358,7 +23347,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23366,7 +23355,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23382,7 +23371,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23390,7 +23379,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23398,7 +23387,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23406,7 +23395,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23416,7 +23405,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23424,7 +23413,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23432,7 +23421,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23440,7 +23429,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23453,7 +23442,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23461,7 +23450,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -23469,7 +23458,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23477,7 +23466,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23487,7 +23476,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23495,7 +23484,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -23503,7 +23492,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23511,7 +23500,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23530,7 +23519,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23538,7 +23527,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23546,7 +23535,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23554,7 +23543,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23564,7 +23553,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23572,7 +23561,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23580,7 +23569,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23588,7 +23577,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23601,7 +23590,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23609,7 +23598,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -23617,7 +23606,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23625,7 +23614,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23635,7 +23624,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23643,7 +23632,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -23651,7 +23640,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23659,7 +23648,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23675,7 +23664,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23683,7 +23672,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23691,7 +23680,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23699,7 +23688,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23709,7 +23698,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23717,7 +23706,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -23725,7 +23714,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -23733,7 +23722,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -23746,7 +23735,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23754,7 +23743,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -23762,7 +23751,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23770,7 +23759,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -23780,7 +23769,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23788,7 +23777,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -23796,7 +23785,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23804,7 +23793,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -23826,7 +23815,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23834,7 +23823,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23842,7 +23831,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23850,7 +23839,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23860,7 +23849,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23868,7 +23857,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23876,7 +23865,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23884,7 +23873,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -23897,7 +23886,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23905,7 +23894,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -23913,7 +23902,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23921,7 +23910,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -23931,7 +23920,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23939,7 +23928,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -23947,7 +23936,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23955,7 +23944,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -23971,7 +23960,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23979,7 +23968,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -23987,7 +23976,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -23995,7 +23984,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -24005,7 +23994,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0");
                                     assert(ios.width() == 0);
@@ -24013,7 +24002,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0p+0******************");
                                     assert(ios.width() == 0);
@@ -24021,7 +24010,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0x0p+0");
                                     assert(ios.width() == 0);
@@ -24029,7 +24018,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0x0p+0");
                                     assert(ios.width() == 0);
@@ -24042,7 +24031,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -24050,7 +24039,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0.p+0*****************");
                                     assert(ios.width() == 0);
@@ -24058,7 +24047,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0.p+0");
                                     assert(ios.width() == 0);
@@ -24066,7 +24055,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0.p+0");
                                     assert(ios.width() == 0);
@@ -24076,7 +24065,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -24084,7 +24073,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0x0;p+0*****************");
                                     assert(ios.width() == 0);
@@ -24092,7 +24081,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0x0;p+0");
                                     assert(ios.width() == 0);
@@ -24100,7 +24089,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0x0;p+0");
                                     assert(ios.width() == 0);
@@ -24119,7 +24108,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24127,7 +24116,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -24135,7 +24124,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24143,7 +24132,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -24153,7 +24142,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24161,7 +24150,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -24169,7 +24158,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24177,7 +24166,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -24190,7 +24179,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24198,7 +24187,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -24206,7 +24195,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24214,7 +24203,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24224,7 +24213,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24232,7 +24221,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -24240,7 +24229,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24248,7 +24237,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24264,7 +24253,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24272,7 +24261,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -24280,7 +24269,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24288,7 +24277,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -24298,7 +24287,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24306,7 +24295,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0P+0******************");
                                     assert(ios.width() == 0);
@@ -24314,7 +24303,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "******************-0X0P+0");
                                     assert(ios.width() == 0);
@@ -24322,7 +24311,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-******************0X0P+0");
                                     assert(ios.width() == 0);
@@ -24335,7 +24324,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24343,7 +24332,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0.P+0*****************");
                                     assert(ios.width() == 0);
@@ -24351,7 +24340,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24359,7 +24348,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0.P+0");
                                     assert(ios.width() == 0);
@@ -24369,7 +24358,7 @@ void test11()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24377,7 +24366,7 @@ void test11()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-0X0;P+0*****************");
                                     assert(ios.width() == 0);
@@ -24385,7 +24374,7 @@ void test11()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*****************-0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24393,7 +24382,7 @@ void test11()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "-*****************0X0;P+0");
                                     assert(ios.width() == 0);
@@ -24420,7 +24409,6 @@ void test12()
 #if defined(__APPLE__) && defined(__x86_64__)
 // This test is failing on FreeBSD, possibly due to 
diff erent representations
 // of the floating point numbers.
-    cpp17_output_iterator<char*> iter;
     const my_facet f(1);
     char str[200];
     {
@@ -24441,7 +24429,7 @@ void test12()
                             ios.imbue(lc);
                             {
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24449,7 +24437,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -24457,7 +24445,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24465,7 +24453,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24475,7 +24463,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24483,7 +24471,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -24491,7 +24479,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24499,7 +24487,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24512,7 +24500,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24520,7 +24508,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -24528,7 +24516,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24536,7 +24524,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24546,7 +24534,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24554,7 +24542,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -24562,7 +24550,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24570,7 +24558,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24586,7 +24574,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24594,7 +24582,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -24602,7 +24590,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24610,7 +24598,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24620,7 +24608,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24628,7 +24616,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -24636,7 +24624,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24644,7 +24632,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24657,7 +24645,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24665,7 +24653,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -24673,7 +24661,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24681,7 +24669,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24691,7 +24679,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24699,7 +24687,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -24707,7 +24695,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24715,7 +24703,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -24734,7 +24722,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24742,7 +24730,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -24750,7 +24738,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24758,7 +24746,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24768,7 +24756,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24776,7 +24764,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -24784,7 +24772,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24792,7 +24780,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24805,7 +24793,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24813,7 +24801,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -24821,7 +24809,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24829,7 +24817,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24839,7 +24827,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24847,7 +24835,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -24855,7 +24843,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24863,7 +24851,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24879,7 +24867,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24887,7 +24875,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -24895,7 +24883,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24903,7 +24891,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24913,7 +24901,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24921,7 +24909,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -24929,7 +24917,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24937,7 +24925,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24950,7 +24938,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24958,7 +24946,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -24966,7 +24954,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24974,7 +24962,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24984,7 +24972,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -24992,7 +24980,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -25000,7 +24988,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25008,7 +24996,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25030,7 +25018,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25038,7 +25026,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25046,7 +25034,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25054,7 +25042,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25064,7 +25052,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25072,7 +25060,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25080,7 +25068,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25088,7 +25076,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25101,7 +25089,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25109,7 +25097,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25117,7 +25105,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25125,7 +25113,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25135,7 +25123,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25143,7 +25131,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25151,7 +25139,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25159,7 +25147,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25175,7 +25163,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25183,7 +25171,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25191,7 +25179,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25199,7 +25187,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25209,7 +25197,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25217,7 +25205,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25225,7 +25213,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25233,7 +25221,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25246,7 +25234,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25254,7 +25242,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25262,7 +25250,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25270,7 +25258,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25280,7 +25268,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25288,7 +25276,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25296,7 +25284,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25304,7 +25292,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25323,7 +25311,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25331,7 +25319,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25339,7 +25327,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25347,7 +25335,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25357,7 +25345,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25365,7 +25353,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25373,7 +25361,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25381,7 +25369,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25394,7 +25382,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25402,7 +25390,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25410,7 +25398,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25418,7 +25406,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25428,7 +25416,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25436,7 +25424,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25444,7 +25432,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25452,7 +25440,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25468,7 +25456,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25476,7 +25464,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -25484,7 +25472,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25492,7 +25480,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25502,7 +25490,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25510,7 +25498,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -25518,7 +25506,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25526,7 +25514,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25539,7 +25527,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25547,7 +25535,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -25555,7 +25543,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25563,7 +25551,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25573,7 +25561,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25581,7 +25569,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -25589,7 +25577,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25597,7 +25585,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25625,7 +25613,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25633,7 +25621,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25641,7 +25629,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25649,7 +25637,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25659,7 +25647,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25667,7 +25655,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25675,7 +25663,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25683,7 +25671,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25696,7 +25684,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25704,7 +25692,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9.32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25712,7 +25700,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25720,7 +25708,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25730,7 +25718,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25738,7 +25726,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x9;32c05a44p+27*********");
                                     assert(ios.width() == 0);
@@ -25746,7 +25734,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25754,7 +25742,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0x*********9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25770,7 +25758,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25778,7 +25766,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25786,7 +25774,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25794,7 +25782,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25804,7 +25792,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25812,7 +25800,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25820,7 +25808,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25828,7 +25816,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25841,7 +25829,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25849,7 +25837,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9.32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25857,7 +25845,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25865,7 +25853,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9.32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25875,7 +25863,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25883,7 +25871,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0x9;32c05a44p+27********");
                                     assert(ios.width() == 0);
@@ -25891,7 +25879,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25899,7 +25887,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0x9;32c05a44p+27");
                                     assert(ios.width() == 0);
@@ -25918,7 +25906,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25926,7 +25914,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25934,7 +25922,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25942,7 +25930,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25952,7 +25940,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25960,7 +25948,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -25968,7 +25956,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25976,7 +25964,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25989,7 +25977,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -25997,7 +25985,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9.32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -26005,7 +25993,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26013,7 +26001,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26023,7 +26011,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26031,7 +26019,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X9;32C05A44P+27*********");
                                     assert(ios.width() == 0);
@@ -26039,7 +26027,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "*********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26047,7 +26035,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "0X*********9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26063,7 +26051,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26071,7 +26059,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -26079,7 +26067,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26087,7 +26075,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26097,7 +26085,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26105,7 +26093,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -26113,7 +26101,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26121,7 +26109,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26134,7 +26122,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26142,7 +26130,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9.32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -26150,7 +26138,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26158,7 +26146,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9.32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26168,7 +26156,7 @@ void test12()
                             {
                                 ios.width(0);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26176,7 +26164,7 @@ void test12()
                                 ios.width(25);
                                 left(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+0X9;32C05A44P+27********");
                                     assert(ios.width() == 0);
@@ -26184,7 +26172,7 @@ void test12()
                                 ios.width(25);
                                 right(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "********+0X9;32C05A44P+27");
                                     assert(ios.width() == 0);
@@ -26192,7 +26180,7 @@ void test12()
                                 ios.width(25);
                                 internal(ios);
                                 {
-                                    iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
                                     std::string ex(str, iter.base());
                                     assert(ex == "+********0X9;32C05A44P+27");
                                     assert(ios.width() == 0);

diff  --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
index dc16866a8a793..3a7f1d2b5ba36 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
@@ -48,7 +48,6 @@ class my_facet
 int main(int, char**)
 {
     char str[200];
-    cpp17_output_iterator<char*> iter;
     tm t;
     t.tm_sec = 6;
     t.tm_min = 3;
@@ -63,15 +62,16 @@ int main(int, char**)
     {
         const my_facet f(LOCALE_en_US_UTF_8, 1);
         std::string pat("Today is %A which is abbreviated %a.");
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
+        cpp17_output_iterator<char*> iter =
+            f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
         std::string ex(str, iter.base());
         assert(ex == "Today is Saturday which is abbreviated Sat.");
     }
     {
         const my_facet f(LOCALE_fr_FR_UTF_8, 1);
         std::string pat("Today is %A which is abbreviated '%a'.");
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t,
-                     pat.data(), pat.data() + pat.size());
+        cpp17_output_iterator<char*> iter =
+            f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
         std::string ex(str, iter.base());
         assert((ex == "Today is Samedi which is abbreviated 'Sam'.")||
                (ex == "Today is samedi which is abbreviated 'sam'." )||

diff  --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
index 52243c67e7690..6515a1970a11c 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
@@ -33,7 +33,6 @@ int main(int, char**)
 {
     const my_facet f(1);
     char str[200];
-    cpp17_output_iterator<char*> iter;
     tm t;
     t.tm_sec = 6;
     t.tm_min = 3;
@@ -47,13 +46,15 @@ int main(int, char**)
     std::ios ios(0);
     {
         std::string pat("Today is %A which is abbreviated %a.");
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
+        cpp17_output_iterator<char*> iter =
+            f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
         std::string ex(str, iter.base());
         assert(ex == "Today is Saturday which is abbreviated Sat.");
     }
     {
         std::string pat("The number of the month is %Om.");
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
+        cpp17_output_iterator<char*> iter =
+            f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, pat.data(), pat.data() + pat.size());
         std::string ex(str, iter.base());
         assert(ex == "The number of the month is 05.");
     }

diff  --git a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
index c9b61e7a7aaef..e5cde5613c186 100644
--- a/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
@@ -32,7 +32,6 @@ int main(int, char**)
 {
     const my_facet f(1);
     char str[200];
-    cpp17_output_iterator<char*> iter;
     tm t = {};
     t.tm_sec = 6;
     t.tm_min = 3;
@@ -45,277 +44,277 @@ int main(int, char**)
     t.tm_isdst = 1;
     std::ios ios(0);
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'A');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'A');
         std::string ex(str, iter.base());
         assert(ex == "Saturday");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'a');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'a');
         std::string ex(str, iter.base());
         assert(ex == "Sat");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'B');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'B');
         std::string ex(str, iter.base());
         assert(ex == "May");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'b');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'b');
         std::string ex(str, iter.base());
         assert(ex == "May");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'C');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'C');
         std::string ex(str, iter.base());
         assert(ex == "20");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'c');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'c');
         std::string ex(str, iter.base());
         assert(ex == "Sat May  2 13:03:06 2009");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'D');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'D');
         std::string ex(str, iter.base());
         assert(ex == "05/02/09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'd');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'd');
         std::string ex(str, iter.base());
         assert(ex == "02");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'c', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'c', 'E');
         std::string ex(str, iter.base());
         assert(ex == "Sat May  2 13:03:06 2009");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'C', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'C', 'E');
         std::string ex(str, iter.base());
         assert(ex == "20");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'x', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'x', 'E');
         std::string ex(str, iter.base());
         assert(ex == "05/02/09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'X', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'X', 'E');
         std::string ex(str, iter.base());
         assert(ex == "13:03:06");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y', 'E');
         std::string ex(str, iter.base());
         assert(ex == "09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Y', 'E');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Y', 'E');
         std::string ex(str, iter.base());
         assert(ex == "2009");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'd', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'd', 'O');
         std::string ex(str, iter.base());
         assert(ex == "02");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'e', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'e', 'O');
         std::string ex(str, iter.base());
         assert(ex == " 2");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'H', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'H', 'O');
         std::string ex(str, iter.base());
         assert(ex == "13");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'I', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'I', 'O');
         std::string ex(str, iter.base());
         assert(ex == "01");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'm', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'm', 'O');
         std::string ex(str, iter.base());
         assert(ex == "05");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'M', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'M', 'O');
         std::string ex(str, iter.base());
         assert(ex == "03");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'S', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'S', 'O');
         std::string ex(str, iter.base());
         assert(ex == "06");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'u', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'u', 'O');
         std::string ex(str, iter.base());
         assert(ex == "6");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'U', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'U', 'O');
         std::string ex(str, iter.base());
         assert(ex == "17");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'V', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'V', 'O');
         std::string ex(str, iter.base());
         assert(ex == "18");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'w', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'w', 'O');
         std::string ex(str, iter.base());
         assert(ex == "6");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'W', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'W', 'O');
         std::string ex(str, iter.base());
         assert(ex == "17");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y', 'O');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y', 'O');
         std::string ex(str, iter.base());
         assert(ex == "09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'e');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'e');
         std::string ex(str, iter.base());
         assert(ex == " 2");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'F');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'F');
         std::string ex(str, iter.base());
         assert(ex == "2009-05-02");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'G');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'G');
         std::string ex(str, iter.base());
         assert(ex == "2009");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'g');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'g');
         std::string ex(str, iter.base());
         assert(ex == "09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'H');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'H');
         std::string ex(str, iter.base());
         assert(ex == "13");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'h');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'h');
         std::string ex(str, iter.base());
         assert(ex == "May");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'I');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'I');
         std::string ex(str, iter.base());
         assert(ex == "01");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'j');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'j');
         std::string ex(str, iter.base());
         assert(ex == "122");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'M');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'M');
         std::string ex(str, iter.base());
         assert(ex == "03");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'm');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'm');
         std::string ex(str, iter.base());
         assert(ex == "05");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'n');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'n');
         std::string ex(str, iter.base());
         assert(ex == "\n");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'p');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'p');
         std::string ex(str, iter.base());
         assert(ex == "PM");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'R');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'R');
         std::string ex(str, iter.base());
         assert(ex == "13:03");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'r');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'r');
         std::string ex(str, iter.base());
         assert(ex == "01:03:06 PM");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'S');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'S');
         std::string ex(str, iter.base());
         assert(ex == "06");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'T');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'T');
         std::string ex(str, iter.base());
         assert(ex == "13:03:06");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 't');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 't');
         std::string ex(str, iter.base());
         assert(ex == "\t");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'U');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'U');
         std::string ex(str, iter.base());
         assert(ex == "17");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'u');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'u');
         std::string ex(str, iter.base());
         assert(ex == "6");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'V');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'V');
         std::string ex(str, iter.base());
         assert(ex == "18");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'W');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'W');
         std::string ex(str, iter.base());
         assert(ex == "17");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'w');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'w');
         std::string ex(str, iter.base());
         assert(ex == "6");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'X');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'X');
         std::string ex(str, iter.base());
         assert(ex == "13:03:06");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'x');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'x');
         std::string ex(str, iter.base());
         assert(ex == "05/02/09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Y');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Y');
         std::string ex(str, iter.base());
         assert(ex == "2009");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'y');
         std::string ex(str, iter.base());
         assert(ex == "09");
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Z');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'Z');
         std::string ex(str, iter.base());
 //        assert(ex == "EDT");  depends on time zone
     }
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'z');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, 'z');
         std::string ex(str, iter.base());
 //        assert(ex == "-0400");  depends on time zone
     }
@@ -323,13 +322,13 @@ int main(int, char**)
     // The Windows strftime() doesn't support the "%+" format. Depending on CRT
     // configuration of the invalid parameter handler, this can abort the process.
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, '+');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, '+');
         std::string ex(str, iter.base());
 //        assert(ex == "Sat May  2 13:03:06 EDT 2009");  depends on time zone
     }
 #endif
     {
-        iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, '%');
+        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', &t, '%');
         std::string ex(str, iter.base());
         assert(ex == "%");
     }

diff  --git a/libcxx/test/support/test_iterators.h b/libcxx/test/support/test_iterators.h
index 66da5e7ba926a..cec9dbee1ff47 100644
--- a/libcxx/test/support/test_iterators.h
+++ b/libcxx/test/support/test_iterators.h
@@ -32,7 +32,6 @@ class cpp17_output_iterator
     typedef It                                                 pointer;
     typedef typename std::iterator_traits<It>::reference       reference;
 
-    TEST_CONSTEXPR cpp17_output_iterator() : it_() {}
     TEST_CONSTEXPR explicit cpp17_output_iterator(It it) : it_(std::move(it)) {}
     template <class U>
         TEST_CONSTEXPR cpp17_output_iterator(const cpp17_output_iterator<U>& u) :it_(u.it_) {}


        


More information about the libcxx-commits mailing list