D 言語では, C の別名を付ける typedef に相当する alias と, 新しい型を定義する typedef の二つがある:
alias uint HWND;
C の typedef は弱い typedefだった. これは, コンパイラは実際には新しい型を定義 するのではなく, 同じ型を別の名前で扱えるようにするだけだったということ.
弱い typedef に対して, D 言語では新しい予約語 alias を用意している.
alias.d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import std.stdio;
alias uint HWND;
/*
D 言語の弱い typedef
*/
void main(){
uint a = 1;
HWND b = 2;
writefln("uint a = %d", a);
writefln("HWND b = %d", b);
}
|
alias.d の実行結果は:
[cactus:~/code_d/d_tuts]% ./alias
uint a = 1
HWND b = 2