Я переношу проекты Visual Studio 2008 vC++ на визуальную студию 2013. Я сталкиваюсь с c3892 при переносе одного из моих проектов. Вот я предоставляю образец фрагмента кода, который воспроизводит ошибку Ям сталкивается при миграции.Проблема Iterator в проекте VC++ в Visual Studio 2013
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 один раз. –