Array literals are weird.

russhy russhy at gmail.com
Sun May 2 13:10:46 UTC 2021


On Sunday, 2 May 2021 at 05:57:02 UTC, evilrat wrote:
> On Saturday, 1 May 2021 at 19:49:51 UTC, russhy wrote:
>> On Saturday, 1 May 2021 at 12:22:50 UTC, evilrat wrote:
>>> On Saturday, 1 May 2021 at 11:50:27 UTC, Adam D. Ruppe wrote:
>>>>
>>>> or you can use the library `.staticArray` thing to expressly 
>>>> indicate your intention on the original foo
>>>>
>>>> foo([1,2,3].staticArray);
>>>>
>>>>
>>>
>>> Is there one in Phobos? Anyway this works, but maybe it can 
>>> be made more type safe with constraints or just with improved 
>>> symtax.
>>>
>>> ```d
>>> // compiles with -vgc and -betterC (weird, also without 
>>> import stdc.core.stdio)
>>> import std.range : ElementType;
>>>
>>> template staticArray(alias T)
>>> {
>>> 	enum ElementType!(typeof(T))[T.length] staticArray = T;
>>> }
>>>
>>> extern(C) void main()
>>> {
>>> 	import core.stdc.stdio;
>>> 	auto arr = staticArray!([1,2,3]);
>>> 	pragma(msg, typeof(arr)); // int[3]
>>> 	foreach(i; arr)
>>> 		printf("%d\n", i);
>>> }
>>> ```
>>
>>
>> don't you realize something is weird?
>>
>> someone is asking to be able to do auto a = [1, 2, 3]
>>
>> and you propose a template?
>>
>> this is asking people to look for alternative language
>>
>> auto a = new[1,2,3]  <== this should be allocated array
>> auto a = [1,2,3] <== this should be static array
>>
>> let's fix that, shall we? instead of telling people to bloat 
>> their files with templates
>
> You see only what you wanted to see.
>
> Let me clarify something.
> That code proves that unlike it was stated "array type 
> information is gone" it actually isn't, which this code proves.
> It provides workaround just is case.
> I'm not forcing anyone to use it, and there is simpler solution 
> (still a template one) in phobos.
> And finally, I haven't said anything like "D DONT NEED THIS, 
> STFU AND USE HACKS".
>
> But after recent discussion you seem to trigger just by seeing 
> my posts. No thanks I don't need any stalkers following me 
> around.

i'm not stalking you, i don't even read the user name when i 
reply to messages, i focus on their content

today is you, yesterday it was another person, tomorow will 
probably be another person, that's the way it is, i find things 
that annoys me, i reply

nobody else seems to be "triggered" by the need of such 
"workaround", i decided it would be me




More information about the Digitalmars-d mailing list