llvm-project

Форк
0
104 строки · 3.4 Кб
1
// -*- C++ -*-
2
//===----------------------------------------------------------------------===//
3
//
4
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
// See https://llvm.org/LICENSE.txt for license information.
6
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
//
8
//===----------------------------------------------------------------------===//
9

10
#ifndef _LIBCPP_CSTRING
11
#define _LIBCPP_CSTRING
12

13
/*
14
    cstring synopsis
15

16
Macros:
17

18
    NULL
19

20
namespace std
21
{
22

23
Types:
24

25
    size_t
26

27
void* memcpy(void* restrict s1, const void* restrict s2, size_t n);
28
void* memmove(void* s1, const void* s2, size_t n);
29
char* strcpy (char* restrict s1, const char* restrict s2);
30
char* strncpy(char* restrict s1, const char* restrict s2, size_t n);
31
char* strcat (char* restrict s1, const char* restrict s2);
32
char* strncat(char* restrict s1, const char* restrict s2, size_t n);
33
int memcmp(const void* s1, const void* s2, size_t n);
34
int strcmp (const char* s1, const char* s2);
35
int strncmp(const char* s1, const char* s2, size_t n);
36
int strcoll(const char* s1, const char* s2);
37
size_t strxfrm(char* restrict s1, const char* restrict s2, size_t n);
38
const void* memchr(const void* s, int c, size_t n);
39
      void* memchr(      void* s, int c, size_t n);
40
const char* strchr(const char* s, int c);
41
      char* strchr(      char* s, int c);
42
size_t strcspn(const char* s1, const char* s2);
43
const char* strpbrk(const char* s1, const char* s2);
44
      char* strpbrk(      char* s1, const char* s2);
45
const char* strrchr(const char* s, int c);
46
      char* strrchr(      char* s, int c);
47
size_t strspn(const char* s1, const char* s2);
48
const char* strstr(const char* s1, const char* s2);
49
      char* strstr(      char* s1, const char* s2);
50
char* strtok(char* restrict s1, const char* restrict s2);
51
void* memset(void* s, int c, size_t n);
52
char* strerror(int errnum);
53
size_t strlen(const char* s);
54

55
}  // std
56

57
*/
58

59
#include <__config>
60
#include <__type_traits/is_constant_evaluated.h>
61

62
#include <string.h>
63

64
#ifndef _LIBCPP_STRING_H
65
#   error <cstring> tried including <string.h> but didn't find libc++'s <string.h> header. \
66
          This usually means that your header search paths are not configured properly. \
67
          The header search paths should contain the C++ Standard Library headers before \
68
          any C Standard Library, and you are probably using compiler flags that make that \
69
          not be the case.
70
#endif
71

72
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
73
#  pragma GCC system_header
74
#endif
75

76
_LIBCPP_BEGIN_NAMESPACE_STD
77

78
using ::size_t _LIBCPP_USING_IF_EXISTS;
79
using ::memcpy _LIBCPP_USING_IF_EXISTS;
80
using ::memmove _LIBCPP_USING_IF_EXISTS;
81
using ::strcpy _LIBCPP_USING_IF_EXISTS;
82
using ::strncpy _LIBCPP_USING_IF_EXISTS;
83
using ::strcat _LIBCPP_USING_IF_EXISTS;
84
using ::strncat _LIBCPP_USING_IF_EXISTS;
85
using ::memcmp _LIBCPP_USING_IF_EXISTS;
86
using ::strcmp _LIBCPP_USING_IF_EXISTS;
87
using ::strncmp _LIBCPP_USING_IF_EXISTS;
88
using ::strcoll _LIBCPP_USING_IF_EXISTS;
89
using ::strxfrm _LIBCPP_USING_IF_EXISTS;
90
using ::memchr _LIBCPP_USING_IF_EXISTS;
91
using ::strchr _LIBCPP_USING_IF_EXISTS;
92
using ::strcspn _LIBCPP_USING_IF_EXISTS;
93
using ::strpbrk _LIBCPP_USING_IF_EXISTS;
94
using ::strrchr _LIBCPP_USING_IF_EXISTS;
95
using ::strspn _LIBCPP_USING_IF_EXISTS;
96
using ::strstr _LIBCPP_USING_IF_EXISTS;
97
using ::strtok _LIBCPP_USING_IF_EXISTS;
98
using ::memset _LIBCPP_USING_IF_EXISTS;
99
using ::strerror _LIBCPP_USING_IF_EXISTS;
100
using ::strlen _LIBCPP_USING_IF_EXISTS;
101

102
_LIBCPP_END_NAMESPACE_STD
103

104
#endif // _LIBCPP_CSTRING
105

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.