teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

寝ぼけて定義と宣言を間違えてたので修正

2020/04/23 04:04

投稿

asm
asm

スコア15149

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