2012-01-27 9 views
5

Utilizzando DMD 2.057, non posso ottenere il seguente codice per compilare:Stato di implementazione di "identificatore" Chiave

import std.stdio; 

import std.array; 

enum direction 
{ 
    test1, 
    test2, 
    test3 
} 

string getDescriptionOnConnect(direction d) 
{ 
    string descriptionOnConnect = "Going in direction %dir%"; 
    foreach(s; __traits(allMembers, direction)) 
    { 
     if (identifier(d) == s) 
     { 
      descriptionOnConnect = 
       replace(descriptionOnConnect, "%dir%", identifier(d)); 
     } 
    } 

    return descriptionOnConnect; 
} 

int main(string[] argv) 
{ 
    return 0; 
} 

ottengo l'errore Error: undefined identifier identifier, anche se questa parola chiave è chiaramente definito nella documentazione a http://www.d-programming-language.org/traits.html#identifier. Ho anche provato __identifier, ma ho avuto lo stesso errore. Questo non è ancora stato implementato?

risposta

12

identifier è un argomento per __traits proprio come allMembers (come tutti gli altri in quella pagina).

+3

in altre parole usare '__traits (identificatore, d)' –