Thread overview
How convert DList!string to string array
Feb 15, 2014
Denis Mezhov
Feb 15, 2014
Timon Gehr
Feb 15, 2014
Denis Mezhov
Feb 15, 2014
Jakob Ovrum
Feb 15, 2014
Timon Gehr
Feb 15, 2014
Jakob Ovrum
Feb 15, 2014
Timon Gehr
Feb 15, 2014
Jakob Ovrum
Feb 15, 2014
Jesse Phillips
February 15, 2014
Please help. How to convert DList!string to string array?

auto a = DList!string();
a.insertFront("123");
a.insertFront("abc");

string[] b = a[];
Array!string c = a[];

Don't work.


February 15, 2014
On 02/15/2014 05:30 PM, Denis Mezhov wrote:
> Please help. How to convert DList!string to string array?
>
> auto a = DList!string();
> a.insertFront("123");
> a.insertFront("abc");
>
> string[] b = a[];
> Array!string c = a[];
>
> Don't work.
>
>

auto b = a[].array;
Array!string c;
c.insertBack(a[]);

February 15, 2014
On Saturday, 15 February 2014 at 16:38:42 UTC, Timon Gehr wrote:
> On 02/15/2014 05:30 PM, Denis Mezhov wrote:
>> Please help. How to convert DList!string to string array?
>>
>> auto a = DList!string();
>> a.insertFront("123");
>> a.insertFront("abc");
>>
>> string[] b = a[];
>> Array!string c = a[];
>>
>> Don't work.
>>
>>
>
> auto b = a[].array;
> Array!string c;
> c.insertBack(a[]);

It works! Thanks for the quick reply.
February 15, 2014
On Saturday, 15 February 2014 at 16:38:42 UTC, Timon Gehr wrote:
> On 02/15/2014 05:30 PM, Denis Mezhov wrote:
>> Please help. How to convert DList!string to string array?
>>
>> auto a = DList!string();
>> a.insertFront("123");
>> a.insertFront("abc");
>>
>> string[] b = a[];
>> Array!string c = a[];
>>
>> Don't work.
>>
>>
>
> auto b = a[].array;
> Array!string c;
> c.insertBack(a[]);

You can construct containers from ranges directly:

auto c = Array!string(a[]);
February 15, 2014
On 02/15/2014 06:11 PM, Jakob Ovrum wrote:
> ...
>
> You can construct containers from ranges directly:
>
> auto c = Array!string(a[]);

This seems obvious, but it is not actually true.
February 15, 2014
On Saturday, 15 February 2014 at 18:14:00 UTC, Timon Gehr wrote:
> On 02/15/2014 06:11 PM, Jakob Ovrum wrote:
>> ...
>>
>> You can construct containers from ranges directly:
>>
>> auto c = Array!string(a[]);
>
> This seems obvious, but it is not actually true.

It is a defined container primitive. The first one in the table, in fact.
February 15, 2014
On Saturday, 15 February 2014 at 16:38:42 UTC, Timon Gehr wrote:
> On 02/15/2014 05:30 PM, Denis Mezhov wrote:
>> Please help. How to convert DList!string to string array?
>>
>> auto a = DList!string();
>> a.insertFront("123");
>> a.insertFront("abc");
>>
>> string[] b = a[];
>> Array!string c = a[];
>>
>> Don't work.
>>
>>
>
> auto b = a[].array;
> Array!string c;
> c.insertBack(a[]);

I just wanted to point out:

    auto b = a[].array;

That is unrelated to c, which is a conversion to Array, while this is a conversion to an array.
February 15, 2014
On 02/15/2014 07:23 PM, Jakob Ovrum wrote:
> On Saturday, 15 February 2014 at 18:14:00 UTC, Timon Gehr wrote:
>> On 02/15/2014 06:11 PM, Jakob Ovrum wrote:
>>> ...
>>>
>>> You can construct containers from ranges directly:
>>>
>>> auto c = Array!string(a[]);
>>
>> This seems obvious, but it is not actually true.
>
> It is a defined container primitive. The first one in the table, in fact.

Array does not implement this primitive.
http://dpaste.dzfl.pl/a8cb1064bd08
February 15, 2014
On Saturday, 15 February 2014 at 18:30:39 UTC, Timon Gehr wrote:
> On 02/15/2014 07:23 PM, Jakob Ovrum wrote:
>> On Saturday, 15 February 2014 at 18:14:00 UTC, Timon Gehr wrote:
>>> On 02/15/2014 06:11 PM, Jakob Ovrum wrote:
>>>> ...
>>>>
>>>> You can construct containers from ranges directly:
>>>>
>>>> auto c = Array!string(a[]);
>>>
>>> This seems obvious, but it is not actually true.
>>
>> It is a defined container primitive. The first one in the table, in fact.
>
> Array does not implement this primitive.
> http://dpaste.dzfl.pl/a8cb1064bd08

That seems gratuitous. If there's no particular reason it doesn't implement it, I would consider it a bug. It is arguably the most basic container primitive.