【D言語】__MODULE__と__FUNCTION__と__PRETTY_FUNCTION__の追加【dmd】
MODULE
とFUNCTION
とPRETTY_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を駆使すれば、いろいろ出来そうですね。
担当:美馬(呼び出し元のモジュールの関数を呼ぶとか、面白そう)