摘要:C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法。智能指针模板参数的第二个类型是删除器,一般是一个函数指针类型或者是一个函数对象类型。通常情况下,删除器的类型是std::default_delete<T>,
阅读全文
摘要:https://blog.csdn.net/CodeBowl/article/details/119902935 通过typename ... Args指定变长参数。 通常通过递归展开各个参数, 使用sizeof ... (args)获取变长参数个数。 C++17 可以使用对if后的表达式使用con
阅读全文
摘要:C++不要对函数返回值添加std::move() References C++ 函数返回局部变量的std::move()问题? Return Statement Copy elision Summary 编译器会进行返回值优化——复制省略(copy elision),局部对象直接创建在了需要函数返回
阅读全文
摘要:c++ push_back()和emplace_back()区别 References C++中push_back和emplace_back的区别 push_back v.s. emplace_back 一、源码分析 ###(1)push_back()定义 // stl_vector.h templ
阅读全文
摘要:c++ 动态内存与智能指针详解 一、 动态内存 (一)程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 C++还支持动态分配对象。动态分配的对象的生存期
阅读全文
摘要:显式转换:显式将一种类型转换为另一种类型。 References: C++中的显示数据类型转换 与命名的强制类型转换相比,旧式的强制类型转换从表现形式上来说不那么清晰明了,容易被看漏,所以一旦转换过程出现问题,追踪起来也更加困难。 C++ 引入新的强制类型转换机制,主要是为了克服C语言强制类型转换的
阅读全文