Request: a more logical static array behavior
monarch_dodra
monarchdodra at gmail.com
Thu Aug 15 02:55:50 PDT 2013
On Thursday, 15 August 2013 at 02:30:54 UTC, Jonathan M Davis
wrote:
> On Thursday, August 15, 2013 02:57:25 Tommi wrote:
>> Thus, my point is this:
>> Shouldn't this magical property of static arrays (implicitly
>> converting to dynamic array during type deduction) extend to
>> all
>> type deduction situations?
>
> No. If anything, we should get rid of the implicit conversion
> from a static
> array to a dynamic one. It's actually unsafe to do so. It's
> just like if you
> implicitly converted a local variable to the address of that
> local variable
> when you passed it to a function that accepted a pointer. IMHO,
> it never
> should have been allowed in the first place. At least with
> taking the address
> of a local variable, the compiler treats it as @system. The
> compiler doesn't
> currently do that with taking the slice of a static array.
>
> http://d.puremagic.com/issues/show_bug.cgi?id=8838
>
> If you want a dynamic array from a static one, then slice it.
> That works just
> fine with templated functions, and makes what you want
> explicit. Also, making
> it so that IFTI instantiated templates with the dynamic array
> type when given
> a static array would make it so that you would have to
> explicitly instantiate
> any templates where you actually wanted to pass a static array,
> which is a
> definite negative IMHO.
>
> At this point, I don't really expect that it'll be changed so
> that static
> arrays do not implicitly convert to dynamic ones (much as it
> would be ideal to
> make that change), but I really don't think that we should do
> anything to make
> the problem worse by adding yet more such implicit conversions.
>
> - Jonathan M Davis
+1
More information about the Digitalmars-d
mailing list