OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libstdc++-v3/] [testsuite/] [22_locale/] [num_put/] [put/] [wchar_t/] [8.cc] - Blame information for rev 424

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// Copyright (C) 2003, 2009 Free Software Foundation
2
//
3
// This file is part of the GNU ISO C++ Library.  This library is free
4
// software; you can redistribute it and/or modify it under the
5
// terms of the GNU General Public License as published by the
6
// Free Software Foundation; either version 3, or (at your option)
7
// any later version.
8
 
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
 
14
// You should have received a copy of the GNU General Public License along
15
// with this library; see the file COPYING3.  If not see
16
// <http://www.gnu.org/licenses/>.
17
 
18
// 22.2.2.2.1  num_put members
19
 
20
#include <locale>
21
#include <sstream>
22
#include <testsuite_hooks.h>
23
 
24
struct Ctype: std::ctype<wchar_t>
25
{
26
  wchar_t
27
  do_widen(char c) const
28
  { return L'A' + c % 26; }
29
 
30
  const char*
31
  do_widen(const char* lo, const char* hi, wchar_t* to) const
32
  {
33
    for (; lo != hi; *to++ = Ctype::do_widen(*lo++));
34
    return hi;
35
  }
36
};
37
 
38
// See http://gcc.gnu.org/ml/libstdc++/2003-11/msg00154.html
39
void test01()
40
{
41
  using namespace std;
42
  bool test __attribute__((unused)) = true;
43
 
44
  wostringstream oss;
45
  oss.imbue(locale(locale::classic(), new Ctype));
46
  const num_put<wchar_t>& np = use_facet<num_put<wchar_t> >(oss.getloc());
47
 
48
  const wstring empty;
49
  wstring result;
50
  long inum = 123;
51
  double fnum = 123.456;
52
 
53
  np.put(oss.rdbuf(), oss, L'+', inum);
54
  result = oss.str();
55
  VERIFY( result == L"XYZ" );
56
 
57
  oss.clear();
58
  oss.str(empty);
59
  np.put(oss.rdbuf(), oss, L'+', fnum);
60
  result = oss.str();
61
  VERIFY( result == L"XYZ.ABC" );
62
}
63
 
64
int main()
65
{
66
  test01();
67
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.