STL-宏与STL
1. // 宏是在预处理阶段对代码进行纯文本替换
2. // 宏本身没有函数的语义,不会对数据类型进行检查
3. // 因此借助参数宏可以摆脱数据类型的约束和限制,但同时失去对数据类型的检查
4. // C++定义参数实现一个通用的模板功能
#define MAX(T) T max_##T(T x, T y){ return x > y ? x : y; }
MAX(int)
MAX(float)
MAX(double)
MAX(string)
#define Max(T) max_##T
void test()
{
int a = 10;
int b = 20;
cout << Max(int)(a, b) << endl;
string x = "hello";
string y = "world";
cout << Max(string)(x, y) << endl;
char cx[20] = "hello";
char cy[20] = "world";
cout << Max(string)(cx, cy) << endl;
}