JTC 1/SC 22/WG 23 C++ Vulnerability Discussions WG 23 N1518 October 13 2025 Participants Stephen Michell - convenor, SCC Peter Sommerlad - Switzerland Richard Corden - USA Erhard Ploedereder - liaison Paul Preney - Canada Regrets Matt Butler - USA Loic Joly - AFNOR Actions: Discussion of clause 7 issues. Paul added new text. Issues addressed Clause 4.4 - Lifetime - significant updates. Confirmed text with that found in 4.4. Clause 6.13 Clause 6.14 Clause 6.22 Clause 6.13 - referenced 4.4 and integrated text to support. clause 6.14 - referenced 4.4 and integrated text to support. clause 6.22 - referenced 4.4 and integrated text to support. FROM THE CHAT 2025-10-13: 11:06:47 From Peter Sommerlad to Everyone: Any object with dynamic storage duration created at compile time during constant expression evaluation needs to be destroyed before the end of constant evaluation. 11:15:42 From Peter Sommerlad to Everyone: auto p = new int(42); 11:15:53 From Peter Sommerlad to Everyone: new(p) {41}; 11:16:03 From Peter Sommerlad to Everyone: std::cout << *p; // invalid 11:16:27 From Peter Sommerlad to Everyone: std::cout << *std::launder(p); // ok 11:18:25 From Richard Corden to Everyone: https://eel.is/c++draft/basic#life-6 11:30:22 From Richard Corden to Everyone: The correct behavior of a program often depends on the destructor being invoked for each object of class type. 11:43:46 From Peter Sommerlad to Everyone: Improper management of objects with dynamic storage duration can cause memory leaks. 11:51:02 From Peter Sommerlad to Everyone: [\[EWF\]](#EWF) 12:48:41 From Richard Corden to Everyone: Scalar types, implicit-lifetime class types ([class.prop]), array types, and cv-qualified versions of these types are collectively called implicit-lifetime types. 12:48:52 From Richard Corden to Everyone: A class S is an implicit-lifetime class if (16.1) it is an aggregate whose destructor is not user-provided or (16.2) it has at least one trivial eligible constructor and a trivial, non-deleted destructor. ```