1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
12 // class num_get<charT, InputIterator>
14 // iter_type get(iter_type in, iter_type end, ios_base&,
15 // ios_base::iostate& err, unsigned long& v) const;
21 #include "test_iterators.h"
23 typedef std::num_get<char, input_iterator<const char*> > F;
29 explicit my_facet(std::size_t refs = 0)
34 : public std::numpunct<char>
37 my_numpunct() : std::numpunct<char>() {}
40 virtual char_type do_thousands_sep() const {return '_';}
41 virtual std::string do_grouping() const {return std::string("\1\2\3");}
48 unsigned long v = static_cast<unsigned long>(-1);
50 const char str[] = "0";
51 std::ios_base::iostate err = ios.goodbit;
52 input_iterator<const char*> iter =
53 f.get(input_iterator<const char*>(str),
54 input_iterator<const char*>(str+sizeof(str)),
56 assert(iter.base() == str+sizeof(str)-1);
57 assert(err == ios.goodbit);
61 const char str[] = "1";
62 std::ios_base::iostate err = ios.goodbit;
63 input_iterator<const char*> iter =
64 f.get(input_iterator<const char*>(str),
65 input_iterator<const char*>(str+sizeof(str)),
67 assert(iter.base() == str+sizeof(str)-1);
68 assert(err == ios.goodbit);
73 const char str[] = "0xFFFFFFFF";
74 std::ios_base::iostate err = ios.goodbit;
75 input_iterator<const char*> iter =
76 f.get(input_iterator<const char*>(str),
77 input_iterator<const char*>(str+sizeof(str)),
79 assert(iter.base() == str+sizeof(str)-1);
80 assert(err == ios.goodbit);
81 assert(v == 0xFFFFFFFF);