我想用g++-4.4编译一些C ++代码(可以用Windows上的Visual Studio 2012编译)。
const std::string cnw::restoreSession(const std::vector<string> &inNwsFile) { for (std::string &nwFile : inNwsFile){ // some... } }
我无法编译,因为这个错误:
CNWController.cpp:154: error: expected initializer before ':' token
你能给我一些关于如何解决这个问题的build议吗?
multithreadingLinux与Windows
移植win32代码(windows.h)到linux
将Winsock移植到Linux套接字
如何在Qt中将Windows项目导入Ubuntu?
将c ++从Linux移植到windows,'__aligned__'
FreeBSD v8.1上的/ proc / cpuinfo相当于什么?
Linux和Windows之间的移植工作如何?
Linux中的“sysinfo.h”的Mac OS X等效头文件
为什么malloc有时不工作?
在Windows上build立GnuMP库的dll的程序
您的编译器太旧,无法支持基于范围的语法。 根据GNU,它在GCC 4.6中首次得到支持。 GCC还要求你明确地要求C ++ 11的支持,在编译器上给出命令行选项-std=c++11或c++0x 。
如果你不能升级,那么你需要老同学:
for (auto it = inNwsFile.begin(); it != inNwsFile.end(); ++it) { std::string const &nwFile = *it; // const needed because inNwsFile is const //some... }
我相信在GCC 4.4中可以使用auto (只要你启用了C ++ 0x支持)就可以保存你写std::vector<string>::const_iterator 。
如果你确实需要一个非const引用vector元素,那么无论使用哪种风格的循环,都需要从函数参数中删除const 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。