2010-04-13 2 views
8

Всякий раз, когда задан какой-либо вопрос, и необходим ссылочный текст, я никогда не вижу MSDN C++ Language Reference.Справочник по языку Microsoft C++

Я просматривал его, и я лично чувствую, что он очень хорошо написан.

Есть ли какая-то конкретная причина, по которой он не используется так часто, как стандарт?

Это потому, что в нем содержатся некоторые специфические особенности VC++?

+0

close-voter: помогает ли это сделать wiki сообщества? – Lazer

+1

Это не тесное голосование, это переход на голосование Meta. –

+0

Я предполагаю, что большинство пользователей тегов C++ в SO не используют MSVC в качестве своего первого выбора. Есть сильное присутствие GCC, многие OPs предполагают это. Они не будут ставить большую долю в справочнике компании. Это, конечно, не распространяется на ту же основу, что и официальная языковая ссылка. Там мало смысла. –

ответ

3

Ответ довольно прост: ссылка MSDN не является авторитетной. Он рассказывает вам, как работает компилятор Microsoft, и да, это обычно происходит в соответствии с тем, что говорит стандарт. Но когда кто-то спрашивает, как язык C++ имеет дело с какой-то ситуацией, только один текст имеет любые полномочия: стандарт ISO.

Поэтому, отвечая на вопросы о C++, люди склонны ссылаться на стандарт. Если вы спросите конкретно о том, как MSVC его реализует, то MSDN будет идеальным источником. Но большинство вопросов - это просто C++.

Или иначе: если MSDN содержит опечатку, то MSDN ошибочен. Если в стандарте ISO есть опечатка, то так определяется язык.

8

Я считаю, что это связано с тем, что мы ссылаемся на справочную ссылку на сам стандарт.

+0

Хотя фактический стандарт не включен, но сквозняки текущего и следующего - – Mark

+4

Это. Если вы хотите получить окончательный источник на C++, используйте ISO 14882: 2003. MSDN может быть надежным, а может и нет, но он не является авторитетным. –

+0

@Derrick Turk: этот стандарт ISO 14882: 2003 C++ не является бесплатным! Я этого не ожидал. – Lazer

2

Is it because it contains some VC++ specific features?

Я думаю, что это основная причина. Например, он часто содержит информацию о C++/CLI, а не только C++.

Ссылка на VC++ 2010, я думаю, осторожна в том, чтобы различить, какая часть находится в C++ и какая часть находится в C++/CLI. Но для обозначения стандарта, конечно, лучше обратиться к самому стандарту. Документация VC++ также относится к стандарту слишком часто.

0

Один интересный пример: просто посмотрите на все эти __XXX keywords !! (Стандарт C++ не имеет)

+0

@Rooke: hmm. .. в замешательстве. Хотя на странице написано: «Имена с ведущими подчеркиваниями - это расширения Microsoft». – Lazer

+2

Это потому, что стандарт резервирует их для исполнителей ... (_xyz и __xyz) – conio

+0

@conio: _xyz зарезервирован только для глобального пространства имен. –

2

MS был очень хорош в определении того, какие части документа являются специфичными для MS или нет, поэтому я согласен с тем, что ссылки MS довольно хороши (особенно, если вас интересуют расширения MS).

Я обычно относятся к документации стандартам, если я ищу информацию о «что стандарт», потому что:

  1. Я их (см Where do I find the current C or C++ standard documents? ссылки на как получить ваши)
  2. они» повторно PDF-файлы, которые я нахожу легче искать и читать, чем веб-или в справочной системе Windows на основе MSDN документы
  3. они окончательное (насколько ответы на вопросы о стандарте)

Самый большой недостаток заключается в том, что у меня нет электронной версии стандарта C90, но ...

0

Стандарт C++ определяет, как работает язык C++. Справочник по языку Microsoft C++ определяет, как работает реализация этого языка в Microsoft.

Итак, если вы хотите знать, какое поведение гарантировано независимо от компилятора, The Standard является вашим руководством. Некоторые детали и определенные угловые случаи оставлены для реализации, и каждая реализация может определять расширения для языка, поэтому, если вы хотите использовать те специфические свойства MSCV, язык Microsoft Reference должен объяснить их.

В большинстве вопросов SO на C++ on явно не задается конкретный ответ MSVC, который может быть неверным для других компиляторов. Поэтому, ссылаясь на «Стандарт», вы получаете общий, независимый от компилятора ответ, в то время как справочник по языку MS не имеет большого веса ни для чего другого, кроме MSVC.

Смежные вопросы