我目前卡住克++ 4.4.7,我使用它試圖(與-std = GNU ++ 0x中標誌)來編譯所使用的 「的foreach」 C++程序構造:應該g ++ 4.4.7 -std = gnu ++ 0x編譯「for each」構造?
190: void
191: Block::get_record_types(D_RecordType_Vector& record_type_vector) const {
192: for (D_Record_Map::value_type rt_v_i : _records) {
193:
194: record_type_vector.push_back(rt_v_i.first);
195: }
196: }
第一個錯誤讓我覺得它只是不承認的結構:
./c/Block.cpp:192: error: expected initializer before ':' token
./c/Block.cpp:196: error: expected primary-expression before '}' token
./c/Block.cpp:196: error: expected ';' before '}' token
./c/Block.cpp:196: error: expected primary-expression before '}' token
./c/Block.cpp:196: error: expected ')' before '}' token
./c/Block.cpp:196: error: expected primary-expression before '}' token
./c/Block.cpp:196: error: expected ';' before '}' token
這對蘋果鐺-425正確編譯。
我意識到g ++ 4.4.7是舊的,但是不應該它承認這個新的構造,給定了編譯器標誌嗎?
「要啓用C++ 0x支持,請將命令行參數-std = C++ 0x添加到您的g ++命令行;或者,要啓用除C++ 0x擴展外的GNU擴展,請添加-std = gnu ++ 0x。GCC 4.7和更高版本支持-std = C++ 11和-std = gnu ++ 11。 [GCC中的C++ 0x/C++ 11支持](https://gcc.gnu.org/projects/cxx0x.html) –