- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 log4cplus
1,向文件中输出日志#include #include #include #include #include #include #include using namespace log4cplus;const int LOOP_COUNT = 1000000;int main(){ // RollingFileAppen
2012-03-27 19:16:55 3627
转载 map-reduce
MapReduce的名字源于函数式编程模型中的两项核心操作:Map和Reduce。也许熟悉Functional Programming(FP)的人见到这两个词会倍感亲切。因为Map和Reduce这两个术语源自Lisp语言和函数式编程。Map是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定。Reduce是对一组数据进行归约,这个归约的规则由一个函数指定。Map是一个把数据分开的
2012-03-20 22:07:11 4710
原创 tolua++绑定C/C++语言函数供lua调用
1,C/C++提供给lua的接口写在ScriptAPI_*.h和ScriptAPI_*.cpp中(根据模块可以分为多个文件)。为简化问题,要求接口参数为简单数据类型(number、string),且全部为入参,返回值只有一个,类型为int,一般表示错误码。2,如果需要的话,可以在ScriptAPI.pkg中嵌入lua代码,这些代码在调用生成的绑定接口tolua_pkgname_open时执行。
2012-03-14 18:21:41 3527
原创 函数嵌套与闭包
// 函数嵌套int demo1(){ int x = 3; int bar(int z) { return x + z; } return bar(2) * bar(3);}// 闭包int delegate(int) add(int lhs){ int foo(in
2012-03-11 20:46:29 643
原创 lua作为配置文件的读取方法
struct PictureCfg{ string name; float rotation;};1,全局配置-- picture0-cfg.luaname ="dragon.png"rotation= 180// 全局配置的读取voidLoadPictureCfg(vector& rstPictureCfgVec) { PictureC
2012-03-11 16:40:45 12849
原创 C/C++与lua互调函数的方法
1,在lua脚本中调用C/C++代码中的函数在C++中定义函数时必须以lua_State为参数, 以int为返回值才能被Lua所调用。/*typedef int (*lua_CFunction) (lua_State*L);C 函数的类型。为了正确的和 Lua 通讯,C 函数必须使用下列定义了参数以及返回值传递方法的协议: C 函数通过 Lua 中的堆栈来接受参数,参数以正序入
2012-03-10 21:54:07 8099
原创 闭包-函数式编程
看一段javascript代码:function a(){var i = 0;function b(){alert(++i);}return b;}var c = a();c();这段代码有两个特点:1,函数b嵌套在函数a内部;2,函数a返回函数b。当函数a的内部函数b被函数a外的一个变量c引用的时候(函数a中的变量i被函数b引用,函数b
2012-03-10 20:18:51 1428
原创 C to D
void demo1(){// 基本类型占用的字节数和取值范围writefln("type\tsizeof\tmin\tmax\tinit");writefln("bool\t%d\t%#x\t%#x\t%#x", bool.sizeof, bool.min, bool.max, bool.init); // bool类型只占1个二进制位writefln("char\t%d\t
2012-03-09 20:48:53 557
转载 C++ to D
// 构造函数class Foo{ this(int x) {}} class A1 { this() {} int foo() { return 0; }}class B1 : A1{ int a = 7; int b; this() { super(); // 父类的构造函数 b = foo
2012-03-07 16:45:50 532
原创 模板元编程-C++
// 模板template class MyType{public: int min() { return 0; } int max() { return 9; }}; template class MyClass{ public: typedef MyT
2012-03-07 12:13:16 1709
转载 模板
// Scoped Templatetemplate Foo(T, U){ class Bar {} // 类 T foo(T t, U u) { return t; } // 函数 T abc; // 变量 alias T* TPtr; // 类型别名}alias Foo!(int, char) TFoo;void de
2012-03-05 23:10:09 423
转载 加锁与解锁,多步事务回滚
// 加锁与解锁class Mutex{}void lock(Mutex m){}void unlock(Mutex m){}void process(){}void mutexDemo(){ Mutex m = new Mutex(); lock(m); // 锁定该互斥量 sc
2012-03-04 22:37:30 859
转载 ddoc
每一个文档都和一个声明(declaration)相关联,原则:1. 如果某单行文档的最左边是空格,它就和后面紧邻的声明关联 2. 多个关联到同一个声明的文档会被连接在一起 3. 没有关联到声明的文档会被忽略 4. 在module声明前的所有文档会被应用到整个模块 5. 如果文档出现在声明的右边,则关联到这个声明 6. 如果文档只是ditto,则使用上一个声明的文档,ditt
2012-03-04 17:25:26 9363
转载 注释
// 单行注释/* 多行注释*//+ 块注释,其中可以嵌套其它类型的注释// 嵌套的单行注释/*嵌套的多行注释*/+/void versionDemo(){ version(none) // 块注释。取消注释用version(all) { writeln("1, hello, worl
2012-03-04 16:29:50 409
转载 typeof
// typeof 用来获得一个表达式的类型,但表达式不会被计算bool typeofDemo(int i){ typeof(i) j; // j 的类型是 int typeof(3 + 6.0) x; // x 的类型为 double typeof(1)* p; // p 的类型为指向 int 的指针 int[typeof(p)] a; // a
2012-03-04 09:30:15 495
转载 import
基本导入工作原理:首先,在当前名字空间里搜索名字。如果没有找到,那么就到所有导入的模块里去找。如果在这些导入模块中唯一找到一个,则使用它。如果在多个导入模块里都找到,则报错。默认情况下,导入是private的。即如果 A 导入模块 B,同时 B 又导入模块 C,则 C 的名字是不会被搜索的。一个导入可以特别地声明为public的,即如果在B中导入C的语句形如:public import
2012-03-02 22:54:20 497
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人