get_date.pass.cpp revision 002a98494836085a3c84e2e844147468d4d39cc7
1499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//===----------------------------------------------------------------------===// 2499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// 3499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// The LLVM Compiler Infrastructure 4499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// 5499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// Source Licenses. See LICENSE.TXT for details. 7499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// 8499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant//===----------------------------------------------------------------------===// 9499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 10499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// <locale> 11499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 12499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// class time_get<charT, InputIterator> 13499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant// iter_type 15499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// get_date(iter_type s, iter_type end, ios_base& str, 16499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant// ios_base::iostate& err, tm* t) const; 17499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 18499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <locale> 19499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include <cassert> 20499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant#include "../../../../iterators.h" 21499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 22499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnanttypedef input_iterator<const char*> I; 23499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 24061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clowtypedef std::time_get<char, I> F; 25499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 26499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnantclass my_facet 27499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant : public F 28499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant{ 29499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnantpublic: 30499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant explicit my_facet(std::size_t refs = 0) 31499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant : F(refs) {} 32499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant}; 33499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant 34499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnantint main() 35499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant{ 36499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant const my_facet f(1); 37499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant std::ios ios(0); 38499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant std::ios_base::iostate err; 39499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant std::tm t; 40499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant { 41499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant const char in[] = "5/5/5"; 42499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant err = std::ios_base::goodbit; 43499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant t = std::tm(); 44499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant I i = f.get_date(I(in), I(in+sizeof(in)-1), ios, err, &t); 45499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant assert(i.base() == in+sizeof(in)-1); 46499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant assert(t.tm_mon == 4); 47499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant assert(t.tm_mday == 5); 48499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant assert(t.tm_year == 105); 49499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant assert(err == std::ios_base::eofbit); 50499cea12bb2b1c440f28274227d9fd98cd1c609eHoward Hinnant } 51} 52