C1001: INTERNAL COMPILER ERROR algoritm sort
От: zmaks100 Канада  
Дата: 25.05.06 08:53
Оценка:
Здравствуйте, All!

Столкнулся со следующей проблемой. Есть структура, у нее есть
bool operator<(const STRUC& c)const;

Есть вектора вида
std::vector<STRUC> vec;

сортируем их с помощью std::sort таким образом:
std::sort(vec.begin(), vec.end());

При компиляции (MS VC++ 6.0 SP5) выдается следующая ошибка:

C:\Microsoft Visual Studio\VC98\INCLUDE\algorithm(561) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'E:\8966\vc98\p2\src\P2\main.c', line 494)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

1) Замена std::sort на версию с предикатом не помогает.
2) Реально в коде таких векторов три (все от этой структуры, все члены разных классов). С одним вектором такой код проходит, с другими двумя нет.
3) Под debug все компилится.
4) Если сменить уровень оптимизации на любой другой кроме "maximize speed", то все работает (т.е. компилится).
5) Если сменить sort на stable_sort — все тоже работает.

Конкретно в этом случае для меня нет приницпиальной разницы между sort и stable_sort, поэтом проблему обошел. Но что делать когда это невозможно (например, sort делается в коде, который я не имею права править)?

С уважением,
zmaks100
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.