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