2

以下のコード スニペットについて質問があります。コードを正しく理解しているかどうかわかりません。

template <typename R, typename... Args>                                     
class RunnableAdapter<R(*)(Args...)> {
 public:
  typedef R (RunType)(Args...);

  explicit RunnableAdapter(R(*function)(Args...))   
      : function_(function) {
  }

  R Run(Arg... args) {
    return function_(args...);
  }

 private:
  R (*function_)(Args...);
};
  1. <R(*)(Args...)>は「関数ポインタの型」であり、R と (*) の間の点滅スペースは必ずしも必要ではありませんか?

  2. RunnableAdapter のインスタンス化とは何でしょうか? 以下のようなものだと思います。
    void myFunction(int i){ // }; RunnableAdfapter<(void)(*)(int)> ra(MyFunction); ra.Run(1); //which calls MyFunction(1)

4

1 に答える 1