C/C++

Истина там? про С++

www.stroustrup.com вот где истину искать насчёт несовместимости программ на С++ под разные компиляторы. Как думаете?
Kana Kana
Kana Kana
21 700
1. Язык C++ определяет набор лексических, синтаксических и семантических правил.

2. Стандарт языка C++ определяет ожидаемое поведение при выполнении этих правил для разработчиков компиляторов.

3. Библиотека стандартных шаблонов (STL) – набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++, написана на языке C++, имеет отдельный стандарт, который также рассчитан на разработчиков компиляторов.

4. Оба стандарта дают разработчикам компиляторов простор для творчества в плане реализации, главное чтобы выполнялись правила и ожидаемое поведение.

5. Автор C++ не является разработчиком стандартов, а всего лишь принимал и принимает при их разработке активное участие. Автор C++ не является разработчиком компиляторов к языку C++. Автор C++ не является разработчиком STL. Автор C++ обязан придерживаться утверждённых стандартов при дальнейшей разработке языка.

6. Автор русского языка (C++) не несёт ответственности за учебники русского языка (C++). Автор учебника русского языка (C++) не является редактором, корректором и наборщиком своего учебника. Автор C++ не несёт ответственности за перевод на другие языки своих книг.

7. Установленные стандартами правила не гарантируют избежание проблем. Разработчики компиляторов и стандартной библиотеки не обязаны строго следовать стандартам и вправе вносить в них изменения и дополнения либо отказываться от части реализации определённых стандартом правил.

8. Кроссплатформенность кода – это личная боль и проблема разработчиков компьютерных программ. Право выбора компилятора определяется самим разработчиком либо нанимателем, либо заказчиком программного обеспечения.

9. Недовольство программиста компилятором является частной и внутренней проблемой программиста, которую он решает самостоятельно путём принятия её как данность либо расторжением договорных отношений со всеми вытекающими из данного договора последствиями.

P.S. Всё вместе можно свести для нас в единое правило: «Кушать подано...»
Алекс Иса
Алекс Иса
54 572
Лучший ответ
Kana Kana потому у нас и жопа происходит во всех областях хоздеятельности
Да. Он же автор языка. А вообще учить STL и Boost
Юрий Караев
Юрий Караев
53 016
Kana Kana Вы, наверное, не в курсе причин моих вопросов. ТО, ЧТО ДОПУСТИМО С ТОЧКИ ЗРЕНИЯ АВТОРА ПОЧЕМУ-ТО СЧИТАЕТСЯ KРАМОЛОЙ У VISUAL STUDIO 2019... Местные знатоки так и не смогли прояснить ситуацию. и что интересно, автор просит делать проще и эффективнее, а на деле получается полная зависимость от переумков-компиляторщиков, которые просто наплевали на какую-либо переносимость программ
Kana Kana надо будет поискать КОСЯКИ по реализации STL у разных компиляторов. Вот наверное посмеёмся
С совместимостью не так всё просто...
Во-первых, GCC - универсальный, а Студия под виндой.
Но зато у Студии есть отладчик, а это очень много! В Линуксоидном GDB поди ещё разберись!
Во-вторых, компилятор тянет за собой свой линкер, свой ассемблер и свой менеджер проектов.
Андрей Гарин
Андрей Гарин
26 551
Kana Kana Больше на правду похоже. MINGW в блоках принимает то, от чего плюётся VS. На сайте С++Reference есть работа с неинициализированными указателями и расположением строковых данных по принципу ассемблера, а вот VS считает ЭТО недопустимым. По-моему налицо "подрывная работа"против программирования в РФ в лице распространения говнокомпиляторов и прочих "стандартов"
Андрей Гарин Ну, да просто Майки не умеют в стандарты. У GCC ключей, относящихся к стандартам и синтаксису несколько десятков, а у Студии - всего несколько штук.
Kana Kana кстати, сейчас запустил прогу с НЕИНИЦИАЛИЗИРОВАННЫМ указателем и О ЧУДО... Заработало! Здесь материться не нужно, но студентам ЗАПОМНИТЬ НАДО - не верь глазам своим, пока сам не убедишься.
Андрей Гарин Да, есть такое. Начиная с некоторого количества строк, Студия как-бы расслабляется и перестаёт замечать некоторые не слишком серьёзные ошибки. У GCC - всё на ключах. Указал ему, чтобы он показывал тебе неинициализированные указатели, const-ы где нужны и т. п. Фактически, GCC можно приспособить под простенький синтактический анализатор.