c++11 新增类型

目录

一,nullptr

二,强类型枚举 enum class

三,元组 tuple


一,nullptr

NULL 的问题在于既可以理解成整数0,也可以理解成空指针。

因为NULL是一个宏,有不同的定义。所以实际使用会因为二义性产生实际的问题。

nullptr的好处就是它就是空指针,不是整数。

int* p1 = NULL; // 可能是 0 或 nullptr int* p2 = nullptr; // 类型安全

二,强类型枚举 enum class

enum class Code : int { OK = 200, NotFound = 404, InternalServerError = 500 };

好处就是既保证了类型安全,又可以灵活的按照整数值去使用

三,元组 tuple

std::tuple<int, char, double> mytuple(10, 'a', 3.14); int myInt = std::get<0>(mytuple); // 获取第一个元素 char myChar = std::get<1>(mytuple); // 获取第二个元素 double myDouble = std::get<2>(mytuple); // 获取第三个元素