随笔分类 -  language: C++

摘要:我最近想要做一些 C++ 的项目,在正式开始之前,我需要先搭建环境,也是大概花了一个下午,简单了解了一下现在 C++ 项目都是怎么构建的。 目前比较主流的两种包管理器:conan 和 vcpkg,我都试用了一下,个人感觉 vcpkg 的兼容性更好一些,应该可以帮我避不少坑,所以最终选择了使用 Vcp 阅读全文
posted @ 2024-06-12 10:34 RioTian 阅读(2924) 评论(0) 推荐(0) 编辑
摘要:使用 MinGW GCC 完成查询 Windows 服务的状态、停止服务和启动服务: #pragma once #include <windows.h> #include <string> #include <utility> class ServiceManage { public: explic 阅读全文
posted @ 2024-03-05 15:52 RioTian 阅读(36) 评论(0) 推荐(0) 编辑
摘要:相关站点 Meson 官网 Meson 官方文档 Meson GitHub 项目 Meson 介绍 Meson 的简介 Meson(The Meson Build System)是个项目构建系统,类似的构建系统有 Makefile、CMake、automake …。 Meson 是一个由 Pytho 阅读全文
posted @ 2024-01-24 11:21 RioTian 阅读(10092) 评论(0) 推荐(0) 编辑
摘要:This simple tutorial shows how to install the latest Clang compiler 17 and/or 18 in Ubuntu 20.04, Ubuntu 22.04, and Ubuntu 23.10. Ubuntu includes seve 阅读全文
posted @ 2024-01-23 08:50 RioTian 阅读(3794) 评论(0) 推荐(0) 编辑
摘要:warning C4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 if (win32) add_complie_options(/W4) add_complie_options(/wd4819) endif() 阅读全文
posted @ 2024-01-02 10:44 RioTian 阅读(402) 评论(0) 推荐(0) 编辑
摘要:说明 《Functional Programming in C++》书中代码练习测试以及一些笔记,部分代码需要用到C++20可以使用在线编译器编译代码 地址:https://coliru.stacked-crooked.com/ 或者自己编译gcc-11.2及以上版本安装 1 介绍 1.1 什么是函 阅读全文
posted @ 2023-12-12 09:18 RioTian 阅读(187) 评论(0) 推荐(0) 编辑
摘要:C++标准库提供了一个非常优秀的字符串处理类std::string,我们可以通过该类完成各种字符串操作。但是std::string有一个缺点,它的很多操作都是针对字符串实体,存在不必要的内存拷贝的代码,导致字符串的处理性能不尽如人意。 针对这种情况C++17标准引入了std::string_view 阅读全文
posted @ 2023-12-07 14:36 RioTian 阅读(237) 评论(0) 推荐(0) 编辑
摘要:参考博客: std::enable_shared_from_this原理浅析 引言 在C++编程中,使用智能指针是一种安全管理对象生命周期的方式。std::shared_ptr是一种允许多个指针共享对象所有权的智能指针。然而,当一个对象需要获取对自身的shared_ptr时,传统的方法可能导致未定义 阅读全文
posted @ 2023-12-07 09:52 RioTian 阅读(282) 评论(0) 推荐(0) 编辑
摘要:IDE: Clion LLVM cmake_minimum_required(VERSION 3.9) project(clang_demo) find_package(LLVM REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_V 阅读全文
posted @ 2023-12-04 18:51 RioTian 阅读(173) 评论(0) 推荐(0) 编辑
摘要:判断 CMake 编译环境 编译类型 CMAKE_BUILD_TYPE 可取值为:Debug, Release, RelWithDebInfo, MinSizeRel 等预设值 if (CMAKE_BUILD_TYPE MATCHES Debug) #do some thing endif() 系统 阅读全文
posted @ 2023-12-01 13:31 RioTian 阅读(105) 评论(0) 推荐(0) 编辑
摘要:References C++ Coding Standard 這本書的中文版不知道是不是翻譯問題,還是原作就有這種傾向,有些咬文嚼字的很不好懂。 Exceptional C++ 這本比上面那本容易理解的多,有提到 PIMPL 實作上需要注意的地方,可惜的是已經絕版了,有趣的是前面那本作者之一也是本書 阅读全文
posted @ 2023-11-29 09:31 RioTian 阅读(82) 评论(1) 推荐(0) 编辑
摘要:C++11 中推出了三种智能指针,unique_ptr、shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated)。 但是在实际的使用过程中,很多人都会有这样的问题: 不知道三种智能指针的具体使用场景 无脑只使用 shared_ptr 认为应该禁用 r 阅读全文
posted @ 2023-11-28 15:41 RioTian 阅读(112) 评论(0) 推荐(0) 编辑
摘要:References 现代C++学习——实现多类型存储std::variant 如何优雅的使用 std::variant 与 std::optional std::variant 是 C++17 中,一個新加入標準函式庫的 template 容器;他的概念基本上是和 union(參考)一樣,是一個可 阅读全文
posted @ 2023-11-28 13:10 RioTian 阅读(135) 评论(0) 推荐(0) 编辑
摘要:Modern C++ Starter Kits Share初入 C++ 搬砖,在团队中开发实际上很少亲自从零开始搭建C++的完整项目,99%时候都是使用基础架构团队或者CI/CD团队搭建好的框架。这里分享几个配置C++项目的模版,它们一般会涉及三方库管理、格式校准、单元测试、静态检查、Sanitizer配置、CI/CD配置等方面,内容比较完善。 Build 阅读全文
posted @ 2023-11-27 16:06 RioTian 阅读(70) 评论(0) 推荐(0) 编辑
摘要:在 C++ 裡頭有相當多「容器」。從原生的陣列,到標準庫 STL 的 vector, array, list, queue, map, set, …。有時候我們只是想以檢視的角度去看一個容器,或是其中一段內容,而不需要底下龐大的資料結構支撐其運作,也不想要擁有這個容器內的元素,這就是 C++20 中 阅读全文
posted @ 2023-11-27 11:01 RioTian 阅读(111) 评论(0) 推荐(0) 编辑
摘要:我们知道std::string_view可以创建std::string的一个视图,视图本身并不拥有实例,它只是保持视图映射的状态。在不修改实例的情况下,使用std::string_view会让字符串处理的性能大幅提升。实际上,对于那些连续的序列对象我们都可以创建这样一份视图,对于std::vecto 阅读全文
posted @ 2023-11-27 10:19 RioTian 阅读(205) 评论(0) 推荐(0) 编辑
摘要:本博文会介绍移动语义的形式术语和规则。并且会正式的介绍值的类别,如 lvalue、rvalue、prvalue和 xvalue,并讨论了在绑定对象引用时的作用。也会讨论移动语义不会自动传递的细节,以及decltype 在表达式调用时的微妙行为。 作为《Cpp Move Semantics》书中最复杂 阅读全文
posted @ 2023-11-24 10:59 RioTian 阅读(90) 评论(0) 推荐(0) 编辑
摘要:最近在学习 C++ Move 时,有看到这样一个代码需求:在 lambda 中,将一个捕获参数 move 给另外一个变量。 看似一个很简单常规的操作,然而这个 move 动作却没有生效。 具体代码如下 std::vector<int> vec = {1,2,3}; auto func = [=]() 阅读全文
posted @ 2023-11-24 08:57 RioTian 阅读(167) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示