
C++
C++学习笔记
zhangcm1998
这个作者很懒,什么都没留下…
展开
-
spdlog输出日志等级控制由set_level运行时和#define SPDLOG_ACTIVE_LEVEL编译时共同控制
控制log活跃级别 #define SPDLOG_ACTIVE_LEVEL原创 2023-08-24 14:40:33 · 586 阅读 · 0 评论 -
forward完美转发
std::forward的作用是根据模板参数T的类型,将输入参数t转换为相应的引用类型。如果T是一个左值引用类型,那么t会被转换为一个左值引用;如果T是一个非引用类型或右值引用类型,那么t会被转换为一个右值引用。std::forward是一个标准模板函数,它用于实现完美转发,即将输入的参数原封不动地传递给另一个函数,保持其左值或右值的属性。,以实现泛型编程中的完美转发。原创 2023-03-02 22:16:26 · 489 阅读 · 0 评论 -
移动操作【右值引用,std::move(),移动拷贝(赋值)函数】
为了支持移动操作(高效),右值引用,std::move(),移动拷贝(赋值)函数。其中移动拷贝(赋值)函数以右值引用为参数,做函数匹配时【左值拷贝,右值移动】。std::move()作为左值到右值引用地转换函数【桥梁】,以达到“左值移动,避免拷贝”,代价是左值变量被窃取【保证赋值与销毁】原创 2023-03-02 22:12:16 · 535 阅读 · 1 评论 -
protobuf/C++ 安装测试与项目中使用makefile编译
【代码】protobuf/C++ 安装测试与项目中使用makefile编译。原创 2022-11-30 22:06:14 · 782 阅读 · 0 评论 -
Linux/C++项目结构与编译
【代码】Linux/C++项目结构与编译。原创 2022-11-30 21:37:38 · 714 阅读 · 0 评论 -
thread01
【代码】thread01。原创 2022-11-22 22:35:56 · 86 阅读 · 0 评论 -
c++向前声明解决循环引用问题,简化依赖关系
两个类A和B相互关联,相互引用,如果采用彼此包含对方头文件的方式会出现循环引用,所以采用了类的前置声明的方式可以声明一个类而不定义它,这个声明被称为前向声明(forward declaration)。在声明之后,定义之前,类是一个不完全类型(incompete type),即已知向前声明过的类是一个类型,但不知道包含哪些成员。不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数原创 2022-11-16 18:33:06 · 1294 阅读 · 0 评论 -
回调函数|std::function|std::bind
如果你把函数的指针(地址)作为参数传递给另一个函数(类),当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的。原创 2022-11-16 18:30:42 · 508 阅读 · 0 评论 -
STL-仿函数functors
仿函数functors目的只为算法服务结构 继承binary_function<T,T,T>(二元操作,两个操作数类型T,T,一个返回类型) unary_function<T,T>(一元操作,操作数类型,返回类型) 继承是可适配(adaptable)的条件,因为适配是适配器要“问“操作数类型和返回类型使用 less()生成临时对象...原创 2021-10-25 22:20:31 · 113 阅读 · 0 评论 -
win操作系统C++语言 socket,udp通信
win平台C++语言 socket,udp通信服务端流程首先要加载套接字库创建套接字服务端地址bind 套接字与地址绑定recvfrom 等待并接收数据sendto 发送数据资源关闭服务端代码示例// udpsrv.cpp #include<stdio.h>#include <iostream>#include <WinSock2.h>#include<WS2tcpip.h>#pragma comment(lib,"ws2_3原创 2021-10-25 17:10:08 · 2572 阅读 · 0 评论