⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time_get_members_wchar_t.cc

📁 俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)的全部源代码。
💻 CC
📖 第 1 页 / 共 2 页
字号:
  VERIFY( errorstate == ios_base::failbit );  VERIFY( *is_it05 == 'l');  // inspection of named locales, de_DE  iss.imbue(loc_de);  iss.str(L"April");  iterator_type is_it10(iss);  tm time10;  errorstate = good;  tim_get.get_monthname(is_it10, end, iss, errorstate, &time10);  VERIFY( time10.tm_mon == time_bday.tm_mon );  VERIFY( errorstate == ios_base::eofbit );  // inspection of named locales, en_HK  iss.imbue(loc_hk);  iss.str(L"April");   iterator_type is_it20(iss);  tm time20;  errorstate = good;  tim_get.get_monthname(is_it20, end, iss, errorstate, &time20);  VERIFY( time20.tm_mon == time_bday.tm_mon );  VERIFY( errorstate == ios_base::eofbit );}void test04(){  using namespace std;  typedef time_base::dateorder dateorder;  typedef istreambuf_iterator<wchar_t> iterator_type;  bool test = true;  // basic construction and sanity checks.  locale loc_c = locale::classic();  locale loc_hk("en_HK");  locale loc_fr("fr_FR@euro");  locale loc_de("de_DE");  VERIFY( loc_hk != loc_c );  VERIFY( loc_hk != loc_fr );  VERIFY( loc_hk != loc_de );  VERIFY( loc_de != loc_fr );  // cache the __timepunct facets, for quicker gdb inspection  const __timepunct<wchar_t>& time_c = use_facet<__timepunct<wchar_t> >(loc_c);   const __timepunct<wchar_t>& time_de = use_facet<__timepunct<wchar_t> >(loc_de);   const __timepunct<wchar_t>& time_hk = use_facet<__timepunct<wchar_t> >(loc_hk);   const __timepunct<wchar_t>& time_fr = use_facet<__timepunct<wchar_t> >(loc_fr);   const wstring empty;  // create an ostream-derived object, cache the time_get facet  iterator_type end;  wistringstream iss;  const time_get<wchar_t>& tim_get = use_facet<time_get<wchar_t> >(iss.getloc());   const ios_base::iostate good = ios_base::goodbit;  ios_base::iostate errorstate = good;  // create "C" time objects  const tm time_bday = { 0, 0, 12, 4, 3, 71 };  const wchar_t* all = L"%a %A %b %B %c %d %H %I %j %m %M %p %s %U "                    L"%w %W %x %X %y %Y %Z %%";  const wchar_t* date = L"%A, the second of %B";  const wchar_t* date_ex = L"%Ex";  // iter_type   // get_year(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const  // sanity checks for "C" locale  iss.imbue(loc_c);  iss.str(L"1971");  iterator_type is_it01(iss);  tm time01;  errorstate = good;  tim_get.get_year(is_it01, end, iss, errorstate, &time01);  VERIFY( time01.tm_year == time_bday.tm_year );  VERIFY( errorstate == ios_base::eofbit );  iss.str(L"1971 ");  iterator_type is_it02(iss);  tm time02;  errorstate = good;  tim_get.get_year(is_it02, end, iss, errorstate, &time02);  VERIFY( time02.tm_year == time_bday.tm_year );  VERIFY( errorstate == good );  VERIFY( *is_it02 == ' ');  iss.str(L"197d1 ");  iterator_type is_it03(iss);  tm time03;  time03.tm_year = 3;  errorstate = good;  tim_get.get_year(is_it03, end, iss, errorstate, &time03);  VERIFY( time03.tm_year == 3 );  VERIFY( errorstate == ios_base::failbit );  VERIFY( *is_it03 == 'd');  iss.str(L"71d71");  iterator_type is_it04(iss);  tm time04;  errorstate = good;  tim_get.get_year(is_it04, end, iss, errorstate, &time04);  VERIFY( time04.tm_year == time_bday.tm_year );  VERIFY( errorstate == good );  VERIFY( *is_it03 == 'd');  iss.str(L"71");  iterator_type is_it05(iss);  tm time05;  errorstate = good;  tim_get.get_year(is_it05, end, iss, errorstate, &time05);  VERIFY( time05.tm_year == time_bday.tm_year );  VERIFY( errorstate == ios_base::eofbit );}void test05(){  using namespace std;  typedef time_base::dateorder dateorder;  typedef istreambuf_iterator<wchar_t> iterator_type;  bool test = true;  // basic construction and sanity checks.  locale loc_c = locale::classic();  locale loc_hk("en_HK");  locale loc_fr("fr_FR@euro");  locale loc_de("de_DE");  VERIFY( loc_hk != loc_c );  VERIFY( loc_hk != loc_fr );  VERIFY( loc_hk != loc_de );  VERIFY( loc_de != loc_fr );  // cache the __timepunct facets, for quicker gdb inspection  const __timepunct<wchar_t>& time_c = use_facet<__timepunct<wchar_t> >(loc_c);   const __timepunct<wchar_t>& time_de = use_facet<__timepunct<wchar_t> >(loc_de);   const __timepunct<wchar_t>& time_hk = use_facet<__timepunct<wchar_t> >(loc_hk);   const __timepunct<wchar_t>& time_fr = use_facet<__timepunct<wchar_t> >(loc_fr);   const wstring empty;  // create an ostream-derived object, cache the time_get facet  iterator_type end;  wistringstream iss;  const time_get<wchar_t>& tim_get = use_facet<time_get<wchar_t> >(iss.getloc());   const ios_base::iostate good = ios_base::goodbit;  ios_base::iostate errorstate = good;  // create "C" time objects  const tm time_bday = { 0, 0, 12, 4, 3, 71 };  const wchar_t* all = L"%a %A %b %B %c %d %H %I %j %m %M %p %s %U "                    L"%w %W %x %X %y %Y %Z %%";  const wchar_t* date = L"%A, the second of %B";  const wchar_t* date_ex = L"%Ex";  // iter_type   // get_date(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const  // sanity checks for "C" locale  iss.imbue(loc_c);  iss.str(L"04/04/71");  iterator_type is_it01(iss);  tm time01;  errorstate = good;  tim_get.get_date(is_it01, end, iss, errorstate, &time01);  VERIFY( time01.tm_year == time_bday.tm_year );  VERIFY( time01.tm_mon == time_bday.tm_mon );  VERIFY( time01.tm_mday == time_bday.tm_mday );  VERIFY( errorstate == ios_base::eofbit );  iss.str(L"04/04/71 ");  iterator_type is_it02(iss);  tm time02;  errorstate = good;  tim_get.get_date(is_it02, end, iss, errorstate, &time02);  VERIFY( time02.tm_year == time_bday.tm_year );  VERIFY( time02.tm_mon == time_bday.tm_mon );  VERIFY( time02.tm_mday == time_bday.tm_mday );  VERIFY( errorstate == good );  VERIFY( *is_it02 == ' ');  iss.str(L"04/04d/71 ");  iterator_type is_it03(iss);  tm time03;  time03.tm_year = 3;  errorstate = good;  tim_get.get_date(is_it03, end, iss, errorstate, &time03);  VERIFY( time03.tm_year == 3 );  VERIFY( time03.tm_mon == time_bday.tm_mon );  VERIFY( time03.tm_mday == time_bday.tm_mday );  VERIFY( errorstate == ios_base::failbit );  VERIFY( *is_it03 == 'd');  // inspection of named locales, de_DE  iss.imbue(loc_de);  iss.str(L"04.04.1971");  iterator_type is_it10(iss);  tm time10;  errorstate = good;  tim_get.get_date(is_it10, end, iss, errorstate, &time10);  VERIFY( time10.tm_mon == time_bday.tm_mon );  VERIFY( time10.tm_mday == time_bday.tm_mday );  VERIFY( time10.tm_year == time_bday.tm_year );  VERIFY( errorstate == ios_base::eofbit );  // inspection of named locales, en_HK  iss.imbue(loc_hk);  iss.str(L"Sunday, April 04, 1971");   iterator_type is_it20(iss);  tm time20;  errorstate = good;  tim_get.get_date(is_it20, end, iss, errorstate, &time20);  VERIFY( time20.tm_mon == time_bday.tm_mon );  VERIFY( time20.tm_mday == time_bday.tm_mday );  VERIFY( time20.tm_year == time_bday.tm_year );  VERIFY( errorstate == ios_base::eofbit );}void test06(){  using namespace std;  bool test = true;  // Check time_get works with other iterators besides streambuf  // input iterators.  typedef wstring::const_iterator iter_type;  typedef time_get<wchar_t, iter_type> time_get_type;  const ios_base::iostate goodbit = ios_base::goodbit;  const ios_base::iostate eofbit = ios_base::eofbit;  ios_base::iostate err = goodbit;  const locale loc_c = locale::classic();  // Cindy Sherman's Untitled Film Stills  // June 26-September 2, 1997  const wstring str = L"12:00:00 06/26/97 Tuesday September 1997 Cindy Sherman";   // Create "C" time objects  const tm time_sanity = { 0, 0, 12, 26, 5, 97, 2 };  tm tm1;  wistringstream iss;   iss.imbue(locale(loc_c, new time_get_type));  // Iterator advanced, state, output.  const time_get_type& tg = use_facet<time_get_type>(iss.getloc());  // 01 get_time  // 02 get_date  // 03 get_weekday  // 04 get_monthname  // 05 get_year  // 01 get_time  wstring res1;  err = goodbit;  iter_type end1 = tg.get_time(str.begin(), str.end(), iss, err, &tm1);  wstring rem1(end1, str.end());  VERIFY( err == goodbit );  VERIFY( tm1.tm_sec == time_sanity.tm_sec );  VERIFY( tm1.tm_min == time_sanity.tm_min );  VERIFY( tm1.tm_hour == time_sanity.tm_hour );  VERIFY( rem1 ==  L" 06/26/97 Tuesday September 1997 Cindy Sherman" );  // 02 get_date  wstring res2;  err = goodbit;  // White space is not eaten, so manually increment past it.  iter_type end2 = tg.get_date(++end1, str.end(), iss, err, &tm1);  wstring rem2(end2, str.end());  VERIFY( err == goodbit );  VERIFY( tm1.tm_year == time_sanity.tm_year );  VERIFY( tm1.tm_mon == time_sanity.tm_mon );  VERIFY( tm1.tm_mday == time_sanity.tm_mday );  VERIFY( rem2 ==  L" Tuesday September 1997 Cindy Sherman" );  // 03 get_weekday  wstring res3;  err = goodbit;  // White space is not eaten, so manually increment past it.  iter_type end3 = tg.get_weekday(++end2, str.end(), iss, err, &tm1);  wstring rem3(end3, str.end());  VERIFY( err == goodbit );  VERIFY( tm1.tm_wday == time_sanity.tm_wday );  VERIFY( rem3 ==  L" September 1997 Cindy Sherman" );  // 04 get_monthname  wstring res4;  err = goodbit;  // White space is not eaten, so manually increment past it.  iter_type end4 = tg.get_monthname(++end3, str.end(), iss, err, &tm1);  wstring rem4(end4, str.end());  VERIFY( err == goodbit );  VERIFY( tm1.tm_mon == 8 );  VERIFY( rem4 ==  L" 1997 Cindy Sherman" );  // 05 get_year  wstring res5;  err = goodbit;  // White space is not eaten, so manually increment past it.  iter_type end5 = tg.get_year(++end4, str.end(), iss, err, &tm1);  wstring rem5(end5, str.end());  VERIFY( err == goodbit );  VERIFY( tm1.tm_year == time_sanity.tm_year );  VERIFY( rem5 ==  L" Cindy Sherman" );}// libstdc++/5280void test07(){#ifdef _GLIBCPP_HAVE_SETENV   // Set the global locale to non-"C".  std::locale loc_de("de_DE");  std::locale::global(loc_de);  // Set LANG environment variable to de_DE.  const char* oldLANG = getenv("LANG");  if (!setenv("LANG", "de_DE", 1))    {      test01();      test02();      test03();      test04();      test05();      test06();      setenv("LANG", oldLANG ? oldLANG : "", 1);    }#endif}// http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.htmlvoid test08(){  bool test = true;  const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp");  if (tentLANG != NULL)    {      std::string preLANG = tentLANG;      test01();      test02();      test03();      test04();      test05();      test06();      std::string postLANG = std::setlocale(LC_ALL, NULL);      VERIFY( preLANG == postLANG );    }}#endifint main(){#ifdef _GLIBCPP_USE_WCHAR_T  test01();  test02();  test03();  test04();  test05();  test06();  test07();  test08();#endif  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -