<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Example Site</title>
    <link>https://blog-c1g.pages.dev/post/</link>
    <description>Recent content in Posts on Example Site</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 28 Oct 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://blog-c1g.pages.dev/post/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CMake set方法</title>
      <link>https://blog-c1g.pages.dev/p/cmake-set%E6%96%B9%E6%B3%95/</link>
      <pubDate>Fri, 28 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/cmake-set%E6%96%B9%E6%B3%95/</guid>
      <description>下面介绍一些cmake的常用方法 set方法 set方法用于给下面的变量赋值 一般变量 缓存变量 环境变量 设置一般变量 命令格式：set(&amp;lt; variable &amp;gt; &amp;lt;</description>
    </item>
    
    <item>
      <title>CMake与gcc/g&#43;&#43;</title>
      <link>https://blog-c1g.pages.dev/p/cmake%E4%B8%8Egcc/g-/</link>
      <pubDate>Fri, 28 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/cmake%E4%B8%8Egcc/g-/</guid>
      <description>编译一个文件，一共有四个步骤：预处理，编译，汇编，链接。 预处理：将文件包含的头文件和宏定义等展开或替换。 编译：将预处理后的文件翻译成更底层的</description>
    </item>
    
    <item>
      <title>CMake创建库</title>
      <link>https://blog-c1g.pages.dev/p/cmake%E5%88%9B%E5%BB%BA%E5%BA%93/</link>
      <pubDate>Fri, 28 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/cmake%E5%88%9B%E5%BB%BA%E5%BA%93/</guid>
      <description>1.构建一个最简单的项目 使用cmake构建一个最简单的项目莫过于将一个源文件构建成一个可执行文件。有源文件如下： //hello_world.cpp #include&amp;lt;iostream&amp;gt;int main(){ std::cout&amp;lt;&amp;lt;&amp;#34;Hello world!&amp;#34;&amp;lt;&amp;lt;std::endl; } 在同一目录下，有</description>
    </item>
    
    <item>
      <title>ASIO-同步echo</title>
      <link>https://blog-c1g.pages.dev/p/asio-%E5%90%8C%E6%AD%A5echo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/asio-%E5%90%8C%E6%AD%A5echo/</guid>
      <description>echo 服务器的主要功能是服务器接收客户端发来的数据，并且完完整整地发回去。依据之前说的同步的读写 API 就可以简单的实现同步 echo 服务器。 客户端 #include &amp;lt;iostream&amp;gt;#include &amp;lt;boost/asio.hpp&amp;gt;using namespace std;</description>
    </item>
    
    <item>
      <title>ASIO-基础介绍</title>
      <link>https://blog-c1g.pages.dev/p/asio-%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/asio-%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D/</guid>
      <description>ASIO Boost.Asio 是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的 C++ 库。 Boost.Asio 在网络通信、COM 串行端口和文件上成功地抽象了输入输出的概念。你可以基</description>
    </item>
    
    <item>
      <title>ASIO-异步echo</title>
      <link>https://blog-c1g.pages.dev/p/asio-%E5%BC%82%E6%AD%A5echo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/asio-%E5%BC%82%E6%AD%A5echo/</guid>
      <description>本文将介绍如何以异步的方式实现echo服务器。 Session 类 Session 类主要是处理客户端消息收发的会话类。 // Session.h class Session:public std::enable_shared_from_this&amp;lt;Session&amp;gt; { public: Session(boost::asio::io_context&amp;amp; io_context, Server* server); tcp::socket&amp;amp; GetSocket(); std::string&amp;amp; GetUuid(); void Start(); void Send(char* msg, int max_length); private: void HandleRead(const boost::system::error_code&amp;amp;</description>
    </item>
    
    <item>
      <title>ASIO-简单http服务器</title>
      <link>https://blog-c1g.pages.dev/p/asio-%E7%AE%80%E5%8D%95http%E6%9C%8D%E5%8A%A1%E5%99%A8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/asio-%E7%AE%80%E5%8D%95http%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid>
      <description>本文将介绍如何使用 Boost.Asio 实现了一个简单的 http 服务器，可以简易的实现 GET 和 POST请求的处理，并且根据请求响应给客户端一个静态页面或者动态生成的页面。</description>
    </item>
    
    <item>
      <title>Boost.Asio的读接口</title>
      <link>https://blog-c1g.pages.dev/p/boost.asio%E7%9A%84%E8%AF%BB%E6%8E%A5%E5%8F%A3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/boost.asio%E7%9A%84%E8%AF%BB%E6%8E%A5%E5%8F%A3/</guid>
      <description>boost.asio 是一个支持异步输入输出的 C++ 库，它可以用来处理网络通信、串口通信和其他类型的数据传输。 boost.asio 提供了一些类和函数来实现不同类型的读操作： read, read_at, read_until: 这些</description>
    </item>
    
    <item>
      <title>c&#43;&#43; cast转换</title>
      <link>https://blog-c1g.pages.dev/p/c-cast%E8%BD%AC%E6%8D%A2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/c-cast%E8%BD%AC%E6%8D%A2/</guid>
      <description>C++ 的显示转换 (cast) 是一种强制类型转换的方法，可以在不同的类型之间进行转换。 C++ 提供了四种显示转换运算符：static_cast, dynamic_cast, const_cast, reinter</description>
    </item>
    
    <item>
      <title>C&#43;&#43;引用</title>
      <link>https://blog-c1g.pages.dev/p/c-%E5%BC%95%E7%94%A8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/c-%E5%BC%95%E7%94%A8/</guid>
      <description>何为引用 引用即对象的别名，它并不是一个新的对象。定义引用后，程序将引用和它的初始值绑定在一起，对引用的所有操作都在绑定的对象上发生。 int ival=0; int &amp;amp;refVal=ival;</description>
    </item>
    
    <item>
      <title>c&#43;&#43;继承</title>
      <link>https://blog-c1g.pages.dev/p/c-%E7%BB%A7%E6%89%BF/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/c-%E7%BB%A7%E6%89%BF/</guid>
      <description>c++ 继承是一种面向对象的特性，它允许我们根据一个已有的类来定义一个新的类，从而实现代码的重用和扩展。 继承有以下几个概念： 基类(Base Clas</description>
    </item>
    
    <item>
      <title>CMake基础简述</title>
      <link>https://blog-c1g.pages.dev/p/cmake%E5%9F%BA%E7%A1%80%E7%AE%80%E8%BF%B0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/cmake%E5%9F%BA%E7%A1%80%E7%AE%80%E8%BF%B0/</guid>
      <description>简介 CMake是一个跨平台的编译(Build)工具,可以用简单的语句来描述所有平台的编译过程。 打个比方：现有一个工程列表，由若干个互相调用的</description>
    </item>
    
    <item>
      <title>Drogon框架</title>
      <link>https://blog-c1g.pages.dev/p/drogon%E6%A1%86%E6%9E%B6/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/drogon%E6%A1%86%E6%9E%B6/</guid>
      <description>Drogon 是一个基于C++14的高性能Web框架，它支持 HTTP1.0/1.1 和 WebSocket 协议，提供了一套完整的 MVC 架构，包括路由、控制器、视图、模板引擎、ORM、会话管理等功能</description>
    </item>
    
    <item>
      <title>io多路复用</title>
      <link>https://blog-c1g.pages.dev/p/io%E5%A4%9A%E8%B7%AF%E5%A4%8D%E7%94%A8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/io%E5%A4%9A%E8%B7%AF%E5%A4%8D%E7%94%A8/</guid>
      <description>什么是 io 多路复用 单线程或单进程同时监测多个文件描述符是否进行io操作的技术就是io多路复用。 在了解io多路复用之前我们要先知道 BIO 和 NIO 。 BIO BIO ：</description>
    </item>
    
    <item>
      <title>初识网络编程</title>
      <link>https://blog-c1g.pages.dev/p/%E5%88%9D%E8%AF%86%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E5%88%9D%E8%AF%86%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/</guid>
      <description>基于 TCP 的连接，服务端和客户端的网络通信需要做三件事： 服务端与客户端进行连接 服务端与客户端之间传输数据 服务端与客户端之间断开连接 首先需要解决的</description>
    </item>
    
    <item>
      <title>字节序</title>
      <link>https://blog-c1g.pages.dev/p/%E5%AD%97%E8%8A%82%E5%BA%8F/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E5%AD%97%E8%8A%82%E5%BA%8F/</guid>
      <description>在计算机网络中，由于不同的计算机使用的 CPU 架构和字节顺序可能不同，从对端接收到的数据可能字节顺序与本机不一致，因此在传输数据时需要对数据的字节</description>
    </item>
    
    <item>
      <title>指针和引用</title>
      <link>https://blog-c1g.pages.dev/p/%E6%8C%87%E9%92%88%E5%92%8C%E5%BC%95%E7%94%A8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E6%8C%87%E9%92%88%E5%92%8C%E5%BC%95%E7%94%A8/</guid>
      <description>指针和引用的区别 1.定义方式不同：指针使用所指对象的类型加上 * 定义，如：int* p; 可以不初始化。而引用定义时使用变量名加 &amp;amp; 的组合， 并且引用必</description>
    </item>
    
    <item>
      <title>智能指针</title>
      <link>https://blog-c1g.pages.dev/p/%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88/</guid>
      <description>c++ 智能指针是一个类模板，它模仿原始指针的行为，可以像指针一样使用，但是它可以自动管理指向的资源的生命周期。c++ 智能指针可以避免手动分配和释</description>
    </item>
    
    <item>
      <title>模块module</title>
      <link>https://blog-c1g.pages.dev/p/%E6%A8%A1%E5%9D%97module/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E6%A8%A1%E5%9D%97module/</guid>
      <description>C++20 引入了模块，这是一种新式解决方案，可将 C++ 库和程序转换为组件。 模块是一组源代码文件，这些文件独立于导入它们的翻译单元进行编译。模块消除或减少</description>
    </item>
    
    <item>
      <title>简谈STL六大部件</title>
      <link>https://blog-c1g.pages.dev/p/%E7%AE%80%E8%B0%88stl%E5%85%AD%E5%A4%A7%E9%83%A8%E4%BB%B6/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E7%AE%80%E8%B0%88stl%E5%85%AD%E5%A4%A7%E9%83%A8%E4%BB%B6/</guid>
      <description>STL 是 C++ 标准模板库 (Standard Template Library) 的缩写，是 C++ 标准库的一部分，不需要单独安装。STL 利用模板 (Template) 实现了常用的数据结构和算法，并且做到了数据结构和算法的分离</description>
    </item>
    
    <item>
      <title>管理缓冲区的接口和类</title>
      <link>https://blog-c1g.pages.dev/p/%E7%AE%A1%E7%90%86%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E6%8E%A5%E5%8F%A3%E5%92%8C%E7%B1%BB/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E7%AE%A1%E7%90%86%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E6%8E%A5%E5%8F%A3%E5%92%8C%E7%B1%BB/</guid>
      <description>boost.asio 提供了一些缓冲区类和函数来管理数据的读写。 缓冲区是一块内存区域，用于存储或传输数据。boost.asio 支持两种类型的缓冲区：可变缓冲区和</description>
    </item>
    
    <item>
      <title>线程池</title>
      <link>https://blog-c1g.pages.dev/p/%E7%BA%BF%E7%A8%8B%E6%B1%A0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog-c1g.pages.dev/p/%E7%BA%BF%E7%A8%8B%E6%B1%A0/</guid>
      <description>线程池是一种高级的并发编程模式，它可以在一个固定数量的线程中执行多个任务，而不需要每次创建和销毁线程。 线程池的基本思想是： 创建一个任务队列，</description>
    </item>
    
  </channel>
</rss>
