练习16.37:
可以做到,但是要显式指定模板实参
测试:
练习16.38:
make_shared有多个实现,可以不传递参数,也可以进行值传递。甚至可以通过传递数组大小与元素进行初始化,编译器无法推断出要指向的参数,必须要显式指定
练习16.39:
使用显式参数模板,使得可以向函数传递两个字符串字面常量
#include <iostream>
#include <vector>
#include <list>
using namespace std;
template<typename T>
int compare(const T& v1, const T& v2)
{
if (v1 < v2)return -1;
if (v2 < v1)return 1;
return 0;
}
int main()
{
cout << compare<string>("hello", "c++") << endl;
system("pause");
return 0;
}
结果如下: