home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / cstring < prev    next >
Text File  |  2005-01-29  |  3KB  |  129 lines

  1. // -*- C++ -*- forwarding header.
  2.  
  3. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
  4. // Free Software Foundation, Inc.
  5. //
  6. // This file is part of the GNU ISO C++ Library.  This library is free
  7. // software; you can redistribute it and/or modify it under the
  8. // terms of the GNU General Public License as published by the
  9. // Free Software Foundation; either version 2, or (at your option)
  10. // any later version.
  11.  
  12. // This library is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. // GNU General Public License for more details.
  16.  
  17. // You should have received a copy of the GNU General Public License along
  18. // with this library; see the file COPYING.  If not, write to the Free
  19. // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  20. // USA.
  21.  
  22. // As a special exception, you may use this file as part of a free software
  23. // library without restriction.  Specifically, if other files instantiate
  24. // templates or use macros or inline functions from this file, or you compile
  25. // this file and link it with other files to produce an executable, this
  26. // file does not by itself cause the resulting executable to be covered by
  27. // the GNU General Public License.  This exception does not however
  28. // invalidate any other reasons why the executable file might be covered by
  29. // the GNU General Public License.
  30.  
  31. //
  32. // ISO C++ 14882: 20.4.6  C library
  33. //
  34.  
  35. /** @file cstring
  36.  *  This is a Standard C++ Library file.  You should @c #include this file
  37.  *  in your programs, rather than any of the "*.h" implementation files.
  38.  *
  39.  *  This is the C++ version of the Standard C Library header @c string.h,
  40.  *  and its contents are (mostly) the same as that header, but are all
  41.  *  contained in the namespace @c std.
  42.  */
  43.  
  44. #ifndef _GLIBCXX_CSTRING
  45. #define _GLIBCXX_CSTRING 1
  46.  
  47. #pragma GCC system_header
  48.  
  49. #include <cstddef>
  50.  
  51. #include <string.h>
  52.  
  53. // Get rid of those macros defined in <string.h> in lieu of real functions.
  54. #undef memcpy
  55. #undef memmove
  56. #undef strcpy
  57. #undef strncpy
  58. #undef strcat
  59. #undef strncat
  60. #undef memcmp
  61. #undef strcmp
  62. #undef strcoll
  63. #undef strncmp
  64. #undef strxfrm
  65. #undef memchr
  66. #undef strchr
  67. #undef strcspn
  68. #undef strpbrk
  69. #undef strrchr
  70. #undef strspn
  71. #undef strstr
  72. #undef strtok
  73. #undef memset
  74. #undef strerror
  75. #undef strlen
  76.  
  77. namespace std
  78. {
  79.   using ::memcpy;
  80.   using ::memmove;
  81.   using ::strcpy;
  82.   using ::strncpy;
  83.   using ::strcat;
  84.   using ::strncat;
  85.   using ::memcmp;
  86.   using ::strcmp;
  87.   using ::strcoll;
  88.   using ::strncmp;
  89.   using ::strxfrm;
  90.   using ::strcspn;
  91.   using ::strspn;
  92.   using ::strtok;
  93.   using ::memset;
  94.   using ::strerror;
  95.   using ::strlen;
  96.  
  97.   using ::memchr;
  98.  
  99.   inline void*
  100.   memchr(void* __p, int __c, size_t __n)
  101.   { return memchr(const_cast<const void*>(__p), __c, __n); }
  102.  
  103.   using ::strchr;
  104.  
  105.   inline char*
  106.   strchr(char* __s1, int __n)
  107.   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
  108.  
  109.   using ::strpbrk;
  110.  
  111.   inline char*
  112.   strpbrk(char* __s1, const char* __s2)
  113.   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
  114.  
  115.   using ::strrchr;
  116.  
  117.   inline char*
  118.   strrchr(char* __s1, int __n)
  119.   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
  120.  
  121.   using ::strstr;
  122.  
  123.   inline char*
  124.   strstr(char* __s1, const char* __s2)
  125.   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
  126. }
  127.  
  128. #endif
  129.