テンプレート関数の実験をしています。
コードは以下です。
main.cpp
c++
1#include "template_function.h" 2 3int main() 4{ 5 // テンプレート関数を呼ぶ 6 everyPrint(1.5, "kontiha"); 7 8 everyPrint(10.0f, 20.0f); 9 10 return 0; 11}
template_function.h
c++
1// テンプレート関数 2template <typename TYPE1, typename TYPE2> 3void everyPrint(TYPE1 a, TYPE2 b); 4 5void everyPrint(float a, float b);
template_function.cpp
c++
1#include "template_function.h" 2#include <iostream> 3 4// テンプレート関数 5template <typename TYPE1, typename TYPE2> 6void everyPrint(TYPE1 a, TYPE2 b) 7{ 8 std::cout << a << " " << b << "\n"; 9 return; 10} 11 12void everyPrint(float a, float b) 13{ 14 std::cout << a + b << "\n"; 15}
上記をコンパイルすると、以下のエラーが出力されます。
/tmp/ccTiyoWD.o: 関数 `main' 内: main.cpp:(.text+0x20): `void everyPrint<double, char const*>(double, char const*)' に対する定義されていない参照です collect2: error: ld returned 1 exit status
なぜ、main()からeveryPrint()を呼べないのか、ご教授頂けたら幸いです。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。