to!() conversion between objects

Piotr Szturmaj bncrbme at jadamspam.pl
Thu Oct 20 01:04:17 PDT 2011


Robert Jacques wrote:
> On Wed, 19 Oct 2011 14:16:31 -0400, Piotr Szturmaj
> <bncrbme at jadamspam.pl> wrote:
>> bearophile wrote:
>>> Piotr Szturmaj:
>>>
>>>> I have written a simple conversion template for tuples, structs and
>>>> classes:
>>>
>>> Do you have some use case to show me?
>>
>> class C
>> {
>> int i;
>> string s;
>> }
>>
>> struct S
>> {
>> string s;
>> float f;
>> }
>>
>> auto c = to!C(S("5", 2.5f));
>> assert(c.i == 5 && c.s == "2.5");
>>
>
> So C's s field maps to S's f field, not it's s field? That seems
> unintuitive and bug prone.

This isn't name to name mapping but field to field mapping.

Better example would be:

alias Tuple!(int, string) IntString;
auto t = to!IntString(S("5", 2.5f));

assert(t[0] == 5 && t[1] == "2.5");


More information about the Digitalmars-d mailing list