最牛的实现:编译时自编译代码
|
oldrev
2007-04-04
刚在新闻组里看到的。
Blade是一个矢量计算程序,它在编译时利用MP和CTFE把D的表达式转换为文本形式的x87汇编程序,然后用 mixin() 把汇编程序嵌入主程序! http://www.dsource.org/projects/mathextra/browser/trunk/mathextra/Blade.d |
|
|
tomqyp
2007-04-04
果然NB
|
|
|
oldrev
2007-04-11
高人 Pragma 所作——用 tuple 实现树结构:
import std.stdio;
template Node(char[] Data,Nodes...){
alias Data data;
alias Nodes nodes;
}
template PrintData(char[] parent){
const char[] PrintData = "";
}
template PrintData(char[] parent,alias Node){
static if(parent == ""){
const char[] PrintData = Node.data ~ "\n" ~
PrintData!(Node.data,Node.nodes);
}
else{
const char[] PrintData = parent ~ "." ~ Node.data ~ "\n" ~
PrintData!(parent ~ "." ~ Node.data,Node.nodes);
}
}
template PrintData(char[] parent,alias Node,V...){
const char[] PrintData = PrintData!(parent,Node) ~ PrintData!(parent,V);
}
// example "tree" structure
alias Node!("1",
Node!("1"),
Node!("2",
Node!("1"),
Node!("2")
)
) dataset;
void main(){
writefln("%s",PrintData!("",dataset));
}
|

