归档 2011年10月

最后更新于 .

这次QCon在杭州举办,有幸作为腾讯开放平台部派出的讲师参加,对外分享了《腾讯开放平台的OpenAPI设计》,演讲的ppt已经由InfoQ在网上公布,文章末尾会贴出下载链接,有兴趣的朋友可以看看。 这几天也有很多思索和感悟,今天就和大家分享一下。 一. 切身的感觉到公司实在是 “做得多,说的少”,外界对腾讯的了解太少 “多做少说”当然好,毕竟是多干实事。但是真的是想象中的那么好吗? 我引用孔子的一个故事: 鲁国之法:鲁人为人臣妾於诸侯,有能赎之者,取其金於府。子贡赎鲁人於诸侯,来而让,不取其金。孔子曰:“赐失之矣。自今以往,鲁人不赎人矣。”取其金,则无损於行;不取其金,则不复赎人矣。 什么意思?就是如果大家都把“多做少说”作为标杆,那么“多做多说”是不是反而会受到鄙视,进而会不会“多做”都收到影响? 所以虽然并非我所能控制,但是后续我也一定会做出努力,让公司对外的分享更开放一些。 二. 技术不在于有多强,而在于是否契合业务 大会上包括ebay,百度,阿里,腾讯都分享了自己的技术经验。对比了一下 ...

最后更新于 .


C++的模板其实是个挺纠结的东西,用的不好的话,编译的一堆错误够你调到崩溃,但要是用的好呢,又确实非常方便,我们来看看

一.获取数组长度
比如


int arr[10];

怎么获取 arr 的长度呢?
最简单的代码:

uint32_t count = sizeof(arr) / sizeof(arr[0]);

但是这样也带来一个问题,万一是个新手程序员:

int *p = arr;
uint32_t count = sizeof(p) / sizeof(p[0]);

就有问题了……
那么有没有办法,有一种安全的方法,当发现传入的是指针的时候,自动编译报错呢?
有的,模板里面可以推导出数组的长度。
所以我们可以使用如下代码

template
size_t arrarysize(T (&array)[N]) { return N; }

这样,当传入指针的时候,编译就会报错了。
而同时你肯定也能看出,我们甚至能指定只能传入数组长度为固定某数字的数组了,怎么做我就不用讲了吧 ...

每日归档

上个月

2011年9月

下个月

2011年11月

归档