为什么感觉和C++相见恨晚, 并没有什么难点.
以前感觉难, 只是小马过河, 被松鼠吓到了.
学习C++不数日; 看过C++ primer 前10章, 看过大部分cppreference, 还有 cppstudy 内存, 堆栈布局部分.
类, 我N年前算是精通PHP, 所以稍微了解下多态等语法细节就OK. 其他诸如 std:: map vector array span queque.... c++ 有更多mETHod, 更能高效管理内存. 走下cppreference就OK了; 其他语言很多想优化的地方, c++都内置method....
宏, c语言的宏; 不如rust 宏好用. 也没必要那么复杂, rust宏部分功能是为了解决其泛型的短板.
模版元: 看似复杂, 实际就是当泛型用. 这东西比其他语言的泛型NB多了, 代码更能抽象.
重载: 现在看来, 没有重载的语言简直反人类. 没有重载的语言其实都在曲线实现重载, 那个代码繁琐度...
高并发: 这东西原理很简单, epoll就那几个接口. 主要是写个调度器, 参考下go实现, 写个简版的stackful纤程也不过十天. 跨平台封装两个方案就好. 客户端和服务端本来就是两个程式;
内存管理: c# golang实际上后期的垃圾回收优化, 都是直接操作内存的, 都是unsafe的, 本质是曲线实现C++的原始内存; 作为其他语言unsafe重度患者表示: 内存管理稍微注意, 尽量使用RAII, 没什么难点.
当然我看过很多复杂的指针转换之类. 这种写法是人为的反人类. 写代码要通俗易懂, 好维护不是? 那种代码我连碰都不会碰.
还有什么呢? !
[quote]为什么我要学C++, 用c# go rust也能写项目, 但抽象化和C++没法比. 最终的性能优化都是大量的unfase, 那何必呢? rust 反人类的borrow, 写到想哭. go c#用unsafe可以把gc300ms 降低到 |