如何让gcc理解这个模板语法?

时间:2010-03-10 20:51:27

标签: c++ templates syntax function

我正在尝试在gcc http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx中使用委托库,但gcc 4.3无法识别“首选语法”。即如何使编译器理解 模板< RET_TYPE(ARG1,ARG2)>语法而不是模板??

TIA /罗布

1 个答案:

答案 0 :(得分:0)

如果某个类的模板函数为:

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

然后它适用于GCC和VC ++(我把它写在了我的头顶,所以我很确定它是正确的;)