最近、Tango ライブラリを使用して D バージョン 1 の学習を開始しました。C++ のスタイル出力によりよく一致するようにオーバーライドすることを除いてDout
、ラップする小さなクラスを作成することにしました。私の実装は次のようになります。tango.io.Stdout
opShl
<<
// dout.d
module do.Dout;
import tango.io.Stdout;
class Dout
{
public static Dout opShl(T) (T arg)
{
stdout(arg);
return new Dout;
}
public static Dout newline()
{
stdout.newline;
return new Dout;
}
}
そして主に、Dout.opShl() への単純な呼び出しを行います。
// main.d
import do.Dout;
import tango.io.Console;
int main(char[][] argv)
{
Dout << "Hello" << " world!" << Dout.newline;
Cin.get();
return 0;
}
これは機能しますが、Enter キーを押してメインを終了すると、テキスト「do.Dout.Dout」が出力されます。コードをステップ実行した後、次のテキストがアセンブリ命令で印刷されていることがわかりました。
00406B5C call __moduleDtor (40626Ch)
do.Dout のデストラクタが呼び出されています。
私の質問は、メインの終了時にモジュール名が出力されるのはなぜですか?この動作を停止するにはどうすればよいですか?