Статус реализации ключевого слова «идентификатор» - PullRequest
5 голосов
/ 27 января 2012

Используя DMD 2.057, я не могу получить следующий код для компиляции:

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

Я получаю ошибку Error: undefined identifier identifier, хотя это ключевое слово четко определено в документации на http://www.d -programming-language.org/traits.html#identifier.Я также пытался __identifier, но я получил ту же ошибку.Это еще не реализовано?

1 Ответ

11 голосов
/ 27 января 2012

identifier является аргументом __traits, как и allMembers (как и все остальные на этой странице).

...