Существует такое определение функции:
template<>
template<>
void object::test<1>()
{
}
Что это значит, что есть двойной шаблон < > ?
EDIT:
Я извлек код, который действителен для этого примера:
#include <iostream>
template <class U>
class A {
template <int n>
void test() {
}
};
template <class T>
class B {
public:
typedef A<T> object;
};
typedef B<int>::object object;
template<>
template<>
void object::test < 1 > () {
}
int main() {
return 0;
}
Этот код компилируется под g++.
Источник: Тестовая среда TUT