Loading

随笔分类 -  language----------

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要:❎ 舍弃了 Class ✅ 舍弃或弱化子类型 类的继承是一段儿弯路 OO 发明了继承,然后发现真正有意义的是 interface 的组合(更准确的说,是 Product type of interfaces or abstract classes),语义上相当于组合,但在 Cpp,Java 等语言中 阅读全文
posted @ 2023-12-15 15:27 RioTian 阅读(412) 评论(0) 推荐(0)
摘要:(只记录了必须要内容,日后完善!) 1. rust的安装与环境变量: 要提前把下面两个环境变量配置好,这样是为了指定安装路径。否则会默认安装在 C 盘下。 CARGO_HOME: D:\Soft\Language\Rust\.cargo RUSTUP_HOME: D:\Soft\Language\R 阅读全文
posted @ 2023-12-15 09:08 RioTian 阅读(128) 评论(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 阅读(257) 评论(0) 推荐(0)
摘要:C++标准库提供了一个非常优秀的字符串处理类std::string,我们可以通过该类完成各种字符串操作。但是std::string有一个缺点,它的很多操作都是针对字符串实体,存在不必要的内存拷贝的代码,导致字符串的处理性能不尽如人意。 针对这种情况C++17标准引入了std::string_view 阅读全文
posted @ 2023-12-07 14:36 RioTian 阅读(317) 评论(0) 推荐(0)
摘要:参考博客: std::enable_shared_from_this原理浅析 引言 在C++编程中,使用智能指针是一种安全管理对象生命周期的方式。std::shared_ptr是一种允许多个指针共享对象所有权的智能指针。然而,当一个对象需要获取对自身的shared_ptr时,传统的方法可能导致未定义 阅读全文
posted @ 2023-12-07 09:52 RioTian 阅读(351) 评论(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 阅读(289) 评论(0) 推荐(0)
摘要:Rust Installation with relative Configuration选用 rsproxy.cn 节点 Update:24/01/25 https://rsproxy.cn/ 参考此网站即可 References Rust Course The Hitchhiker's Guide to Rust mirrors.tuna.tsinghua.edu.cn Rust C 阅读全文
posted @ 2023-12-03 11:07 RioTian 阅读(94) 评论(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 阅读(177) 评论(0) 推荐(0)
摘要:References C++ Coding Standard 這本書的中文版不知道是不是翻譯問題,還是原作就有這種傾向,有些咬文嚼字的很不好懂。 Exceptional C++ 這本比上面那本容易理解的多,有提到 PIMPL 實作上需要注意的地方,可惜的是已經絕版了,有趣的是前面那本作者之一也是本書 阅读全文
posted @ 2023-11-29 09:31 RioTian 阅读(124) 评论(1) 推荐(0)
摘要:C++11 中推出了三种智能指针,unique_ptr、shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated)。 但是在实际的使用过程中,很多人都会有这样的问题: 不知道三种智能指针的具体使用场景 无脑只使用 shared_ptr 认为应该禁用 r 阅读全文
posted @ 2023-11-28 15:41 RioTian 阅读(206) 评论(0) 推荐(0)
摘要:References 现代C++学习——实现多类型存储std::variant 如何优雅的使用 std::variant 与 std::optional std::variant 是 C++17 中,一個新加入標準函式庫的 template 容器;他的概念基本上是和 union(參考)一樣,是一個可 阅读全文
posted @ 2023-11-28 13:10 RioTian 阅读(206) 评论(0) 推荐(0)
摘要:Modern C++ Starter Kits Share初入 C++ 搬砖,在团队中开发实际上很少亲自从零开始搭建C++的完整项目,99%时候都是使用基础架构团队或者CI/CD团队搭建好的框架。这里分享几个配置C++项目的模版,它们一般会涉及三方库管理、格式校准、单元测试、静态检查、Sanitizer配置、CI/CD配置等方面,内容比较完善。 Build 阅读全文
posted @ 2023-11-27 16:06 RioTian 阅读(150) 评论(0) 推荐(0)
摘要:在 C++ 裡頭有相當多「容器」。從原生的陣列,到標準庫 STL 的 vector, array, list, queue, map, set, …。有時候我們只是想以檢視的角度去看一個容器,或是其中一段內容,而不需要底下龐大的資料結構支撐其運作,也不想要擁有這個容器內的元素,這就是 C++20 中 阅读全文
posted @ 2023-11-27 11:01 RioTian 阅读(337) 评论(0) 推荐(0)
摘要:我们知道std::string_view可以创建std::string的一个视图,视图本身并不拥有实例,它只是保持视图映射的状态。在不修改实例的情况下,使用std::string_view会让字符串处理的性能大幅提升。实际上,对于那些连续的序列对象我们都可以创建这样一份视图,对于std::vecto 阅读全文
posted @ 2023-11-27 10:19 RioTian 阅读(263) 评论(0) 推荐(0)
摘要:本博文会介绍移动语义的形式术语和规则。并且会正式的介绍值的类别,如 lvalue、rvalue、prvalue和 xvalue,并讨论了在绑定对象引用时的作用。也会讨论移动语义不会自动传递的细节,以及decltype 在表达式调用时的微妙行为。 作为《Cpp Move Semantics》书中最复杂 阅读全文
posted @ 2023-11-24 10:59 RioTian 阅读(139) 评论(0) 推荐(0)
摘要:最近在学习 C++ Move 时,有看到这样一个代码需求:在 lambda 中,将一个捕获参数 move 给另外一个变量。 看似一个很简单常规的操作,然而这个 move 动作却没有生效。 具体代码如下 std::vector<int> vec = {1,2,3}; auto func = [=]() 阅读全文
posted @ 2023-11-24 08:57 RioTian 阅读(226) 评论(0) 推荐(0)
摘要:“Move semantics allows us to optimize the copying of objects, where we no longer need the value. It can be used implicitly (for unnamed temporary obje 阅读全文
posted @ 2023-11-22 13:28 RioTian 阅读(271) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2023-11-10 22:39 RioTian 阅读(5) 评论(0) 推荐(0)
摘要:在 C++11 之前,值类型变量的传递会导致把它完整的拷贝一份 比如说把一个 vector 作为函数返回值赋值给某个局部变量,他就会调用 vector 的拷贝构造函数创建一个完整的副本,把这个副本作为函数返回的临时变量,然后把这个临时变量赋值给那个局部变量时又会再次拷贝构造 (不过这其实会被大多数编 阅读全文
posted @ 2023-11-10 21:12 RioTian 阅读(49) 评论(0) 推荐(0)
摘要:Lambda 听起来非常的牛逼,很容易就会联想到函数式编程或者 Lambda 演算这样的东西。但是在 C++里,没那么复杂,就把它当匿名函数用就好了 HelloWorld 对于降序排序,我们可以这样写(难道 greater 不好吗) int arr[] = {2, 4, 5, 0, 3, 1}; s 阅读全文
posted @ 2023-11-10 21:10 RioTian 阅读(65) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页