Напишите функцию, которая работает во время выполнения. Тогда позвони. Что-то вроде:
bool less(string a, string b)
{
auto ap = a.splitter(".").map!(x => to!int(x));
auto bp = b.splitter(".").map!(x => to!int(x));
while (!ap.empty && !bp.empty)
{
if (ap.front < bp.front) return true;
ap.popFront; bp.popFront;
}
return ap.empty;
}
static if (less("1.2.12", "1.2.2"))
pragma(msg, "it's less");
else
pragma(msg, "it's not less");
Вы можете вызывать нормальные функции во время компиляции. Это то, что в D мы называем CTFE (оценка функции времени компиляции).
По словам Уолтера Брайта (из моей памяти) «D обладает уникальной способностью запускать код D во время компиляции».
Это, кажется, известная проблема, из-за новой системы настройки 'p2'.
Посмотрите это обсуждение и эту ошибку. То, что это, кажется, говорит..., "остаются помещенными до 3.5M3 и затем пробуют его снова".
This solution works for me:
If you follow this procedure, it will work just fine in Eclipse 3.3 and 3.4. Naturally, you should automate this process with Ant.
Important notes:
I'll do my best to blog about it soon... Let me know if you have any questions.
Мне кажется, что мне удалось поместить тег, определяющий категорию в site.xml, перед тегом, включающим тег другой категории. Если вы добавите категорию с помощью редактора eclipse после добавления функции, это все испортит ...