У меня есть следующий код.
#include <set>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
typedef set<long> MySet;
MySet a;
for( int i = 0; i < 10; ++i)
{
a.insert(i);
}
MySet::iterator start,end,last;
start = a.begin();
end = a.end();
last = remove_if(start,end,bind2nd(less_equal<long>(),5));
return 0;
}
Который под VS2005 использовал для компиляции нормально. Однако, используя VS2010, я получаю следующую ошибку:
Ошибка 1, ошибка C3892: «_Следующий»: нельзя присвоить переменную const c: \ program files \ microsoft visual studio 10.0 \ vc \ include \ алгоритма
Если я сделаю контейнер вектором, все будет хорошо.
Я предполагаю, что что-то изменилось в стандарте, о котором я не знаю, кто-то может пролить свет на то, почему это больше не работает?