Сегодня VS2003SP1 выдал мне сообщение C1001 (внутренняя ошибка компилятора) с жалобой на файл компилятора 'msc1.cpp', строка 2708) из-за этого:
struct PATTERN {
…
};
Оказывается, проблема заключалась в том, что имя структуры, которое я пытался определить (ШАБЛОН), уже было определением типа в GDI для типа кисти. Однако вместо того, чтобы сказать мне, что символ уже определен (как и для большинства других вещей), он не только не указывал на структуру как на проблему - я сузил проблему до нее, выборочно комментируя блоки до тех пор, пока ошибка не исчезнет. - но это также дало мне вышеупомянутую загадочную ошибку, которая не имеет ничего общего с указанным файлом - которую я даже не могу найти, чтобы исследовать рассматриваемую строку. : |
Мне удалось воспроизвести это с помощью следующего кода:
typedef int SOMETHINGOROTHER;
struct SOMETHINGOROTHER {};
> fatal error C1001: INTERNAL COMPILER ERROR
> (compiler file 'msc1.cpp', line 2708) …
В то время как следующий код выдает ожидаемое сообщение об ошибке:
struct SOMETHINGOROTHER {};
typedef int SOMETHINGOROTHER;
> 'SOMETHINGOROTHER' : redefinition; different basic types
Очевидно, проблема в программе обработки структуры компилятора.
Интересно, лучше ли VS2005 +…
person
Community
schedule
09.04.2010