1# 2# This file and its contents are supplied under the terms of the 3# Common Development and Distribution License ("CDDL"), version 1.0. 4# You may only use this file in accordance with the terms of version 5# 1.0 of the CDDL. 6# 7# A full copy of the text of the CDDL should have accompanied this 8# source. A copy of the CDDL is also available via the Internet at 9# http://www.illumos.org/license/CDDL. 10# 11 12# 13# Copyright 2026 Gordon W. Ross 14# 15 16# 17# Design notes for <cstring> test cases 18# 19# <cstring> must provide all C90 string functions in namespace std::. 20# string_iso.h declares all functions in namespace std:: and <cstring> 21# exposes them. 22# 23# The C++ standard (ISO/IEC 14882) requires that memchr, strchr, strpbrk, 24# strrchr, and strstr each have two overloads: one returning const pointer 25# (when given const input) and one returning non-const pointer. These are 26# handled by inline C++ wrappers in string_iso.h. 27# 28 29# 30# Types - must be in std:: 31# 32type | std::size_t | cstring | CXX98+ 33 34# 35# Memory functions - must be in std:: 36# 37func | std::memcmp |\ 38 int |\ 39 const void *; const void *; size_t |\ 40 cstring | CXX98+ 41func | std::memcpy |\ 42 void * |\ 43 void *; const void *; size_t |\ 44 cstring | CXX98+ 45func | std::memmove |\ 46 void * |\ 47 void *; const void *; size_t |\ 48 cstring | CXX98+ 49func | std::memset |\ 50 void * |\ 51 void *; int; size_t |\ 52 cstring | CXX98+ 53func | std::memchr |\ 54 const void * |\ 55 const void *; int; size_t |\ 56 cstring | CXX98+ 57 58# 59# String functions - must be in std:: 60# 61func | std::strcat |\ 62 char * |\ 63 char *; const char * |\ 64 cstring | CXX98+ 65func | std::strchr |\ 66 const char * |\ 67 const char *; int |\ 68 cstring | CXX98+ 69func | std::strcmp |\ 70 int |\ 71 const char *; const char * |\ 72 cstring | CXX98+ 73func | std::strcoll |\ 74 int |\ 75 const char *; const char * |\ 76 cstring | CXX98+ 77func | std::strcpy |\ 78 char * |\ 79 char *; const char * |\ 80 cstring | CXX98+ 81func | std::strcspn |\ 82 size_t |\ 83 const char *; const char * |\ 84 cstring | CXX98+ 85func | std::strerror |\ 86 char * |\ 87 int |\ 88 cstring | CXX98+ 89func | std::strlen |\ 90 size_t |\ 91 const char * |\ 92 cstring | CXX98+ 93func | std::strncat |\ 94 char * |\ 95 char *; const char *; size_t |\ 96 cstring | CXX98+ 97func | std::strncmp |\ 98 int |\ 99 const char *; const char *; size_t |\ 100 cstring | CXX98+ 101func | std::strncpy |\ 102 char * |\ 103 char *; const char *; size_t |\ 104 cstring | CXX98+ 105func | std::strpbrk |\ 106 const char * |\ 107 const char *; const char * |\ 108 cstring | CXX98+ 109func | std::strrchr |\ 110 const char * |\ 111 const char *; int |\ 112 cstring | CXX98+ 113func | std::strspn |\ 114 size_t |\ 115 const char *; const char * |\ 116 cstring | CXX98+ 117func | std::strstr |\ 118 const char * |\ 119 const char *; const char * |\ 120 cstring | CXX98+ 121func | std::strtok |\ 122 char * |\ 123 char *; const char * |\ 124 cstring | CXX98+ 125func | std::strxfrm |\ 126 size_t |\ 127 char *; const char *; size_t |\ 128 cstring | CXX98+ 129