cstring
资源名称:Vc_STL.rar [点击查看]
上传用户:sichengcw
上传日期:2009-02-17
资源大小:202k
文件大小:2k
源码类别:
STL
开发平台:
Visual C++
- // The -*- C++ -*- null-terminated string header.
- // This file is part of the GNU ANSI C++ Library.
- #ifndef __CSTRING__
- #define __CSTRING__
- #include <string.h>
- #if 0 // Let's not bother with this just yet.
- #include <cstddef>
- #ifdef __GNUG__
- #pragma interface "cstring"
- #endif
- // The ANSI C prototypes for these functions have a const argument type and
- // non-const return type, so we can't use them.
- extern "C++" {
- extern inline const char *
- _G_strchr (const char *s, int c)
- {
- return strchr (s, c);
- }
- extern inline char *
- _G_strchr (char *s, int c)
- {
- return const_cast<char *> (strchr (s, c));
- }
- extern inline const char *
- _G_strpbrk (const char *s1, const char *s2)
- {
- return strpbrk (s1, s2);
- }
- extern inline char *
- _G_strpbrk (char *s1, const char *s2)
- {
- return const_cast<char *> (strpbrk (s1, s2));
- }
- extern inline const char *
- _G_strrchr (const char *s, int c)
- {
- return strrchr (s, c);
- }
- extern inline char *
- _G_strrchr (char *s, int c)
- {
- return const_cast<char *> (strrchr (s, c));
- }
- extern inline const char *
- _G_strstr (const char *s1, const char *s2)
- {
- return strstr (s1, s2);
- }
- extern inline char *
- _G_strstr (char *s1, const char *s2)
- {
- return const_cast<char *> (strstr (s1, s2));
- }
- extern inline const void *
- _G_memchr (const void *s, int c, size_t n)
- {
- return memchr (s, c, n);
- }
- extern inline void *
- _G_memchr (void *s, int c, size_t n)
- {
- return const_cast<void *> (memchr (s, c, n));
- }
- } // extern "C++"
- // Lose any vendor macros for these functions.
- #undef strchr
- #undef strpbrk
- #undef strrchr
- #undef strstr
- #undef memchr
- // Ewww, namespace pollution. Anyone have a better idea?
- #define strchr _G_strchr
- #define strpbrk _G_strpbrk
- #define strrchr _G_strrchr
- #define strstr _G_strstr
- #define memchr _G_memchr
- #endif // 0
- #endif // !defined (__CSTRING__)