C++ Logo

std-proposals

Advanced search

Re: [std-proposals] [PXXXXR0] Add a New Keyword `undecl`

From: Zhihao Yuan <zy_at_[hidden]>
Date: Thu, 11 Dec 2025 22:59:10 +0000
On Tuesday, December 9th, 2025 at 5:35 PM, Breno Guimarães via Std-Proposals <std-proposals_at_[hidden]> wrote:

> 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.


So at least the list of destructors to call
during stack unwinding isn't dynamic :)

But question remains. Consider

  vector a = f1();
  vector b = f2();

  foo(); // throw?
  undecl a;
  undecl b;

If foo() does not throw, presumably
we destruct a then b; if it throws, we
then destruct b then a? Besides,
I'm not sure whether the first case
is implementable in all unwinding
ABIs. Please check with implementers.

--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
> Em ter., 9 de dez. de 2025, 22:29, Sebastian Wittmeier via Std-Proposals <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]>
> > > 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]>;
> > > CC: wjf <wjf_at_[hidden]>;
> > > see attachment
> > > 
> > > wjfwjf_at_[hidden]
> > > 
> > > --
> > >  Std-Proposals mailing list
> > >  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-11 22:59:17