以下のコードなのですが、gcc3.4.4だと
could not convert template argument 'a' to 'void*'

と怒られます。
VC9.0では問題なくコンパイルが通ります。
どちらの動きが正しいのでしょうか?

template<void* T>

class A
{

};



void f(){}



int main(void)

{

A<f> a;


return 0;

}