http://d.hatena.ne.jp/Cryolite/20050418#p1で指摘した「非const参照引数が一時オブジェクトを取れない(13.3.3.1.4/3)」に関して,VC++では非const参照を取る関数を一時オブジェクトによって呼び出せます.しかし,これはVC++の独自拡張であり,C++標準に反しています.コンパイラの独自拡張をoffにすれば(/Zaスイッチ付きでコンパイルすれば)この拡張を切れます.ただし,Windowsヘッダの一部にこの拡張に依存したコードが存在するため,コンパイルが通らなくなる場合があります.