Почему я получаю сообщение об ошибке при попытке вызвать функцию-член шаблона с явным параметром типа?

Я не понимаю, мне кажется, что вызов f совершенно однозначный, но он не может скомпилировать с ожидаемым первичным выражением перед int . Если я закомментирую строку с вызовом f , она компилируется нормально.

template<typename T>
struct A {
    template<typename S>
    void f() { }
};

template<typename T>
struct B : A<T> {
    void g() {
        this->f<int>();
    }
};
69
задан templatetypedef 24 July 2015 в 17:20
поделиться