C++11之模板的别名

简介: C++11之模板的别名

模板的别名

在C++中,可以使用typedef关键字为类型定义别名。

语法: typedef 原类型 别名;

而在C++11中,引入了using也可以定义类型的别名。

语法: using 别名 = 原类型;

在C++11中using覆盖了typedef所具有的所有功能,并且还有着typedef没有的功能,这个后面再说。

typdef 与using的使用

通过usingtypedef分别对unsigned int定义别名,然后通过C++11的is_same模板类进行测试俩种方式定义的别名类型是否一致。

#include <iostream>
#include <type_traits>
using namespace std;
using uint = unsigned int;
typedef unsigned int UINT;
using sint = int;
int main()
{
  // C++11的is_same模板类 判断俩个类型是否一致。
  cout << is_same<uint, UINT>::value << endl; // 1
  cout << is_same<uint, sint>::value << endl; // 0
  return 0;
}


运行结果:

1
0


由此可见,typedef 和using的作用是相同的。

模板式编程

如果说using为类型定义别名的功能仅仅等同于typedef,那么就太小瞧它了。using在为类型定义别名上还支持模板类型,这是typedef无法完成的功能。

#include <map>
#include <string>
using namespace std;
template<typename T>  using MapString = map<T, string>;
int main()
{
  MapString<int> m;
  return 0;
}
目录
相关文章
|
1月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
91 10
|
3月前
|
编译器 C++
【C++】——初识模板
【C++】——初识模板
【C++】——初识模板
|
4月前
|
程序员 C++
C++模板元编程入门
【7月更文挑战第9天】C++模板元编程是一项强大而复杂的技术,它允许程序员在编译时进行复杂的计算和操作,从而提高了程序的性能和灵活性。然而,模板元编程的复杂性和抽象性也使其难以掌握和应用。通过本文的介绍,希望能够帮助你初步了解C++模板元编程的基本概念和技术要点,为进一步深入学习和应用打下坚实的基础。在实际开发中,合理运用模板元编程技术,可以极大地提升程序的性能和可维护性。
|
30天前
|
编译器 程序员 C++
【C++打怪之路Lv7】-- 模板初阶
【C++打怪之路Lv7】-- 模板初阶
16 1
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
41 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
1月前
|
算法 编译器 C++
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
76 2
|
1月前
|
存储 编译器 C++
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
38 2
|
1月前
|
存储 算法 编译器
【C++】初识C++模板与STL
【C++】初识C++模板与STL
|
1月前
|
编译器 C++
【C++】模板进阶:深入解析模板特化
【C++】模板进阶:深入解析模板特化
|
2月前
|
存储 算法 程序员
C++ 11新特性之可变参数模板
C++ 11新特性之可变参数模板
54 0