ошибка C2059: синтаксическая ошибка: «‹end Parse›»

Это мой код Visual C++, используемый для аппаратного драйвера, но во время компиляции я получаю следующую ошибку.

template<class _A, class _R>
struct unary_function {
typedef _A argument_type;
typedef _R result_type;
};

person Satyavan Choure    schedule 16.07.2015    source источник
comment
на самом деле он отлично компилируется в моей Visual Studio 2013   -  person David Haim    schedule 16.07.2015
comment
Покажите код, который вызывает ошибку. См. длинную ошибку в выводе. Этот код, который вы показали, не является фактической причиной, то, как вы использовали, является фактическим источником ошибки.   -  person Ajay    schedule 16.07.2015
comment
Я Visual Studio 6.0   -  person Satyavan Choure    schedule 16.07.2015
comment
Опубликуйте MCVE, пожалуйста. Что-то, что мы могли бы скопировать и вставить в файл, скомпилировать и увидеть ошибку самостоятельно.   -  person Angew is no longer proud of SO    schedule 16.07.2015
comment
@SatyavanChoure: Почему вы используете Visual Studio 6.0? Эта среда разработки и компилятор предшествовали самому стандарту C++. Им почти ДВАДЦАТЬ лет. У них много позорных странностей до такой степени, что я был бы доволен, списав весь этот вопрос как спорный и поручив вам использовать компилятор из этого тысячелетия и века.   -  person Lightness Races in Orbit    schedule 16.07.2015


Ответы (1)


Не используйте идентификаторы, начинающиеся с подчеркивания и прописной буквы, они зарезервированы реализацией. Скорее всего, _A или _R уже определены для чего-то, что не имеет никакого смысла при замене в вашем коде.

См.: Каковы правила использования подчеркивания в идентификаторе C++?

person Quentin    schedule 16.07.2015
comment
И unary_function был использован для std::unary_function. - person songyuanyao; 16.07.2015
comment
@songyuanyao, если нет using namespace std;, который не должен технически быть проблемой. - person Quentin; 16.07.2015
comment
@ Аджай, ты можешь это доказать? Фрагмент полностью действителен, если не считать этих идентификаторов. - person Quentin; 16.07.2015
comment
Я пробовал это, но не работал в моем случае. Все та же проблема... Та же ошибка времени компиляции... - person Satyavan Choure; 16.07.2015
comment
@SatyavanChoure также не конфликтует с std::unary_function, как указал сонгюаньяо? - person Quentin; 16.07.2015
comment
Наверное просто баг. VS6 предшествует стандарту C++ и имеет много странностей. Весь этот вопрос откровенно спорный. - person Lightness Races in Orbit; 16.07.2015
comment
@LightnessRacesinOrbit вау! Я знал, что VS6 устарел, но не настолько устарел... Есть ли у нас древний артефакт, разрушенный при осмотре по причине голосования за закрытие? - person Quentin; 16.07.2015
comment
@Quentin: Проблема, которую больше нельзя воспроизвести? ;) - person Lightness Races in Orbit; 16.07.2015