On 07/19/2014 04:53 AM, Uranuz wrote:

> When I tried to use std.conv.to to serialize enum values that are based
> on string type I faced with situation that *to* not exactly as I
> expected.

Maybe I misunderstand you but the behavior is consistent for all enum types in both conversion directions. The value 1 does not appear anywhere in the following conversions, so "hello" should not appear either:

import std.conv;

enum I : int    { a = 1 }
enum S : string { a = "hello" }

void main()
{
    assert(I.a.to!string == "a");
    assert(S.a.to!string == "a");

    assert("a".to!I == I.a);
    assert("a".to!S == S.a);
}

Doing anything special for a particular type would be confusing and make at least template programming hard.

Ali

Reply via email to