2012-01-27 16 views
5

Usando DMD 2.057, no se puede obtener el código siguiente para compilar:estado de aplicación de la palabra clave "identificador"

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; 
} 

me sale el error Error: undefined identifier identifier, aunque esta palabra clave está claramente definido en la documentación en http://www.d-programming-language.org/traits.html#identifier. También probé __identifier, pero obtuve el mismo error. ¿Esto no ha sido implementado todavía?

Respuesta

12

identifier es un argumento para __traits igual que allMembers (como todos los demás en esa página).

+3

en otras palabras, use '__traits (identificador, d)' –

Cuestiones relacionadas