template <typename>
struct A
{
template <typename>
struct B
{
};
};
template <>
template <>
struct A<int>::B<char>
{
static void foo();
};
void A<int>::B<char>::foo()
{
}
int main()
{
}
vc++ compilation error message:
error C2906: 'void A<int>::B<char>::foo(void)': explicit specialization requires 'template <>'
What behavior is standard compliant in this case?