私はここでいくつかの質問をブラウズしてきましたが、テンプレート化されたオブジェクトの型パラメータとしてvoid型としてキャストされた整数を渡したサンプルコードが見つかりました。ここで私が何を意味するかの例です:C++のテンプレート型パラメータについて
SomeRandomObject<void(int)> Object;
誰かが「無効(int型)」のコードの一部とそれがありませんを説明することができれば、私はそれをお願い申し上げます。
私はここでいくつかの質問をブラウズしてきましたが、テンプレート化されたオブジェクトの型パラメータとしてvoid型としてキャストされた整数を渡したサンプルコードが見つかりました。ここで私が何を意味するかの例です:C++のテンプレート型パラメータについて
SomeRandomObject<void(int)> Object;
誰かが「無効(int型)」のコードの一部とそれがありませんを説明することができれば、私はそれをお願い申し上げます。
このタイプは「int
を受け取り、void
を返す関数」です。
タイプは関数タイプです。あなたはそれにその型の変数や参照を宣言することはできませんから、自分自身だけで種類を持っています
typedef int (ft)(void); // Huh? (raw function type)
typedef ft *fp; // ??? (pointer to function)
typedef int (*fp_oldstyle)(void); // Ahh... (same as fp)
機能を、しかし:あなたは今までそれが唯一のポインタ型で使用されているので、それにそれほど馴染みがないかもしれませんあなたが典型的に使用するものはポインタです。ポインタは最後の行のよく知られた構文で宣言されています。いずれの関数でもint foo(void);
の場合は、foo
と&foo
の両方がポインタとして解釈されるため、 "生の"関数タイプft
は必要ありません。
しかし、std::function
,std::bind
、lambdasの新しいテンプレートマジックでは、テンプレートパラメータで裸関数の型を見るのがはるかに一般的なことです。
お手伝いありがとう。 –