Как я могу заставить gcc понять синтаксис этого шаблона? - PullRequest
0 голосов
/ 10 марта 2010

Я пытаюсь использовать библиотеку делегатов в gcc http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx, но "предпочтительный синтаксис" не распознается в gcc 4.3. То есть Как заставить компилятор понять Синтаксис шаблона вместо шаблона ??

ТИА / Rob

1 Ответ

0 голосов
/ 12 января 2011

Если класс имеет шаблонную функцию как:

class A {
public:
    template<typename T>
    static void doThis() {...}
};

template<typename T>
class B {
public:
    static void doThat() {
       A::doThis<T>();
    }
};

затем VC ++ распознает синтаксис в классе B, но для GCC необходимо вставить ключевое слово template :

template<typename T>
class B {
public:
    static void doThat() {
       A::template doThis<T>();  // <-- "template" inserted
    }
};

и затем он работает как в GCC, так и в VC ++ (я написал это на макушке, так что я уверен, что это правильно;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...