【D言語】__MODULE__と__FUNCTION__と__PRETTY_FUNCTION__の追加【dmd】

MODULEFUNCTIONPRETTY_FUNCTIONが追加されました。


module hoge;
import std.stdio;

void f(string module_ = __MODULE__, string function_ = __FUNCTION__, string prettyFunction = __PRETTY_FUNCTION__)
{
    module_.writeln();        // hoge
    function_.writeln();      // hoge.main
    prettyFunction.writeln(); // void hoge.main()
}

void main()
{
    f();
}

引数のデフォルト値として使われると、それぞれ呼び出し元のモジュール名、関数名になります。 PRETTY_FUNCTIONだと、引数と戻り値の型も分かります。 mixinを駆使すれば、いろいろ出来そうですね。

担当:美馬(呼び出し元のモジュールの関数を呼ぶとか、面白そう)