Вызов на уровне модуля функций из деструктора в D (кажется, бросает OutofMemoryError)

У меня есть глобальный модуль D, который содержит некоторые функции помощника (а именно для ведения журнала), которые находятся на уровне модуля, а не в классе. Однако при вызове этих функций из деструктора я получаю core.exception.outofmemoryError и / или приложение висит и аварийрует. Я здесь делаю что-то не так?

Снятый тестовый чехол:

Logger.d

module main.logger;
void log(const(char)[] msg) {
    auto time = // GET TIME OF DAY SOMEHOW
    std.stdio.writeln(std.conv.to!string(time) ~ " " ~ msg);
}

Class.d

module main.class;
import main.logger;

class A {
    public:
        this() {}
        ~this() { log("Destructor"); }
}
6
задан Mark LeMoine 6 September 2011 в 20:55
поделиться