作者:taoklin,腾讯WXG后台开发
一、简单特性1. namespace 嵌套c 17使我们可以更加简洁使用命名空间:
2. std::variant 升级版的C语言Union在C 17之前,通常使用Union来定义一个可以存储不同类型的变量,现在可以通过std::variant<T1,T2,...> 来定义一个可以存储不同类型的新变量。
std::variant优势在于:①存储了变量的类型信息,更安全;②可以存储复杂对象,更好用。
用法如下
3. [[fallthrough]] 显式说明某个switch分支无需break如果在写代码时遇到在swtich语句中需要执行完case 1,继续执行case 2的情况,可以使用[[fallthrough]],此时编译器会忽略此处break语句检查,还能显式的告知Code Reviewer 此处是有意不写break语句。
用法如下:
4. [[nodiscard]] 显式说明不能忽略函数返回值如果我们编写的某个函数不希望调用时忽略它的返回值,那么可以在函数声明处,使用[[nodiscard]]修饰这个函数。
用法如下: