Получить текущую строку исходного файла в D - PullRequest
5 голосов
/ 16 декабря 2010

Есть ли способ получить текущую строку в исходном файле, в котором вы находитесь, как __LINE__ в C ++?

1 Ответ

9 голосов
/ 16 декабря 2010

Да, вы можете использовать __LINE__. Также __FILE__.

См. Раздел Ключевые слова

Как отмечают в комментариях BCS и Джонатан М. Дэвис, для __LINE__ и его друзей существует особый случай: при использовании в качестве значения по умолчанию шаблона или аргумента функции они разрешаются в местоположение вызывающая сторона , а не подпись шаблона или функции. Это отлично подходит для того, чтобы избавить абонентов от необходимости предоставлять эту информацию.

void myAssert(T)(lazy T expression, string file = __FILE__, int line = __LINE__)
{
     if (!expression)
     {
          // Write the caller location
          writefln("Assert failure at %s:%s", file, line);
     }
}
...