Parens
Koroskin Denis
2korden at gmail.com
Sat May 10 04:24:11 PDT 2008
On Sat, 10 May 2008 12:35:22 +0400, Ty Tower <towerty at msn.com.au> wrote:
> Dee Girl Wrote:
>
>> Janice Caron Wrote:
>>
>> > On 10/05/2008, Dee Girl <deegirl at noreply.com> wrote:
>> > > void main(string[] args)
>> > > {
>> > > auto c = new const C;
>> > > }
>> > >
>> > > Does not compile. But if I change to const(C) it does compile. It
>> is a bit unusual that parens make such a big difference. Thank you, Dee
>> Girl
>> >
>> > When it comes to parens-version versus non-parens-version, it's not
>> > really a problem if one of the two doesn't compile. It would be a
>> > bigger problem if both compile, but behave differently.
>> >
>> > But I agree with you. "new const C" should behave like "new const(C)".
>> >
>> > However, what you probably should have written is:
>> >
>> > const c = new C;
>> >
>> > because "auto" is what you use in the absence of any other attribute.
>> > In this case, it suffices to create a new C, and then assign it to a
>> > const-thereafter variable.
>>
>> I respectfully disagree, Janice-san. The const subject is of big
>> interest to me and I read many times on the website about it. I think
>> in general it is better to write new const(C) but not new C and then
>> use it to assign a const. It is similar to invariant(C) and it is
>> impossible to construct a new C and then assign it to invariant(C)
>> object. In Andres document from ACCU he shows how invariant constructor
>> must know that object being constructed is invariant. And the same a
>> const constructor could know that the object being constructed is const
>> and use that information. Thank you, Dee Girl
>
>
> Ahh the Japs . Exponents of the art of seeming respectful whilst telling
> you you are a bloody idiot . This ones not so good at it though.
>
>
Please, stop it.
More information about the Digitalmars-d
mailing list