模板函数声明、定义、引用问题
模板函数声明、定义、引用有什么要注意的问题么??
-- mylib.h --
template <class T>
T max_v(T v1, T v2);
-- mylib.cpp --
#include "mylib.h"
template <class T>
T max_v(T v1, T v2)
{
return (v1 > v2 ? v1 : v2);
}
-- mylibtest.cpp --
#include "mylib.h"
int main()
{
std::cout << max_v(2, 4) << std::endl;
system("pause");
return 0;
}
使用g++编译器,提示“undefined reference to `int max_v<int>(int, int)'”
但是如果将template<class T> T max_v(T v1, T v2)的定义放到mylibtest.cpp中就可以通过
请各位xdjm指点一二 ......