Инструменты пользователя

Инструменты сайта


dev:cpp:expected_primary-expression_before_token

error: expected primary-expression before ‘)’ token

Описание

Компиляция следующего кода выдаёт ошибку: error: expected primary-expression before ‘)’ token

template <typename T>
struct A
{
    template <int I>
    void f();
};
 
template <typename T>
void F(A<T> &a)
{
    a.f<0>(); // expected primary-expression before ‘)’ token
}
 
int main()
{
    A<int> a;
 
    a.f<0>();  // This one is ok.
}

Решение

Необходимо указать, что мы обращаемся к шаблонной функции:

template <typename T>
void F(A<T> &a)
{
    a.template f<0>();
}

Информация

Дискуссия

Enter your comment
 
dev/cpp/expected_primary-expression_before_token.txt · Последние изменения: 23.03.2012 13:56 (внешнее изменение)

Инструменты страницы