ClassArguments - ключевое слово class
, за которым следуют аргументы конструктора. DeclDefs являются объявлениями внутри класса.
Этот синтаксис предназначен для создания экземпляра анонимного вложенного класса , например
import std.stdio;
void main() {
class K {
this() { writeln("K.__ctor"); }
}
auto f = new class (1, "4", 7.0) K {
this(int a, string b, double c) {
super();
writefln("anon.__ctor: %s %s %s", a, b, c);
}
};
}
(См. http://ideone.com/cA1qo.)
Вышесказанное можно переписать в менее темную форму
import std.stdio;
void main() {
class K {
this() { writeln("K.__ctor"); }
}
class AnonymousClass : K {
this(int a, string b, double c) {
super();
writefln("anon.__ctor: %s %s %s", a, b, c);
}
}
auto f = new AnonymousClass(1, "4", 7.0);
}