
5.C++新特性
文章平均质量分 57
# C++新特性
qq_40178082
这个作者很懒,什么都没留下…
展开
-
lambda表达式
默认是const(就 相当于类中的const函数)可以使用mutable。可使用nonexcept指明函数是否会抛异常。可以使用auto ,since C++14。大多数情况都可以自动推导,但初始化列表不行。specifiers:可选限定符。[captures]:捕获列表。(params):可选参数列表。this类型的成员变量与函数。可按值,按引用或者组合。ret:可选返回值类型。原创 2024-10-14 21:33:10 · 450 阅读 · 0 评论 -
条款2 理解auto类型的推导
【代码】条款2 理解auto类型的推导。原创 2024-10-16 20:43:01 · 258 阅读 · 0 评论 -
条款3: 理解decltype
decltype并不会实际计算表达式,编译器会分析表达式并得到该类型。可以使用decltype(auto)保留xxx的所有修饰。某些情况函数的返回值无法提前得到:使用尾置返回。decltype单独作用于对象时,会返回表达式结果对应的类型,:得到该类型的左值引用;原创 2024-10-16 21:34:47 · 376 阅读 · 0 评论 -
条款5 优先考虑auto而非显式类型声明
v.size() 的标准返回类型是 std::vector<int>::size_type,在不同系统是 unsigned 与 std::vector<int>::size_type的大小是不同的。原创 2024-12-23 22:14:57 · 309 阅读 · 0 评论 -
条款6:auto推导若非己愿,使用显式类型初始化惯用法
所谓的代理类就是以模仿和增强一些类型的行为为目的存在的类。原创 2024-12-24 22:42:22 · 172 阅读 · 0 评论 -
条款31:避免使用默认捕获模式(Lambda表达式)
下面这段代码极其危险,该函数执行完divisor的生命周期就over了虽然上面代码的[&]改为[=]就可以解决问题,但[=]还有其他问题。原创 2024-12-22 18:13:00 · 352 阅读 · 0 评论 -
理解std::move和std::forward
【代码】理解std::move和std::forward。原创 2024-10-14 21:43:56 · 493 阅读 · 0 评论 -
C++类型转换
动态转换(是 C++ 中的一种类型转换操作,专门用于处理多态类型(即包含虚函数的类层次结构)。可以在运行时对类的类型进行检查,确保类型转换的安全性。用法相比于静态类型转换(如),会在运行时进行检查,并且只有在以下两种情况下使用:上行转换(Upcasting):从子类转换为父类下行转换(Downcasting):从父类转换为子类,且要求父类中至少有一个虚函数(即是多态类)。原创 2024-10-13 21:41:57 · 1032 阅读 · 0 评论 -
va_list
可以是传入一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应,用起来是很灵活。函数是 C 标准库中的一个函数,用于将可变参数格式化为字符串,并将结果存储到一个字符数组中,类似于。是一个 C 标准库函数,用于格式化字符串,并将结果存储到一个字符数组中,同时限制字符串的长度。不是直接将结果打印到标准输出或文件中,而是将其存储在指定的字符数组中。,用于格式化字符串并将结果存储到字符数组中,与。是在C语言中解决变参问题的一组宏,原创 2023-09-26 11:03:34 · 211 阅读 · 0 评论 -
【C++ 语法】__VA_ARGS__ 可变参数宏
正在编译文件的路径及文件名:正在编译文件的行号:编译时刻的日期字符串 如“Jun 17 2017”:编译时刻的时间字符串 如”1000“提示:__LINE__是整型数据;其实除了这些还有很多相关的定义,比如:1.:函数名,类型为:字符常量指针。2.:IDE版本信息,类型为:整型。原创 2023-12-13 18:12:20 · 1963 阅读 · 0 评论 -
C++17之std::variant
如下列出了为std:: variable 提供的所有操作。原创 2024-03-17 16:36:40 · 188 阅读 · 0 评论