Only平 2017-04-16 15:09 采纳率: 0%
浏览 1486

g++编译这个模板类报错,msvc上没问题,这是为什么?

最近把一个在VS2015上正常工作的代码拿到ubuntu上用g++编译,结果编译阶段报错,开了-std=c++11也无法通过,不知道是什么原因。。
代码如下:

 #include <stdio.h>

template<class A> class T {
public:
    template<class B>
    void func1() { printf("func1\n"); }
    void func2() { printf("func2\n"); }
};

template<class A, class B>
struct F {
    void func1() { T<int> t; t.func1<B>(); }
    void func2() { T<A> t; t.func2(); }
    void func3() { T<A> t; t.func1<B>(); }
};

int main(int argc, char *argv[]) {
    F<int, int> f;
    f.func3();
    return 0;
}

报错位置在void F::func3()中,报错内容为:
图片说明

大家帮忙看一看这个是什么原因,如果是g++支持的不够好,那如何改代码实现同样的效果呢?
在此先谢过了!

  • 写回答

2条回答

  • devmiao 2017-04-16 15:53
    关注
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向