Я попытался выполнить поиск, но я не увидел аналогичного вопроса (либо этот, либо моя поисковая терминология была неверной - если так, не стесняйтесь закрыть).
Я заядлый пользователь SO, и я заметил, что в обсуждениях и ответах есть много ссылок на стандарт C ++ - и я должен признать, что я никогда не читал этот конкретный документ, язык заставляет мои глаза болеть ... Так что , вопрос в том, может ли разработчик C ++ действительно писать код для жизни, даже не прочитав этот документ? Действительно ли это важно для нас, простых смертных, которые не занимаются написанием компиляторов?
Ответы:
Нет - вы можете прекрасно обойтись без него
Однако у вас будет гораздо более глубокое понимание, если вы потратите время на его изучение. Возможно, следуйте рекомендациям из тех вопросов, которые вас беспокоят, и выучите небольшой кусок за раз.
источник
Если вы хотите поспорить о семантике языка и стандарте, то стандарт очень важен. (Я не имею в виду это совершенно уничижительно.) Если вы хотите получить работу в языковом (против на языке), то он гораздо меньше.
Стандарт может дать достойную ссылку на стандартную библиотеку (не столько для самого языка), как только вы освоитесь с ней, но я не решаюсь рекомендовать использовать ее таким образом. Большинство людей, кажется, лучше справляются с другими материалами. Тем не менее, я чаще обращаюсь к стандарту, когда мне нужно что-то узнать о stdlib.
Тем не менее, чтение проектов и документов комитета - это один из способов быть в курсе C ++ 0x - на самом деле, в настоящее время это один из немногих способов.
Что касается SO и других форумов, я стесняюсь цитировать стандарт, за исключением случаев, когда кажется, что постер явно и определенно выиграет - возможно, они просили об этом или я думаю, что они неявно ожидают этого. В большинстве случаев, особенно с программистами, плохо знакомыми с C ++, цитирование обычно не очень помогает.
источник
Вы должны иметь его в качестве справочного материала, но я не думаю, что кто-либо, кроме его авторов, прочитал все это ... если они даже сделали (они работают в группах, фокусирующихся на областях, поэтому я в этом сомневаюсь).
Причина, по которой вы должны иметь его в наличии, заключается в том, что иногда на вопрос о правильности кода можно ответить, только обратившись к стандарту.
источник
Вероятно, более важно, чтобы вы знали, где находится стандарт, и знали, когда искать вещи.
Если ничего другого, вы должны периодически проверять, чтобы убедиться, что вы придерживаетесь последней версии и не допустили смещения кода.
источник
В большой команде у вас обычно должен быть один (но обычно не более) человек, который знает стандарт, по крайней мере, достаточно хорошо, чтобы они могли решать такие вопросы, как урегулирование любых споров / вопросов о том, соответствует ли конкретный код требованиям стандарта.
Реально, однако, эти ответы должны быть смягчены суждением и опытом. (Текущий) стандарт говорит,
export
что это ключевое слово и говорит, что он делает. В действительности это просто не работает таким образом с большинством компиляторов. Точно так же, во многих случаях, если у вас есть три человека, не согласных с каким-то конкретным кодом и тем, что стандарт может сказать об этом, это может быть признаком того, что код может нуждаться в переписывании, чтобы быть более простым.В то же время, большинство команд будут выполнять большую часть работы на одной платформе, и наличие стандарта (и кого-то, кто, по крайней мере, достаточно хорошо с ним знаком) должен проверить, что то, что вы делаете, не слишком тесно связано с этой платформой, безусловно, может быть полезным.
источник
Я зарабатывал на хлеб в качестве разработчика на C ++ в общей сложности около 4 лет, не читая стандарт. Фактически, в течение первых двух лет я даже не читал ничего, кроме C ++ Primer от Стэна Липпмана и статей MSDN. Так что это возможно - на самом деле я боюсь, что большинство людей, создающих код на C ++, даже не читали таких фундаментальных работ, как Effective C ++ et al. который я сам обнаружил только позже.
ИМХО, чтобы быть хорошим разработчиком C ++, нужно понимать внутреннюю логику языка (языков) (как отмечает Скотт Мейерс, C ++ - это около 4 разных языков) и общие идиомы и подводные камни, и быть готовым всегда учиться чему-то большему. Чтение веток на SO может многому научить насчет угловых случаев, когда, в свою очередь, стоит прочитать соответствующие части стандарта, если кто-то действительно хочет копать глубже. Но чтение всего этого, вероятно, редко требуется большинству из нас.
источник
«Знание стандарта» - это вопрос степени, и он не обязательно означает запоминание оригинального документа.
Документ по стандартам разработан, чтобы быть авторитетным - не обязательно доступным. Есть много удаленных источников, которые намного более доступны. Правда, в этом есть немного китайского шепота, но это редко является большой проблемой - конечно, на уровне одного шага.
Полное раскрытие - я должен сказать это - я никогда не читал стандарт. Хотя я, вероятно, приложу все усилия, чтобы получить полный документ C ++ 0x, когда он будет завершен.
РЕДАКТИРОВАТЬ, конечно, если Страуструп выпустит новую версию "языка программирования C ++", я могу согласиться на это снова.
источник
Когда я программировал на C ++, я часто обращался к стандарту языка за информацией о стандартных функциях библиотеки. Стандартная библиотека C ++ довольно большая, и я считаю, что языковой стандарт является наиболее удобным источником.
источник
Я мог бы поклясться, что уже отвечал на этот вопрос, но не могу его найти. В принципе, C ++ в отличии от Java в том , что он предназначенный , чтобы иметь отверстие в спецификации других спецификациях платформы может заполнить (например , POSIX или спецификации ABI вашей архитектуры, или компилятора). Таким образом, отвечая на вопросы на сайтах, таких как StackOverflow, часто приводят спецификации, указывающие, что только то, что что-то работает на одном компиляторе, не означает, что оно работает везде. Другими словами, большая часть ссылок на конкретные спецификации при работе с C ++ заключается в том, чтобы уточнить, насколько конкретно переносимо использование языка.
источник