Date: Wed, 10 Dec 2025 13:38:51 +0100
The lifetime is typically bound to an lvalue (it least in this example).
If you reassign a with a non-owning view, the vector is destructed.
-----Ursprüngliche Nachricht-----
Von:Jarrad Waterloo via Std-Proposals <std-proposals_at_[hidden]>
Gesendet:Mi 10.12.2025 13:42
Betreff:Re: [std-proposals] [PXXXXR0] Add a New Keyword `undecl`
An:std-proposals_at_[hidden];
CC:Jarrad Waterloo <descender76_at_[hidden]>;
similar
3. Const-locking identifiers (redeclaration without undecl) :
It would sometimes be very nice to be able to redeclare a non-const
variable as const, to "lock" it against accidental changes:
undeclare without ending lifetime as in I just don't want access to the object anymore
This reduces alias count.
How about redeclare to a non invalidating view.
span a = /*vector*/ a.
Prior Work
Related
P2951R2 Shadowing is good for safety
Also related
view only access to object i.e. remove reference only restriction on lifetime extension or in other words change reference to pure alias type
P3824R1 Static storage for braced initializers NBC examples
NOTE: This was an NBC on C++26.
Concerning guidelines
Guidelines have banned C++ features such as dynamic allocation for safety reasons only to allow it in certain circumstances once it has shown to aid safety.
On Wed, Dec 10, 2025 at 5:24 AM wjf via Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> > wrote:
I think it's the compiler job to prevent the skip of undecl statement in some branch of program flow. For example the following code is forbidden too.
//...
{
int x = 1;
illegal_entry_point:
//...
}
goto illegal_entry_point; //wrong code
pdf link: proposals/Add_New_Keyword_undecl.pdf at main · zenkee/proposals · GitHub
---Original---
From: "Sebastian Wittmeier via Std-Proposals"<std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> >
Date: Wed, Dec 10, 2025 12:04 PM
To: "Std-Proposals"<std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> >;
Cc: "Sebastian Wittmeier"<wittmeier_at_[hidden] <mailto:wittmeier_at_[hidden]> >;
Subject: Re: [std-proposals] [PXXXXR0] Add a New Keyword `undecl`
One can do the same without brace levels by using switch case or goto.
-----Ursprüngliche Nachricht-----
Von:Breno Guimarães <brenorg_at_[hidden] <mailto:brenorg_at_[hidden]> >
Gesendet:Mi 10.12.2025 02:35
Betreff:Re: [std-proposals] [PXXXXR0] Add a New Keyword `undecl`
An:Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> >;
CC:Sebastian Wittmeier <wittmeier_at_[hidden] <mailto:wittmeier_at_[hidden]> >;
The paper says that undecl can only be called in the same brace level as the declaration. So I guess this example isn't valid.
Em ter., 9 de dez. de 2025, 22:29, Sebastian Wittmeier via Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> > escreveu:
undeclaring a variable is the same as relocating from a variable to nothingness (or to somewhere else).
A variable, which was relocated from, may also not be used any longer afterwards.
One detail may be the difference between position in the program (source code line within the block) and program flow.
int a = -1;
for (int i = 0; i < 10; i++) {
if (i == 5)
a++; // can a be used here?
if (i == 4)
undecl a;
if (i == 5)
a++; // and here?
}
-----Ursprüngliche Nachricht-----
Von:wjf via Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> >
Gesendet:Mi 10.12.2025 02:23
Betreff:[std-proposals] [PXXXXR0] Add a New Keyword `undecl`
Anlage:Add_New_Keyword_undecl.pdf
An:std-proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> >;
CC:wjf <wjf_at_[hidden] <mailto:wjf_at_[hidden]> >;
see attachment proposals/Add_New_Keyword_undecl.pdf at main · zenkee/proposals · GitHub
<http://thirdqq.qlogo.cn/ek_qqapp/AQNPOicdlIgbG9Ribmfj8EKjTG2hwBlicwibL4stQmE6UNEQ3eh3aQCoFUzN0k1xGg/0>
wjf
wjf_at_[hidden]
-- Std-Proposals mailing list Std-Proposals_at_[hidden] <mailto:Std-Proposals_at_[hidden]> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--
Std-Proposals mailing list
Std-Proposals_at_[hidden] <mailto:Std-Proposals_at_[hidden]>
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--
Std-Proposals mailing list
Std-Proposals_at_[hidden] <mailto:Std-Proposals_at_[hidden]>
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--
Std-Proposals mailing list
Std-Proposals_at_[hidden]
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2025-12-10 12:53:35
