diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 2002-12-04 17:08:09 +0000 | 
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 2002-12-04 17:08:09 +0000 | 
| commit | 4c3c403e5c73273497d72584701d0e4a79328d05 (patch) | |
| tree | f25eac871a7948610ebdd334dbbffd2ccf0e075b /contrib/libstdc++/std/straits.h | |
| parent | e3dd383f0088d7ec9c67022680e31a5b756d4258 (diff) | |
Diffstat (limited to 'contrib/libstdc++/std/straits.h')
| -rw-r--r-- | contrib/libstdc++/std/straits.h | 161 | 
1 files changed, 0 insertions, 161 deletions
| diff --git a/contrib/libstdc++/std/straits.h b/contrib/libstdc++/std/straits.h deleted file mode 100644 index c80e7ab7a681..000000000000 --- a/contrib/libstdc++/std/straits.h +++ /dev/null @@ -1,161 +0,0 @@ -// Character traits template for the -*- C++ -*- string classes. -// Copyright (C) 1994 Free Software Foundation - -// This file is part of the GNU ANSI 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 2, 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 COPYING.  If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. - -// As a special exception, if you link this library with files -// compiled with a GNU compiler to produce an executable, this does not cause -// the resulting executable to be covered by the GNU General Public License. -// This exception does not however invalidate any other reasons why -// the executable file might be covered by the GNU General Public License. - -// Written by Jason Merrill based upon the specification by Takanori Adachi -// in ANSI X3J16/94-0013R2. - -#ifndef __STRING_CHAR_TRAITS__ -#define __STRING_CHAR_TRAITS__ - -#ifdef __GNUG__ -// For string_char_traits <char> -#pragma interface "std/straits.h" -#endif - -#include <cstddef> - -extern "C++" { -template <class charT> -struct string_char_traits { -  typedef charT char_type; // for users to acquire the basic character type - -  // constraints - -  static void assign (char_type& c1, const char_type& c2) -    { c1 = c2; } -  static bool eq (const char_type& c1, const char_type& c2) -    { return (c1 == c2); } -  static bool ne (const char_type& c1, const char_type& c2) -    { return !(c1 == c2); } -  static bool lt (const char_type& c1, const char_type& c2) -    { return (c1 < c2); } -  static char_type eos () { return char_type(); } // the null character -  static bool is_del(char_type a) { return 0; } -  // characteristic function for delimiters of charT -   -  // speed-up functions - -  static int compare (const char_type* s1, const char_type* s2, size_t n) -    { -      size_t i; -      for (i = 0; i < n; ++i) -	if (ne (s1[i], s2[i])) -	  return lt (s1[i], s2[i]) ? -1 : 1; - -      return 0; -    } -     -  static size_t length (const char_type* s) -    { -      size_t l = 0; -      while (ne (*s++, eos ())) -	++l; -      return l; -    } - -  static char_type* copy (char_type* s1, const char_type* s2, size_t n) -    { -      for (; n--; ) -	assign (s1[n], s2[n]); -      return s1; -    } - -  static char_type* move (char_type* s1, const char_type* s2, size_t n) -    { -      char_type a[n]; -      size_t i; -      for (i = 0; i < n; ++i) -	assign (a[i], s2[i]); -      for (i = 0; i < n; ++i) -	assign (s1[i], a[i]); -      return s1; -    } - -  static char_type* set (char_type* s1, const char_type& c, size_t n) -    { -      for (; n--; ) -	assign (s1[n], c); -      return s1; -    } -}; - -class istream; -class ostream; -#include <cctype> -#include <cstring> - -struct string_char_traits <char> { -  typedef char char_type; - -  static void assign (char_type& c1, const char_type& c2) -    { c1 = c2; } -  static bool eq (const char_type & c1, const char_type& c2) -    { return (c1 == c2); } -  static bool ne (const char_type& c1, const char_type& c2) -    { return (c1 != c2); } -  static bool lt (const char_type& c1, const char_type& c2) -    { return (c1 < c2); } -  static char_type eos () { return 0; } -  static bool is_del(char_type a) { return isspace(a); } - -  static int compare (const char_type* s1, const char_type* s2, size_t n) -    { return memcmp (s1, s2, n); } -  static size_t length (const char_type* s) -    { return strlen (s); } -  static char_type* copy (char_type* s1, const char_type* s2, size_t n) -    { return (char_type*) memcpy (s1, s2, n); } -  static char_type* move (char_type* s1, const char_type* s2, size_t n) -    { return (char_type*) memmove (s1, s2, n); } -  static char_type* set (char_type* s1, const char_type& c, size_t n) -    { return (char_type*) memset (s1, c, n); } -}; - -#if 0 -#include <cwctype> -struct string_char_traits <wchar_t> { -  typedef wchar_t char_type; - -  static void assign (char_type& c1, const char_type& c2) -    { c1 = c2; } -  static bool eq (const char_type & c1, const char_type& c2) -    { return (c1 == c2); } -  static bool ne (const char_type& c1, const char_type& c2) -    { return (c1 != c2); } -  static bool lt (const char_type& c1, const char_type& c2) -    { return (c1 < c2); } -  static char_type eos () { return 0; } -  static bool is_del(char_type a) { return iswspace(a); } - -  static int compare (const char_type* s1, const char_type* s2, size_t n) -    { return wmemcmp (s1, s2, n); } -  static size_t length (const char_type* s) -    { return wcslen (s); } -  static char_type* copy (char_type* s1, const char_type* s2, size_t n) -    { return wmemcpy (s1, s2, n); } -  static char_type* set (char_type* s1, const char_type& c, size_t n) -    { return wmemset (s1, c, n); } -}; -#endif -} // extern "C++" -#endif | 
