Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

std_cstring.h

Go to the documentation of this file.
00001 // -*- C++ -*- forwarding header.
00002 
00003 // Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
00004 //
00005 // This file is part of the GNU ISO C++ Library.  This library is free
00006 // software; you can redistribute it and/or modify it under the
00007 // terms of the GNU General Public License as published by the
00008 // Free Software Foundation; either version 2, or (at your option)
00009 // any later version.
00010 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // GNU General Public License for more details.
00015 
00016 // You should have received a copy of the GNU General Public License along
00017 // with this library; see the file COPYING.  If not, write to the Free
00018 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00019 // USA.
00020 
00021 // As a special exception, you may use this file as part of a free software
00022 // library without restriction.  Specifically, if other files instantiate
00023 // templates or use macros or inline functions from this file, or you compile
00024 // this file and link it with other files to produce an executable, this
00025 // file does not by itself cause the resulting executable to be covered by
00026 // the GNU General Public License.  This exception does not however
00027 // invalidate any other reasons why the executable file might be covered by
00028 // the GNU General Public License.
00029 
00030 //
00031 // ISO C++ 14882: 20.4.6  C library
00032 //
00033 
00034 // Note: This is not a conforming implementation.
00035 
00036 #ifndef _CPP_CSTRING
00037 #define _CPP_CSTRING 1
00038 
00039 #include <bits/c++config.h>
00040 #include <bits/std_cstddef.h>
00041 
00042 #pragma GCC system_header
00043 #include <string.h>
00044 
00045 // Get rid of those macros defined in <string.h> in lieu of real functions.
00046 #undef memcpy
00047 #undef memmove
00048 #undef strcpy
00049 #undef strncpy
00050 #undef strcat
00051 #undef strncat
00052 #undef memcmp
00053 #undef strcmp
00054 #undef strcoll
00055 #undef strncmp
00056 #undef strxfrm
00057 #undef memchr
00058 #undef strchr
00059 #undef strcspn
00060 #undef strpbrk
00061 #undef strrchr
00062 #undef strspn
00063 #undef strstr
00064 #undef strtok
00065 #undef memset
00066 #undef strerror
00067 #undef strlen
00068 
00069 namespace std 
00070 {
00071   extern "C" void* memcpy(void*, const void*, size_t); 
00072   extern "C" void* memmove(void*, const void*, size_t); 
00073   extern "C" char* strcpy(char*, const char*); 
00074   extern "C" char* strncpy(char*, const char*, size_t); 
00075   extern "C" char* strcat(char*, const char*); 
00076   extern "C" char* strncat(char*, const char*, size_t); 
00077   extern "C" int memcmp(const void*, const void*, size_t); 
00078   extern "C" int strcmp(const char*, const char*); 
00079   extern "C" int strcoll(const char*, const char*); 
00080   extern "C" int strncmp(const char*, const char*, size_t); 
00081   extern "C" size_t strxfrm(char*, const char*, size_t); 
00082   extern "C" const void* memchr(const void*, int, size_t); 
00083   inline void*
00084   memchr(void* __p, int __c, size_t __n)
00085   {
00086     return const_cast<void*>(memchr(const_cast<const void*>(__p), __c, __n));
00087   }
00088   extern "C" const char* strchr(const char*, int); 
00089   inline char*
00090   strchr(char* __s1, int __n)
00091   {
00092     return const_cast<char*>(strchr(const_cast<const char*>(__s1), __n));
00093   }
00094   extern "C" size_t strcspn(const char*, const char*); 
00095   extern "C" const char* strpbrk(const char*, const char*); 
00096   inline char*
00097   strpbrk(char* __s1, const char* __s2)
00098   {
00099     return const_cast<char*>(strpbrk(const_cast<const char*>(__s1), __s2));
00100   }
00101   extern "C" const char* strrchr(const char*, int); 
00102   inline char*
00103   strrchr(char* __s1, int __n)
00104   {
00105     return const_cast<char*>(strrchr(const_cast<const char*>(__s1), __n));
00106   }
00107   extern "C" size_t strspn(const char*, const char*); 
00108   extern "C" const char* strstr(const char*, const char*); 
00109   inline char*
00110   strstr(char* __s1, const char* __s2)
00111   {
00112     return const_cast<char*>(strstr(const_cast<const char*>(__s1), __s2));
00113   }
00114   extern "C" char* strtok(char*, const char*); 
00115   extern "C" void* memset(void*, int, size_t); 
00116   extern "C" char* strerror(int); 
00117   extern "C" size_t strlen(const char*);
00118 }
00119 
00120 #endif
00121 
00122 
00123 

Generated at Tue May 1 16:28:38 2001 for libstdc++-v3 by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001