3

関数ポインタをインスタンス化したい:

static void GetProc (out function f) {
    auto full = demangle(f.mangleof);
    auto name = full[full.lastIndexOf('.')+1..$];

    f = cast(typeof(f)) GetProcAddress(hModule,name.toStringz);
}

しかし、コンパイラは関数型変数の使用を許可しません(out function f)。使ってみたのですObjectがどうやら(どうして??)でfunctionはないようです。では、 /変数としてObject渡すにはどうすればよいですか( /を使用しないと、コードがわかりにくくなり、多くのステートメントを追加する必要があります...) ?functionrefouttemplatemixintypeof

4

1 に答える 1

7

という型はありませんfunction。関数は、 のように戻り値の型と引数の型を指定する必要がありますint function(double, string)。何らかの機能をサポートしたい場合は、テンプレートを使用してください

static void GetProc(T)(out T f) if (isFunctionPointer!T) 
  ...
于 2012-01-10T15:48:30.407 に答える