// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
-// Free Software Foundation, Inc.
+// Copyright (C) 1997-2024 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
/** @file cstring
* This is a Standard C++ Library file. You should @c #include this file
- * in your programs, rather than any of the "*.h" implementation files.
+ * in your programs, rather than any of the @a *.h implementation files.
*
* This is the C++ version of the Standard C Library header @c string.h,
* and its contents are (mostly) the same as that header, but are all
#pragma GCC system_header
#include <bits/c++config.h>
-#include <cstddef>
#include <string.h>
// Get rid of those macros defined in <string.h> in lieu of real functions.
#undef strerror
#undef strlen
-_GLIBCXX_BEGIN_NAMESPACE(std)
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::memcpy;
using ::memmove;
#ifndef __CORRECT_ISO_CPP_STRING_H_PROTO
inline void*
- memchr(void* __p, int __c, size_t __n)
- { return memchr(const_cast<const void*>(__p), __c, __n); }
+ memchr(void* __s, int __c, size_t __n)
+ { return __builtin_memchr(__s, __c, __n); }
inline char*
- strchr(char* __s1, int __n)
- { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
+ strchr(char* __s, int __n)
+ { return __builtin_strchr(__s, __n); }
inline char*
strpbrk(char* __s1, const char* __s2)
- { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
+ { return __builtin_strpbrk(__s1, __s2); }
inline char*
- strrchr(char* __s1, int __n)
- { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
+ strrchr(char* __s, int __n)
+ { return __builtin_strrchr(__s, __n); }
inline char*
strstr(char* __s1, const char* __s2)
- { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
+ { return __builtin_strstr(__s1, __s2); }
#endif
-_GLIBCXX_END_NAMESPACE
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
#endif