D

Imaginary Template Metaprogramming in D

D

D言語を使って脳内でメタプログラミングして遊んでみる(コンパイルできる環境が手元にないので想像)。本当にただの妄想なので、そこのところは了承してちょんまげ。 template Tuple(xs...) { alias xs Tuple; }いつの間にかPhobosから削除されていたけど、…

書いてる傍から

http://jp.youtube.com/watch?v=oAhrFQVnsrY コンパイル時に template とか定数式を評価したらこうなります的なコードを表示してみせる機能だと思う。 VCの Intellisence もこれぐらいの仕事をしてくれたりは…しないだろうなぁ。なんといってもコンパイル遅…

名前を探す

D

import std.stdio; import std.string;template HasMemberFunction(T, char[] name, Signature) { static if (is(typeof(mixin("&" ~ T.stringof ~ ".init." ~ name)) : Signature)) { enum : bool { HasMemberFunction = true } } else { enum : bool { Has…

はじめてのmixin

D

import std.stdio;char[] ibmToHal(char[] ibm) { char[] hal = ibm; foreach (size_t i, char c; hal) { hal[i] = c - 1; } return hal; }int main() { mixin(ibmToHal("xsjufgmo)#Ifmmp!Xpsme\"#*<")); // writefln("Hello World!"); return 0; }これは面…