<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[more think, less complain]]></title><description><![CDATA[Piboye]]></description><link>https://blog.youkuaiyun.com/Piboye</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Piboye]]></copyright><item><title><![CDATA[Lua bind for C 和 conf 实现]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/6048988</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/6048988</guid><author>Piboye</author><pubDate>Wed, 01 Dec 2010 23:16:00 +0800</pubDate><description><![CDATA[Lua ，语法简单（极像javascript), 移植性好(纯C实现), 启动速度快，空间占用小， 真不愧是潜入式脚本语言之王。   本人想拿它来做 配置文件(conf)，也像加一点IoC, 就是配置脚本可以调用主程序的函数。  实现如下：  repeat_macro.h     #ifndef __REPEAT_MACRO_H__     #define __REPEAT_MACRO_H__    // concatenation     #define CAT(a, b) PRIMITIVE_CAT(a]]></description><category></category></item><item><title><![CDATA[C宏 补习]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/6022828</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/6022828</guid><author>Piboye</author><pubDate>Sat, 20 Nov 2010 03:29:00 +0800</pubDate><description><![CDATA[C 宏, 这么熟悉的一个东西，可有那么的不清楚。是时候补一下了。  测试方式      gcc –E  macro.test.c     参考资料  gcc:  http://gcc.gnu.org/onlinedocs/cpp/Macros.html  也可以研究一下boost的 MACRO Metaprogram  或看Linux内核的一些宏技巧（比如list定义，once_call, 等等)     宏的细节  形式参数  形参是个有效的 C 标识符， 以逗号和可选的空格分割。  The parame]]></description><category></category></item><item><title><![CDATA[foreach 宏 gcc实现]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/6022812</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/6022812</guid><author>Piboye</author><pubDate>Sat, 20 Nov 2010 02:40:00 +0800</pubDate><description><![CDATA[这个FOREACH使用了GCC的扩展特性typeof和({})，所以只保证能在linux下玩哦。     源程序 foreach.h          #ifndef _MACRO_FOREACH_H_     #define _MACRO_FOREACH_H_    #define FOREACH_USE_ITERATOR(each_var, it_begin, it_end) /         for(typeof(it_begin) it = it_begin, iend = it_end; it!]]></description><category></category></item><item><title><![CDATA[Visitor模式实践]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/2058360</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/2058360</guid><author>Piboye</author><pubDate>Tue, 22 Jan 2008 10:45:00 +0800</pubDate><description><![CDATA[刚刚学习了一下设计模式的VISTOR模式，感觉里面的限制是比较大。要使用虚拟成员，固定的类层次结构。于是想实现以个更简单的visitor模 式。 使用了boost里面的function和绑定库，因为c++标准对type_info支持的太少，高性能而又可移植实现现在还想不到。所以就使用了VC对 type_info的扩充功能raw_name。 实现与源码如下： #include #include #i]]></description><category></category></item><item><title><![CDATA[默认参数的问题理解。]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/833577</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/833577</guid><author>Piboye</author><pubDate>Sun, 25 Jun 2006 18:19:00 +0800</pubDate><description><![CDATA[今天在优快云上看到个 默认参数的问题 贴。 一看吓一跳，以前我对默认参数的理解和这位网友一样，对这问题很难做出解释，在DEV C++上多试了几次，终于得到答案，现拿出来分享。帖子：http://community.youkuaiyun.com/Expert/topic/4841/4841909.xml?temp=.3743402问题大概是这样：C++ primer中：“类模板的后续声明可以为模板参数]]></description><category></category></item><item><title><![CDATA[uname函数初步封装]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/770928</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/770928</guid><author>Piboye</author><pubDate>Sat, 03 Jun 2006 10:04:00 +0800</pubDate><description><![CDATA[uname.h文件 ：#ifndef _UNIX_UNAME_HPP#define _UNIX_UNAME_HPP/* author: piboye * email : piboye@yahoo.com.cn * date  : 2006.06.3 *///Header#include // unix namespace;namespace unix {// uname of un]]></description><category></category></item><item><title><![CDATA[memory.h头文件封装]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/769895</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/769895</guid><author>Piboye</author><pubDate>Fri, 02 Jun 2006 16:28:00 +0800</pubDate><description><![CDATA[#ifndef _UNIX_LIB_MEMORY_HPP#define _UNIX_LIB_MEMORY_HPP/* author: piboye * email : piboye@yahoo.com.cn * date  : 2006.06.2  *///头文件#include#includenamespace UNIX {class Mem //提供内存操作，但不提供内存管理；]]></description><category></category></item><item><title><![CDATA[一维数组的简单封装 carray模板。]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/679086</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/679086</guid><author>Piboye</author><pubDate>Thu, 27 Apr 2006 07:24:00 +0800</pubDate><description><![CDATA[#ifndef CARRAY_HEADER#define CARRAY_HEADER//这个程序取材于 Bjarne Stroustrup 的《The C++ Programming Language》，后经过加强和改正。//作者是：Piboye#include namespace piboye {templateclass carray{   char i_data[sizeof(T)*]]></description><category></category></item><item><title><![CDATA[实数类型的封装 real template]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/671690</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/671690</guid><author>Piboye</author><pubDate>Fri, 21 Apr 2006 13:53:00 +0800</pubDate><description><![CDATA[实数类型一直我们容易误用的东西，特别是在比较大小的时候。经验丰富的人，可能能很容易写出这样的代码:if(lear+0.13.4) 来表示 lear==3.4 这样一个意思。但每次都这样写，麻烦，也缺少全局统一。下面这个real.h文件就是我写的一个 real模版：#ifndef REAL_TYPE_PIBOYE_HEADER#define REAL_TYPE_PIBOYE_HEADER/*]]></description><category></category></item><item><title><![CDATA[C++ 引用用法]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/607924</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/607924</guid><author>Piboye</author><pubDate>Fri, 24 Feb 2006 08:14:00 +0800</pubDate><description><![CDATA[引用很多人知道，但去不常用。个人认为广泛使用，因为它可以给我们带来许多好处。例一：函数参数使用引用 void f(Class_A const & a_object);这是引用最常用到地方。以前C中是使用指针,但指针有很多弊端。    其一就是可能传入零指针，这给写函数的带来了很大的负担(因为他要考虑这种错误使用，而大家都知道异常处理是最复杂难缠的了)。    其二就是它给使用者带来很多不便，每次都]]></description><category></category></item><item><title><![CDATA[缺省构造作为函数参数缺省值的优化]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/564982</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/564982</guid><author>Piboye</author><pubDate>Thu, 29 Dec 2005 11:48:00 +0800</pubDate><description><![CDATA[我们经常在看到这样的函数声明：int f(double,MyClass=MyClass());不仅是我们写的代码，std库中也经常这样写。仔细想想，如果这个函数多次使用这个缺省值那就会调用多次构造函数，这样一来效率就降低了。下面是我针对，这中情况写的一个Zero模板。Zero只有一个可用的接口就是value,value()会返回默认值。其中还对基本数值类型进行了特别优化，这样只是为了全面，如果直接]]></description><category></category></item><item><title><![CDATA[强大sizeof]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/563150</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/563150</guid><author>Piboye</author><pubDate>Tue, 27 Dec 2005 11:31:00 +0800</pubDate><description><![CDATA[sizeof 对于学过 c的来说很熟悉了。   c中经常这样用:   sizeof(int);   sizeof(struct MyS);   char str[]="goodbye!";   sizeof(str);   sizeof("string ");   ... sizeof在C++中发生一个变化 就是可以对 函数进行求解。   int f(void);   sizeof(f); siz]]></description><category></category></item><item><title><![CDATA[C++  的一个友员错误 联想]]></title><link>https://blog.youkuaiyun.com/Piboye/article/details/556575</link><guid>https://blog.youkuaiyun.com/Piboye/article/details/556575</guid><author>Piboye</author><pubDate>Mon, 19 Dec 2005 20:55:00 +0800</pubDate><description><![CDATA[  C++的友员，应该都是知道一点，但就是很能深入。今天我在DevC++上发现各问题。程序如下#include namespace C{class D{};void f() {    std::cout }}namespace B{using C::f;  //使用using 声明时出错，用using namespace C;就不会？？ class A{ friend void f();};}in]]></description><category></category></item></channel></rss>