From 9b2d82dadbb465de71985a8db3aa8df454579b72 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 30 Oct 2026 14:33:33 +0000 Subject: docs(types): explain implicit constructors and raw text literals Co-Authored-By: Claude Opus 5.5 --- AGENTS/SUBSYSTEMS/STDLIB.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'AGENTS/SUBSYSTEMS/STDLIB.md') diff --git a/AGENTS/SUBSYSTEMS/STDLIB.md b/AGENTS/SUBSYSTEMS/STDLIB.md index 07d0959..138b076 100644 --- a/AGENTS/SUBSYSTEMS/STDLIB.md +++ b/AGENTS/SUBSYSTEMS/STDLIB.md @@ -33,8 +33,9 @@ import rules: [CONVENTIONS/EXCEPTIONS_AND_UNITS.md](../CONVENTIONS/EXCEPTIONS_AN - The STRING class is defined under PP_DEFINE __LIB. Its public internal void* handle owns std::string. The _string_impl_* C ABI reports __cps_user_line and throws 0 on std::exception. -- Functions/operators use ordinary resolution; StringValueGen bridges literals, C_STR, C - conversions and file operands. -- C_STRING literals have an adjacent uppercase C suffix. +- Functions/operators use ordinary resolution and marked IMPLICIT NEW(C_STRING) + and NEW(CHAR). StringValueGen bridges C_STR, explicit casts, CHAR checks and files. +- All double-quoted literals are C_STRING; the adjacent uppercase C suffix remains + accepted. OUTPUT and file text use the marked STRING constructor. - STRING INPUT delegates to READ_INPUT (rest of the line, throws at end of input), OUTPUT uses C stdout buffers, and READFILE invokes assignment from C_STRING then frees its temporary buffer. -- cgit v1.3.1-4-g156e