E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
c++23
使用
C++23
从零实现 RISC-V 模拟器(5):CSR
文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2YntcRISC-V为每个hart定义了一个独立的控制状态寄存器(CSR)地址空间,提供了4096个独立的寄存器位置。每个hart都可以通过这个独立的CSR地址空间来配置、管理和监控其执行环境,实现对其控制状态的细粒度操作。接下来
everystep_
·
2024-02-20 03:51
c++23
risc-v
使用
C++23
从零实现 RISC-V 模拟器(6):权限支持
本节内容增加了权限表示,设置了三种权限。当cpu初始化时默认的权限为Machine模式。接下来实现这三种特权模式,随后实现sret和mret指令。RISC-V定义了三种特权等级,分别是用户态(UserMode)、监管态(SupervisorMode)、和机器态(MachineMode)。这三种特权等级对应着不同的操作系统和应用场景,提供了不同级别的访问权限。1.权限表示定义下面三个参数来表示不同的
everystep_
·
2024-02-20 03:19
c++23
risc-v
使用
C++23
从零实现 RISC-V 模拟器(4):完善 log 支持并支持更多指令
文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc这一节内容解析了更多的指令,并且提供了更详细的log输出从而进一步的定位问题。具体代码可以参考这个分支的代码:https://github.com/weijiew/crvemu/tree/lab4-load-store1.
everystep_
·
2024-02-14 16:47
c++23
risc-v
redis
使用
C++23
从零实现 RISC-V 模拟器(1):最简CPU
本节实现一个最简的CPU,最终能够解析add和addi两个指令。如果对计算机组成原理已经有所了解可以跳过下面的内容直接看代码实现。完整代码在这个分支:lab1-cpu-add,本章节尾有运行的具体指令。1.冯诺依曼结构冯·诺依曼结构是现代计算机体系结构的基础,由约翰·冯·诺依曼在1945年提出。这种结构也称为冯·诺依曼体系结构,其核心特点是将程序指令和数据存储在同一个读写存储器(内存)中,计算机的
everystep_
·
2024-02-12 17:57
c++23
risc-v
使用
C++23
从零实现 RISC-V 模拟器(2):内存和总线
内存和总线上一部分将内存全部放到了CPU里面,总线的概念是隐含着的。这一部分将内存拆分出来,再引入总线的概念,CPU通过总线连接内存。完整代码可以查看这个分支:https://github.com/weijiew/crvemu/tree/lab2-memory实际上可以直接看代码,文章作为补充,这部分内容很简单。后续内容并没有完全将代码的所有修改列出来,建议快速浏览下面的内容有一个整体的认识后再结
everystep_
·
2024-02-12 17:57
c++23
risc-v
使用
C++23
从零实现 RISC-V 模拟器
使用
C++23
从零实现RISC-V模拟器使用
C++23
从零实现的RISC-V模拟器,最终的模拟器可以运行xv6操作系统。
everystep_
·
2024-02-12 17:27
c++23
risc-v
c++23
中的新功能之十九继承的CTAD
一、继承在c++编程中,一定是脱离不开继承的。而继承中有很多小的细节需要关注,比如如何显示的使用父类的构造函数?如何通过构造函数来推导模板参数等等。这些小的细节,其实都是在实际应用中对一些相关技术的不断完善。二、继承的CTAD在前面的《跟我学c++高级篇——c++17类模板实参推导CTAD》中,已经知道在c++17后放宽了对一些构造函数中的模板参数的显示指定而转为由编译器自动推导出来,而今天就要分
fpcc
·
2024-02-12 17:56
C++11
C++
c++23
c++
使用
C++23
从零实现 RISC-V 模拟器(3):指令解析
指令解析这章内容进一解析更多的指令,此外将解析指令的过程拆分为一个单独的类,采用表格驱动的方式,将数据和逻辑分离,降低了ifelse嵌套层数过多。这部分依旧改动不多,只增加了七个指令。此外代码中细碎的变动没有完全列出来,下面只是主体部分的更新,可以尝试自己动手实现,如果简单抄一遍是没有成长的,总之需要在解决问题中加深印象。可以参考这个分支的代码:https://github.com/weijiew
everystep_
·
2024-02-12 17:25
c++23
risc-v
C++23
种设计模式&软件设计模型
以下是C++中常用的23种设计模式:创建型模式(CreationalPatterns):工厂方法(FactoryMethod)抽象工厂(AbstractFactory)单例(Singleton)原型(Prototype)建造者(Builder)结构型模式(StructuralPatterns):适配器(Adapter)桥接(Bridge)组合(Composite)装饰器(Decorator)外观(
4399.9855
·
2024-02-02 15:27
C++设计模式
c++
设计模式
开发语言
团队开发
跟我学c++高级篇——C++26反射预览
一、
c++23
的反射跳票本来按照预定,
c++23
中反射就应该比较全的。
fpcc
·
2023-12-24 13:26
C++11
C++
c++
C++——C++11(1)
时至今日,C++标准已经到了
C++23
,但是你要说哪一次提出的标准最经典,那C++11一定会被人提及,C++11带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正
歪~~
·
2023-12-23 06:03
c++
开发语言
c++23
中设计模式之单例模式、工厂方法、抽象工厂
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。参考https://www.csdn.net/g
qq_41489640
·
2023-11-08 00:57
学习笔记
23种设计模式
c++23
中的新功能之十八新增的属性
一、
c++23
新的属性在前面的分析中说过,各种语言的发展整体思路是一致的,即朝着更加实用、简单和更接近自然语言的方向在前进。
fpcc
·
2023-11-05 00:16
C++11
C++
c++23
c++
TPS_C++版本及功能支持备注
TPS_C++版本及功能支持备注相关参考链接
C++23
:https://zh.cppreference.com/w/cpp/23相关参考链接C++20:https://zh.cppreference.com
沐雨潇竹
·
2023-10-27 13:46
c++
开发语言
C++23
:多维视图(std::mdspan)
C++23
:多维视图(std::mdspan)介绍在
C++23
中,std::mdspan是一个非拥有的多维视图,用于表示连续对象序列。
繁星意未平
·
2023-10-26 00:21
c++23
c++
算法
读书笔记:Effective C++ 3.0版2005年Scott Meyers : 55条建议
第四版变了名字,因为c++11、c++14变更较大,c++17、
c++23
对应的似乎还没有。
御风@户外
·
2023-10-25 10:42
cpp
c++
C++23
: std::size_t 字面值常量
为什么?举例:#include#includeintmain(){std::vectorvec{1,2,3};for(autoi=0;i:Infunction'intmain()'::8:22:warning:comparisonofintegerexpressionsofdifferentsignedness:'int'and'std::vector::size_type'{aka'longun
fck_13
·
2023-10-23 09:26
c++23
中的新功能之十七显示this的应用
一、显示this在前面的文章中分析了显示this(DeducingThis),具体的内容请移步《
c++23
新功能之二语法中的DeducingThis》,本篇对显示this对实际应用中的一些完善和更新形式进行分析说明
fpcc
·
2023-10-22 16:43
C++11
C++
c++23
c++
C++17string_view的使用介绍与实现
(
C++23
起)典型的实现仅保有二个成员:指向
mq白
·
2023-10-21 18:55
c++
开发语言
C++之设计模式
C++23
种设计模式https://blog.csdn.net/qq_40309341/article/details/120318957设计模式可以同时使用多个。
奋进的大脑袋
·
2023-10-18 07:27
c++
设计模式
开发语言
C++11新特性(语法糖,新容器)
C++23
版本已经发布,但真想普遍使用不知道还得多少年呢?尤其是C
浪雨123
·
2023-10-05 17:33
C/C++
c++
开发语言
c++23
中的新功能之十六std::forward_like
一、介绍前面说过,c++标准其实是分成两块推进的。一块是语言标准,另外一块是应用库标准。线程同步还麻烦呢,别说两个组的大佬,不同步的现象肯定会出现。在老的标准里还比较少,在c++11以后经常发现,后续版本会对前面的版本打补丁,其实好多就是因为这种情况。在前面分析过很多通过完美转发来实现的例子,比如才分析过的单例。在c++11以后,使用完美转发加上右值引用几乎可以用来常见的参数处理和转发控制(当然还
fpcc
·
2023-09-30 19:43
C++11
C++
c++23
c++23
中的新功能之十五类tuple类型的完全支持
一、std::tuple和std::pair在传统的C++里一直有一个问题让开发者不爽,就是无法返回多个值。一般来说,返回多个都建议采用封装的模式,比如弄一个结构体或者类啥的。这样做一定时没有问题的,但对于一些只返回一些简单值并且只在偶尔情况下使用的时候儿,封装一个结构体之类的有点用力过猛的意思。所以在后来出现了std::pair,它其实就是一个类似于封装的一个结体可简化如下:templatest
fpcc
·
2023-09-22 22:33
C++11
C++
c++23
c++23
中的新功能之十四输入输出指针
一、介绍在c++的发展过程中,无论如何发展,c++都尽量保持着与C语言的兼容,当然这也是它的一个特点。在实际的应用中,开发者经常遇到的一个问题是,如何把一个指针的值给传出来?有人会说,简单啊,直接返回不就行了。当然,这样是可以的,但是如果不想通过返回值返回呢(返回值另有它用)?在普通的变量中,可以通过引用“&”来实现,类似下面的代码:inttest(int&a){a=10;returna;}指针是
fpcc
·
2023-09-17 06:50
C++11
C++
c++23
c++
C++23
种设计模式(未整理,未完待续6/11)
文章目录1.设计模式分类设计模式的本质特征:封装变化(栈队列:适配器设计模式)1)创建型设计模式2)结构性设计模式3)行为型设计模式红色为重点2.创建类设计模式1)单例模式:一个类只有一个实体1.为什么将构造函数私有化?①不希望构造函数被随意调用,不能在类之外直接创建对象(protected的基类是抽象类)②在类内部创建对象:public的静态方法2.pubic静态方法①静态的数据成员指针(指向本
谢白羽
·
2023-09-11 01:49
c++
设计模式
面试
C++23
中的新功能之expected和optional
一、std::optional在前面用过c++17新推出的这个std::optional功能,它可以处理接口返回空值的情况,非常方便实用。但终究存在一个习惯的问题,大家会问,只是处理一个空值,多写一个这玩意儿意义不大,还是用方法吧。这种情况一定是大概率的发生。正如语言发展一样,一定要简单,而且功能还要强大。标准委员会的大佬们一定也是这么想的,所以既然出现了可选项,是不是可以在这个可选项上做文章,吸
fpcc
·
2023-08-30 09:47
C++11
C++
c++23
c++23
中的新功能之十三Ranges的as系列
非常容易理解,所以
c++23
中用这个词来描述函数,其实也是非常走心了。
fpcc
·
2023-08-26 03:31
C++11
C++
c++23
C/C++:最新的C++20标准和
C++23
标准有看么?
目录C++20标准
C++23
标准C++20标准C++20是C++语言的最新规范,于2020年正式发布。
Solitary_孤影照惊鸿
·
2023-08-24 01:00
计算机
/
人工智能
c++简介
c++
c++20
c++23
C/C++ : C/C++的详解,C语言与C++的常用算法以及算法的各自用法和应用(初级,中级),C++ CSP考题(J居多,S偏少)的详解,NOI的真题题解
相关文章5.1:Dev-C++是Windows环境下的一个轻量级C/C++集成开发环境(IDE)5.2:C++是从C语言发展而来的,而C语言的历史可以追溯到1969年6.C/C++最新年度总结6.1:
c+
Solitary_孤影照惊鸿
·
2023-08-21 14:35
c++简介
C++更多语法
计算机
/
人工智能
c语言
c++
开发语言
网络框架重构之路plain2.0(
c++23
without module) 综述
原因plain1.1rc的不足1、命名空间问题如果看过或者接触过plain的朋友,不难发现命名空间都是以pf_*开头。说起这个的时候,还是要从plain的前身plainserver(GitHub-viticm/plainserver:Aplainserver,simplebutstronger.)说起。我看了看时间,emm...,时间大概是九年前,那个时候我还深处在南方的沿海城市。从名字上来说,让
2301_77342543
·
2023-07-30 16:43
重构
c++23
c++23
中的新功能之十二格式化输出
一、介绍说起格式化输出那真是一言难尽,从汇编到C,到c++,到c#、Java、Python、Go…哪个不是各出手段,尽显风骚。搞c++开发的,好多人其实用的不外乎是printf。可是这个函数有个致命的问题,它只能打印他自己能玩儿的东西,想换个他不知道的,好,做梦吧。而c++在后来也觉得它用着不爽,毕竟我是带类的C,你不能打印类,那不等于大多数的工作没法完成。没办法,只好自己搞了个流式输入输出,重载
fpcc
·
2023-07-30 11:09
C++11
C++
c++23
c++23
中的新功能之十一Ranges中的Fold
一、介绍fold,折叠,这个在前面分析c++17中的foldexpression,这个也差不多。只过过在Ranges中,flod会变得更强大一些。但是说句实话,乍一接触这个的开发者,绝大多数可能都要懵圈。毕竟,它的使用方式和传统的理解上有着不同的处理方式。人们更适合的是正向的,反向的,或者分片处理,这都容易理解,但这个折叠,却有点不同。它是对一个单元(只要允许)进行递归处理来实现某种操作(或者说算
fpcc
·
2023-07-16 19:04
C++11
C++
c++23
算法
c++23
中的新功能之十平坦容器
一、背景介绍在前面反复提到过,其实所有的编程语言总体的方向是朝着自然语言化和简单在发展,速度有快慢,但方向基本没有错。这里先回顾一下,在STL中有六大组件(侯捷老师的《STL源码剖析》),这其中开发者经常见到的还是以容器为主。容器主要分成两大类:顺序容器和关联容器。这里主要是讲关联容器,即std::map,std::set,std::multimap,std::multiset.这是早期的c++标
fpcc
·
2023-07-16 19:30
C++11
C++
c++23
哈希算法
算法
跟我学c++中级篇——launder和start_lifetime_as
一、std::launder的回顾在前面的文章中分析过std::launder(有兴趣可以翻一翻),最近看
C++23
的资料,才发现这玩意儿的由来,思路打开了,才解决了原来写文章时的困惑。
fpcc
·
2023-06-23 13:20
C++11
C++
c++
开发语言
算法
ISO C++ 26 并发和并行性重大完善
ISOC++标准委员会主席兼微软语言架构师HerbSutte,并发和并行小组仍在按计划推进C++26的std::execution和SIMD并行一、
C++23
与C++26开发时间表:二、C++26标准属性三大规则
ejinxian
·
2023-06-22 01:13
c++
开发语言
c++23
中的新功能之八隔离编译期与运行期
一、介绍前面介绍过ifconstexpr这后头就跟上了ifconsteval,说白了,就是前有车,后面就得跟上辙,成套成系列的。无论是在模板编程还是在元编程中,都会有编译期处理和运行期处理的一些需求,这些需求是产生这些技术的根本的要求,看来c++在这条路上想一条路跑到黑了。在c++20中,介绍过consteval和std::is_constant_evaluated()这两个特性,前者确定在编译期
fpcc
·
2023-06-18 01:34
C++11
C++
c++23
c++
【无标题】
C++23
实用工具(四一)正则表达式正则表达式正则表达式¹是一种描述文本模式的语言。在C++中,可以使用头文件中提供的库函数进行正则表达式操作。
学习好烦啊
·
2023-06-17 09:02
正则表达式
c++
unix
c++23
中的新功能之六更简单的隐性Move
一、介绍在学习c++的过程中,一些老的技法,其实在不断的被自动优化。比如一些循环的优化、字符串的处理等等。随着标准的发展,编译器的跟进,有些优化其实编译器可以做的更好,比如一些字符串处理过程中的临时变量。但是c++毕竟是一门中高级语言,不可能做到面面俱到。这里面仍然有大量的优化需要开发者自己承担,不过,随着更新的c++标准不断提出,又有一些优化的可能被编译器实现了。那就是今天本文提到的“Simpl
fpcc
·
2023-06-10 20:44
C++11
C++
c++23
c++
算法
c++23
中的新功能之五堆栈信息库
一、介绍一般对开发者而言,明晓程序中函数堆栈的调用级次是非常有用的。特别是在遇到一些问题时,可以知道问题产生的函数和此函数被调用的层次,这样就可以基本准确的确定Bug的范围了。所以一个强大的IDE,是所有开发者的一个梦想。也是因为这种情况VistualStudio被称做是“宇宙第一IDE”也不是没有原因的。特别是当和其它的IDE比较时,会发现,这个开发IDE的真得很强大。没有比较就没有伤害。但是问
fpcc
·
2023-06-10 20:13
C++11
C++
c++
开发语言
c++23
中的新功能之七三个新的扩展
一、介绍在
c++23
中,除了有一些老的bugfix外,也增加了一些新的完善功能。这也符合标准发展的方向,除了自身的的一些小问题,还有一些需要扩展的东西也需要完善进来。
fpcc
·
2023-06-10 20:42
C++11
C++
c++23
c++
开发语言
C++23
新特性个人总结
文章目录1关键字1.1consteval1.2auto1.2.1新增支持数组指针的引用类型1.2.2代替decay-copy语义1.3volatile1.4constexpr1.5char8_t1.6wchar_t2语义语法2.1size_t字面量2.2lambda表达式的空圆括号2.3标识符支持Unicode标准附录312.4允许属性重复2.5向下类型转换为bool类型2.6规范行尾反斜杆2.7
哦咧哇岸居
·
2023-06-08 06:17
C++新特性
c++23
c++
检测并打印C++编译器支持的feature(附Visual Studio 2022测试结果)
源码下面附上VisualStudio2022的测试结果,基本上在2021年中就把
C++23
(当时还是草案)大部分功能都支持了。
抓饼先生
·
2023-04-20 05:08
C++
Again
Linux开发
c++
开发语言
由libunifex来看Executor的任务构建
Executor还未进入标准(
C++23
),Executor拥有惰性构建及良好的抽象模型来构建任务DAG,libunifex则给出了相当具有标准的实现,我们也借助libunifex的简短的代码来看下构建任务
leapmotion
·
2023-04-17 06:02
C++
c++
开发语言
executor
libunifex
跟我学c++中级篇——
c++23
中的新功能之三zip的应用
一、背景说到zip,对c++开发人员来说可能有点莫名其妙。但对于有Python开发经验的,就可能明白了许多。在c++开发中,程序人员经常遇到一些细节问题,这些问题,你说难倒不难,但可能会让你费不少心思。但是,这些东西又没有什么太大的技术含量。最常见的比如是字符串的各种分割组合排序抽取(以及它们的反向运算)等等吧。如果有Java或者Python以及c#等一些后进语言的开发经验的人,往往会发现,这些操
fpcc
·
2023-04-15 18:06
C++11
C++
c++23
c++23
新功能之二语法中的Deducing This
一、显示指定thisc++23中的DeducingThis,可以理解为显示的指定this.在Python语言中,其类的成员函数中第一个参数一般默认为self,用来操作类的成员,类似下面的代码:classDemo:def__init__(self,name,age):self.name=nameself.__age=agedefshow(self):print(self.name,self.__ag
fpcc
·
2023-04-15 18:35
C++11
C++
c++23
C++ 23 实用工具(一)
C++23
实用工具(一)工具函数是非常有价值的工具。它们不仅可以用于特定的领域,还可以应用于任意值和函数,甚至可以创建新的函数并将它们绑定到变量上。
学习好烦啊
·
2023-04-12 20:14
C++
C++23
c++
开发语言
C++ 23 实用工具(二)绑定工具
C++23
实用工具(二)绑定工具AdaptorsforFunctionsstd::bind、std::bind_front、std::bind_back和std::function这四个函数非常适合一起使用
学习好烦啊
·
2023-04-12 20:09
c++23
c++
图论
c++23
中的新功能之一介绍
一、
c++23
的目标和延革c++的标准发展速度在经过c++11的近乎可以称革新的变化之后,开始步入了快车道。
fpcc
·
2023-04-10 12:00
C++11
c++23
c++
开发语言
C++ 实现lambda递归调用(C++11 -
C++23
)
目录前言前置知识C++11,借助std::functionC++14,基于Y不动点组合子(YCombinator)科里化直接传入打包关于返回值推断
C++23
借助Deducingthis实现lambda递归前言众所周知
J__M__C
·
2023-03-31 08:54
C++
c++
开发语言
重大变更(一):关于C++26的十大猜想
在上一讲中,我们讨论了
C++23
带来的变化。由于
C++23
已经是冻结特性,所以我们讨论得非常具体。
C++23
作为“更好的C++20”,其本质是针对C++20进行改进和修补,所以涵盖的内容比较有限。
小极客geekbang
·
2023-03-16 12:02
程序员
后端
算法
Java
Go
计算机基础
容器
大数据
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他