函数成员模板,该如何解决

函数成员模板
各位高手求教:这个程序原理是对的,为什么用vc2005运行报错那?
#include <iostream>
using namespace std;
template<class A>
class Test
{
public:
template<class B>
A f(B);
};
template<class A>
template<class B>
A Test<A>::f(B)
{
return (A)B; //。 error C2275: “B”: 将此类型用作表达式非法
}
int main()
{
Test<int> t;
double x=3.233;
t.f(x);
return 0;
}

------解决方案--------------------
此时B是一个类型不是变量,在定义模板成员函数时,要有变量的名字,此处修改一下:
template<class A>
template<class B>
A Test<A>::f(B b)
{
return (A)(b);
}