《D程序设计语言》中文版已经出版,感谢张雪平等人的辛勤翻译!感谢Andrei和Walter等人的努力!
D语言编译器DMD开源了!!!
建议所有喜欢的人都去新闻组感谢Walter!Walter是我们心目中的英雄!!
D语言编译器DMD开源了!!!
建议所有喜欢的人都去新闻组感谢Walter!Walter是我们心目中的英雄!!
最近更新文章
D语言实现的variant
boost.variant 是安全、范型、基于栈的可识别联合容器,下面的代码是其在D语言中的等价实现。借助D语言强大的元编程能力,其与C++的版本相比,代码清晰,对类型安全有更大的保证。 boost.variant 文档:http://www.boost.org/doc/html/variant.html boost.any 和 boost.variant 的区别与比较: http://www ...
D语言设计模式 Observer
Observer设计模式 类型:行为型 意义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 适用:当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。 当一个对象必须通知其它对象,而它又不能假 ...
D语言设计模式 Singleton
引言 语言的进步,可以简化设计模式的实现. Singleton模式 类型:创建型 意义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 1.D的实现 一个类的实现 class Singleton { public: static Singleton opCall() { if(_instance is null) _instance = new Singleton; return ...
D语言编译期生成和编译期执行技术
借助D语言新的mixin表达式,可以完成一些代码生成功能,比如: template attr_accessor(T, char[] name){ mixin(" private T _" ~ name ~ "; public " ~ name ~ "(){ return _" ~ name ~ "; } public &quo ...
编译期或运行期程序收集(meta programming)
1. Phobos: std.demangle 得到编译后的名称字符. std.metastrings 编译期操作字符串. std.traits 编译期类型识别. 2.运行时反射:http://flectioned.kuehne.cn/,有例子,支持最新的DMD1.007.用-g进行编译,可以动态创建对象. 3.字符串混入: 混入创建对象:template GenStruct(char[] ...
如何获得一个方法的名字?
在D语言中,一个方法你可以得到它的指针(函数指针或委托),但不能获得它的名字,这点和C++相似。 不过今天看到PyD的一个例子: import pyd.pyd; import std.stdio; void hello_func() { writefln("Hello, world!"); } extern (C) void PydMain() { def!(hello_f ...
D语言的函数编程
前阵子论坛上有人问我D语言做函数编程怎样,老实说我没怎么想过这问题。现在想来,D语言可以有函数指针、委托、仿函数(opCall),所以它和C++基本上没什么不一样。 想起了python,虽然以前没研究过它的函数编程,不过还是搜索了一下,IBM Developer Works的“可爱的python系列”格式乱得没法看,就没继续看了。从中找出python的几个算子比如map, reduce, filt ...
D语言和python的差异
这2个语言的比较怪怪的,我最近转换了一些twisted的源文件到D,发现有些东西直接抄过来还是不可行的。 一、参数 比如twisted的callLater: class IReactorTime(Interface): """Time methods that a Reactor should implement. """ def c ...
从简单测试看D数组内存分配策略
D语言动态数组可以在运行期改变大小,这和C++的vector相似。似乎记得“STL源码分析”一书中提到vector的内存分配策略是倍增方式的,D语言数组是不是也使用了相同方式呢?我做了个简单的测试: void main(){ void* ptr = null; int[] arr = new int[0]; for (int i=0; i<33; ++i){ void* cur = cas ...
追求卓越的Stewart
Stewart 发表了一封Walter坏习惯的信.看了让人感动.Walter为我们所尊重.Stewart追求卓越的精神鼓舞人心.无论是设计思想,还有错误处理,语法拼写,都在精益求精. 我辈当学而思之. Stewart的D资源主页http://pr.stewartsplace.org.uk/d/ 引用 It's time to make a list of Walter's habits th ...
D语言的成员函数模板
DMD 0.166 特性列表中有一条: * ncorporated Oskar Linde's patches to support member templates. 当时没注意,今天看到邮件列表中的一个帖子。才发现已经支持成员函数模板了,不过是不是在0.166中支持的就不清楚了。 没有成员函数模板的模板是不完整的。一个简单的例子,源于我的另一篇“泛型矩阵类”: class Matrix ...
群组知识库热门文章
- 6754 Dmd编译器学习笔记
- 6733 Build编译工具学习笔记:常用命令参数和BRF文件
- 4100 Ddoc文档注释学习笔记
- 3305 基于 D 2.0 编译时反射的单元测试框架
- 3009 Dotmars 实例之:容器、迭代器与算法框架