0
我將Visual Studio 2008 vC++項目遷移到Visual Studio 2013.遷移其中一個項目時,我正面臨c3892。在此我提供了一些示例代碼,它重現了錯誤Iam面臨遷移。Visual Studio 2013中的VC++項目中的迭代器問題
int _tmain(int argc, _TCHAR* argv[]){
int myints[] = {21,64,17,78,49};
std::set<int> myset (myints,myints+5);
std::set<int>::reverse_iterator rit;
std::cout << "myset contains:";
for (rit=myset.rbegin(); rit != myset.rend(); ++rit)
if(*rit==64)
*rit=90;
return 0;
}
如果我們執行上面這段在vs2013代碼,蔭拋出一個錯誤
Error error C3892: 'std::_Revranit<_RanIt,_Base>::operator *' : you cannot assign to a variable that is const
但是,如果我們執行同一段代碼的Visual Studio 2008,蔭沒有得到任何類型錯誤的建立成功。
我必須改變我的項目中的值。 請爲我提供如何擺脫這個錯誤的解決方案。
在此先感謝。 phani
你不僅要遷移到vs13,而且還要引導遷移到C++ 11.我不完全確定這個錯誤。但是檢查一下編碼標準並更改C++ 11的語法。 –