Week Note: August Week 1¤
本周(07/29 ~ 08/04)是八月份第一周,这周老跑医院 ...

Life¤
上周二娃感冒发烧,从周四下午到周六下午,烧了整整两天,媳妇出差,差不多一个人带,生病期间娃特别粘人,全程要抱抱,而且他特别烦躁,累多啊。。。 感慨一下,现在的小朋友感冒发烧去医院检查血常规,流感啊,结果基本都是正常,感觉这病毒啊细菌啊都成精了,有没有特效药,全靠命硬
周三陪老妈去医院复查20年做的脑部动脉瘤,打车去的,医院门口修地铁,本地那地方就比较堵车,现在好了堵死了!!! 医生说复查要做个CTA,这个得听医生的,缴费时一看,居然要1700+,WTF。。。这个CTA还不能当天做得预约,约了明天9点,好了肥家明天再来 本想着请假来陪护的早点来做早点回,八点半就到医院,然后排到十点才做上!!又F*。。。检查5分钟,排队1.5小时。。。什么时候国内这些排队能减少点,特别是看病。。。
大娃最近迷上了罗小黑战记,这周还画了一副小黑的画,还挺好看的,看上面的图。
周天还是去医院,这次是弄本人的牙齿,一颗大牙,做根管治疗,这是去的第4次了,第一次是找出牙齿有多少根管(我的这个大牙有4个),然后放药进去杀死里面的神经(根管预备), 第二次一周后是去冲洗清理根管内杀死的神经,继续放一些消毒之类的药(根管冲洗),第三次是根管充填,这是第四次去补牙,就是把牙齿填补完整,但是今天去到医院,主任医生看过后说最好是做嵌体,不要做牙套,做牙套药打桩,可能会导致整个牙齿裂掉。
因此,这次的主要工作就是打磨好牙齿,然后用扫描仪器给牙齿扫描一个模型去给工厂做嵌套的牙齿回来,下次再去将其粘贴上去,大概是这样吧... 所有一个医生小姐姐对我的牙齿进行各种磨啊磨啊磨啊磨,然后主任来看一下,还不行啊,这里需要修一下,磨啊磨,主任再来看一下,还差点啊,继续磨啊磨...
如此反复几次,磨了差不多三个小时,主任一看,打磨得太棒了,赶紧拍照留下来存档...有没有考虑过我的感受啊...其实也没有太难受,就是嘴张得有点累...
医生小姐姐拍照存档后就准备找人来给我扫描牙模,一圈电话打出来,扫描牙模的小哥哥周末没上班...无语
另外一个扫描过一两次的医生过来说,我来帮你扫描吧,我问医生小姐姐扫描牙模简单吗,她说还行... 另外一个医生搬来了一个电脑和一个扫描枪,打开电脑,医生居然不知道哪个软件是用来扫描的,我晕...
几个软件都打开看了一遍终于找到软件了,开始登记信息,准备扫描,蛮大的一个扫描枪伸到嘴里开始扫,医生一直说嘴巴开大点啊开大点啊。 大姐啊,已经张到最大了,哪个脑残设司设计这么大的扫描枪啊...有一支正常牙膏那么大。
折腾了3次一个多小时终于扫完啦,心累啊这一大早上的...
下午太阳快下山时全家去周边公园溜达,带两娃出去放放风,大娃心念着要去公园捞鱼(前一天也去公园了,没带捞鱼装备),今天要带鱼网去大干一场。 带了半个西瓜,一盒自己包的饺子,还买了点凉拌菜,晚餐要在公园解决,野餐+遛娃。
湖里面的鱼太精明了,游得贼溜,刚开始智能抓一下小虾米,大娃也很开心了,小娃就只想玩水,后来人也学聪明的,放点食物在岸边,守株待兔,待鱼来吃食物时出其不意攻其不备,迅雷不及掩耳之势,反正就是快准狠出击捞它,幸运的捞到一只两指大的,娃开心坏了啊...
又是愉快的一天~
Work¤
@本周学习
Effective Modern C++ 第一章 Deducing Types & 第二章 Auto¤
- Item 1: Understand template type deduction
- 有引用的实参会被视为无引用,他们的引用会被忽略
- 传值类型推导,因为是拷贝,const会被忽略
- 在模板类型推导时,数组名或者函数名实参会退化为指针
- 在模板类型推导时,有引用的实参,他们的引用会被忽略
- Item 2: Understand auto type deduction
- auto类型推导通常和模板类型推导相同,但是auto类型推导花括号初始化代表
std::initializer_list
- auto类型推导通常和模板类型推导相同,但是auto类型推导花括号初始化代表
- Item 7: Distinguish between () and {} when creating objects:尽量使用
{},但是要注意参数类型是std::initializer_list的情况
C++23 std::expected¤
std::expected的作用是提供一种机制,使得一个对象中只可能是一个正常情况下期望的值或者非正常情况下返回错误信息。特别适合作为函数的返回值类型。 std::expected<T, E>正常情况下表示T,非正常情况下表示E。同一时刻只能表示一个值, 要么表示正常值, 要么表示非正常的值。
std::expected<T, E>接口里面的T和E的类型必须满足下面两点:
- T 是
expected value的类型,可以带cv,也可以是void,但必须是可析构的(不支持数组或者引用类型) - E 是
unexpected value的类型,必须是可析构的,E的类型必须支持std::unexpected的模板参数类型(不可以带cv, 也不可以是void,不支持数组或者引用类型)
感觉std::expected配合std::error_code来使用简直完美啊。
估计很多人的项目至今无法用上C++23吧(本人现在用的是C++17,汗。。),这里推荐一个开源的很接近std::expected的项目:TartanLlama/expected
其实google开源的abseil-cpp中的StatusOr也是类似的东西,有时间可以读一下它的源码。
@本周工作
工作上范了一个菜鸟范的错误,看下面code,segmentation fault了啊啊啊啊,关键是程序跑好久才出现,老尴尬了。。。
uint8_t arr[16] = {0};
uint32_t *ptr = (uint32_t*)arr;
uint32_t a = ptr[15];