...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

typedef or alias this - dmd 2.027

import std.stdio;

void main()
{
	{
		typedef int HWND;
		HWND hwnd = 0;
		int hoge;
		//hwnd = hoge; // error
		writeln(hwnd);
		writefln(typeid(typeof(hwnd)));
		writefln(HWND.sizeof);
	}
	writeln();
	{
		struct HWND {
			alias handle this;
			private int handle;
		}
		HWND hwnd = 0;
		int hoge;
		hwnd = hoge;
		//writeln(hwnd); // error on format.d
		writefln(typeid(typeof(hwnd)));
		writefln(HWND.sizeof);
	}
}
0
main.main.HWND
4

main.main.HWND
4

構造体HWNDをwritefln();するにはtoString()を定義すればいいけど数値を文字列に変換する関数やライブラリを導入しないといけなくなるな.