C++有它自己不好的地方,昨天我就看到一个喷std::variant的封装导致访问麻烦的blog,要么用std::visit,要么用overloaded,新手不太容易很快搞懂这两种,可能只能用std::get_if这种原始的。
最简单的原则是:不要用自己还没熟练掌握的C++特性。带类的C对不少场合也许就够用。
C++搞复杂语法,不纯粹是为了满足低级程序员不出错的需要。况且要真能解决这个问题,那也是很牛的,参考一下Rust用什么样的语法来解决码农易犯的内存错误、同步错误。C++的目的一直是两个:direct hardware mapping、abstraction with zero cost。执行时有没发生目标偏差,那得众人评说了。
编译出来的东西又大又慢,这个恐怕不符合实际,或者说你的项目和问题的规模本身就大,或者说不会用。
比如C在每个early return之前加一句fclose(f),编译出来的代码肯定比C++只在dtor里加一句fclose(f)要大,因为会多出来很多句fclose(f)的调用。
【 在 ksxfhs 的大作中提到: 】
: 自己写释放代码才是内存管理的精华
: C++搞了一堆复杂的语法只是解决一个很简单的问题,满足低级程序员不出错的需要
: 或者搞出新语法只是为了省了两行代码,但实际运行效率一秒都不少,编译出来的东西又大又慢
: ...................
--
FROM 222.130.136.*