Я портирую решение с Visual C ++ 8 (Visual Studio 2005) на 10 (Visual Studio 2010), и я получаю загадочную ошибку, для которой я нашел только редкие ссылки в Интернете (например, this, что относится к visual studio 2005, но никаких последующих действий не предпринимается, поэтому он должен быть каким-то образом исправлен).
Ошибка заключается в следующем.В файлах, содержащих заголовок fstream, я получаю
1>C:\Program Files\Microsoft Visual Studio 10.0\VC\include\fstream(111): error C2766: explicit specialization; 'bool std::_Ungetc<char>(const char &,_iobuf *)' has already been defined
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\fstream(103) : see previous definition of '_Ungetc'
Сначала я предположил, что осталась некоторая ссылка на VC 8, поэтому я начал с нуля добавлять существующие файлы в новое решение / проект, но получаюта же ошибка.Закомментируя include (и соответствующие функциональные возможности), проект компилируется и связывается.
Это должно быть какой-то неверной конфигурацией моих частей, так как минимальная программа, подобная этой,
#include <fstream>
int main(){
std::fstream stream;
return 0;
}
компилируетсябез ошибок, поэтому заголовок не был поврежден после установки.
Я, к сожалению, не могу воспроизвести минимальный рабочий пример, но я надеюсь, что что-то из этой проблемы может кому-то позвонить.У вас есть предложения, что я могу проверить?