我正在尝试在gcc http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx中使用委托库,但gcc 4.3无法识别“首选语法”。即如何使编译器理解 模板< RET_TYPE(ARG1,ARG2)>语法而不是模板??
TIA /罗布
答案 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 ++(我把它写在了我的头顶,所以我很确定它是正确的;)