随笔分类 -  C++之泛型

摘要:在学习C++泛型编程或者接触过STL源码的同学,一定对模板声明和实现放置在一起编写印象非常深刻。相交于C++非泛型编程,我们习惯上将函数的声明和实现分开存放,一来是代码更加“干净”,二来即使提供给三方使用也不会泄漏源码实现。那C++模板声明和实现能够分离吗? 一、C++模板声明和实现不分离 下面是N 阅读全文
posted @ 2021-06-20 23:01 blackstar666 阅读(2318) 评论(0) 推荐(0)
摘要:RAII(资源获取即初始化)机制给我们的编程带来了极大的帮助,C++标准库中的std::lock_guard就使用到了该机制。它的作用是:guard对象在构造的时候将资源初始化好,在guard对象析构的时候将资源自动释放掉;完美的解决了过去C++程序员需要手动或异常情况下管理资源释放的问题。那么"s 阅读全文
posted @ 2021-06-16 22:50 blackstar666 阅读(1010) 评论(0) 推荐(0)
摘要:在学习C++泛型编程的时候,是不是非常想知道你实例化的模板函数或模板类在编译器推导下是什么样子?今天就给大家简单介绍一个在线编译器:C++ Insights (cppinsights.io),它能够满足你的需求。 一、常用编译器的痛点 如下一个代码示例: 1 template <typename T 阅读全文
posted @ 2021-06-09 20:10 blackstar666 阅读(1965) 评论(0) 推荐(1)
摘要:同学们是否有听说过奇异递归模版模式(CRTP)?听说过的同学大致也知道其代码编写格式是怎么样的?但是,同学们是否有弄清楚过其是怎么达到这种效果的?接下来就简单聊聊! 一、奇异递归模板模式 下面是奇异递归模板模式的一般编写格式: 1 template<typename T> 2 class Base 阅读全文
posted @ 2021-05-19 00:29 blackstar666 阅读(306) 评论(0) 推荐(0)
摘要:在使用第三方库的时候,一般会提供两种格式的库文件:静态库(lib)和动态库(dll)。在使用动态库的时候,需要这个dll和头文件外,还需要一个lib文件(该文件和静态lib不同,其只是包含了dll中导出函数的符号);但是如果只有这个dll库文件,我们该如何办呢?这就涉及到Windows动态加载相关知 阅读全文
posted @ 2021-05-14 22:24 blackstar666 阅读(1323) 评论(0) 推荐(0)