В D я могу инициализировать непосредственно в декларации и ожидать, что выражения инициализатора являются частью конструктора? Я пришел с C#, и вот это случай. Но с DMD 2.071.0 Im получает другое поведение.Являются ли инициализаторы выражения частью конструктора в D?
class Other { }
class Test { Other nonStaticMember = new Other; }
void test()
{
auto t1 = new Test;
auto t2 = new Test;
// Assert is failing, the two Test instances are
// being initialized to the same reference
// instead of execute the Other constructor twice.
assert(t1.nonStaticMember !is t2.nonStaticMember);
}
Если это intented поведение должно быть документировано здесь: https://dlang.org/spec/class.html правильно?