D1.0代码模拟 __traits(hasMember, ...)》的相关内容

lambda之路...

DMD最近的版本号加入了闭包,感觉非常有用,虽然有些背后动作,不过我是实用派不介意这个。玩的时候忽然想到为什么没有lambda呢?AST还没影,不过可以利用D强大的模板可以使用字符串来先模拟一下。 我假想的语法是这样的: int[] arr = [1,2,3]; int[] arr1 = arr.map(lambda!("int x -> x * x")); 上面执行的arr1结果将 ...
by qiezi 2007-11-09 浏览 (2687) 回复 (15) 关键字:

头文字D,Spider

贴一段我用D写的Spider的代码。 越来越爱D了。 import std.stdio; import std.string; import std.conv; import std.socket; import std.socketstream; import std.stream; import std.regexp; import std.thread; import ...
by fxsjy 2007-10-12 浏览 (997) 回复 (0) 关键字: 爬虫

D语言动态创建对象-D最新功能

我认为这是D提供的又一个重量级的功能.闲言少叙,代码说话! 保存为cre.d,使用dmd cre.d编译. module cre; import std.stdio; interface IPrinter { void print(); void init(char[] a); } class foo :IPrinter { void prin ...
by ideage 2007-03-27 浏览 (6400) 回复 (11) 关键字: d最新功能 动态创建 插件 ioc

D语言与tpl之编译期动作

   最近D语言发布了1.0版,这是一个由编译器开发者所设计的编译语言,语法类似C++, 但是针对C++的弊病作了大量修正,并增加了很多现代特征,其中还是有一些新意在其中的。http://www.digitalmars.com/d/overview.html 我对其比较感兴趣的部分是D语言明确提出的编译期运行的概念。虽然C++让大众了解了meta programming技术,很 ...
by canonical 2007-03-04 浏览 (7912) 回复 (21) 关键字: 设计理论

Traits 特征 2.014

6.14 翻译 (d语言的反射,刚刚翻译了2/3了,浏览器异常退出,气死我。 6.14) 重来了 1.028里没有,谁能翻译一下 请参考: C++ Traits http://www.cnblogs.com/hush/archive/2004/03/10/2717.html C++ Type traits http://jjhou.csdn.net/programmer-6-type-tr ...
by hqs7636 2008-06-07 浏览 (112) 回复 (4) 关键字:

mixin 模拟多继承

D1.0 代码 /** TupleMixin 演示程序, DMD2.007/GDC0.24 测试通过 Written in the D programming language 1.0 作者: oldrev Copyrights: BSD */ import std.stdio; ...
by oldrev 2007-11-10 浏览 (2497) 回复 (1) 关键字: D语言 DMD 元编程 模板

模板混入 2.014

(本章无版本差异) 一个 模板混入 指的是从一个 模版声明 的过程体内 提取一个任意的声明 集合,并将它们插 入到当前的上下文中。 模板混入: mixin 模板标识符 ; mixin 模板标识符 混入标识符 ; mixin 模板标识符 !(模板参数列表 ) ; mixin 模板标识符 !(模板参数列表 ) 混入标识符 ; 混入标识符: 标识符 模版混入 可以出现在模块、类、结构、联合的声明列 ...
by hqs7636 2008-06-05 浏览 (45) 回复 (0) 关键字:

模 板 2.014

我想我可以担保地说没什么人理解了模板机制。 -- Richard Deyman 模板(Templates)是 D 实现泛型编程(generic programming)的方法。模板通过 模板声明 进行定义: 模板声明: template 模板标识符 ( 模板参数列表 ) { 多个声明定义 } 模板标识符: 标识符 模板参数列表 模板参数 模板参数 , 模板参数列表 模板参数: 模板类型参数 ...
by hqs7636 2008-06-05 浏览 (46) 回复 (0) 关键字:

基于 D 2.0 编译时反射的单元测试框架

一个模仿 Ruby Test::Unit 的 Quick & Dirty 单元测试框架,托 __traits 的福,看起来已经有那么点意思了。提取行号在目前还没法实现,估计等 macro 出来就能解决这个问题。 SVN里的最新版在下面的链接处: dotmars.googlecode.com/svn/trunk/sandbox/2.0/test.d D2.0 代码 ...
by oldrev 2007-07-27 浏览 (1536) 回复 (3) 关键字: D2.0 D语

回复“mixin模拟多继承”

论坛回复坏掉了,先回复在这。批评一下,经常这样可不行咯,这应该算是比较大的运维事故。 必须mixin模板?这是一个限制呀,通常大家都是写成类的,在类上面多继承。。。 我好像没看到程序调用到ctor和dtor,mixin模板本身是可以直接用this/~this的,它会按照mixin的顺序来调用,不需要自己实现ctor/dtor,D里面早就是用mixin来代替多继承了。
by qiezi 2007-11-11 浏览 (263) 回复 (8)

元编程应用之:编译期 DLL 包装类

大家好!我刚加入,感觉这里是唯一的中文D语言论坛,真不容易啊。 发一个我写的元编程例子: // dll.d // A simple DLL wrapper // Author: Oldrev (wstring#AT#gmail.com) import std.c.windows.windows; import std.stdio; import std.traits; imp ...
by oldrev 2007-02-24 浏览 (1515) 回复 (10)

关于模板混入同名声明被外部覆盖的问题

D模板混入有这样的规定: Mixin Scope The declarations in a mixin are 'imported' into the surrounding scope. If the name of a declaration in a mixin is the same as a declaration in the surrounding scope, the surro ...
by tuja 2007-09-14 浏览 (195) 回复 (2)

模板中的variadic 参数类型自动推导的问题

如下面代码中,没有调用模板时,编译能通过 template test(T, R) { void test(T t, R r...) { foreach(v; r) Stdout(v).newline; } } 如果这样调用: test("a", "b","C"); 编译时就会出错,说参数个数不一致。 而用这样 ...
by tuja 2007-09-30 浏览 (232) 回复 (3)

问一个元编程问题

有没有办法能检测出是否某个类已经mixin某个template呢? 例如: template enable_sth(){} class A{ mixin enable_sth!(); } class B:A{ mixin enable_sth!();//重复了,有没有办法判断出超类中已经mixin了这个模块? }
by ahadf 2007-10-10 浏览 (117) 回复 (3)

推荐Steve Yegge:Rhino on Rails在服务器端JVM中运行JavaScript

Steve Yegge在google I/O大会上发表了演讲:Rhino on Rails -- Server-side JavaScript on the Java Virtual Machine。 使用Rhino能够用JavaScript完成Java在server端完成的所有工作! 什么是Rhino? 1。用JavaScript实现Java JavaScript implemente ...
by QQbyte 2008-06-17 浏览 (1123) 回复 (11) 关键字:

Struts2 将支持REST

在Struts2的主要作者之一的Don Brown的博客上面,他谈到了Struts2将要支持的功能,其中最令人振奋的就是Struts2将要支持REST。Struts2将通过插件的机制提供完备的REST支持,例如支持如下URL格式: /foo/1/bar/2等等。除此之外,Struts2还将支持以下功能: 1、增强的页面缓存机制,类似于现在RoR的页面片断缓存,可以生成静态页面片断进行缓存 2、 ...
by robbin 2007-11-20 浏览 (1651) 回复 (5) 关键字: struts2.0 rest

推荐知识库条目

Comming soon