1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// The LLVM Compiler Infrastructure 4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open 6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details. 7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// <locale> 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// class time_put<charT, OutputIterator> 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t, 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// char format, char modifier = 0) const; 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <locale> 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include "test_iterators.h" 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnertypedef std::time_put<char, output_iterator<char*> > F; 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerclass my_facet 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public F 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerpublic: 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner explicit my_facet(std::size_t refs = 0) 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : F(refs) {} 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner const my_facet f(1); 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char str[200]; 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner output_iterator<char*> iter; 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner tm t = {0}; 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_sec = 6; 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_min = 3; 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_hour = 13; 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_mday = 2; 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_mon = 4; 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_year = 109; 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_wday = 6; 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_yday = -1; 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner t.tm_isdst = 1; 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::ios ios(0); 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'A'); 49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "Saturday"); 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'a'); 54b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 55b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "Sat"); 56b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 57b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 58b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'B'); 59b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 60b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "May"); 61b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 62b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 63b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'b'); 64b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 65b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "May"); 66b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 67b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 68b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'C'); 69b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 70b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "20"); 71b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 72b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 73b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'c'); 74b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 75b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "Sat May 2 13:03:06 2009"); 76b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 77b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 78b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'D'); 79b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 80b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "05/02/09"); 81b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 82b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 83b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'd'); 84b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 85b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "02"); 86b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 87b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 88b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'c', 'E'); 89b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 90b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "Sat May 2 13:03:06 2009"); 91b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 92b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 93b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'C', 'E'); 94b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 95b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "20"); 96b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 97b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 98b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'x', 'E'); 99b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 100b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "05/02/09"); 101b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 102b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 103b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'X', 'E'); 104b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 105b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13:03:06"); 106b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 107b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 108b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'y', 'E'); 109b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 110b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "09"); 111b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 112b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 113b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'Y', 'E'); 114b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 115b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "2009"); 116b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 117b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 118b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'd', 'O'); 119b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 120b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "02"); 121b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 122b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 123b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'e', 'O'); 124b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 125b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == " 2"); 126b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 127b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 128b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'H', 'O'); 129b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 130b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13"); 131b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 132b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 133b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'I', 'O'); 134b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 135b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "01"); 136b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 137b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 138b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'm', 'O'); 139b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 140b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "05"); 141b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 142b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 143b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'M', 'O'); 144b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 145b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "03"); 146b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 147b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 148b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'S', 'O'); 149b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 150b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "06"); 151b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 152b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 153b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'u', 'O'); 154b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 155b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "6"); 156b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 157b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 158b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'U', 'O'); 159b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 160b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "00"); 161b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 162b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 163b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'V', 'O'); 164b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 165b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "52"); 166b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 167b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 168b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'w', 'O'); 169b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 170b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "6"); 171b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 172b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 173b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'W', 'O'); 174b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 175b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "00"); 176b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 177b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 178b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'y', 'O'); 179b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 180b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "09"); 181b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 182b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 183b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'B', 'O'); 184b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 185b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "May"); 186b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 187b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 188b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'e'); 189b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 190b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == " 2"); 191b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 192b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 193b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'F'); 194b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 195b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "2009-05-02"); 196b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 197b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 198b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'G'); 199b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 200b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "2008"); 201b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 202b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 203b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'g'); 204b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 205b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "08"); 206b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 207b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 208b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'H'); 209b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 210b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13"); 211b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 212b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 213b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'h'); 214b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 215b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "May"); 216b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 217b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 218b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'I'); 219b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 220b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "01"); 221b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 222b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 223b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'j'); 224b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 225b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "000"); 226b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 227b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 228b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'k'); 229b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 230b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13"); 231b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 232b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 233b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'l'); 234b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 235b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == " 1"); 236b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 237b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 238b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'M'); 239b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 240b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "03"); 241b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 242b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 243b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'm'); 244b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 245b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "05"); 246b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 247b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 248b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'n'); 249b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 250b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "\n"); 251b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 252b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 253b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'p'); 254b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 255b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "PM"); 256b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 257b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 258b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'R'); 259b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 260b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13:03"); 261b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 262b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 263b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'r'); 264b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 265b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "01:03:06 PM"); 266b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 267b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 268b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'S'); 269b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 270b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "06"); 271b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 272b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 273b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 's'); 274b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 275b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// assert(ex == "1241283786"); depends on time zone 276b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 277b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 278b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'T'); 279b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 280b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13:03:06"); 281b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 282b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 283b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 't'); 284b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 285b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "\t"); 286b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 287b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 288b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'U'); 289b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 290b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "00"); 291b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 292b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 293b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'u'); 294b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 295b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "6"); 296b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 297b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 298b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'V'); 299b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 300b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "52"); 301b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 302b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 303b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'v'); 304b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 305b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == " 2-May-2009"); 306b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 307b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 308b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'W'); 309b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 310b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "00"); 311b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 312b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 313b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'w'); 314b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 315b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "6"); 316b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 317b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 318b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'X'); 319b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 320b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "13:03:06"); 321b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 322b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 323b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'x'); 324b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 325b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "05/02/09"); 326b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 327b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 328b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'Y'); 329b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 330b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "2009"); 331b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 332b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 333b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'y'); 334b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 335b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "09"); 336b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 337b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 338b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'Z'); 339b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 340b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// assert(ex == "EDT"); depends on time zone 341b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 342b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 343b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'z'); 344b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 345b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// assert(ex == "-0400"); depends on time zone 346b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 347b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 348b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, '+'); 349b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 350b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// assert(ex == "Sat May 2 13:03:06 EDT 2009"); depends on time zone 351b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 352b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 353b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, '%'); 354b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 355b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "%"); 356b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 357b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 358b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, '%', 'J'); 359b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 360b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "J%"); 361b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 362b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 363b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner iter = f.put(output_iterator<char*>(str), ios, '*', &t, 'J'); 364b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::string ex(str, iter.base()); 365b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(ex == "J"); 366b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 367b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 368