in vs. const

Robert Fraser fraserofthenight at gmail.com
Sat Mar 7 17:43:19 PST 2009


Adam Burton wrote:
> Sean Kelly wrote:
> 
>> dsimcha wrote:
>>> All the discussion about const on this NG lately has made me realize that
>>> I have no idea what the difference is between const and in, i.e. what is
>>> the difference between:
>>>
>>> SomeType foo(const SomeType bar) and
>>> SomeType foo(in SomeType bar)
>> There's no difference between them.  The 'in' version just happens to be
>> D1-compatible, and its meaning could be more easily changed over time if
>> any tweaking is necessary (unlikely).
> I have not done any D2, but surely 'in' is modifiable in the function locally 
> where as const is not (so since const is not modifiable at all it implies 
> in).
> For example:
> 
> void myfunc(in int i)
> {
> 	i = 10;	// i is changed to 10, k stays as 12
> }
> 
> int k = 12;
> myfunc(k);	
> 
> =================================
> 
> void myfunc(const int i)
> {
> 	i = 10;	// Fails to compile as i is const
> }
> 
> in k = 12;
> myfunc(k);
> 

No it's not. "in" means "const scope" in D2 (and scope is a NOP right now).



More information about the Digitalmars-d mailing list