摘要:前言 让我们实现一个 IsAllTrue 函数,支持变长参数,可传入多个表达式,必须全部计算为true,该函数才返回true。 本文记录了逐步实现与优化该函数的思维链,用到了以下现代C++新特性知识,适合对C++进阶知识有一定了解的人。这样一种从实际问题来学习和运用知识的过程还是挺有趣的,特此整理分
阅读全文
摘要:C++: unordered_map 花式插入key-value的5种方式 前言 无意中发现std::unordered_map、std::map等插入key-value对在C++17后竟有了 insert() 、operator[] 、 emplace() 、 try_emplace() 和 in
阅读全文
摘要:为什么C++ 单例局部static初始化是线程安全的? const bg::AppSettings& bg::AppSettings::GetInstance() { static AppSettings instance; return instance; } 对于以上单例模式代码,在 C++11
阅读全文
摘要:前言: C++源码中司空见惯的PIMPL是什么?用原始指针、std::unique_ptr和std::shared_ptr指向Implementation,会有什么不同?优缺点是什么?读完这篇文章,相信你能搞懂这种设计方式并将其运用于实践,也将更容易阅读源码。 1. PIMPL是什么? PIMPL是
阅读全文
摘要:现代C++智能指针详解:原理、应用和陷阱 智能指针是C++11引入的新特性。本篇文章详细介绍了C++智能指针的原理、应用与陷阱,通过丰富的代码实例介绍了三种智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr的原理、使用方法和适用场景,还介绍了智能指针
阅读全文
摘要:C++ 高效使用智能指针的8个建议 前言:智能指针是C++11提供的新特性,它基于RAII实现,可以自动管理内存资源,避免内存泄漏的发生,但是智能指针也并不是万能的,如果不正确使用智能指针,也会导致内存泄漏的发生,因此,我们需要了解如何高效使用智能指针避免一些可能的陷阱。本文总结了8个关于智能指针的
阅读全文
摘要:C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法。智能指针模板参数的第二个类型是删除器,一般是一个函数指针类型或者是一个函数对象类型。通常情况下,删除器的类型是std::default_delete<T>,
阅读全文
摘要:导读:C++面试中有时会有这样一个问题,shared_ptr是线程安全的吗?对此问题,我们需要从三个并发场景进行考虑,拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题,首先给出以下结论: 如果多个线程同时拷贝同一个sh
阅读全文
摘要:C++: weak_ptr到底有什么用? 很多人对std::weak_ptr的认识只是不增加std::shared_ptr的引用计数,可以用来解决std::shared_ptr可能造成的循环引用问题。但是,实际对它的认识还是不够深刻,本文将从几个实际应用场景讲解,深入了解这种智能指针。比如,你是否知
阅读全文
摘要:https://blog.csdn.net/CodeBowl/article/details/119902935 通过typename ... Args指定变长参数。 通常通过递归展开各个参数, 使用sizeof ... (args)获取变长参数个数。 C++17 可以使用对if后的表达式使用con
阅读全文
摘要:Effective Modern C++ Item 19: use std::shared_ptr for shared-ownership resource Now, the constructor for spw1 is called with a raw pointer, so it crea
阅读全文
摘要:Modern C++ ——constexpr的用法 Reference 《现代C++语言核心特性解析》、《深入理解C++11》 为什么引入constexpr const可以定义常量,但也可以用来定义只读变量。const变量的值不一定是在编译期可以确定的,比如当通过函数返回值进行初始化时。 C++标准
阅读全文
摘要:c++ 动态内存与智能指针详解 一、 动态内存 (一)程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 C++还支持动态分配对象。动态分配的对象的生存期
阅读全文