Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Unified Diff: gcc/libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gcc/libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
diff --git a/gcc/libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc b/gcc/libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
deleted file mode 100644
index ea40ae998e9b78aec75569555fcff1157f6869fe..0000000000000000000000000000000000000000
--- a/gcc/libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-// { dg-require-namedlocale "" }
-
-// Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <sstream>
-#include <locale>
-#include <testsuite_hooks.h>
-
-int main()
-{
- using namespace std;
-
- bool test __attribute__((unused)) = true;
- locale l1 = locale("de_DE");
- locale l2 = locale("es_ES");
-
- const time_put<char> &tp = use_facet<time_put<char> >(l1);
- ostringstream oss;
- oss.imbue(l2);
-
- tm t = tm();
- tp.put(oss.rdbuf(), oss, ' ', &t, 'A');
- string res = oss.str();
-
- VERIFY( res == "domingo" );
-
- return 0;
-}
-
-// Two interpretations of the standard.
-
-// 1 : time_get, time_put each have their own data internally
-// use internal data for time and date specifics
-// use getloc for ctype info
-
-// 2 : time_get, time_put use the ios_base& argument and getloc to
-// retrieve the necessary data.
-// use getloc for ctype, time and date specifics
-
-// It is my opinion that the language in the standard is sufficiently
-// vague to permit both interpretations. In particular, the interface
-// for time_get and time_put is based on strftime, which as
-// POSIX notes is dependent on LC_TIME. The C++ standard, however,
-// does not specify the equivalent mappings of LC_TIME to time_get and
-// time_put.
-
-/*
-The problems with the first approach, as above, are numerous.
-
-1) The locale usage and design for formatters and parsers becomes
- fragmented. On one side, num_put and money_put, and on the other,
- time_put. This inconsistency is not useful.
-
-2) The data structures for time and date formatting are the largest in
- the locale library. Making time_put and time_get keep separate
- copies is inefficient. (Note that time_put and time_get are in the
- same locale::category).
-*/
-
-
-/*
-22.2.5 - The time category [lib.category.time]
-
--1- Templates time_get<charT,InputIterator> and
- time_put<charT,OutputIterator> provide date and time formatting and
- parsing. All specifications of member functions for time_put and
- time_get in the subclauses of lib.category.time only apply to the
- instantiations required in Tables 51 and 52
- (lib.locale.category). Their members use their ios_base&,
- ios_base::iostate&, and fill arguments as described in
- (lib.locale.categories), and the ctype<> facet, to determine
- formatting details.
-*/
-
-/*
-22.2 - Standard locale categories [lib.locale.categories]
-
--1- Each of the standard categories includes a family of facets. Some
- of these implement formatting or parsing of a datum, for use by
- standard or users' iostream operators << and >>, as members put() and
- get(), respectively. Each such member function takes an ios_base&
- argument whose members flags(), precision(), and width(), specify the
- format of the corresponding datum. (lib.ios.base). Those functions
- which need to use other facets call its member getloc() to retrieve
- the locale imbued there. Formatting facets use the character argument
- fill to fill out the specified width where necessary.
-*/
-
-/*
-With GCC/libstdc++, the output of the program with the arguments
-of de_DE es_ES is:
- domingo
- lunes
- martes
- miércoles
- jueves
- viernes
- sábado
-
-With Intel C++, it is: (this is clearly wrong)
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
-
-And with RogueWave C++
- Sonntag
- Montag
- Dienstag
- Mittwoch
- Donnerstag
- Freitag
- Samstag
-*/

Powered by Google App Engine
This is Rietveld 408576698