打印
[LOOK]

李老师群课之 再谈元编程

[复制链接]
楼主: mahui843
手机看帖
扫描二维码
随时随地手机跟帖
61
icecut| | 2013-9-8 23:00 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 icecut 于 2013-9-8 23:05 编辑
john_lee 发表于 2013-9-8 21:41
老弟高见,完整的查找表模板的确应该是这个样子,我写的那个crc32查找表模板例子,目的只是想讲解元编程 ...

我就是继续不写.有本事带你水军打到我啊?宝刀锋芒锐利,小事情没必要出手.
我说过,你不看就别怪我,有boost先辈在前,我没必要在你的错路上放我倚天屠龙刀

使用特权

评论回复
62
icecut| | 2013-9-8 23:10 | 只看该作者
缥缈九哥 发表于 2013-9-8 09:12
我对C++是门外汉,对编程,对技术都是初学者。我也赞成,人要不断发展,技术也要不断发展。不断学习,不断 ...

技术是好技术,否则不会被加进来.只不过干什么事,就看代码作者水平了.宝刀宰蚂蚁,是此lz**的批判之处.既没有说明元编程的牛X之处,也没有说明元编程不可或缺.

使用特权

评论回复
63
icecut| | 2013-9-8 23:15 | 只看该作者
天凉好个秋 发表于 2013-9-8 15:57
对于编程来说,C是刀子
C++,元编程是斧头

但是lz在教你用斧头看蚂蚁,你不觉得有点过分了吗?

至于你的水平,是不会被误导了,但是,那些看完吐血的,真正学到该学的东西了吗?

使用特权

评论回复
64
mahui843|  楼主 | 2013-9-9 00:00 | 只看该作者
哎。我有屠龙之术,只可惜世上无龙,否则,可以让你们见识一下屠龙术了。至于杀牛宰马这种小事,是犯不上我出手的。此贴的讨论到此可以休了,别浪费时间在这些无意义的争执上了。

使用特权

评论回复
65
mahui843|  楼主 | 2013-9-9 00:00 | 只看该作者
哎。我有屠龙之术,只可惜世上无龙,否则,可以让你们见识一下屠龙术了。至于杀牛宰马这种小事,是犯不上我出手的。此贴的讨论到此可以休了,别浪费时间在这些无意义的争执上了。

使用特权

评论回复
66
dong_abc| | 2013-9-9 00:14 | 只看该作者
icecut 发表于 2013-9-8 23:15
但是lz在教你用斧头看蚂蚁,你不觉得有点过分了吗?

至于你的水平,是不会被误导了,但是,那些看完吐血的,真 ...

看完吐血的来了......
看不懂这段代码的都是不熟悉C++模板,我做过半年的MFC程序,自以为懂点C++,其实压根就没入门。
稍微有点模板常识的人,应该能看出那两对递归模板是如何生成CRC数据表的。

模板元编程可以是一根针,也可以是一门大**,就看用的人的功底了。

你这么NB,就秀一下你的宝刀让咱这些菜鸟学习学习呀!

使用特权

评论回复
67
lxyppc| | 2013-9-9 08:52 | 只看该作者
icecut 发表于 2013-9-8 22:58
你错了...crc的钥匙是固定的.如果是可变的,那表直接垃圾堆.
比如说有的公司要用私有校验,还是类似crc,用你 ...

就我所知,地球上的crc有十数种。就算是相同位数的,也分别有好几种。莫非火星上的crc只有一种,因此你得出了地球上的crc只有一个表格的结论。

使用特权

评论回复
68
lxyppc| | 2013-9-9 09:33 | 只看该作者
icecut 发表于 2013-9-8 22:58
你错了...crc的钥匙是固定的.如果是可变的,那表直接垃圾堆.
比如说有的公司要用私有校验,还是类似crc,用你 ...

如果只是静态与动态的问题,既然你提到了boost,那么boost pp就能解决很多静态的问题了。
而这个例子要解决的是静态数据动态生成的问题。
既然是静态的数据,那么随便用什么工具生成就行,为什么还要动态生成。因为有些数据要在使用前才会知道,比如这里的crc表格,在crc多项式确定之前无法预知。一旦确定之后,表格也就定了。
这种数据的特征就是算法固定,运行时静态存储,但是组合很多,以往会用工具预生成。有了元编程技术后,可以将生成过程也嵌入到代码中,让编译器来执行,降低维护成本。
这里用这个例子作为元编程的起点,个人觉得是因为crc大家比较熟悉,可以马上感觉到元编程带来的变化。
静态数据动态生成也是我造的词,是为了体现出数据的不可预知和运行时不可变的特性。这种数据的生成只是元编程的冰山一角,用来做为学习元编程的起点,我觉得是合适的。

使用特权

评论回复
69
icecut| | 2013-9-9 10:00 | 只看该作者
dong_abc 发表于 2013-9-9 00:14
看完吐血的来了......
看不懂这段代码的都是不熟悉C++模板,我做过半年的MFC程序,自以为懂点C++,其实压 ...

你看看那个wiki,看看用更少的代码实现....

打字越多手指复合越大.你可以试试用一半代码完成

使用特权

评论回复
70
icecut| | 2013-9-9 10:03 | 只看该作者
lxyppc 发表于 2013-9-9 08:52
就我所知,地球上的crc有十数种。就算是相同位数的,也分别有好几种。莫非火星上的crc只有一种,因此你得 ...

校验这种东西.私有的基本很少用.用概率计算...就知道了.
就像大家都说普通话,你非要搞个方言.

从另一种角度来说,你的代码促进了他们使用山寨的方法....

使用特权

评论回复
71
icecut| | 2013-9-9 10:05 | 只看该作者
lxyppc 发表于 2013-9-9 09:33
如果只是静态与动态的问题,既然你提到了boost,那么boost pp就能解决很多静态的问题了。
而这个例子要解 ...

我觉得大家对crc的理解,仅限于搜索.粘贴.
就算是知道了你这样的迭代算子,

那么为什么是这个hex来做异或呢?为什么又是异或呢.
如果一个不懂crc的人,你给他看这段代码,他也只能理解这就是crc,这段代码和那个hex数组是同等的意义.
因为你这个没有在可理解上优化.也没有做易读的优化.

我认为这样做教程有点不负责任.

使用特权

评论回复
72
lxyppc| | 2013-9-9 10:33 | 只看该作者
icecut 发表于 2013-9-9 10:03
校验这种东西.私有的基本很少用.用概率计算...就知道了.
就像大家都说普通话,你非要搞个方言.


这个不是普通话和方言的关系
而是中文和英语的关系

使用特权

评论回复
73
lxyppc| | 2013-9-9 10:38 | 只看该作者
icecut 发表于 2013-9-9 10:05
我觉得大家对crc的理解,仅限于搜索.粘贴.
就算是知道了你这样的迭代算子,


应该是你接触的人对crc的理解仅限于搜索和粘贴。
对于一个不懂crc的人看table和代码是一样的效果
所不同的是,一旦crc参数有所变化
用table的人会重新搜索,粘贴
用代码的人,会改一下参数

使用特权

评论回复
74
缥缈九哥| | 2013-9-9 11:43 | 只看该作者
icecut 同学,欢迎你再来指点我。谢谢。

使用特权

评论回复
75
tergy2012| | 2013-9-9 11:59 | 只看该作者
谢谢分享啊

使用特权

评论回复
76
aihe| | 2013-9-9 13:00 | 只看该作者
icecut 发表于 2013-9-8 23:00
我就是继续不写.有本事带你水军打到我啊?宝刀锋芒锐利,小事情没必要出手.
我说过,你不看就别怪我,有boost ...

这是我在二姨家看到的最滚刀肉的话了,你是二姨家第一人了

使用特权

评论回复
77
icecut| | 2013-9-9 13:47 | 只看该作者
lxyppc 发表于 2013-9-9 10:38
应该是你接触的人对crc的理解仅限于搜索和粘贴。
对于一个不懂crc的人看table和代码是一样的效果
所不同 ...

好像改了就搜不到了....
所以大部分人不敢改.其实也不用改.所以我比喻成方言.
如果是rsa的话,私钥是固定的.所以可以静态化来加速.可以比喻成外语.

使用特权

评论回复
78
icecut| | 2013-9-9 14:04 | 只看该作者
缥缈九哥 发表于 2013-9-8 09:12
我对C++是门外汉,对编程,对技术都是初学者。我也赞成,人要不断发展,技术也要不断发展。不断学习,不断 ...

怎么说呢.你这段话低调到我不用评论.你应该是进步的保守派.
我主要评论的是网上的激进派.新技术固然是好的.用好也不容易.所以好多教程都有缺少古典的思考,过多的腔调了优秀,没有说出两面性,对50%的人有好的作用,因为25%的人不需要,对剩下25%的初学者就没有更好的促进作用.
在wiki中,就用了一个简单的说明,新的编译器支持了这个功能.而使用这个利弊也被说明了.所有用这种功能的时候,书上都会明确表示,这里有缺点,在理解方面.不信你看jquery库,基于js的.树上专门举了个例子是这么写是难以理解的.但是因为有优势,要求这么写的时候写好注释.
我是为25%的人监督一些例程的.促进他们向更精细的方向发展,当然,一般炒完就没结果了.这次炒的都是版主们,理解能力比较强.所以还算有点结果.只有最优秀并且现实的东西才能沉淀下来.给初学者的**,最好说明两面性,因为他们进来最容易掉坑里反而认为这是不好的东西直接扔掉.造成欲速而不答的结果.


使用特权

评论回复
79
opal11| | 2013-9-13 23:49 | 只看该作者
顶起

使用特权

评论回复
80
么么沫沫| | 2013-10-22 09:08 | 只看该作者
mark!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则