c++ - error: expected initializer before ‘:’ token -


i trying compile c++ code (which can compiled visual studio 2012 on windows) g++-4.4.

i have snippet of code,

const std::string cnw::restoresession(const std::vector<string> &innwsfile) {    (std::string &nwfile : innwsfile){        // some...    } } 

that cannot compile because of error:

cnwcontroller.cpp:154: error: expected initializer before ‘:’ token 

can give me advise on how solve problem?

your compiler old support range-based for syntax. according gnu first supported in gcc 4.6. gcc requires explicitly request c++11 support, giving command-line option -std=c++11, or c++0x on compilers old yours.

if can't upgrade, you'll need old-school equivalent:

for (auto = innwsfile.begin(); != innwsfile.end(); ++it) {     std::string const &nwfile = *it; // const needed because innwsfile const     //some... } 

i believe auto available in gcc 4.4 (as long enable c++0x support), save writing std::vector<string>::const_iterator.

if need non-const reference vector's elements then, whichever style of loop use, you'll need remove const function parameter.


Comments

Popular posts from this blog

linux - Does gcc have any options to add version info in ELF binary file? -

android - send complex objects as post php java -

charts - What graph/dashboard product is facebook using in Dashboard: PUE & WUE -