この定義の意味を教えてください。私はこれを、パラメータargs
で関数を呼び出し、返された結果をT
型にキャストするタスク構造のオーバーロードされたテンプレート関数とみなします。オーバーロードされたオペレータとして機能するラッパー
template <class T>
struct Task
{
template <typename ...Args>
void operator()(const Args&... args)
{
(*static_cast<const T*>(this))(args...);
}
};
どうすればよいですか?私のためには、それは非常に過剰に見えます。
そうすることのポイントは、最初は誰も書いてはいけない醜いタイプセーフなC++コードを実装することです。それ以上の説明は必要ありません。 –
'this'は関数ではありません – Slava
はい、これはメンバ関数が呼び出されているオブジェクトのアドレスです。しかし、これは私をさらに混乱させます。 – DzikiChrzan