标签:style blog color io 使用 ar 文件 div sp
最近做的项目,需要把代码从VC移植到g++下编译,在这个过程中,遇到了几个平台相关的问题——在VC下顺利编译的代码,但在g++中编译报错。
这里贴出来给大家分享一下:
enum MyWeek { Monday, Tuesday, }; MyWeek mw = MyWeek::Monday;
d:\VC\main.cpp(17) : warning C4482: 使用了非标准扩展: 限定名中使用了枚举“MyWeek”
main.cpp:11:14: error: ‘MyWeek’ is not a class or namespace MyWeek mw = MyWeek::Monday; ^
MyWeek::Monday不是C++标准,所以应该尽量避免这种写法。有一个建议是在命令枚举时加上枚举类型的前缀,这样可以有效避免枚举名重复的情况。比如
enum MyWeek { MW_Monday, MW_Tuesday, };
std::map<int, int>::const_iterator cIter = testMap.cbegin();
顺利编译通过
main.cpp:7:53: error: ‘class std::map<int, int>’ has no member named ‘cbegin’ std::map<int, int>::const_iterator cIter = testMap.cbegin(); ^
这个结果是在g++4.8.2跑的,说明在g++下,map::cbegin, map::cend之类的方法都是没有的。
include的头文件中如果存在空格,在VC下是没有问题的,但是在g++下会报错。
main.cpp:2:16: fatal error: map : 没有那个文件或目录 #include <map > ^ compilation terminated.
标签:style blog color io 使用 ar 文件 div sp
原文地址:http://www.cnblogs.com/quark/p/3974847.html