
C++
文章平均质量分 76
flysnow010
毕业于北京科技大学,有超过20年软件开发经验。
展开
-
cxxopts位置参数示例
可以方便地处理位置参数(即不带有选项名,按顺序出现的参数)。下面详细介绍其位置参数的用法,包含代码示例、代码解释和注意事项。代码解释创建 对象:此代码创建了一个 对象,用于管理命令行选项,并指定了程序的名称和简要描述。定义普通选项:这里添加了两个普通选项: 用于打印帮助信息, 用于指定输出文件。定义位置参数:首先创建一个 类型的变量 ,用于存储位置参数。然后添加一个名为 的选项,它将接收多个字符串类型的位置参数,并将其存储在 中。设置位置参数名称: 方法指定了位置参数对原创 2025-02-14 17:16:06 · 604 阅读 · 0 评论 -
cxxopts分组使用示例
支持将命令行选项进行分组,这样可以让帮助信息的展示更加清晰,便于用户理解不同类型选项的用途。以下是关于 分组用法的详细介绍和示例代码。代码解释创建 对象:这行代码创建了一个 对象,用于管理命令行选项,并指定了程序的名称和简要描述。定义选项组:向选项组中添加选项:这里向 中添加了两个选项,分别是输入文件路径和输入文件格式。解析命令行参数:调用 方法对传入的命令行参数进行解析,解析结果存储在 对象中。打印帮助信息:当用户指定了 或 选项时,调用 方法打印帮助信息。 方法的原创 2025-02-14 17:14:06 · 748 阅读 · 0 评论 -
cxxopts使用示例(C++ 命令行参数解析库)
cxxopts是一个轻量级、易于使用的 C++ 命令行参数解析库,其设计目标是提供简洁、高效的方式来处理命令行输入。轻松地在 C++ 项目中处理命令行参数。下面是一个简单的示例,展示了如何使用。是一个仅头文件的库,你只需要将。通过以上介绍,你可以使用。原创 2025-02-14 17:09:51 · 973 阅读 · 0 评论 -
独立C++ asio库实现的UDP Client
以下是使用独立的asio库(无需依赖 Boost)实现的 UDP 客户端示例代码。该客户端可以向指定的 UDP 服务器发送消息,并接收服务器的响应。原创 2025-02-13 14:55:55 · 642 阅读 · 0 评论 -
独立C++ asio库实现的UDP Server
以下是一个使用独立的 C++ Asio 库实现的 UDP 服务器的示例代码。这个 UDP 服务器可以监听指定端口,接收客户端发送的数据,并将接收到的数据原样返回给客户端。原创 2025-02-13 14:54:01 · 829 阅读 · 0 评论 -
独立C++ asio库介绍
独立的asio库是一个跨平台的 C++ 库,用于网络和底层 I/O 编程。在 C++20 之前,asio通常作为 Boost 库的一部分存在(即 Boost.Asio)。而现在,asio已经可以独立使用,无需依赖 Boost 库,它提供了统一的异步和同步 I/O 模型,让开发者可以方便地编写高性能、可扩展的网络应用程序,支持多种网络协议,如 TCP、UDP、ICMP 等。原创 2025-02-13 14:49:01 · 953 阅读 · 0 评论 -
SML(State Machine Language)示例2
在使用 SML 创建状态机之前,需要定义事件、状态和动作。使用 SML 的 DSL(领域特定语言)来定义状态机的转换规则。原创 2025-02-12 15:25:12 · 425 阅读 · 0 评论 -
SML(State Machine Language)示例1
在使用 SML 创建状态机之前,需要定义事件、状态和动作。使用 SML 的 DSL(领域特定语言)来定义状态机的转换规则。原创 2025-02-12 15:22:19 · 661 阅读 · 0 评论 -
CL11命令行解析使用实例
CLI11提供了您在强大的命令行解析器中所期望的所有功能,具有美观、简洁的语法,并且以单个文件的形式提供,便于包含在项目中。这很容易适用于小型项目,但功能强大,足以支持复杂的命令行项目,并且可以针对框架进行定制。本来准备使用Boost库中program_options,不过boost整个头文件就有170MB,对于小小项目来说使用成本很高,还得编译boost库,感觉不划算。CLI11功能强大可以直接包含头文件使用,对小项目很友好。本文后面讲述CLL11的使用实例。原创 2024-07-18 16:02:14 · 680 阅读 · 0 评论 -
Linux下编译boost1.85
Boost提供免费的同行评审的可移植C++源库。我们强调与C++标准库配合良好的库。Boost库旨在广泛使用,并可在广泛的应用程序中使用。Boost许可证鼓励所有用户以最小的限制使用Boost库。我们的目标是建立“现有实践”并提供参考实现,以便Boost库适合最终的标准化。从库技术报告(TR1)中包含的十个Boost库开始,再到自2011年以来ISO C++标准的每次发布,C++标准委员会一直将Boost作为添加标准C++库的宝贵来源。原创 2024-07-18 13:51:09 · 827 阅读 · 0 评论 -
C++并发之环形队列(ring,queue)
最近研究了C++11的并发编程的线程/互斥/锁/条件变量,利用互斥/锁/条件变量实现一个支持多线程并发的环形队列,队列大小通过模板参数传递。环形队列是一个模板类,有两个模块参数,参数1是元素类型,参数2是队列大小,默认是10。入队操作如果队列满阻塞,出队操作如果队列为空则阻塞。原创 2024-06-25 16:50:26 · 871 阅读 · 0 评论 -
C++并发之阻塞队列(block,queue)
最近研究了C++11的并发编程的线程/互斥/锁/条件变量,利用互斥/锁/条件变量实现一个支持多线程并发的阻塞队列,队列大小没有限制。阻塞队列是一个模板类,有两个模块参数,参数1是元素类型,参数2是容器类型,可以是std::deque和std::list,默认是std::deque。入队操作没有阻塞,出队操作如果队列为空则阻塞。原创 2024-06-25 16:34:27 · 889 阅读 · 0 评论 -
C++容器之概览
在C++标准库中容器是通过模板实现的数据结构,多数可以通过迭代器统一访问,如vector、list、deque、set、map等。原创 2024-06-05 16:56:07 · 992 阅读 · 0 评论 -
C++代码优化之定义即初始化
定义即初始化,说的是变量再定义时就初始值。这在C语言中可以增加代码可读性,在C++可以提供代码执行效率。原创 2024-05-17 13:29:52 · 559 阅读 · 0 评论 -
C++共享指针相互引用性实例(std::shared_ptr,std::weak_ptr)
C++11引入了智能指针std::shared_ptr,不过std::shared_ptr随然好用,但使用不当就可能导致互相引用,导致内存无法释放。本文以实例来演示相互引用,以及解决办法。原创 2024-05-17 10:26:16 · 903 阅读 · 0 评论 -
C++智能指针之弱指针(std::weak_ptr)
从C++11开始C++语言越来向现代化语言转变。尤其是智能指针的引入,代码中不会直接使用new/delete了。C++11智能指针有三种分别是:shared_ptr,weak_ptr 和unique_ptr。原创 2024-05-16 17:45:05 · 972 阅读 · 0 评论 -
C++智能指针之共享指针(std::shared_ptr)
从C++11开始C++语言越来向现代化语言转变。尤其是智能指针的引入,代码中不会直接使用new/delete了。C++11智能指针有三种分别是:shared_ptr,weak_ptr 和unique_ptr。原创 2024-05-16 17:40:39 · 1806 阅读 · 0 评论 -
C++智能指针之唯一指针(std::unique_ptr)
从C++11开始C++语言越来向现代化语言转变。尤其是智能指针的引入,代码中不会直接使用new/delete了。C++11智能指针有三种分别是:shared_ptr,weak_ptr 和unique_ptr。原创 2024-05-15 11:19:27 · 613 阅读 · 0 评论 -
C++11智能指针之一(简介)
从C++11开始C++语言越来向现代化语言转变。尤其是智能指针的引入,代码中不会直接使用new/delete了。C++11智能指针有三种分别是:shared_ptr,weak_ptr 和unique_ptr原创 2024-05-13 17:17:34 · 409 阅读 · 0 评论 -
libssh C++封装之七(File)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。File类型可以读写远程文件。原创 2024-05-12 16:26:24 · 982 阅读 · 1 评论 -
libssh C++封装之六(Dir)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。Dir类型管理远程路径,通过SFTP和Channel实现(有的服务端不支持SFtp).原创 2024-05-10 17:31:06 · 1638 阅读 · 0 评论 -
libssh C++封装之五(Sftp)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。SFtp类型基于SFTP协议管理远程文件(通过Dir和File类型来管理)。原创 2024-05-10 16:32:12 · 765 阅读 · 0 评论 -
libssh C++封装之四(SCP)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。Scp类型通过SCP协议管理远程文件,可以上传和下载文件。原创 2024-05-09 15:01:47 · 1234 阅读 · 0 评论 -
C++命令行系统(三)
在嵌入式开发中,经常会利用命令行交互系统测试功能,本文描述使用C++语言开发的一个命令行交互系统,支持命令注册(C或C++格式),命令分组,执行命令,显示命令提示。原创 2024-05-06 10:51:47 · 274 阅读 · 0 评论 -
C++命令行系统(二)
在嵌入式开发中,经常会利用命令行交互系统测试功能,本文描述使用C++语言开发的一个命令行交互系统,支持命令注册(C或C++格式),命令分组,执行命令,显示命令提示。原创 2024-05-06 10:20:55 · 821 阅读 · 0 评论 -
C++命令行系统(一)
在嵌入式开发中,经常会利用命令行交互系统测试功能,本文描述使用C++语言开发的一个命令行交互系统,支持命令注册(C或C++格式命令),命令分组,执行命令,显示命令提示。原创 2024-04-30 21:04:17 · 603 阅读 · 0 评论 -
libssh C++封装之三 (Channel)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。原创 2024-04-29 18:09:51 · 935 阅读 · 0 评论 -
Linux Makefile之优化
前面写了两篇关于Makefile的文章Linux Makefile编写之静态库和Linux Makefile编写之可执行程序.虽然编译没有问题,但还有优化的空间。原创 2024-04-29 16:44:10 · 957 阅读 · 0 评论 -
Linux Makefile编写之可执行程序
编译工具有很多(make/cmake/BJam)。如果不考虑跨平台的话,还是make比较方便。使用make编译需要编写Makefile。本文编写Makefile来生成C/C++可执行程序。原创 2024-04-26 11:32:13 · 1433 阅读 · 1 评论 -
Linux Makefile编写之静态库
编译工具有很多(make/cmake/BJam)。如果不考虑跨平台的话,还是make比较方便。使用make编译需要编写Makefile。本文编写Makefile来生成C/C++静态库。原创 2024-04-25 12:03:41 · 1251 阅读 · 1 评论 -
CPPTest实战演示(CppTest libssh)
CppTest是一个可移植、功能强大但简单的单元测试框架,用于处理C++中的自动化测试。重点在于可用性和可扩展性。支持多种输出格式,并且可以轻松添加新的输出格式。下面编写实际测试用例,来熟练CppTest库使用。原创 2024-04-24 16:51:19 · 430 阅读 · 1 评论 -
libssh C++封装之二(Session)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。原创 2024-04-24 16:04:51 · 1059 阅读 · 0 评论 -
CPPTest实例分析(C++ Test)
CppTest是一个可移植、功能强大但简单的单元测试框架,用于处理C++中的自动化测试。重点在于可用性和可扩展性。支持多种输出格式,并且可以轻松添加新的输出格式。下面结合实例分析下CppTest如何使用。原创 2024-04-23 17:03:26 · 2213 阅读 · 0 评论 -
mingw静态链接(libgcc_s_seh-1,libstdc++-6和 libwinpthread-1)
;在Windows用mingw编译的C/C++程序默认会依赖这三个动态库:- libgcc_s_seh-1.dll- libstdc++-6.dll- libwinpthread-1.dll其实可以选择链接对应版本的静态库.原创 2024-04-23 14:10:14 · 3332 阅读 · 0 评论 -
libssh C++封装之一(设计)
libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。原创 2024-04-22 14:07:05 · 1305 阅读 · 1 评论 -
基于CppHttpLib的Httpserver
大多数嵌入式设备由于没有屏幕输出,只能通过Web页面来配置。这里利用CPPHttpLib来实现HttpServer。原创 2024-04-20 22:24:25 · 891 阅读 · 0 评论 -
FFMPEG C++封装(三)
本文描述对FFMPEG的AVPacket的C++封装。原创 2024-04-16 23:13:27 · 919 阅读 · 0 评论 -
C++多态(面向对象编程的基础)
静态多态: 重载函数和模板机制使我们编程时简化了命名和算法实现类型无关化,使代码更优雅。动态多态: 虚函数机制使我们管理相似对象更优雅,代码更简化。是面向对象编程的基础。原创 2024-04-12 17:00:12 · 185 阅读 · 0 评论 -
C++继承之虚继承实例
虚继承主要用在多继承场景中,单继承或只有一层继承关系时不会发挥作用。过度使用虚继承可能会增加额外的开销,因为需要维护虚基类的地址偏移量和查找虚基类成员的位置。我们可以看到虚继承不仅是一个技术手段,也是C++语言中解决多重继承问题的一个有效方法。原创 2024-04-11 10:43:28 · 946 阅读 · 0 评论 -
C++继承之多重继承
通过继承机制,可以利用已有的对象类型来定义新的对象类型。所定义的新的对象类型不仅仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。多重继承 派生类可以从多个父类派生。原创 2024-04-10 17:42:44 · 674 阅读 · 0 评论