回答編集履歴
3
refine
test
CHANGED
@@ -46,13 +46,13 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
- 関数`a`は`std::function<int(int)>`型へと
|
49
|
+
- 関数`a`は`std::function<int(int)>`型へと変換可能です。
|
50
50
|
|
51
|
-
- 関数`a`は関数ポインタ`int(*)(int)`型へと
|
51
|
+
- 関数`a`は関数ポインタ`int(*)(int)`型へと変換可能です。
|
52
52
|
|
53
|
-
- クロージャオブジェクト`b`は`std::function<int(int)>`型へと
|
53
|
+
- クロージャオブジェクト`b`は`std::function<int(int)>`型へと変換可能です。
|
54
54
|
|
55
|
-
- ラムダ式`[](int x){return x;}`は**何もキャプチャしないため**、クロージャオブジェクト`b`は関数ポインタ`int(*)(int)`型へと
|
55
|
+
- ラムダ式`[](int x){return x;}`は**何もキャプチャしないため**、クロージャオブジェクト`b`は関数ポインタ`int(*)(int)`型へと変換可能です。
|
56
56
|
|
57
57
|
|
58
58
|
|
2
add link
test
CHANGED
@@ -103,3 +103,7 @@
|
|
103
103
|
cout << funcC(10, +b) << '\n'; // +により関数ポインタ型へ強制変換
|
104
104
|
|
105
105
|
```
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
(参考記事:[ラムダ式と単項+演算子 - 地面を見下ろす少年の足蹴にされる私](https://onihusube.hatenablog.com/entry/2019/04/19/204552))
|
1
refine
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
- `test1::funcB`の第2引数は関数ポインタ`int(*)(int)`型を要求します。
|
30
30
|
|
31
|
-
- `test1::funcC`の第2引数は関数`int(int)`型を要求するように見えますが、C++のルールにより「関数ポインタ`int(*)(int)`型」に読み替えられます。
|
31
|
+
- `test1::funcC`の第2引数は関数`int(int)`型を要求するように見えますが、[C++のルール](https://timsong-cpp.github.io/cppwp/n4659/dcl.decl#dcl.fct-5)により「関数ポインタ`int(*)(int)`型」に読み替えられます。
|
32
32
|
|
33
33
|
|
34
34
|
|
@@ -90,9 +90,9 @@
|
|
90
90
|
|
91
91
|
cout << funcA(10, {a}) << '\n'; // {}によりstd::functionの推論ガイドを利用
|
92
92
|
|
93
|
-
cout << funcB(10, a) << '\n'; // (無加工)
|
93
|
+
cout << funcB(10, a) << '\n'; // (無加工)
|
94
94
|
|
95
|
-
cout << funcC(10, a) << '\n'; // (無加工)
|
95
|
+
cout << funcC(10, a) << '\n'; // (無加工)
|
96
96
|
|
97
97
|
|
98
98
|
|