Name n3614, alx-0021r1 - (potentially) reserve stp*(), wcp*(), memp*(), wmemp*() Principles - Codify existing practice to address evident deficiencies. - Enable secure programming Category Standardize common APIs Author Alejandro Colomar Cc: Yair Lenga Cc: Joseph Myers Cc: Christopher Bazley History r0 (2025-06-12): - Initial draft. r1 (2025-06-26; n3614): - s/Description/Rationale/ Description The stp*(), wcp*(), memp*(), and wmemp*() sets of APIs are essential to efficient and simple string handling. They enable writing code that is both more readable and more efficient. stpcpy(3), mempcpy(3), and related functions are essential and present in many implementations, mainly on POSIX systems. Some of these APIs have been standardized by POSIX. We should add these API prefixes to the set of potentially reserved names. In theory, memp*() and wmemp*() should already be reserved, since mem*() and wmem*() should already be reserved, but I found some inconsistencies in the standard, so address those while at it. Proposed wording Based on N3550. 7.35.18 String handling @@ p1 Function names that begin with -str, mem, or wcs +str, stp, mem, wcs, wcp, or wmem and a lowercase letter are potentially reserved identifiers ... 7.35.21 Extended multibyte and wide character utilities @@ p1 Function names that begin with -wcs +wcs, wcp, or wmem and a lowercase letter are potentially reserved identifiers ...