]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/include/c_std/cstring
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[thirdparty/gcc.git] / libstdc++-v3 / include / c_std / cstring
CommitLineData
98e6e789 1// -*- C++ -*- forwarding header.
22aef514 2
60822e0b 3// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
34ff0b99 4// Free Software Foundation, Inc.
22aef514
BK
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
748086b7 9// Free Software Foundation; either version 3, or (at your option)
22aef514
BK
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
748086b7
JJ
17// Under Section 7 of GPL version 3, you are granted additional
18// permissions described in the GCC Runtime Library Exception, version
19// 3.1, as published by the Free Software Foundation.
22aef514 20
748086b7
JJ
21// You should have received a copy of the GNU General Public License and
22// a copy of the GCC Runtime Library Exception along with this program;
23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24// <http://www.gnu.org/licenses/>.
22aef514 25
ffe94f83
PE
26/** @file cstring
27 * This is a Standard C++ Library file. You should @c #include this file
28 * in your programs, rather than any of the "*.h" implementation files.
29 *
30 * This is the C++ version of the Standard C Library header @c string.h,
31 * and its contents are (mostly) the same as that header, but are all
097588e4
PC
32 * contained in the namespace @c std (except for names which are defined
33 * as macros in C).
ffe94f83
PE
34 */
35
143c27b0
BK
36//
37// ISO C++ 14882: 20.4.6 C library
38//
39
1143680e
SE
40#ifndef _GLIBCXX_CSTRING
41#define _GLIBCXX_CSTRING 1
34ff0b99
BK
42
43#pragma GCC system_header
22aef514 44
3cbc7af0 45#include <bits/c++config.h>
54c1bf78 46#include <cstddef>
c0dae541 47#include <string.h>
98e6e789 48
8089616e
BK
49// Get rid of those macros defined in <string.h> in lieu of real functions.
50#undef memcpy
51#undef memmove
52#undef strcpy
53#undef strncpy
54#undef strcat
55#undef strncat
56#undef memcmp
57#undef strcmp
58#undef strcoll
59#undef strncmp
60#undef strxfrm
61#undef memchr
62#undef strchr
63#undef strcspn
64#undef strpbrk
65#undef strrchr
66#undef strspn
67#undef strstr
68#undef strtok
69#undef memset
70#undef strerror
71#undef strlen
72
3cbc7af0
BK
73_GLIBCXX_BEGIN_NAMESPACE(std)
74
de96ac46
BK
75 using ::memcpy;
76 using ::memmove;
77 using ::strcpy;
78 using ::strncpy;
79 using ::strcat;
80 using ::strncat;
81 using ::memcmp;
82 using ::strcmp;
83 using ::strcoll;
84 using ::strncmp;
85 using ::strxfrm;
86 using ::strcspn;
87 using ::strspn;
88 using ::strtok;
89 using ::memset;
90 using ::strerror;
91 using ::strlen;
de96ac46 92 using ::memchr;
60822e0b
UD
93 using ::strchr;
94 using ::strpbrk;
95 using ::strrchr;
96 using ::strstr;
eeff8d2c 97
60822e0b 98#ifndef __CORRECT_ISO_CPP_STRING_H_PROTO
92c3688a
SW
99 inline void*
100 memchr(void* __p, int __c, size_t __n)
de96ac46 101 { return memchr(const_cast<const void*>(__p), __c, __n); }
eeff8d2c 102
92c3688a
SW
103 inline char*
104 strchr(char* __s1, int __n)
de96ac46 105 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
eeff8d2c 106
92c3688a
SW
107 inline char*
108 strpbrk(char* __s1, const char* __s2)
de96ac46 109 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
eeff8d2c 110
92c3688a
SW
111 inline char*
112 strrchr(char* __s1, int __n)
eeff8d2c
MM
113 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
114
92c3688a
SW
115 inline char*
116 strstr(char* __s1, const char* __s2)
de96ac46 117 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
60822e0b 118#endif
3cbc7af0
BK
119
120_GLIBCXX_END_NAMESPACE
22aef514 121
98e6e789 122#endif