Я пытаюсь скомпилировать следующий код:
struct A {
template<int N> static void a() {}
};
template<> void A::a<5>() {}
template<class T>
struct B {
static void b() {
T::a<5>();
}
};
void test() {
A::a<5>();
B<A>::b();
}
и компилятор интерпретирует <
в T::a<5>
как оператор <
, что приводит к ошибке:
invalid operands of types ‘<unresolved overloaded function type>’ and ‘int’ to binary ‘operator<’
Есть ли способ явно создать экземпляр T::a<5>
без ошибок компилятора?Спасибо.
gcc версия 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC)