]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/include/c_std/cstring
Update Copyright years for files modified in 2011 and/or 2012.
[thirdparty/gcc.git] / libstdc++-v3 / include / c_std / cstring
CommitLineData
07428be5 1// -*- C++ -*- forwarding header.
3a7c5cb3 2
9fd84530 3// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
71e45bc2 4// 2006, 2007, 2008, 2009, 2010, 2011
d50d98ed 5// Free Software Foundation, Inc.
3a7c5cb3 6//
7// This file is part of the GNU ISO C++ Library. This library is free
8// software; you can redistribute it and/or modify it under the
9// terms of the GNU General Public License as published by the
6bc9506f 10// Free Software Foundation; either version 3, or (at your option)
3a7c5cb3 11// any later version.
12
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17
6bc9506f 18// Under Section 7 of GPL version 3, you are granted additional
19// permissions described in the GCC Runtime Library Exception, version
20// 3.1, as published by the Free Software Foundation.
3a7c5cb3 21
6bc9506f 22// You should have received a copy of the GNU General Public License and
23// a copy of the GCC Runtime Library Exception along with this program;
24// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25// <http://www.gnu.org/licenses/>.
3a7c5cb3 26
f51d6a00 27/** @file cstring
28 * This is a Standard C++ Library file. You should @c #include this file
72117d76 29 * in your programs, rather than any of the @a *.h implementation files.
f51d6a00 30 *
31 * This is the C++ version of the Standard C Library header @c string.h,
32 * and its contents are (mostly) the same as that header, but are all
b9913ab3 33 * contained in the namespace @c std (except for names which are defined
34 * as macros in C).
f51d6a00 35 */
36
944beac5 37//
38// ISO C++ 14882: 20.4.6 C library
39//
40
a438d9ac 41#ifndef _GLIBCXX_CSTRING
42#define _GLIBCXX_CSTRING 1
d50d98ed 43
44#pragma GCC system_header
3a7c5cb3 45
1069247d 46#include <bits/c++config.h>
6463b7ae 47#include <string.h>
07428be5 48
8baaf044 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
2948dd21 73namespace std _GLIBCXX_VISIBILITY(default)
74{
75_GLIBCXX_BEGIN_NAMESPACE_VERSION
1069247d 76
01dd2c6c 77 using ::memcpy;
78 using ::memmove;
79 using ::strcpy;
80 using ::strncpy;
81 using ::strcat;
82 using ::strncat;
83 using ::memcmp;
84 using ::strcmp;
85 using ::strcoll;
86 using ::strncmp;
87 using ::strxfrm;
88 using ::strcspn;
89 using ::strspn;
90 using ::strtok;
91 using ::memset;
92 using ::strerror;
93 using ::strlen;
01dd2c6c 94 using ::memchr;
e543bfc0 95 using ::strchr;
96 using ::strpbrk;
97 using ::strrchr;
98 using ::strstr;
dc7b952d 99
e543bfc0 100#ifndef __CORRECT_ISO_CPP_STRING_H_PROTO
7afc7ed8 101 inline void*
9fd84530 102 memchr(void* __s, int __c, size_t __n)
103 { return __builtin_memchr(__s, __c, __n); }
dc7b952d 104
7afc7ed8 105 inline char*
9fd84530 106 strchr(char* __s, int __n)
107 { return __builtin_strchr(__s, __n); }
dc7b952d 108
7afc7ed8 109 inline char*
110 strpbrk(char* __s1, const char* __s2)
9fd84530 111 { return __builtin_strpbrk(__s1, __s2); }
dc7b952d 112
7afc7ed8 113 inline char*
9fd84530 114 strrchr(char* __s, int __n)
115 { return __builtin_strrchr(__s, __n); }
dc7b952d 116
7afc7ed8 117 inline char*
118 strstr(char* __s1, const char* __s2)
9fd84530 119 { return __builtin_strstr(__s1, __s2); }
e543bfc0 120#endif
1069247d 121
2948dd21 122_GLIBCXX_END_NAMESPACE_VERSION
123} // namespace
3a7c5cb3 124
07428be5 125#endif