C2061のエラー

Visual Studio 2005でビルドすると、Efficient C++に載っていたメモリマネージャの下記コードで、C2061のエラーが出る。

NextOnFreeList* head = static_cast <NextOnFreeList *> doomed; // error C2061

C2061のエラーはヘルプを見ると、「予期しない位置で identifier を見つけました。identifier は、使用する前に宣言してください。」ということだが、どうも該当しない。

結論からいうと、static_castの場合は、下記のように()が必要なだけだった。

NextOnFreeList* head = static_cast <NextOnFreeList *> (doomed); // OK

毎度のことだけれど、エラーメッセージは、あてになったり、ならなかったりで、イヤになる。