回答編集履歴
1
寝ぼけて定義と宣言を間違えてたので修正
answer
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
C++のtemplate関数/クラスはtemplate外から利用された時にはじめて実体化されます。
|
2
|
-
そのせいもあって、
|
2
|
+
そのせいもあって、宣言と実装をわけるのは大変です。
|
3
3
|
|
4
4
|
今回は、ラムダ式の型が翻訳単位に縛られているせいで、テンプレート関数へ渡せる型にならない事が問題となっています。
|
5
5
|
|
6
6
|
対処方法としては
|
7
|
-
-
|
7
|
+
- 宣言と実装を一緒にする。
|
8
8
|
つまりは`search_algorithms.h`に`search_algorithms.cpp`の内容を書いてしまう。
|
9
9
|
- templateではなく`std::function`を用いる。
|
10
10
|
|