摘要: More Effective C++的笔记4.1 Item M5:谨慎定义类型转换函数 1 #include <iostream> 2 3 4 class Rational { 5 public: 6 explicit Rational(int numerator = 0, int denominator = 1); 7 //拷贝构造函数不需要explicit修饰,否则需要再定义一个 8 //非const构造参数的构造函数,此处允许的非const转const是无害转换 9 Rational(const Rational &);10 ~Rational... 阅读全文
posted @ 2013-01-05 17:13 Jojodru 阅读(211) 评论(0) 推荐(0) 编辑
摘要: Effective C++的笔记 1 #include <tr1/memory> 2 #include <iostream> 3 4 class NewHandlerHolder { 5 public: 6 explicit NewHandlerHolder(std::new_handler nh) 7 :handler(nh){ } 8 ~NewHandlerHolder() { std::set_new_handler(handler); } 9 private:10 std::new_handler handler;11 NewHandl... 阅读全文
posted @ 2013-01-04 12:06 Jojodru 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 上午看完NBA快船对爵士,1点20分上的公司。把之前的代码整理了下,给adb驱动增加了一个设备选项。打包。元旦假期过来Release一个新版本。剩下的时间挺无聊的,微博刷完了,看书看不进去。3天假期,不知道该干什么……2012年12月31号,无聊的一天。 阅读全文
posted @ 2012-12-31 15:52 Jojodru 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 很有意思的两种实现。第一种,是程序运行时递归求和1 int Sum(int n)2 {3 int tmp = 0;4 (!!n) && (tmp = Sum(n-1));5 6 return tmp + n;7 }第二种,程序编译时递归编译求和 1 template <int n> 2 class CalNum { 3 public: 4 enum Value { 5 N = CalNum<n-1>::N + n, 6 }; 7 }; 8 9 template<>10 class CalNum<1> {11 public:12 . 阅读全文
posted @ 2012-12-24 17:01 Jojodru 阅读(5914) 评论(0) 推荐(0) 编辑
摘要: 10.24,今天是程序员节,祝大家节日快乐从2010年开始,我们把每年的10月24日作为程序员节。用这样的节日,为我们自己喝彩!诗人写的是诗,画家作的是画,而我们写的是代码;农民耕作的是土地,工人操作的是机器,而我们编作的是代码;将军指挥的是士兵,企业家指挥的是员工,而我们指挥的是代码。。。。别人称呼我们是程序员、开发者、程序猿/媛、软件攻城狮,码农。。。只因我们的工作是写代码。世界越来越离不开代码,世界越来越需要代码。有码走遍天下,无码寸步难行。世界在被代码改变着,而我们在创造着代码。让我们在代码世界中风雨同舟,让我们在代码世界中尽享码伦之乐。。。让我们一起用代码改变世界!祝大家程序员节快乐 阅读全文
posted @ 2012-10-24 20:01 Jojodru 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 国庆回去待了5天,大学之后第一次在家过中秋-_||||第一天回去,堵车堵了好几个小时,车上睡着了,昏昏沉沉的。本来早上就可以到家的,堵车堵到下午2点才到家,作孽。咽喉发炎,刚到家,立马被姐姐催促到医院挂点滴姐姐2个小孩,买了个火车轨道模型玩具给他们,看把他们乐得……接着就是八月十五赏月了,我姐夫搞了个非常大的月饼,但貌似没人动之后白天没事,就去海边溜达去了,这么多年了,第一次在这个季节回家,有一种陌生又久违的感觉涌上心头。这是个螃蟹,我们土话叫做青蟹,因为没死的时候是青色的缘故吧,这种蟹以两个大钳子文明,我小时候抓过,手指差点被钳子夹断……海里有很多中螃蟹,这种算是很贵的,即使生在海边,也没什 阅读全文
posted @ 2012-10-11 18:45 Jojodru 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 网上找了一些资料,摘录下来做笔记,出处已不可考,如果有侵犯到作者版本,请告知ecras_y@163.com。逆波兰表达式逆波兰对这种字符串的表达式计算很容易,只要把一个普通的表达式转换成逆波兰后计算就轻松很多!首先看一下普通表达式:(1+2)*(2-1) 转成逆波兰后变成 1 2 + 2 1 - *下面说说怎么转成逆波兰,然后再说计算逆波兰!假设要转的表达式是一条合法的表达式(这个自己事先写个代码判断表达式的合法性),那么遵照下面的规则就可以转成逆波兰了:1.首先把普通的表达式按照运算符分离出来放在一个集合E中,比如1+2*3 分离后集合里的元素就是 1 + 2 * 3 五个元素2.再定义一个 阅读全文
posted @ 2012-10-10 12:18 Jojodru 阅读(531) 评论(0) 推荐(1) 编辑
摘要: 首先新建一个线程,这个线程负责监控设备的插入拔出线程入口函数: 1 int DeviceThreadEntryForMac(ClassProcMan *pProcMan) 2 { 3 if(pProcMan == NULL) { 4 fprintf(stderr, "DeviceThreadEntryForMac called NULL pointer\n"); 5 return __LINE__; 6 } 7 mach_port_t masterPort; 8 CFMutableDictionary... 阅读全文
posted @ 2012-10-08 12:51 Jojodru 阅读(1731) 评论(1) 推荐(0) 编辑
摘要: 看了Apple上的资料(真是又多又臭,组织真烂,还是E文的),说是针对不同的pid和vid的composite usb设备,只需要写一个codeless驱动就可以提供对该设备的访问。但是本人对Mac开发不熟,更不用说是驱动开发了。捣鼓好久没整出个能用的驱动,虽然说是codeless驱动。船到桥头自然直吧,看资料时发现,既然是composite usb设备,又说是codeless驱动,也就是说,即使不用驱动,直接就可以通过MACH的api来访问指定vid和pid的设备了吧,最后整出这个类,目前测试未发现问题。 1 // 2 // MyUSBDevice.h 3 // 4 // 5 /... 阅读全文
posted @ 2012-10-08 12:41 Jojodru 阅读(5159) 评论(14) 推荐(1) 编辑
摘要: 之前一直用fread和fwrite,但是一直没有认真看过manual page。这次看apue才发现,自己之前有个误解。std io 操作size_t fwrite(const void *BUF, size_t SIZE, size_t COUNT, FILE *FP); If `fwrite' succeeds in writing all the elements you specify, the result is the same as the argument COUNT. In any event, the ... 阅读全文
posted @ 2012-10-08 11:54 Jojodru 阅读(224) 评论(0) 推荐(0) 编辑