Effective C++_第五篇
45 使用成员函数模板来接受所有兼容类型 概述 在C++模板编程中,成员函数模板允许类的成员函数独立于类的模板参数进行模板化,从而使得这些成员函数可以接受比类的模板参数更广泛的类型 问题描述 假设你有一个模板类,其某个成员函数需要处理比类模板参数更广泛的类型 传统的类模板参数限制...
45 使用成员函数模板来接受所有兼容类型 概述 在C++模板编程中,成员函数模板允许类的成员函数独立于类的模板参数进行模板化,从而使得这些成员函数可以接受比类的模板参数更广泛的类型 问题描述 假设你有一个模板类,其某个成员函数需要处理比类模板参数更广泛的类型 传统的类模板参数限制...
概述 Pybind11是一个用于将C++代码与Python绑定的轻量级头文件库,使得可以轻松地在Python中调用C++函数和类 还可以让C++代码调用Python的功能和库 理解 可以把Pybind11理解为一个中间层,提供了在C++中调用Python代码或在Python中调用...
概述 一种先进先出的数据结构。 queue有两个出口,允许从最底端加入元素,取得最顶端元素。 除了这种最底端加入,最顶端可以取出元素的方式外,没有任何其他方法可以存取queue的其他元素。 最底端加入 push 最顶端推出 pop 实现 缺省实现 SGI STL以双端队列作为缺省...
Windows 检查编译器 _MSC_VER 预处理指令 用于检查是否正在使用 Microsoft Visual C++ 编译器,并根据编译器的类型或版本执行相应的代码 __cplusplus_winrt 预处理指令 用于根据正在编译的代码是否为 Windows 运行时组件执行不...
34 区分接口继承和实现继承 概述 在C++的面向对象编程中,继承可以用于两种目的:接口继承和实现继承 理解并区分这两种继承方式有助于设计更清晰、可维护和灵活的类结构 接口继承 子类继承基类的接口,但可以重新定义(覆盖)基类的方法 接口继承通常用于定义类的行为约定,使得不同的子类...
线程池 任务管理 任务定义 动态数量任务同步 根据请求到的目标数量解析任务,创建任务,并投入线程池 当任务解析成功或者成功添加时,使用fetch_add递增 当某个线程处理完成后,使用--(*pending)递减 并判断当前pending是否已经为0,为0则进行相关逻辑
进程地址空间 概述 Windows 进程地址空间和 Linux 一样采用虚拟地址空间,每个进程有独立的虚拟地址空间,由 Windows 内核和硬件 MMU 联合管理 核心区别在于: Windows 使用 PE(Portable Executable)格式代替 ELF 使用 Hea...
信号 概述 /usr/include/ 信号是进程间通信(IPC)的一种简单机制 信号提供了一种向进程传递通知和信息的方式,以便进程可以相应地做出反应 信号类型 SIGINT:当用户按下CTRL-C时,通常发送这个信号来中断进程 SIGTERM:用于正常终止进程,是kill命令的...
友元类 适用情况 紧密协作: 当两个类需要紧密协作,且需要共享内部实现细节时 例如,操作类需要访问数据类的内部数据来实现复杂的功能 封装复杂操作: 当某些复杂操作不能或不应成为数据类的成员函数时 通过友元类可以将这些操作封装在独立的类中,从而简化数据类的设计 提高性能: 在某些情...
timer timer 毫秒级别的精度。 <boost/timer.hpp> using namespace boost; progress_timer 派生自timer。 会在析构时自动输出流逝的时间。 <boost/progress.hpp> usin...
搜索当前标签