...ing logging 4.0

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

2010-12-01から1ヶ月間の記事一覧

型Tと数値nを与えられたとき”T[1][2][2][3][3][3]...[n]をn回繰り返し”という型の配列を作成する

コンパイルタイムプログラミング - 主題のない日記昨晩、これと同じことがC++で出来るかどうか質問を受けた。5という数字が与えられたときに、0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5という数列をコンパイル時に生成できるかという問題である。 本の虫: C++0xによ…

core.sync.*を使ってみる

色々教えてもらってすごくありがたいけれど,全然理解できなくてしょんぼり.勉強が足りなさすぎる・・・orz とりあえず動いているように見える・・・が? import std.stdio, core.thread, core.sync.condition, core.sync.mutex; class Actor { private con…

Issue 5328 - The addressof-expression that should be rejected is accepted

本文では全然説明してないですが「"m"がインスタンスメソッドなのに"&A.m"と書けてしまっているけどこれバグじゃないの.クラス定義の中ではちゃんとエラーになるけど外ではエラーにならないで実行時にならないと問題が発覚しなくなっているよ」というつもり…

non-static member functionのアドレスを取る

import win32.windows; import core.thread; import std.stdio; class A { this() { EnumWindows(&A.enumWindowsProc, 0); // ここではコンパイルエラーになるのに } /*static*/ BOOL enumWindowsProc(HWND hwnd, LPARAM lparam) { return TRUE; } } void ma…

std.concurrency.spawnで実行しているスレッドでのassertが捕捉されない

ずっとassertが使えなくて困っていたのですが,ふと思いついて試してみたところ, AssertError型を自分で捕まえるtry-catchを自分で書かないといけないことがわかりました. import std.stdio; import std.concurrency; void f() { //try //{ writeln("1"); …