- 主题:c++太复杂了,我承认这几行代码我一辈子写不出来
C++真正做过大项目的高手,都是用C风格写C++
【 在 buildtolast 的大作中提到: 】
: template <class F, class... Args>
: auto ThreadPool::Enqueue(F &&f, Args &&...args) -> std::future<typename std::result_of<F(Args...)>::type> {
: using return_type = typename std::result_of<F(Args...)>::type;
: ...................
--
FROM 59.108.209.*
公司里面碰到这种写代码的,CTO第一件事情就是让他改,或者滚
【 在 z16166 的大作中提到: 】
: 很实用的
: 编译期的变参函数,也很常见。
: 除了线程池/回调,给脚本引擎导出native函数接口也能用到。
: ...................
--
FROM 59.108.209.*
因为公司的代码,其他人早晚接手的,如果接手的人手里十几万代码都是这种,基本就是灾难
【 在 buildtolast 的大作中提到: 】
: 为啥?我觉着写的很好呀,新特性开发出来,不就是让人用的吗?
:
--
FROM 59.108.209.*
你这种小菜鸟就算了吧,说了你也不认识
【 在 z16166 的大作中提到: 】
: 这样的大高手是哪些?是都叫“莫须有”吗?哈哈
: --
: 发自xsmth (iOS版)
--
FROM 59.108.209.*
你这些经验压根就不适合大公司,尤其是电信公司,电信公司一个核心网的程序包几个G
这些代码,几千个程序开发搞出来的,几十年的积累
线程池,内存池这些,各个公司早就现成的,最基本的要求是可以用Purify这些预编译工具做内存边界检查,你这种动不动就大规模用类模板的方式,编译时候内存能不能暴都不好说,压根没法做内存路径检查。所以你们这种就是个人开发者自己弄弄,做大项目,早着呢
【 在 z16166 的大作中提到: 】
: C++引入变参模板就是用来解决“任意个数的参数的匹配推导”、“任意函数的匹配推导”之类问题的。
: 这个特性不是一开始就有的,而是后来发现没有这个东西,有一部分问题就不好抽象、描述,要用hack/猥琐的方法去实现。跟C/C++一开始没有__VA_ARGS__宏,导致写个支持任意参数的日志函数都要hack,是一样的。
: 而线程池的任务队列,正好就是它的使用场景之一:可以在编译期检查放到队列里的任意函数的signature。
: ...................
--
FROM 59.108.209.*
哪些?我的前同事,C的创建者,Unix的创建者,go的创建者,不如你吗?
【 在 z16166 的大作中提到: 】
: 这样的大高手是哪些?是都叫“莫须有”吗?哈哈
: --
: 发自xsmth (iOS版)
--
FROM 59.108.209.*
见过一个“脑子够用的”,用template metaprogramming写了不超过三万行代码,编译要64G内存服务器,代码基本无法单步debug,新人无法接手,代码有些莫名奇妙的内存问题一直找不到,还不交最新代码。最后老板果断开人,代码几个人过了一遍感觉没法继续开发,直接废了,重新开发
这种“聪明人”,后面真是遇到一个开一个
【 在 ziqin 的大作中提到: 】
: 或许可能是脑子不够用?
:
--
FROM 59.108.209.*
你这种没做过大项目的压根不懂编程核心是什么
simple is best
【 在 z16166 的大作中提到: 】
: 这些项目,从正面可以说经验积累丰富,但反过来也可以说历史包袱很重,要迁移代价高昂
:
--
FROM 59.108.209.*
孔乙己?
我知道C++多态如何实现还要知道C?我有病吗
我问你一个,包括你说的高手
如何在中断调用中申请内存?
【 在 javaboy 的大作中提到: 】
: 我看了一下您的几次发言,总感觉语气优越感很强。
: 恰巧你怼的是C++大神。要不你俩比比呢。讲讲自己的本事,同事那不算。
: 比如您说说C的多态实现和C++相比有什么优缺点?
: ...................
--
FROM 59.108.209.*
对,C98能解决的我肯定不会看C11,压根没时间
虽然我现在用的是C11
这堆代码,其实看懂压根也不是难事,包括变长参数,但是奇了怪了,我当年手上至少70万行C++,没有人这么写。难道他们都不如你?
你这么牛逼,做过什么值得吹的大项目
【 在 z16166 的大作中提到: 】
: 我是这样认为的:顶楼这个封装,就是simple、neat的
: 你觉得不simple,那是因为你的知识储备可能还停留在C++98或者更早的时代,所有会有bias
:
--
FROM 59.108.209.*