本来想上班摸鱼回的。我C不敢说记得住标准,至少style没问题,linux kernel也有些提交
meson, cmake都很熟悉。所以编译不是问题。
C++比如说我要return 一个object,要利用RVO要确认几件事?
首先object的class要是movable 的,所以你要实现个移动构造。
然后让经验很老道的人都要编译看看asm,要不要写std.move()
然后这个move constructor就是个很夭寿的东西,为啥要用RVO和move constructor呢?
就是因为不想用raw pointer,好吧这个class的member多半不简单。
可能你们有N个class type的member,你要保证自己没有偷懒,
全部实现好move constructor,不然突然会来一个变copy constructor,
memory用完再释放用fragments 炸死你。
弄了怎么多,还不如一个raw pointer直接过去。
忘记讲了,如果你要return none value,看看c++导入的union和none vlaue的取代。
当然有人讲smart pointer好好用,问题是你把lvalue reference看成什么了?
要改的value不会用这个塞parameter?
再扯到rvalue reference的move constructor还是copy constructor。
这边都还没有到他妈的template,我是用的很开心啊。可是事实并没有那么多
类似的class可用写成个template 或者method变function template。
可是不得不用免得被靠北没有扩展性。
写了几天我觉得glib(gnome)怎么那么亲切,囉哩八嗦的Spring(Java)怎么那么一致。
除非没有时间限制的task,或者和clang, llvm有关的事情,死也不碰C++。
还有种情况是我故意想用复杂的语法堵人嘴,正常的同事是不想研究C++的,会直接放过。
最近开始学rust希望不要又被雷