免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: egametang
打印 上一主题 下一主题

强烈建议CU分出C++版 [复制链接]

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
31 [报告]
发表于 2011-11-11 17:29 |只看该作者
苹果的人可不这么想哦
btdm123 发表于 2011-11-11 17:26


奶奶的刚发现, IOS 5中 BSD socket 貌似彻底挂了, 原来还有办法在后台继续连接, 现在彻底玩完了。
狗日的, 想骂人

论坛徽章:
0
32 [报告]
发表于 2011-11-11 17:41 |只看该作者
用什么是迫不得已的。

可以选择的话,我选javascript.

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
33 [报告]
发表于 2011-11-11 17:53 |只看该作者
本帖最后由 w_anthony 于 2011-11-11 17:56 编辑
一句boost fuction bind是类型安全的函数指针
c语言用函数指针,类型不安全,十分容易出错,而 ...
egametang 发表于 2011-11-11 17:21


C的使用者连指针(函数指针也是指针)都驾驭不了的话,还用什么C?难道这世上不存在自身“错误”地使用boost fuction bind而导致挂掉的人?难道不存在错误使用vector而挂掉的人?
boost的函数绑定只是一个形式,并不是真正的函数指针。你试试给“参数是回调函数的API”绑定个变量试试!?实际上这点boost根本就无法做到,但是偏偏遇到过很多不知其本质的人总想这么做,自己没试过却误以为可以,并诱导其他人使用boost。
如果空有其“形”也算优点的话,那实际上C++也可以支持函数返回值重载。
比如func这个函数
int i = func(param);
float f = func(param);
可以是两个函数,因为func其实是这么个玩意儿:
class func
{
public:
    func(...) {};
    operator int() { ... };
    operator float() { ... };
};
而这个func你是无论如何也弄不成函数指针的……

论坛徽章:
0
34 [报告]
发表于 2011-11-11 18:02 |只看该作者
本帖最后由 egametang 于 2011-11-11 18:03 编辑
C的使用者连指针(函数指针也是指针)都驾驭不了的话,还用什么C?难道这世上不存在自身“错误”地使用 ...
w_anthony 发表于 2011-11-11 17:53



class ThreadPool: private boost::noncopyable
{
private:
        int threadNum;
        boost::detail::atomic_count workNum;
        volatile bool running;
        boost::mutex mutex;
        boost::condition_variable cond;
        boost::condition_variable done;
        std::list<ThreadPtr> threads;
        std::list<boost::function<void (void)> > tasks;

        void Runner();
public:
        ThreadPool(int num = 0);
        virtual ~ThreadPool();

        virtual void Wait();
        virtual bool Schedule(boost::function<void (void)> task);
};

一个线程池类
怎么使用呢?
void Max(int a, int b, int* z)
{
        *z = a > b? a : b;
}
thread_pool.Schedule(boost::bind(&Max, x,  y, &z));
简简单单一句话,把一个任务扔到了线程池里面,并且是类型安全的哦

我这里Schedule参数就是函数指针哦

C语言用指针,传参是void的,结果还得类型转换,你说麻不麻烦?

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
35 [报告]
发表于 2011-11-11 18:04 |只看该作者

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
36 [报告]
发表于 2011-11-11 18:04 |只看该作者
有时候bind一下确实不错,不过通篇bind,我确实很头疼。我还是比较倾向于C的C++er,所以看到太倾向于C++的代码时,我承认我难免脑子不够用。所以说C1X这个更庞大的东西出来的时候该怎么面对啊……

论坛徽章:
0
37 [报告]
发表于 2011-11-11 18:05 |只看该作者
回复 26# egametang

真是有可能的。
ISO C++03的export,因为没人用(M$和GNU等大部分厂商甚至都不愿意实现它),直接在ISO C++11被X了,连deprecated都没有(虽然我觉得像register这类被deprecated也就是凑数使ISO C++ Annex的条目编号尽可能变化少能照顾标准的兼容性而已)。

论坛徽章:
0
38 [报告]
发表于 2011-11-11 18:08 |只看该作者
回复 28# egametang

短痛是把C/C++一起干掉。谁叫C++想兼容C。
模版之类的许多复杂性就语义来说本来不必要,存在的合理性是因为要给兼容于C的拼凑起来的静态类型系统擦屁股。

论坛徽章:
0
39 [报告]
发表于 2011-11-11 18:09 |只看该作者
C的使用者连指针(函数指针也是指针)都驾驭不了的话,还用什么C?难道这世上不存在自身“错误”地使用 ...
w_anthony 发表于 2011-11-11 17:53



你的思维已经被C语言固定主了,既然用了c++,我就不需要函数指针了,
boost::function就是C++里面的函数指针,
我还用的着写 void (*f)()之类的指针吗?
boost::function<void (void)> func 不比 void (*f)() 好?
请看我上面的例子

论坛徽章:
0
40 [报告]
发表于 2011-11-11 18:22 |只看该作者
回复 14# oooooxxxxx

喜不喜欢异常无所谓。但受不了“连别人不喜欢异常都受不了”的口气。在语言层面上,异常提供的机制是不用异常无可替代的。你可以因为不喜欢或者用不到等等理由而不用,这是你自己的事情;但是以自己的习惯妄自揣测他人并贬低某种与己无关(至少对方看起来是这样)的东西存在的必要性,叫我肿么吐槽好呢。
至于“毛”,真不用拿什么出来。要举极端情况的话,从用户角度来看禁止异常和goto无用论类似(语言实现角度倒是相反)。如果想像不到,只能说明这方面彻底外行了,看热闹就行,歪楼又能歪到哪去呢。既然是你自己拒绝去弄懂的东西,别人也没义务包你清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP