Date: Sun, 16 Feb 2025 13:56:02 +0100
Tiago, When you delay declare your variable as const, for the rest of the code, how can it know that it should use the const version of the non const?Explevoid UsePointer(int*);void foo(){ int var = init(); .../// do something with var const var; ++var; // should fail right? UsePointer(&var);// cast away const???}Sent from my Galaxy
-------- Original message --------From: Bo Persson via Std-Proposals <std-proposals_at_[hidden]> Date: 2/16/25 12:54 PM (GMT+01:00) To: std-proposals_at_[hidden] Cc: Bo Persson <bo_at_[hidden]> Subject: Re: [std-proposals] Delayed const declaration On sön 2025-02-16 at 12:08, Tiago Freire via Std-Proposals wrote:> If you are going to do that, perhaps we can simplify the syntax a little > bit.> > Instead of having to declare [mutable const] which makes the variable > open for writes like any other regular variable.> > We could just omit [mutable const] and deduce that after the fact > depending on either or not a close statement is used, instead of:> > [mutable const] int x = 0;> > const x;> > you would simplify it as:> > int x = 0;> > const x;> The two-step declaration has the disadvantage that it invites typos. Or when you change the name of x, you might forget the const declaration half a page further down. Now some other x is const?This reminds me of a similar problems with goto, where added code before and after the label affects what the goto means (in a totally different location).-- Std-Proposals mailing listStd-Proposals_at_[hidden]://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
-------- Original message --------From: Bo Persson via Std-Proposals <std-proposals_at_[hidden]> Date: 2/16/25 12:54 PM (GMT+01:00) To: std-proposals_at_[hidden] Cc: Bo Persson <bo_at_[hidden]> Subject: Re: [std-proposals] Delayed const declaration On sön 2025-02-16 at 12:08, Tiago Freire via Std-Proposals wrote:> If you are going to do that, perhaps we can simplify the syntax a little > bit.> > Instead of having to declare [mutable const] which makes the variable > open for writes like any other regular variable.> > We could just omit [mutable const] and deduce that after the fact > depending on either or not a close statement is used, instead of:> > [mutable const] int x = 0;> > const x;> > you would simplify it as:> > int x = 0;> > const x;> The two-step declaration has the disadvantage that it invites typos. Or when you change the name of x, you might forget the const declaration half a page further down. Now some other x is const?This reminds me of a similar problems with goto, where added code before and after the label affects what the goto means (in a totally different location).-- Std-Proposals mailing listStd-Proposals_at_[hidden]://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2025-02-16 12:56:14