刘晓义(00:01:39): 或者找一台机器人,然后?我这机器装OVS。看他能不能推到这个地方。通过直播软件将你的视频发送给我。我电脑上可能没有装OPS。 刘晓义(00:02:07): 如果腾讯会议不好用,下次从下次用机密。主要机密的问题是国内的同学很难。 刘晓义(00:02:23): 飞不上去?这下尴尬。Push field settings. 那就只能OBS推流了OBS推流,我得把电脑电源插上。 刘晓义(00:04:04): 我第一次装OBS。注意安装细节里面有CEF?OBS里内嵌了chrome。Why is that. 这边都有啥LV?还有一个diy of frontend tool。太前端了。 刘晓义(00:06:27): 看到了proxx VE哈哈!我会用prox box?腾讯会议的小伙伴们可以看我们现场安装OBS。OBS直接我的电脑推我有什么?我有梯子。啥意思,我直接再推一个。我直接把我屏幕采集,然后。没有二次编码没办法,反正我先讲吧,这什么一会儿申浩哥哥来了,那他二次编码,反正他讲C加一点也无关系?大家看那个C加加表达式,反正看不清楚,那反正大家写C加加的时候屏幕是清楚的,也看不清楚?它这种VC redistributed?装久。别这样兄弟。Check visual cue visual studio2022runtimes。就是什么?Task managers. 哪个。Microsoft, get back to your account. Children counter. 就在。它的CPU怎么?What's this. Excuse me windows. Excuse me. 有可能,我觉得这个问题会更大一点。who is doing something。他在装。装VC的run time?刚刚腾讯会议的直播码是公开的,所以我要是开着屏幕共享,把直播码放上去,大家都可以直播。 刘晓义(00:09:34): 朋友是谁在内存泄露?是gmail在内存泄露?还有谁在内存泄露?还有一个G。我怎么还有个type叫IA?拼都拼错了。尴尬。 刘晓义(00:10:12): 算了,我们不等OBS了,我们直接开始吧,再重新定义就太晚了。 刘晓义(00:10:16): 我在群里发一下,点击。没关系,反正我就是直接到这里。 刘晓义(00:11:22): 那我就这个。好像咱们今天的重要的主讲人还没有来那。可能到时候我讲完了,还得重新定义这下僵硬了。他人。快来。先给大家介绍一下通达怎么工作通的工作方式基本上就是在这个talk开始前20分钟。 刘晓义(00:11:47): 给那个?Host发,我还在搞PPT,五分钟后触发。就是出纳的基本工作方式好,大家好!今天我们来讲一下是学期第一次的tonight的活动。非常的好。在座的同学是国庆前都去吃东西了吗?都去吃东西了。非常的妙,可能这个学期结束的时候还有一次吃东西的机会。 刘晓义(00:12:20): 今天,本来每一次每个学期最开始的第一次通的活动,有一个固定环节叫自我介绍。那在座我看到很多新面孔。然后咱们就大概自我介绍一下,首先从我开始,我是喵喵。喵喵。喵喵。谢谢大家,然后有请这几位同学首先开始。 刘晓义(00:12:45): 我是大家好,我是陪我。对我讲过几次,这个size这个几次若干次?因为肚子里没有别的东西,只能讲这个讲义,你不是还讲过LOM上学期的LOM是远程就是十年,在那混了十年,终于敢讲一次T。通话会不限的。大家好,我是harry我曾经也讲过几次这个size。 刘晓义(00:13:27): 那么多人吗?大大家好,我是cyy,也就上次讲演讲的也是上学期最后一讲求的那个人。Er. 感觉就主要我是很久以前在这边其实就在那边划水了。我算半个新老人,因为其实上个学期的。我也在但是我感觉我好像上个学期就来了一次,然后所以说我觉得可能不会有人记得我,然后我是81就这样吧。 刘晓义(00:14:12): 你也超过95%?没有一天就你是不是印象是?是去年的上半个学期。去年上半年可能比较少,原因是我摸了下半年比较多,今年上半年我摸了下半年我对希望今年能多一点,现在已经用了几次。 刘晓义(00:14:39): 然后大家好,我是舒同乐,然后我是主修数学,然后之前是来白嫖过吃饭就上次。然后是新人?我是我是上学期。但是最。大家好,我是由于维恩,然后我是虽然大一就来过,但是已经一年多没有来过了。对我基本上就是群友不怎么来。 刘晓义(00:15:36): 我是胡歌琴,我应该34年没来过。 刘晓义(00:15:44): 大家好,我叫李静,那个木子李静你的静。对我第一次来线下,去年才来清华的,那我现在清华这边是交换的。我现在经管学院对我一直是搞本硕都是计算机的。我是吴齐轩,今天才来挺好的。非常的重要,求真的同学们!有一个求真的同学,我在听你们的两门课,完全听不懂。Hmm. 同调论和无穷范畴。但是听不懂,所以就和没有听是一样。线上的同学,每一次我一问到线上的同学,然后线上的同学自我介绍,线上这个在会议里的人数就会急剧减少。然后那我们就?搞的直接一点,有线上的同学想要自我介绍的,然后可以直接自己。好,确实减少了,因为。走的太急了,没有听我说完,不想自我介绍,可以不介绍。不知道刚刚没看见。 刘晓义(00:17:11): 阿荣跑路了?也可以chat里自我介绍,不愿意说话。那我们就等等线上的同学们在chat里自我介绍,然后我就可以先开始做我的PPT看了ok了。好。那今天就是我们在期待主讲人到现场的过程当中,先讲一讲这个tuna的一些简单的介绍就是更细节一些介绍。然后这个slide是一个祖传的slide power tuna每年都会变一点,然后基本上变的就是只有。只有把会长的名字改一下其他东西都不变,这个图还是比较的一致的,一直就是在做的事情也是比较。比较traditional比较continuous的。 刘晓义(00:18:01): 托纳基本上大家在校内里主讲人来了一会儿请主讲人自我介绍,托纳基本上大家平常用到的就是包括现在社团里面,大家以后可能会参与维护的。一些服务最大的就是进行站。相信大家可能绝大多数同学听说也是来自于一开始使用金。 刘晓义(00:18:30): 现在出纳?Open那是不是已经无了?这行可以删掉。在线修改就是通大,除了通大校内还在其他的学校,比如说BFSU。北外那边一起在共同运营的一些经销站,然后很多的时候,我们有一个经销站,什么经销挂了,我们就会那个302到对面去。是通纳去维,相当于通纳的成员们维护的一些定向站。 刘晓义(00:19:07): 此外,有一些悄悄的,不能说的东西,大家都知道国内的一些DNS有一些污染。大家在校内的话,通常来说用的是11118.28的DNS服务器。8.6还是8.8来着,反正就是用那个DNS是默认拿到的就是DHCP会默认拿到,但是用的是SP的上游的DNS,然后很多的时候大家访问,比如说如果开了梯子,然后访问youtube,它会告诉你。 刘晓义(00:19:39): Google或者我告诉你证书不是facebook的。我不知道大家有没有遇到过,就是DNS被污染成了facebook的DNS,然后其实facebook也被强调了,但是它就都污染成了facebook,所以你看到的就是facebook给你返回的东西,你想访问的是google他就告诉你一个证书的域名不对。偶尔会发生。 刘晓义(00:20:00): 大家在校内可以尝试用的是这两个DNS。我觉得个人觉得比清华DNS还要好记一些,就是它的好记程度和那个14114144个是差不多的,然后大家可以记一下这个DNS这个在教育教那个教育网内都可以用吧。 刘晓义(00:20:18): 666在教育网内可用在?53。这个不知道policy是什么,然后但是在校内是绝对可以用大家可以设置一下。幺零幺点六,它也在相对有DOT和DOH。就是DSOT DNS OH TPS然后有一个非常好玩的事情,大家如果访问666的话。通常来说,一个DOT一个DNS代理是四跳返回你,就是你访问他访问外面返回他,然后他返回你这个DNS代理是三跳。大家可以猜一猜是怎么发生的?是我们外面那个服务器在AS边界上,所以就是它可以直接假装是666的直接给你返回包,就是大家如果学了网源知道的AS边界其实是可以假装别人的IP给你发包的,然后这个并不会被别人审查,因为他在AS边界上,他就直接假装这个包就是从那边路由过来的,然后你也不知道。在这种情况下,其实是一个单跳的DNS,然后会稍微快一点点。 刘晓义(00:21:30): 既然。并没有什么本质上的区别,你看到的就是两毫秒和三毫秒的区别,但是就是它从技术上非常的分析,就这个好的就是美的,很漂亮。还有一个?还有一个故事,我不知道大家有没有看过故事。 刘晓义(00:21:50): 190。上周如果来了。来了。咖啡馆小聚的同学知道,我们当时讲了1174医术的故事。是特纳里面另一个比较legendary的笑话。之前有一段时间EH view是一个看小黄图的软件。在里面写死了101.666做成DOT的。然后结果我们以为他是攻击,就是我们当天看到了一个非常大的尖峰,有一个特定的user agent访问我们的DOH服务器。我们把它搬掉了。结果全国的各种各。人的手机上面看黄图的软件就不工作了。 刘晓义(00:22:45): 是一个非常乐的一件事情,对,然后还有当时的图是?是推送了更新了之后。就是每天的晚间时候。晚间时候有非常大的巅峰。你看这个时间也是,这是中午,这是早上,这是晚上。 刘晓义(00:23:04): 说明托纳作为一个infrastructure,还是可以嗅探出来很多的信息的,比如说。一些特定的preference。对其实是把一点一点一点一改成了我们这个服务器。还用的是我们服务器的一个nndocumented port。如果大家。在这里说在校外的话,其实可以用8443和8853也去访问刚刚说的那个DOT和DOS服务器,所以就是我在我家配的是一个system resolve D,然后直接用这个8443就非常的妙。 刘晓义(00:23:39): 是legendary的?艺术。大家可以多看一看这个tuna collection这里面有很多很逗的东西,我们一会细节提到。还有一些通纳是通纳,还有一个T的NTP服务器,这个原子钟是放在哪的harry?但是咱们不是T二吗?咱们PT在哪?对北湾那边的GPS对我们有和那个北湾那边直接进行同步的NTP服务器,然后这个NTP的服务器说实话也并不会比清华的NTP准多少,但是偶尔会更好用的一件事情是。 刘晓义(00:24:26): Windows默认的NTP是NTP点microsoft点com,然后那个东西在国内,有的时候就访问不了。延迟太高,然后他就会告诉你fail掉,所以然后你的电脑就不会获得准确的时间,比如说你主板掉电,然后重新开机,他告诉你什么网站都上不了,是因为所有的TOS证书的时间都是错的,一看TOS证书的签发时间的未来。这个时候。Excuse me. 比较方便的一个fix就直接换成TPP还是比较稳定的,至少在校内。然后是一些。一些其实是有一点legacy的东西。听通大有一个弹幕服务器。 刘晓义(00:25:16): 他出现的时候B站还没有。直播。它是非常早的一个东西。他可能是17年18年的一个东西,B站当时还没有直播服务?我忘记了差不多是在那个时候B站也搞了,反正我们是领先B站。我们大概和斗鱼是同一个时间。这是一个进行弹幕直播的东西,它的效果是这样。然后。这个大家可以现在看上去很普通,为什么现在要提这件事情,因为它在技术上也是非常fancy的,它发它是怎么做的,它是在硬件FPGA直接在YUVYUV上边的那个road的信号上面去叠加了字体。他是用FPGA网上画字,然后你直接HDMI接进去,然后他HDMI拉出去,然后他就把那个弹幕画上,然后他顺便还给你采集了。这个是非常fancy的一个弹幕小盒子。这个在17年18年19年左右在那个青。计算机器学生节经常使用,后来失传了盒子现在哪儿我都不知道。就比较的僵硬,但是还是非常fancy的一件事情,这个硬件弹幕机是。 刘晓义(00:26:28): 是吐纳的一个比较传奇的老学长叫玉祥,就是这块年纪比较高的计算机系的同学,应该当时上过他TA的计算机组成原理,经受过一些折磨,然后没有这个上过的,有可能接下来要被我们折磨。可能接下来大三的时候计算机组成原理。企业可能都是图纳的成员。大家都在出纳交好朋友,到时候可以。被折磨的时候舒服一点。 刘晓义(00:27:02): 是当时宇翔的宿舍的?宿舍的项目就一直用起来非常的好用。然后。这个是鱼,大家在telegram里聊天的时候,经常看到有for the B。经过了多次改版,现在是直接用了,就直接用matrix去转发过来。很久之前是一个就是真的是一个B,然后它有一个网页端你的网页端上面发东西,它就直接同步,当时甚至有微信。后来微信显然微信web版被卡了,微信就没了。 刘晓义(00:27:42): 然后后来就是各种各样的原因就都倒闭了,然后在前年也是通大的一个之前的学长会,老师会一群老师的领导下,然后重新把这个搭选了,花了大概一个下午三个小时间搭了一个matrix for。他就工作了,现在大家看在群里看到,比如说。艾希老师或者说肥猫应该偶尔在用,就是直接用的matrix那边去转接过来,就是跨服聊天。对现在是matrix?所以。之前还接了他还接了ILC。 刘晓义(00:28:23): 如果真的有古典的同学使用IRC进行聊天的话。也可以接到比较现代的telegram上面享受。给你提供的全球分发系统。好,我们现在终于说到了这个collection。O bs好的。仓库大家可以多看一看,叫tuna collection这里边。集结了很多之前的段子。比如说。网线。这个东西是吐纳的一个传统笑话,就是每次招新,尤其是招新的时候,屋里至少有一个RJ45。所以今天不知道有没有在场的同学拿了RJ45。你只有HDMI,他说你有RJ45没有那这一次可能是我们第一次赢。 刘晓义(00:29:26): 完了有钢刀的群友又拿了一个二对45这个是一个。我们在这里有专门有一个tag的古典来源来自于2015年。是当时。现场招新的时候说大英是前前前会长,前几次方,六次方还是五次方?大英随身携带网线,就当场拿出一根网线之后,就成为了图纳的一个。本质的东西。每一次从那聚餐的时候也有,当你把一群从大人凑在一起的时候,就永远有网线出现在身上。有一段时间是什么线都有HDMI线也有那个线也有,然后斜那个线的人有一个大包,里面是各种各样的那个人叫杰哥,然后但是我们很久没有见到他了。然后在这里拼它一下。看看它什么时候有出现? 刘晓义(00:30:34): 当时是成为传统是15年的迎新会,大英讲了。段子之后,谢老师拿出了一根网线,然后之后的每次新会员迎新会上面都有这个环节,然后至今还没有失败过,今天是最危险的一次。下次可能我亲自带毛线过来。 刘晓义(00:31:03): 最后他俩是有很多的。荣誉的,然后在国内很多地方也比较的well known,然后这个主要是来自于CSDN上的博主们的帖子,然后把这个称为清华园,然后清华园挂了,他就会骂清华园。 刘晓义(00:31:19): 然后。是我们在计算机系比较official的一个recognization是谭浩强计算机教育基金。优秀团体奖!第一题。非常的。线下活动,每年最大的线下活动是百团。这个是一个非常逗的一件事情,就是社团的最大的线下活动是招新。但是今年有一些额外的线下活动,至少今年已经有一次咖啡馆了,然后也会有很多,现在接下来会有一次关于。 刘晓义(00:31:58): 摄像机和镜像摄影的?我不太清楚这算不算计算摄影摄像机应该算CCD那边的物理感光的东西?就是副主席要讲的,然后还有一次OSPP的需要讲的,我可能还。没有拉到问题。对。加油!反正我们有很多可以讲的东西。之前会有release party和sing party,这个是我们承办过迭变的sing party。不是那个party,然后之前也有那个软件自由日,今年错过了,是因为当时清华还在放假,希望明年清华的放假时间能够凑上软件自由日的时间。我们可以邀请一些看社区的talker过来去讲一些自己。 刘晓义(00:32:52): 项目的事情?然后。对这里有今天在场的。可爱peril。然后这个可能是跟今比较新的同学们相关性比较大的一件事情,就是如果对GSOC类似项目感兴趣的话,每年夏天暑假就是刚刚过完,每年夏天暑假的时候会有一次OSPP承办的。这样的机会就是它会有一些通纳的成员作为mentor,然后有邀请一些同学去做这个项目,然后和GSOC的形式会比较像,就是一个夏天时间,mentor带着student去做去写代码,然后去合并到上游上面,反正跟开源相关就可以。 刘晓义(00:33:43): 然后有奖金基本上是这样一个活动,就是如果比较感兴趣的话,可以到时候关注一下,基本上就是明年的6月左右。关注通纳群!然后可能接下来就是做新贴画和做。做新出出纳衣服的东西。 刘晓义(00:34:09): 然后这里plan这几个是?是去年写在这里的。17年这个时候。你21年写的?对的这几个人还到现在还没有讲,我们可能马上刚刚说副主席我们可能这一条马上就去掉了,但是剩下几个就是。反正他们一直在这里,我们在这里blame他们一下?基本上就是这样self introduction已经完成了。 刘晓义(00:34:40): 然后我们就邀请。今天正式的talker上来讲C。线上的线上自我介绍有吗?现场自我介绍。有我市其他学校来蹭课的欢迎!欢迎。也欢迎可以来线下,如果比较方便的话,可以直接找我们,可以线下来直接蹭客,甚至今天晚上还有约饭可以蹭吃蹭喝六类扁平, 刘晓义(00:35:09): 线上有rz45很好,你在福建,福建比较僵硬,欢迎有灵感utp招领处这是什么?包头挎包。欢迎在群里多讲段子,UDP容易丢,确实。可以在群里多讲笑话。UDP容易丢UDP。在福建就比较遗憾,但是欢迎专程前来北京,我们可以报销北京市内的交通费。那就我们邀请这个talker上来讲,所以talker你是用我的电脑还是用你自己电脑?用你自己电脑,我就给你做双倍压制,然后OBS推流,如果用我的电脑就不用双倍压制。OPS路过的时候进清华有要求吗?路过的时候进清华有要求,现在比较麻烦,你需要证明你自己是a friend of清华。你需要找我们的一个同学帮你找你们找我们的一个同学或者老师帮你预约入校。但是最近的最近比较宽松。对要人带,也不能现场带进去,可能需要提前河北人倒是可以去欢迎!所以,所以生奥哥哥你要怎么讲?你实在做完了吗?你实在不做完,我再在上面卡了ok一会。好乘那我就在这里set up OBS。Where is my youtube? 刘晓义(00:37:04): 是因为腾讯会议没有办法直接直播,是不是很妙?有前辈愿意带一下吗?可以,你就在群,我不知道你在不在telegram群里,你就在telegram群里找那个喵喵就是最近发了几个pin的帖子的喵喵。就找他直接给他PMD的盒子就可以。PM的盒子需要一个身份证号。手机号和姓名,我就可以给你登记,就可以进。你在太光上发给我,然后就会看你的盒子,把你的真名给打出来。也可以,你真名不是大家都知道的,我刚刚已经说了你的真名了。能不能capture whole screen?这怎么window capture?Delete. Screen capture? Where is screen capture? Display. 没听到群里那位前辈,你就找喵喵,就是我。怎么连接,怎么把element连接到telegram搭一个桥就可以有一个叫matrix for order的东西,我要没记错。东西是支持telegram?直接弄过来就成。如果在群里想要找我的话,你就看。头像是粉红色的。二次元头像。Server primary connect account. Hello. 东路。使用其他账号。我还是用stream key!欢迎同学!复制。Cancel your stream key stream key service apply. Store swimming. 通过直播软件将你的视频流传输状态无数据。 刘晓义(00:39:20): 传上去了吗?传上去了。右边。给他弄掉那个东西是他希望去做那个聊天的加tg要发邮件,如果你能私聊找到我就不用,通常来说你私聊找到一个人比你直接发邮件,然后问一下,还麻烦一点。我可以直接把我的邮箱打在这里。我叫刘晓义还是小易留了?我叫小一流。水群的链接直接发这里。这里有练水晶可以水晶是公开群。行确实可以通过水晶私聊。 刘晓义(00:40:12): 好。Slide发我了吗?九哥怎么来评?presentation一点PP tx你你真的在用powerpoint做吗?没有powerful的非常的好!也不是不行吧,那我得现场去买个麦克?稍等我把打开。浅谈C加对象好!很浅你知道九页PPT?那就是今天的就正式开始了,然后感谢在youtube上面久等的同学! 刘晓义(00:41:34): 他松了他松了。 刘晓义(00:41:36): 好。大家好,我是申浩,然后今天说是浅谈C加加的对象,那就是稍微分享一下,我最近重新学习C加加的时候又学到了一些比较简单的东西,因为大家都知道C加加这个语言是。一个需要不断重新学习的东西,每次学习的时候。你都会感受到。你之前完全都不懂。比如说。我之前发现了这么一件事情,无奖竞猜!又为了这个代码里面。我创建了三个class a的实例。是a20?是a,我给他传了一个。类型为a and的类型为a and and的东西。然后第三个是我传给他的一个也是一个类型,看起来好像也是一个a and and的东西,但是这是我现场study C出来的,然后无讲竞猜a的这三个实例分别调用了哪个构造函数?对五奖金。对。很明显。对ABC。B相当于你先搞了一个幼稚出来。你把它搞到一个B上面,你再弄。对。 刘晓义(00:43:39): 对B是copy C?C是move。我觉得对C是move? 刘晓义(00:44:05): RA是左值,它为什么是右值右指引用的值是左值,它的类型是右指引用?对很好,那今天我就来讲这个东西会比较短,因为喵喵已经讲了一段时间,我也不会占用大家更多的时间,我就今天我们能把这个问题讲清楚,我觉得就有意义了。 刘晓义(00:44:40): 我们都知道这个C和C加加有左值和右值,那在C的美好时代区分这两个就很简单,这个左值就是有内存的东西,右值就是没有内存的各种临时变量之类的东西。但是C加加有一个新的东西就是引用,然后引用有一个奇怪的操作就是常量引用就是抗的提案的,它可以绑定到一个U值上面。绑定会延长幼植的生命周期。 刘晓义(00:45:18): 就比如说我如果写一个,比如说AA左括号右括号这里怎么没有黑?太棒了,这里没有黑板。是不是有?我能写字吗?我不能。是在腾讯会议里?嘿妙了!线上看不到吗?只有优秀的人看不到,只有我不管了,我写在电视上都没有。完蛋了,那我写大的。只有youtube受伤的世界实现了。比如说我们有一个A。我们有这么一个函数,我们有。Const. 看怎么写来着,太棒了,我不会写C加加。CA对CCAI的,比如说R等于a括号,那它返回了一个类型为a的临时变量?但是如果我们,但是这个东西的作用就是。我们。把cos的AI的?办的到临时变量上。那么这个band出来的临时的东西会莫名其妙的活活了会变得活得更久,因为如果正常情况下,这个临时变量在这个表达式结束的时候,它就消失了。cos的bug上来之后可以把它绑定到一个U值上,然后延长他的生命期。但是。A hand这个是不行的?所以到这里为止,问题还没有变得复杂起来,到C加加11的时候,这个我们有了先进的。STD move STD move之后,右直和左直就右直和左值就变成了上面这个奇怪的样子。 刘晓义(00:47:55): 简单来说,左值还是我们以前最喜欢的样子,就是左值有内存,就是有identity的东西。我们希望说左值能够我们希望说我们要把左值move出来。左侧目录出来之后,我们干的事就是我们增加了一个新的。我们增加新的值类型叫。XY六干的事情他把LLY六强行拔出来。拔的方法就是STD。冒号move?它可以把一个LY六前驱拔起来,把拔出来变成一个XY六。然后X value和。原来的原原和原来的釉质就是各种临时变量的,所谓的纯釉质一起都作为釉质,然后他们。又新造了一个新的对象,叫做釉质引用的东西。用U值引用来实现移动。C加加的值类型就变成了这么一个奇怪的状态,就是说我们有R value和L value。但是我们R value内部其实是有我们把左值拔出来变出来的R value和真正的R value就是所谓的PR value。然后之前的拔出来之后的值和之前的L86在一起,又要结合又合成起来,因为他们就叫GL86。因此C加加的值类型变成了这么一个奇怪的样子。 刘晓义(00:49:24): 到C加加时期的时候产生了一个更。产产生了一个更新的变化,就是我们不能说。PR value是即将被move from的值。因为。C加加时期说这个P value是一个可以被用来初始化对象的表达式。但是。这个对象的初始化可以被往往后delay。比如说。比如说C加加17里面,在这种情况下。这个东西它产生的是一个P286,但是这个PR86并不会立刻被构造出来一个TT类型的对象。它是这个PV六,直到他被return产生return T的时候。这个T的对象才会真正的被创建,因此这里是不会调用所谓的复制构造函数的。这就是C加加时期的guarantee的NRVO。这样造成的后果就是现在P ry六,它甚至有可能连Y六都不是了,它。 刘晓义(00:50:38): 某种东西我们不知道它是什么。 刘晓义(00:50:52): 你拿到一个a and A?什么叫无论如何都可以move它。A and and里面的东西。不是你要搞明白这一点就是C加加里面的值类型,虽然叫值类型,但是它区分的是表达式,那比如说。它是左值。对它有名字吗?它有名字,那它就是左值。他有海丹利,他的名字。你写一个变量a,不管它的类型是什么,它永远是一个左值。对。可以move是一个。你要这么说也不是不行。 刘晓义(00:52:08): STD move它就是一个很简单的东西。什么东西来着,黑娃好麻烦了。其实不是STD。Move. 应该叫什么来着template T?它exactly。Static. Cast T and and这件事情你把类型人员打动的工作交给别人性。我们标准说的。什么东西是XY六?static cast成T and and或者是返回T and and的函数。它表达式,它必须是一个函数。什么意思。就是表达式的类型。对它的类型和它的值是两码事,就是这个表达式长成什么样子?如果它是一个返回T的函数的调用,那么它是一个XY六。如果它是static cast的结果,那么它这个XY六。如果它是一个类型是a and under的变量。a它是一个L value,只是它的类型是a and and。为什么不能直接就不用你的,既然你这个洞都已经打到了。按他不拆分完全就不local。因为移动构造函数和复制构造函数的区别只在于它的就只在于接受的。传入参数类型?所以你肯定是要让and跟and的区分开来,后面会讲到。 刘晓义(00:54:31): 坑的问题。你们C加加很妙,我这次说的这个点,你们C加加很妙。那么第二个问题就是为什么我们需要移动语义?首先我们知道C加加的赋值的语义是继承了的C的就是C里面如果你有两个struct,那么你。起把两个struct用assignment赋值在一起,那就是把这个struct里面所有的。所有的对象都copy过去。所以C加加的赋值就和C的赋值一样是。把值的东西做copy。copy之后我们希望它和copy之前完全一样。但是C加加我希望说我们有了先进的OP,我们就可以搞II就是我们的class不仅是它这个我们的class不仅是它这里面的数据成员所表达的东西。我们希望它代表了某种资源,就比如说分配了内存,或者是打开了文件句柄之类的东西。但是这样的话,为了实现正确的复制语义的话,我们在复制struct的时候,我们按理来说是应该让这个B和a的下面都创造一个新的,虽然说是他们职业化的资源,但是这样就带来一些问题就是。 刘晓义(00:56:00): 我们STD mouse train然后写一个B等于a,然后这件事情你,然后你写,你好像只是写了一个简单的assignment。但是下面就开始往堆上面给你做了,因为你的SDD需要有一个buffer,那这就不是很妙,因为有的时候我们不希望因为我们可能这个a加下来,我们就扔了,我们可能希望把它移动过去。我们现代的编程语言的原始rust他说什么,我们怎么解决这个问题,我们陌生人就是move。你们a等于a,你接下来B等于a,那原来的那个a它就不应该能用了,因为它已经被move走了。有的时候我们还是。希望他去copy,所以说又定义了两个T一个treat是clone clone就是说我下面有对应的资源,那么这个时候我就需要显示的调用。Are you. 刘晓义(00:57:12): B等于A。这就非常好,他告诉你你在clone a,这个close的过程当中可能会发生。各种各样奇奇怪怪的事情,比如说以往你开始卖了,你开始打开文件或者干一些别的什么。然后它还有一个东西就是copy copy,你默认就是用drive来实现,为什么,因为这个copy它其实是标准库,开了洞,就它虽然是R的标准库的一个普普通通的treat。这个tit没有任何的。成员方法。就你声明了你的东西也implement了copy那么你只需要声明你implement了,你只需要写。EMP. Copy. 里面什么都不用干,这个时候如果编译器看到你的类型支持了copy,那么let B等于A。B就会自动变成copy也不是move。所以这是R的解决方案,就一切都显得非常的合理。 刘晓义(00:58:36): 我没有思考过问题。 刘晓义(00:58:52): 有什么用,拿到了之后,他真的在。 刘晓义(00:59:06): 好问题。Copy要求size的对。你你要是在你就不能低了,他就不是对你不可能。就你不去,要求算子的确定。完完完了。 刘晓义(00:59:59): 任何类型的and他应该都能copy吧,我不知道能copy吗? 刘晓义(01:00:09): 对。这东西为什么?不是现size的问题,我感觉size。Rust允许你允许on size的东西存在吗?你的?DNT是on size,你能直接用一个DYNT得到一个DRT的类型吗?对你的第二你的?你的DYN都那个?copy本身上它不copy,但是你把它给reference了之后。DN treat object reference,它本质不是带取表的指针,你只能通过它访问。他下面的成员方法吧,他能你你能把里面的东西拿出来,变成别的东西吗?不行,对DN copy不copy。好,我们不要思考rust了那。那众所周知,静态语言里面还有一个不能上桌的东西叫go对吧?go就是我们不搞这些乱七八糟了,我们就是C with defer你所有的东西都是struck了,然后你自己管。所以也没有。Rust也能RAI。Rus,你又你可以引你有D对?他可以。但是够那边有几份,所以。Go底底画就画,那我们不要思考下去了。 刘晓义(01:02:20): 好,那么。这就我就说回C加加的移动的问题,那C加加的移动。一切都是服从于统一的大框架,所有的东西都是普通的overload resolution。什么意思就是复制构造函数和移动构造函数的特殊之处,只在于说,当你的这个类型里面没有显示写明而。你在别的地方可能会用到了的时候。编译器会偷偷帮你自动生成一个声明,甚至再帮你偷偷生成一个它的实现。在调用的时候,它和其他的构,它和其他的函数长的都是一样的,都是要同样的resolution。我们再回去看这个代码。首先我们要注意到。Counts a. 这个C的a的copy和a and and move它都是一个新的对象,就比如说我如果写一个。什么A?这个乱七八糟的东西,那他去调用这个函数的时候,它会首先创造一个新的对象。A。创造的方法一般来说默认就是。Copy constructor,它会默认创造一个新的,它会copy出来创建一个新的函数A。所以它这里面干的事情,其实是我们要创建一个新的值,它的类型是这个C的a and,它是一个左值,如果它是一个move的话,我们要创建一个新的a and and,也就是一个右值引用。 刘晓义(01:04:11): 那么我们。那么我们。实际上要干的事情就是要把我们传进去的那个东西办得到这办得到函数型参的引用上面。他就说。L86总是绑定到左值引用。R六总是优先绑定到右直引用,那么然后就又然后就是一个奇妙的规则,就是所谓的。引用引用探索。如果你有一个。Int暗暗的。那in and and。只有int and and and and是int and and。造成的结果。我们在。我们在前面这个地方。类型是a and。但是它在它,但是它在调用这个函数的时候,它是一个左。它是一个左值,所以说默认就所以默认就应该试图把它bind到这个左值引用上面去,并且a and and and就是and的,所以它会调用com的A。不会调用AI的这个地方? 刘晓义(01:05:55): 这个是不是真的?我思考一下,不是因为int三个and的总是等于int一个and的。Int安的也是int?只有inter and and and and and。懂吧。 刘晓义(01:06:25): 太棒了,你已经理解这一切。一切都非常的科学。哪里不科学了,你觉得哪里不科学? 刘晓义(01:06:47): 你们C加加的逻辑是什么?我觉得C加加的逻辑是不要思考下去了。就你们C加加会创造出来各种奇奇怪怪的语言规则。这些奇奇怪怪的语言规则的目的,我觉得主要是用来服务某种特定的编程范式,比如说我们需要。移动我们就创造一些这个不是特别开动,但是稍微开点动的补丁,打到原来的这个引打到原来这个引用的框架里面,这样我们有了一个幼稚引用之后我们就可以引用。 刘晓义(01:07:27): 至于这个幼稚应用,除了在干移动之外还能干什么?我的建议是不要思考下去了,因为对于class来说,其实一个常见的class只有这么几种。就第一种是我们和C一样,我们就里面其实就是朴素了,这个成成员的数据类型,那么我们其实对他来说不需要干什么,让C加加的默认的那些构造就可以满足我们的要求。 刘晓义(01:07:57): 另外一种我们要做RA。我们就要把构造和析构写上,把构造和析构写了之后就要写其他的一整套东西。我们是RII,但是这个RI。这个class它的本质是一个引用,就比如说我们有SDD string,我们还有SDD string view但是后面这两种其实本质就是我们要把。各种奇把这些各种奇奇怪怪的东西写写这一套全写出来,然后对于前面的那种,那其实就是我们最好就是一个的,然后什么都不用写。我里面有一些可能需要管理内存的地方,我们可以把它给别的东西,比如说什么STT有一个pointer。当然,这样存在的问题。你的C,它永远就活在堆上了问题也不大。 刘晓义(01:08:54): 就是你要么写一个struct的,然后只有一个struct的话有很多优点就是首先它是编译器帮你生成的构造,移动都会工作,然后你可以写你,你写,比如说什么。那个a,然后你把ABC的值列出来,就可以直接自动的实现一个构造,你也不需要说自己写个构造函数,人工了,给这个ABC都赋值。如果你要干活的话,你其实把这些都写全就行了,你就写构造函数和析构函数。析构函数涉及到继承的时候要加V。然后。有一个,然后你有普通的构造函数,然后构造完之后你要写这个。复制和移动的构造函数,你可以自己。加上它是default还是delete?你反正加上去永远是不会出错,并且可以让别人在读你的代码的时候变得更清楚。然后这里看到我这里写了一个很神奇的东西,就是我并没有写这个移动的构造函数和移动的赋值和。移动赋值和? 刘晓义(01:10:10): 复制的赋值我直接写了同一个,然后下面有个swap这样做的优点是这个我们可以用这个所谓的cop。什么意思?如果我们不需要优化一些特别的情况,比如说这个我们可以,如果我们可以,比如说我们在move,我们在copy的时候,我们可以特判一下,如果。如果我们的size和要copy进来的size是相等的,我们可以不delete,然后再重新。再不delete然后再重新分配内存。我们不需,如果我们不需要,或者说我们懒得这么干的话。 刘晓义(01:10:49): 我们只需要写同,我们只需要写一个调用直接按值拿到C copy对象的复制函数。然后这样传进来之后,它会默认先把我们靠我们复制到右手边,用我们的复制构造函数复制一遍。然后我们接下来只需要一下就行了,就可以,这样就可以节约一些写赋值函数的时候用到的精力,这样的另外一个优点。我们可以保证我们的。 刘晓义(01:11:30): 在移动的时候不会出现问题,因为你要用那个CG标准库里面的algorithm的话有很多,它是需要你有一个。No except swap了,所以。写写上这个没有问题,然后另外一个问题就是object被move之后,它会剩下来一个空壳。一开始这个地方。 刘晓义(01:11:54): 会a的析构函数一共会被调用三次。尽管说原来这个a已经被从它a里面move走了,所以说我们需要保证说被11个函数被move完被move走之后,尽管它里面是一个空壳一样的东西。我们仍然是需要保证它能够正确的被吸购,不会漏掉。奇奇怪怪的东西。这就是你们C加加。所以我今天要讲的东西就是这些,就是简单的五讲竞猜,我有一些问题。在coffee和move前面加explicit。不会吧,也不会,就是因为这里面它的引用的绑定是标准规定的绑定,不是我们实现绑定。我们都是explicit了,调用这个函数就explicit说我要把int20变成一个a的时候才会涉及到一个的问题。 刘晓义(01:13:53): And finding. 刘晓义(01:13:56): 是不是云。 刘晓义(01:14:08): 那它这个语法不是单纯,在函数的形态上面去标签。对。对。他能干了另外一件事,也就是帮你extend temporary的lifetime就是因为之前你要。以前他只能是。你只能写CA and等于一个temporary。对吗,对的。对吗。选C。严格来说,语义上面。然后按的另外的一个用处就是你在写函数模板的时候,会需要做perfect forwarding。你需要让你后面你的做函数模板的时候,你这个模板里面调用函数,你可能会希望说你要让这个模板拿到了模模板里面的函数调用拿到了值类型和你传进来的类型是。一模一样的,然后这里面会有template的type name里面有and的时候会有另外的一些special case C加加给他加了其他的special case来保证你的STD。Forward是可以工作的。对有那个STT冒号forward就是来解决你的这个问题的。 刘晓义(01:16:03): 我也想知道C加加为什么是设计的就是C加加给我的感觉就是常学常新,你知道吧,就每次学我都觉得我是第一次学。别吧这怎么改?它的作用是什么?怎么干掉,只保证他去。它是本身你看到一个值是?就本质上的问题是?你C加加你每加一个新的东西进去,它和之前老的东西会产生叠加,你只会越来越多,没有办法越来越少。 刘晓义(01:17:04): CPP R CPP R我没用过。分析的哈克已经没有比自家少多少?原神也有他自己的问题,就众所周知,rust到现在他的lifetime checker都是不上了。不上的吧。CVE杠二对!他就一直不上的,没有任何问题,只有这一个。不要搞。那不搞static那你的?Global常量还怎么活?现在先搞一个什么时候我们一起写大家一起GHC。都不会写,他跑到自己家写一个大东西,这里面全是。不是这里的问题是我在想你刚才那样说的话,自变量的lifetime它是什么?Hmm. 对吗。那不就是static吗?说你你你不允许他写出来了而已。是,但是它不是一个。太太太好了,对那众所周知,好像有人论证过。R里面你往上limit就可以有static,但是你往下是不能有limit的,就是你不能有比所有的东西拉他们都短的东西是假的。对的。不能没法摆脱nuance,你要不想要nuance就大家一起快乐GC!我今天你说的对。加不了V八是一个先进的。虚拟机。 刘晓义(01:20:01): 大家还有别的问题吗?我看这个时间也比较久了,已经八点多了。虽然我通知上是不是说要讲到九点?怎么讲两个小时,我以为像之前那样,大家第一次大家都少讲点。我的本质上是我今天因为某种原因,下午的时候感觉特别困。所以一觉睡到4:30,然后起来之后发现slides还没做就。并没有,没有我还要吃饭,不要思考下去了,我的评价。 刘晓义(01:20:50): 好,大家还有别的问题吗? 刘晓义(01:20:58): 在编译器里是怎么实现的,它的实际上来说咱task的。如果没有被用是不是?把它move一下,应该什么都不会发生。 刘晓义(01:21:31): 你看到这是G上的截图,你可以看到第三行是白的,没有任何问题。你们是一家,所以我想在家里搞一个在站上面的,但是和就类似于这些东西是不是我就直接把cop?什么叫做在站上了,在站上了你在?在站上你直接写就行了,这样的话。你把copy contractor delete掉? 刘晓义(01:22:26): 对。unique pointer不就是这么干的? 刘晓义(01:22:42): 这就是有pointer和string view?String view。对它不保证生命周期。放弃治疗string will就是你要自己保证你will reference的string它是活的,你要自己保证。所以我说它是RARA,但它是RARI的引用。如二。很多东西还是很难RAR的,目前感觉上。是也有他自己独特的问题,我觉得。虽然我觉得rust的问题C加加可能也都有,只有C没有这些问题,就比如说你们rust就经常。Create飞来飞去,然后编译一万年,但是C的话就是理论上你可以把所有的东西都提前编译好,但实际上大家都在用template,然后template导致你的整个库都必须变成一个巨大的header。你的编译时间还是一样的长。 刘晓义(01:24:22): 又搞一个整些停车之前是不是有过?之前有过这种想法就是现场的。export template没有人知道怎么做。你们。你们R的编译器里面有一个R的解释器一样?对。对。不要思考下去了,对!还有你用template搞一些模拟的东西出来对。不要思考下去了。你们C加加,所以现在康斯医保?我没用过,就是我的感觉,你标准库里绝大多数时候都不是,那你就只能做简单词,我现在主要还是写C加加17with concepts。有缘再说,主要是我得有时间做slides,而不是像发在发生今天这种凌迟的事情。 刘晓义(01:26:18): 能讲的东西很多,我觉得另外一个很坑的东西是exception。前两天刚刚有一个人说了什么什么,你注意到这里我有一个奇妙的no except,但是为什么?我也不是特别清楚。然后不只是exception就已经general在编出来的时候都是比较难对付的问题。Copy有可能要分配内存。也是首先标准库要求这个swap最好是no except。其他的都可以商量。这件事情,东西再不会。你except了,扔出去之后。你会希望说你跑到一半的操作?你跑了一半,你你跑了一半的操作就好像没有发生一样,就比如说你干这种事情,你最害怕的一件事情是。你比如说我要把一大堆,比如说我要写这么一个东西。我有一个。我一个STD。Victor. 然后A。然后这是某个东西?然后微点。Impress back. 然后。a星。然后。A怎么怎么样?a扔出来了一个exception。这个时候new出来的东西已经被new出来了,没有任何的东西来delete它。就你注意我是。就你注意我是扭出来一个,我是扭出来内存来放a,所以我干的事情是我先卖出来一个再堆上的内存。我在堆上面有a,但是如果a except了。 刘晓义(01:29:11): 不能。这就是C加加?一个会有奇妙的问题。 刘晓义(01:29:36): 这个时候,然后我想一想不对,这个时候不是这个是push back对这是push back。对应这个其实是无关的问题,如果你是a不是,但是然后在里面写了一个东西,然后A。这个时候是不会出问题的?我思考一下先要分配的东西。我想一下看调度在外面。我想一想这个时候except了会怎么样?这个时候你进行操作一半exam了,你看去住它。太我也没有思考过这个问题。那四香江里面你也可以写?不,你可以干一些很神秘的事情,就比如说你可以把构造函数变成protected的,然后你有一个friend的factory函数。这种东西也是有意义的,就毕竟你整天都在这么干,我感觉是更好的。东西是更好的办法。但是佳佳怎么办?哈哈。私家家里边你也可以这么搞? 刘晓义(01:31:38): 但是就是你用result类的error handling会有一些问题就是result类的error handling会倾向于说你会层层会倾向于这个诱导程序员把error层层往上传。传到最上面就不知道这个error一开始从哪里出来的了?Exception. Stacked on winding。东西。那所有的东西都解决了? 刘晓义(01:32:13): 你们就最经典的就是比如说你的你写你,你执行一个命令。这个命令的文件是存在的,他需要我给你报一个叫做什么来着,找不到文件。原因是什么?原因是原原因是你执行的那个东西的ER interpreter不存在。然后。对,但是他层层把这个error往上传的时候,他就不知道这个不存在是从哪里来的,然后就会导致没有见过他的人就感到很懵逼。然后你也不知道他肯定不会记得是哪一句。这是你传error可能产生了问题。或者说是现代EOS?对。ERNO. 它是一个global int,对所有的东西都很难证,这就是编程的常态。干活是一部分出错了之后。出错了之后就直接panic,别想了,有的时候你会希望他恢复。恢复。我不知道,可能有一些你希望他跑很久的东西会就恢复有一些愿望。很明显的对的。Exception确实有很灵吧,就感觉现在的错误恢复的方法就是我们不再开启exception了,我们就是把一个大的工作拆成好多小进程,然后一个11个进程炸了我有别的东西来负责,想办法恢复它。我们不再试图说一个程序炸了,我们试图开启exemption,然后恢复一部分,我们就直接把程序拆小,然后恢复worker。 刘晓义(01:34:57): 怎么解决内存泄漏就是你用system D,然后你设一个memory limit打到limit就重启。 刘晓义(01:35:19): 他们里面的那个message的那些泄露问题就一直没有修,所以他们就是每隔一段时间Q一下他们的消息。对所以接下来的状态就是每隔一段时间,他的邮件就会有自己的发布。这个人太棒了!这就是复杂的软件。 刘晓义(01:35:51): 好,所以就这些。好感谢深奥!你看其实我不需要做很多,大家还是可以讨论一些很多奇妙的名称是这样,因为因为这是C加加我看看。对今天关于C加加的妙妙讨论都已经上传到youtube上,那好,那今天。线上有同学有问题吗? 刘晓义(01:36:22): Any question. 看不。看不到。有没有问题都没有办法了,看看不到看不到字,什么黑板上没办法,黑板上。不是的ok ok。那就看得到很好!那今天就这样了,然后希望这个无论是让大家对于C的热情又熄灭了一点,还是又点燃了一点。你不写游戏,现在还是可以避开他的。 刘晓义(01:37:03): 写GY现在大家都用electron写了你在用更的语言,你刚刚装OS装了一个live CEF在上面。是这样的,然后OBS这边的那个浏览器我觉得很大的概率就是他给我弹那个youtube的那个内嵌的浏览器窗口,就是它会显示一个youtube的聊天窗口。我觉得就是他CEF干的事情。对没办法。 刘晓义(01:37:48): 为什么不能用?为什么到现在为止还没有个system web view的统一接口?地表上也没有那么多手指头。这就是数操作系统,手指被炸掉两根还能数出来。 刘晓义(01:38:15): Apple apple I iphone上面的结构可以视为不存在。然后L。很明显你说什么叫系统?web view这是一个不存在的东西。所以压力就来到了windows这边。 刘晓义(01:38:33): Windows有吗?我不知道我没写过windows。windows。现在有。有rus那边的一些东西。不好用。所以你要写QT里面要面对。好,那就今天线上直播先结束了,线下继续聊天,线上同学们!感谢今天收听!再见。 刘晓义(01:39:13): Windows需要找阿姨准备磕一下C加加预料到是这样的。你就写!看kernel写C不也能活到现在?Colonel colonel colonel现在很妙的一件事情,就是每天看他们那边的drama。非常的。好玩。Rust kernel能够让kernel有一个C API civil internal API。Rust这我不知道。现场有没有microsoft的内部人士?线上有没有microsoft的,只能咨询部署?打听一些microsoft的内部消息。不知道russ进windows。Rusty windows会简单一些?S kernel要简单多了。 刘晓义(01:40:22): Kernel那边的一个主要问题?Mm. 没有人愿意用rus写东西。现在kernel developer都对,那没有那么觉得。rus确实很多的时候假设是底下有一个operating system。rus有一堆假设。甚至是他要work很多的时候,如果你不要弄ICE的话,它里面有。打了动的type是假设底下有一个operating system。因为你没有operating system,首先把那一套东西都不工作的。里面很多type的假设都不太工作。unlock不能fail,这是现在的一个很大的问题,不能fail。File的默认假设是panic?OM直接死了。然后。在kernel里边这种事情偶尔会发生。你就可以杀不太进城了,你就。前两天看那边不是还吵架吗,他们发现居然不是真的会。在OM的时候,file它有的时候会假设一些小的location too small to file。然后这件事情就让很多的很多developer觉得。这个天要塌了自己。外面写的那么妙的艾玛,居然真的不会触发。Er. 刘晓义(01:42:13): 你到LWN上去查,我现场查。他觉得这么小的分配不出来,你就别活了,这个系统没了得了,就是他直接给你,然后这个系统就真的不了。我查一查,我是这前两天LWN上的事。能不能啥too small to fail这是就前两天吗?不是前两天,那是我前两天看见的。当时还有这操作系统,不是当时还有这FS没有现在没什么人用了。前两天是不是就提起来还在这上面heavily debated?大家可以回去阅读,船很好玩。我应该给他们捐钱。但是。对你在基本上买的游戏你会玩吗?我倒是希望买了布,这样我的时间可以用来干更多。对这个磁锁是这样的,就是OMQ的选了一个进程去杀,但是进程在杀的时候。会掉一些就是CC,而这些CC可能allocate。然后就这样思索的。他们在研究这件事情的时候发生发发现其实在很多的时候这么小的分配其实并不会触发。然后。I written. 对他会直接死掉,不会死。没办法。这种时候就是OMQ了,如果他发现递归又进坑了,就直接把他给杀了。你就别再那么温柔的。就直接CQ他? 刘晓义(01:44:35): 别活了,调什么系统调用? 刘晓义(01:44:47): 你不允许over commit那你?会有OM的情况出现,你总有人要分配内存?当你分配内存的时候,这件事情就有问题了。你不允许over committee也不妨碍。会有这件事情? 刘晓义(01:45:17): 所有名词东西是怎么实现的,快没有了,内存的时候是啥吧,是不是?我觉得是不是给system process预留了一些内存? 刘晓义(01:45:37): 东西。反正很神秘。 刘晓义(01:45:59): 很好。这边不太合理的问题,还是OM去杀东西的时候,有可能真的杀出死锁情况。很多的时候,他把所有的children丢给了PID一,这个children就永远挂在那里了。然后有的时候他会杀一些很重要的东西。 刘晓义(01:46:20): 我的story。多差内存。都配swamp?一个很好的一件事情是你可以配一个。不用很大的一个双放在NFS上面,这样的话,当你的系统快OM的时候,就不会死掉,他会比较死掉的,给你一个机会,让你上去给休了。 刘晓义(01:46:50): 下载内存?正在可以做swap可以,你就放一个file在那里就没什么问题。真的是download memory? 刘晓义(01:47:21): 哈哈。真的也是有一个思索情况?fuse本身是在user,他可能会调的内存。他可能需要内存就死循环。总之就是整一些简单的文件系统,比如NFS,你可以把这个NFS。路由配一配,让它绕地球几圈,这样的话你会安全一点。 刘晓义(01:48:03): 然后看到OM了?那不是照样O?Kernel是不是一般不太会用很大的内存?Er. 急需bonded memory hypervisor?工程奇迹。 刘晓义(01:48:43): 是那样的。你,你可以换一个角度验证,你可以验证你这个系统只需要运行多长时间,然后在这个时间内,它的主频就不可能分配那么多内存,也可以。 刘晓义(01:49:25): 加一不能变成负一的原因是编译器干了这件事?fruit有UB吗?你你的不能?不能加你,你是加了加一就不变的值?第一个丢精度的地方。你会加到那这件事情?Float没有假设一件事情a是一个float a加上任何一个positive的value大于a,它没有假设这件事情。Flow没有保证,他就不会做优化,他会加到一个值,他真的会去帮你加。 刘晓义(01:50:14): 我前天。我就写了一个。然后靠着别的孩子。相当于优化出来的你你一个东西加加一是永远加不到那个。不是你的,如果后面没有用过的话,它就不属于不作用。编译器可以直接跟他的progress是把整个循环都干下来,但是我想一下。For progress一个问题,你的调用是在函数后面不是在里面,还用你来说for里面?在后面的话,那他就会for progress的那个for progress。你一个for循环里面完全没有副作用,他就直接把这个东西扔。大家用一下也许会。不太清楚,得看他怎么优化了。东西是真的。语言律师的范畴了?五号这也不一定是语。12个最后你发现这是编译器实现的细。其实我觉得现在C加有一个趋势挺好的,他把UB给换成,这是一个很合理的东西,你至少不会删除你硬盘上的东西。you be considered harmful? 刘晓义(01:51:54): rust的。in I是UBUU是?里面所有的音色都有什么overflow这种东西。你可以用这种东西。对CC是不是有这种比较近,你看什么check什么什么什么这个overflowing ad我记得对这个overflowing ad特别好的地方,就是如果ing I版本的overflowing overflow会直接进。你在堤坝?你真的能给出来一个东西。我看的U版本是FTVI32。I. S. T primitive. Overflow in at. 它这种情况是rap such strict是什么?就相当于。默认情况下,你直接写加号了,他不会拍。 刘晓义(01:53:32): 结果。现在是这样的?我怎么记得之前都是他是UB。还要检查这种原理?不存在一个standard这件事情就很灵。那你看有的时候它会这样溢出吗?还有三个。听起来会自然溢出,但是这个地表上并不是只有普马计算机对这个地表上还有多少非普马计算机?苏联不是还有一些表上还有能跑大的飞马计算机可能没有能跑C加加的飞马计算机可能还是。Numeric types. 刘晓义(01:54:41): Machine depend. 这怎么什么都没说,这是个type。Name memory model. 我觉得reference没写。Reference是主,主要是语法。它有一大半都是写语法的时候。Type system没写清楚。SN就只说了有什么type没说怎么type check尤其是。尤其是什么lifetime怎么在这里?没有。让他写明白。 刘晓义(01:55:35): 最后又聊到了真正的现代时代。C加加26的那些奇妙的东西。C26都有啥对,现在是纯聊天,然后没有任何的约束力,然后就是想听的同学们可以继续听,反正接下来就是聊天这个东西是好的,这个东西不一定是好的。Taxi housing是好的。东西是好的。**这么多东西其实东西很好用。如果它标准化这个东西,你就不要到处都是什么ICU了。那他要怎么实现了,它实现的结果就是他自己包一个I对的,他的在连接ICU。但这样的话就是它的锅就是编译器写的了,不是你需要在你的C位置。Find library的,我觉得C? 刘晓义(01:56:45): 我就觉得这个东西是简单的,怎么处理和R一样UTF八和other encoding。大家都是windows里,你就不要管windows支持对你,他就是OSS R和string,你里面都是UFO SS是whatever。是什么意思?你真的需要对里面的东西做操作吗?当你需要对这里的东西点。点是什么意思点是长度点叉点?你真要输入几个字的时候,它就有你对字符串要做了大多数操作,要不关心它是什么意思,要么不用ICU的情况下根本就是错。如果假设所有都是UTF八这件事很好,所以假设你写rendering的时候,你假设大家都是UTF八的话,你直接用你,你直接喂到。放里面它工作的。那多好,直接把cos的换,然后微信。可以告诉。多好美好的世界?你想要数字数几个字也是很好。Initialize the list. 刘晓义(01:58:08): Impress factor是啥。Dynamic fixed capacity in place can fixed capacity. Dynamically resizeable fix what the**就是一个buff,这就是一个buff,然后你可能就只能这样就不能。那为什么它dynamic resizeable是什么?就相当于你要的一个a100的这种东西,对的,它稍稍小于卡,就是一开始。他们为什么不在标准库里搞一个? 刘晓义(01:58:51): 你你现在标准都变成这个样子,你写就是一个数组和一个vector,确实就是一个对。我不好说。Erase. 这个东西可以放在。放在这是一个看起来名字很好玩的东西,但是什么什么文档都没有,东西只能看那个什么。Argument。别急。Single writer multiple reader pointer那就是rust with。Think. 刘晓义(01:59:49): think hazard pointer?Other printer C加加?上来读一下他的motivation。Answer都有谁。没什么特别认识的。肖哥哥你看你有没有你司的员工?你你们现在你们现在写这个?document不基本上都是搞量化的。 刘晓义(02:00:33): 先看一下introduction吧!Deferred recommendation. 又是从风里抄的东西?为什么从风东西上面的刚刚那一群人去facebook的都没有?所以,大家现在的本质就是各种重复的和其他公司的。我当然是库里抄东西!那不就是都是从否里和他们什么时候抄一个?Program option抄进来。我觉得东西很好用。argument?没有对他们之前加的networking file system大家有人在用。不是他们决定拍了一个脑门,在他们引入了IO stream20年之后又搞了另一个stream processor是用stream processing HTTP,这个是我觉得最近十年标准委员会。大佬升级的?由此可以。就C加加的人多吗? 刘晓义(02:02:15): 他的同。和GC配合。有点像不是?对他protect such objects from being with就是我在用的时候我把这个哈拉碰一下,就别删了。等我一会儿自己删。Read mostly share data strong data. 刘晓义(02:02:53): 真的假的?可以放在他里边。这个指针就有特殊语义了。我怎么觉得这么灵?普通的时候你需要用share去搞它?昨天锁就是这反复一样。对相当于是non unique text。你可以都跟着落。我想删的时候我要用unique。不是他保证了critical section里面没有人会删他。drop的时候只drop printer不drop data。他会记自己的。别人想要删的时候,这个exchange是。那就不是atomic是普通exchange。对这边我能看懂它是对。我给他说user function。这边。这边是A。这边的问题是你不能够在这个里面再去写,它是因为你在这块持了一个share。你就算在这里,你不吃手动,把它给放出去了,有可能别人在读,然后你会思索。两边都想相当于都在抢。他们都持有12个东西。它是保证了这一段时间里不会被删,这一小块时间里不会被删。具体怎么保证的? 刘晓义(02:05:17): 不太小的,我觉得可能是这样的,H在drop的时候他会看一看这个东西有没有在这里被。如果被retire掉就在这里删。没有被retire掉就正常放回去。对。它这里是特殊的你普通的时候,是来自于。Retire标记了一下。Old的这个东西要被删掉了,没有目前持有这个pointer就是在这删。如果有目前持有他就这不管。然后。在这块。感觉还挺合理。相当于这块是一个小RC,只有这块有小的RC。He had information给一个fully的我很棒!康科的他是对。这个东西确实挺long free的?你这两边相当于用atomic就同步一下,谁去抢,相当于这块儿谁抢了一个。抢一个release flag?Memory order. 好大家看懂他是干啥的? 刘晓义(02:06:48): 很妙。剩下还有啥好玩的,没有啥好玩的。应该看core language future是真的好玩的东西?第一个就是什么?很灵的东西看上去都不太对。一会儿看。unevaluated strings。他们会卡死?这件事情之前不存在的原因是不是我的心,它本身的语义就有点问题。你如果是个虚拟机,里面到底是个啥?是吗?真正有用,就是下划线是吧,下划线其实也可以用出来。发现挺好用。这就是下划线,是一个特殊的东西了。Conflicting declarations. 刘晓义(02:07:56): name independent is this name是下划线?你你写下划线的时候他不会给你报点问题。你比如说下划线等于什么,然后你再一个下划线,他不会告诉你说这个东西。下划线就直接相当于凭空造了一个。R里面小?让合理。看起来是。这是啥。这个东西不用SD什么?之前是完全没办法之前。之前你得用模板去递归进去,然后你每次泡不到前面一个,然后你什么拿到里面去下推自动机。Complete parameter initialization, binding, return, reference. 这件事情。终于做了?他能干什么,他说给你返回一个error。现在编译器要给你error?不提前得假装一切东西都没有发生着反馈给你。不知道失败的都是。他们现在也在用,他们也不用UB。这也挺合理的。Structure这个东西看上去很合理玩。之前没有吗?这些friends不允许是玩template。我刚刚说要看好玩。什么态?Universal character name across. 东西原来是UB。Universal character他会为什么有人要写这种东西你们? 刘晓义(02:10:30): C加加,这为什么C加加的转义字符是为什么,这就是为什么C加加的这么复杂的原因就是别的语言没有复杂的。是因为他们只有一个主流来实现。C加加有11堆实。直接把这删了变成defined behavior了,那它define成什么了?他把挪到这里来。所以他到底去没去掉ID方案?它主要的直接变成一个。那但是他刚刚用这个的版本。两个星号是变两个号?我是觉得那一半都是双井号ok,所以就直接变成U,就是不能写这种东西,我们又没有,我们要彻底把预处理。去扔掉我们就得。红的没一半多,这红的太多了,运输力气扔掉都要有。能用的静态版式。不是他们,咱们可以猜一猜,在C加加30之前会不会直接被删了?现在module的使用率是多少?百分之几。Windows MSVC一刚把PSP做出来。对主要是红色的主要原因,我是觉得model那边主要就是。别说那么多了,MSVC应该做还是其他的GCC应该一点希望。刚刚收完for progress for progress就没了for progress就不会有了。 刘晓义(02:12:39): 假的?假的?假的,这玩意不是要怪不得最近把修了,把修的原因是谁家把修了,他们那边就没有bug,原来是样子,原来那边你是。Rush里面有。如果你在一个closure里面放一个infinite loop,然后直接调用在inland之后会。会议以CGI LL?当时bug的原因是来自于for progress是因为它后端是LVM,而在LVM里面有for progress guarantee。他们的解决方案从18升级到19就,原因可能是。 刘晓义(02:13:22): 太棒了。也有。你们。人家越来越不是PDP11simulator。这是啥。A中括号那个?Auto中括号放在艺术里边。Or constrain or王总说话吃饭的东西本身也非常的是,它既不是只有。Deleting a point for incomplete type should be useful. 该有的都有了。有member visit C加反射?是啥。不没有什么了吗?在那种情况下,如果他做了等价变换之后变成了T。Ok就所有它,所以它只是把这个去掉了?对之前确实会输出这个hello world我不知道大家有没有试过这个东西非常的逗。现在还有没有?When home是我的问候。我的问候。 刘晓义(02:15:14): 佳佳是十四十四有了吗?怎么不喜欢吗?没用过,对不起,十四十四已经修了。我们可以试一试。试一试,刚刚不是说有UB的问题?Stay long. 杠杠version C杠18G加试一下加加杠OC。你你这默认是不优化?O三O三O fast快老师记得大家好!今晚没有。别管了,我能不能更新一下谁? 刘晓义(02:16:12): 公司电脑公司暴露。要装五个G的东西。算了。我想那怎么干这件事,我们刚刚说它只有tv的时候,我们看看把它变成N tv会怎么样。unit32TI等于?小于等于。看起来很对? 刘晓义(02:17:05): CS。好。我们在这里搞一个?它prove不出来的什么?Never in line是怎么写? 刘晓义(02:17:41): Number inline是怎么写的? 刘晓义(02:18:00): 他是不是这么写的?他们是写前面的?Never in lucknow in l. 看着也是好。可能。对trial的定义就不太一样。有可能你们GCC满了。没有这么先进的for progress what is trivial。袁律师来起来了。Is constant. 刘晓义(02:18:50): Make a trivial in. Become above probably never be written by anyone. Is concerned evaluate的检点?还说不明白什么时候?A trivially empty iteration segment is an iteration segment matching one of the. 我就只有这几种。剩下的。看心情。 刘晓义(02:19:28): 他把要的给变。他把药的给加进来了。所以。Oil要的也是一个合理的东西。之前要的不是一个很对的东西?比如你写OS里面写了一个什么?写了这是user space上面的一个视频,在一个share的V。当时是UB?这下。比如说你在等另一个去干什么事?下面不是?你本来可以。这个意思?可以帮你写出错误代码TSO的时候。你假设环境TSO你可以直接读。但是它不是显示。Or operation or continue. 刘晓义(02:20:58): Equipment. 被动。Current encourage. See this? 是真的。这俩是等价的吗?如果在C里面。 刘晓义(02:21:24): thread现在变成了一个C加加的language流程。Feature不是不再是一个library feature。然后思考一下。没事下班看多了,那些东西是C加加23就进来了,哪些零售的东西就是你看前面23?哪个前面这不是26的吗?上一把有叫什么来着?没事没人会,没有人会写全部C加加,只要会写部分C加加就好了,他是真接触不了。 刘晓义(02:22:20): Yes it's working哪个你想看哪个explicit object member functions什么玩意儿explain什么object member function是deducing less的。你那是好用。感觉很。写的好,那个写的好是对。是今年的话,我宣布C加加好吧C加加从来都不是一个OP语言。 刘晓义(02:22:52): 不是我觉得最好用的东西是你可以不写Y combinator对新的就是兰兰递归做的是还没有两大递归。原神,但是原神那边你好写一个,比如说你好几个,其他里边你写不了。你很难写funk operator是括号还没稳,钉钉不下来。