模板是C++实现元编程的重要手段,C++的模板有类模板、函数模板,在C++11中引入了类型别名模板。而在C++14中,引入了一种称为变量模板的新的模板类型。
以一段代码为例:
//代码5.1
#include <iostream>
#include <string>
using namespace std;
template <typename T>
T var; //声明变量模板
void assign() //为模板的相应变量赋值
{
var<int> = 7;
var<double> = 3.14;
var<char> = '$';
var<string> = "这是一个字符串";
}
void get_address() //获取模板的相应变量的地址
{
int* pi = &var<int>;
double* pd = &var<double>;
char* pc = &var<char>;
string* ps = &var<string>;
cout << pi << " " << pd << " " << static_cast<void*>(pc) << " " << ps << endl;
}
void output() //输出模板的相应变量
{
cout << var<int> << endl << var<double> <&l