java - C++ 编译器选择问题
问题描述
平时用codeblocks,编译时出现这些问题,上网查结果很少,要么跳转要英文网站,请问这是因为这款软件默认GCC编译而提示这样的错误(gcc的特定语法?)还是英文导致搜索结果少(我用百度)
处理这些问题老是半天都找不到解决方法。如果前者,我应该改大众一些的IDE,如vc++;如果后者,我应该改为中文?
应该是前者吧,因为搜索结果老是看到gcc字眼,如果在cb里设置为vc++编程是否错误显示就是vc类型了呢?
附图_原错误代码
问题解答
回答1:作用域中未声明 n
回答2:函数模板的相关声明结构常见就三种:依次是声明函数模板,声明特化和声明实例。
template <class T, ...>void foo();template <>void foo<T1, T2, ...>(); // 除非是特化含参数包的模板,否则参数列表不能为空template void foo<T1, T2 ...>(); // 同上
换成操作符重载也一样
template <class T>std::ostream &operator<<(std::ostream &, Seqlist<T> &);template <>std::ostream &operator<<<int>(std::ostream &, Seqlist<int> &);templatestd::ostream &operator<<<int>(std::ostream &, Seqlist<int> &);
我觉得你这里不是特化,只是想声明模板。因为你在函数形式参数列表里用了模板形式参数。参照第一种写法。
如果你不做太多的模板开发,其实stream的<<的重载都是这个套路,记熟就好。另外一个常见形式是
template <class CharT, class Traits>std::basic_ostream<CharT, Traits> &operator<<(std::basic_ostream<CharT, Traits> &, ??);
编译器我觉得没必要换,书上有的语法看书学。要搜也得搜“ostream 重载 写法”之类的,然后比对代码。如果是很深的模板用法,拷贝语法错误提示搜是搜不出个所以然的。
回答3:编译器给你的错误信息很清晰,可能你读不懂英语吧。不用纠结选择那个编译器,编译器是无辜的,gcc挺好
相关文章:
1. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)3. mysql - SQL操作时间的函数?4. MYSQL新建用户设置可以远程访问的问题5. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!6. angular.js - angularjs的自定义过滤器如何给文字加颜色?7. java - mybatis怎么实现在数据库中有就修改,没有就添加8. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?9. docker api 开发的端口怎么获取?10. 正则表达式 - python pandas的sep参数问题
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)