ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

深入理解C++ 模板<三> 别名模板

深入理解C++ 模板<三> 别名模板 别名模板Alias Template是 C11 引入的一项特性它允许你为一个类型族a family of types创建一个新的名字。简单来说它就像一个“模板化的typedef”可以帮你简化复杂的模板类型声明。核心概念与语法是什么别名模板本身是一个模板当它被具体化特化时就等价于将模板参数代入到指定的类型表达式type-id中所得到的结果。为什么用它最主要的用途是简化代码。当一个复杂的模板类型如std::vectorT, MyAllocatorT在代码中反复出现时可以用一个简短、清晰的别名来代替。如何用使用using关键字在模板声明之后进行定义。cpp// 语法 template模板形参列表 using 标识符 类型标识;#include iostream #include string #include utility // for std::pair // 1. 定义一个别名模板名为 IntPair // 它表示一个 std::pair其中第一个元素总是 int 类型 // 第二个元素类型由模板参数 T 决定。 templatetypename T using IntPair std::pairint, T; int main() { // 2. 使用别名模板 IntPair 来声明变量 // IntPairstd::string 等价于 std::pairint, std::string IntPairstd::string p1 {1, Hello}; IntPairdouble p2 {2, 3.14}; // 3. 输出验证 std::cout p1: ( p1.first , p1.second ) std::endl; std::cout p2: ( p2.first , p2.second ) std::endl; return 0; }
返回列表