>>93にも関連するんだけど、

#define EXPECT_ONE_ARG(_) ok
EXPECT_ONE_ARG(1, 2)

は、どう展開されるのが規格にのっとってるの?
ちなみに、GCC(MinGW)だとプリプロセスエラー、
VC7だと警告つきでokに展開される。
展開されずにそのまま残るのが正しい気もするんだけど。