Joy
полные примеры я сюда не стал вставлять, потому что помимо прочего копипаст с этой пдфки требует возни. Например когда я текст сюда вставлял то оно вставило l\:Jajor Desigll Rlile
Aidar
Помонучто это не правило нихрена и не примеры, это просто говнокод
Joy
Я не понимаю, что ты пытаешься донести. Что нормально и допустимо первым инклюдом ставить не собственный заголовочный файл?
Aidar
Только стилистически
Joy
а вот автор книги Large-scale C++ software design считает иначе и показывает это на примере
Aidar
Ну аргументов я не увидел
Joy
на этом ваше мнение и мнение автора книги расходятся, и я думаю каждому стоит остаться при своем ))
Aidar
А автор для меня не авторитетен
Joy
ну бля, читай книгу
Joy
конечно не авторитетен ))
Joy
хер моржовый с говнокодом)
Aidar
Особенно если он допускает в своих книгах что либо основанное на последовательности применения
Joy
я уж понял ваше мнение
Joy
Пока что я могу сказать о книге? Это вторая настольная книга С++ программиста
Aidar
А какого она года?
Joy
вторая не по степени важности, они примерно наравне. Ещё одна - "Code complete"
Joy
96
Aidar
Вангую что iosfwd появился не раньше 98
Joy
что это?
Aidar
96
Мда, философия же сильно поменялась
Joy
прицнипы нет
Aidar
что это?
Форвард декларации для иостримов
Aidar
прицнипы нет
Подходы зато поменялись, перестали писать как в джаве
Joy
ты доебался до одного единственного примера, который показывает ПРИНЦИП. То что этот пример сейчас неактуален, не означает что принцип не работает
Joy
кто-то вчера писал что на подходе выход очередной редакции книги
Aidar
Этого принципа нет, структурная гарантия последовательности сильно лучше задокументированного требования
Aidar
Это относится в общем случае ваще ко всему
Aidar
Не только к хедерам
Joy
что же, мы возвращаемся к тому, что твоё мнение отличается от мнения автора книги. На этом дискуссию считаем законченной?
Alexander "SonnySlave"
Я пытаюсь донести что технически порядок значить ничего не должен
Согласен абсолютно. Если херня завязана на порядок хедеров, то это говнокод
Joy
А как можно на примере хорошего кода показать, как делать НЕ надо и как работать НЕ будет?
Joy
чувствую себя дибилом, защищая одну из признанных программистских "библий" )
Alexander "SonnySlave"
чувствую себя дибилом, защищая одну из признанных программистских "библий" )
Это не библия, а всего лишь кодстайл, который помогает защищаться от говна
Joy
ай, всё, я устал
Anatoly
Напротив, если ты полагаешься на порядок ты сам себе злобный
Anton
сколько живу, ни разу эту "библию" в глаза не видел )
Anatoly
Разместишь раньше свой заголовочный, забудешь что-то включить, получишь раньше по рукам. Разместишь после - отсрочишь кончину ошибки.
Anton
сдается мне что эти все проблемы из-за смешиваний сишных и плюсовых хидеров, как следствие засирания неймспейсов в плюсовом коде сишными определениями
Anton
ну и чудо макросы :)
Matwey
Лакос приводит пример, когда код #include <iostream.h> #include "wildthing.h" компилится в то время как #include "wildthing.h" #include <iostream.h> нет
Тут как не крути, будет плохо. Во втором случае, ты сможешь потерять #include <iostream>, но продолжить пользоваться его содержимым занесенным через "wildthing" в данную единицу трансляции.
Anatoly
Третий день идет дискуссия, что порядок - это вопрос стиля
Anton
четвертые сутки пылают станицы )
Anatoly
Что порядок может либо ускорить момент обнаружения пропущенного заголовка, либо замедлить. Но в любом случае полагаться на порядок - ошибка.
Anatoly
@narical вчера же об уже поговорили.
Joy
Я вас услышал
Maksim
Привет всем. Нужна подсказка. В проекте используется сторонняя dll собранная в конфигурации release(с crt линкуется динамиччески). Если я эту release использую в своём проекте с конфигурацией debug, это же не должно привести к каким то проблемам?
Maksim
а почему? можно в 2х словах. То что так со статическими делать нельзя, я знаю, а почему динамические нельзя?
Egor
будут две разные кучи, если в либе нет своих аллок/фри то будут краши
Maksim
буду благодарен за какую то ссылку
Egor
google.com
Maksim
Окей, пошел гуглить, спасибо
Berkus
а вот автор книги Large-scale C++ software design считает иначе и показывает это на примере
он описывает один совершенно конкретный кейс проектирование LARGE SCALE SOFTWARE SYSTEMS
Berkus
понятно что в проекте до 10,000 файлов можно делать как угодно
Berkus
ну если каждый модуль выделяет и освобождает память только в своей куче то и ладно
Berkus
а вот передать пойнтер из одного в другое и там освободить - будет красивый фейрверк
Anatoly
Maksim
If you have more than one DLL or EXE, then you may have more than one CRT, whether or not you are using different versions of Visual C++. For example, statically linking the CRT into multiple DLLs can present the same problem. Developers encountering this problem with static CRTs have been instructed to compile with /MD to use the CRT DLL. If your DLLs pass CRT resources across the DLL boundary, you may encounter issues with mismatched CRTs and need to recompile your project with Visual C++. это из msdn, если я правильно понял, то если с crt линкуемся как MD то проблем не должно быть, или я все понял не так?
Oleg
Че-т звучит как фигня. Собираю проект RelWithDebInfo, лмнкуюсь с релизными либами из дерева. Проблем нет.
Oleg
Хм, а на линухе эта пробоема есть?
Berkus
Хм, а на линухе эта пробоема есть?
везде есть, куча - это просто код, если два разных кода используются в двух разных частях программы то это тот самый сценарий
Berkus
ртуть в принципе проходит через организм если не застрянет )
Berkus
Че-т звучит как фигня. Собираю проект RelWithDebInfo, лмнкуюсь с релизными либами из дерева. Проблем нет.
эээ а причем тут как ты собираешь? релиз + релиз, главное чтобы CRT был один и указатели не кросс-аллоцировались
Aidar
ртуть в принципе проходит через организм если не застрянет )
Человек в принципе выжевет если не умрет
Berkus
Человек в принципе выжевет если не умрет
неверно, человек всё равно умрёт
Berkus
даже если выживет
Ostap ꑭ
Я никогда проблем с длл/либ не ловил, но хотелось бы узнать о проблеме подробнее. Подскажите какую-то статью или книгу по выше оговоренному вопросу
Anonymous
Читаю и вообще не понимаю ничего
Ostap ꑭ
Я всё время так и делаю, но делать ссылаясь на то, что "так нужно" не очень круто
Alexander "SonnySlave"
Anonymous
Сложный язык у вас😄
Alexander "SonnySlave"
Ostap ꑭ
О, спасибо
Maksim
спасибо
Maksim
Но как я понял, если за границу dll не передовать хендлеры и не удалять объекты созданные внутри такой dll за её границей то проблем быть не должно
Maksim
я имел ввиду file handles, locales and environment variables