codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// -------------------------------- // 関数の"型"の話 // -------------------------------- //↓ 引数として何かの関数を受け取るテンプレート template<typename F> void foo(F f) { printf("%d\n", f()); } //↓「戻り値としてint型を持ち、引数がvoidされた関数」と言う型を持つ関数 int bar() { return 5963; } int main() { //↓「戻り値としてint型を持ち、引数がvoidされた関数」を型に指定されたテンプレート関数に //↓その型に該当する関数を渡している foo<int (*)(void)>(bar); //↓typedefは「そのフォーマットの中でプログラマが任意に付けた名前(変数名など)を //↓新たな型とみなす様にコンパイラに指示する物なので‥‥ typedef int (*hoge)(void); //↓当然これでもおk foo<hoge>(bar); return 0; }
Private
[
?
]
Run code
Submit