
Anton
19.02.2018
07:08:33
ну и чудо макросы :)

Matwey
19.02.2018
07:09:39

Alexander
19.02.2018
07:10:14

Anatoly
19.02.2018
07:11:28
Третий день идет дискуссия, что порядок - это вопрос стиля

Google

Anton
19.02.2018
07:12:29
четвертые сутки пылают станицы )

Anatoly
19.02.2018
07:14:29
Что порядок может либо ускорить момент обнаружения пропущенного заголовка, либо замедлить. Но в любом случае полагаться на порядок - ошибка.
@narical вчера же об уже поговорили.

Ilia
19.02.2018
07:24:35
Читаю Лакоса. Цитирую:
Major design rule:
The . c file of every component should include its own . h file as the
first substantive line of code.
"Говностатья из интернета" тоже называет это "правилом №1". Может, не такая уж она и говностатья?
Ээээ...
Видишь ли, не все так однозначно, правил нет.
Статью я глянул по диагонали, явно не нашел там ничего стоящего, ты же процитировал не самое важное правило, уцепился в него, и пытаешься на этом основании меня в чем-то обвинят ь.
Ещё раз, правил нет.
Ты можешь конечно читать книги и статьи и изобретать свои правила, которые может даже и будут "правельными" и будут помогать тебе.
Но ещё раз, правил нет.

Joy
19.02.2018
07:26:53
Я вас услышал

Ilia
19.02.2018
07:29:06
По сути есть только два принципа, это не нарушение ODR и своевременное объявление и определение используемых сущностей
Даже пресловутое разделение компоненты на заголовок и исходник не обязательно

Maxim
19.02.2018
07:34:32
Привет всем. Нужна подсказка. В проекте используется сторонняя dll собранная в конфигурации release(с crt линкуется динамиччески). Если я эту release использую в своём проекте с конфигурацией debug, это же не должно привести к каким то проблемам?

Ilia
19.02.2018
07:36:07

Maxim
19.02.2018
07:38:45

Ilia
19.02.2018
07:39:13

Egor
19.02.2018
07:39:26
будут две разные кучи, если в либе нет своих аллок/фри то будут краши

Maxim
19.02.2018
07:39:38
буду благодарен за какую то ссылку

Google

Egor
19.02.2018
07:39:50
google.com

Ilia
19.02.2018
07:40:05

Maxim
19.02.2018
07:40:38
Окей, пошел гуглить, спасибо

Ilia
19.02.2018
07:41:11

Berkus
19.02.2018
07:42:01

Ilia
19.02.2018
07:42:14

Berkus
19.02.2018
07:42:15
понятно что в проекте до 10,000 файлов можно делать как угодно
а вот передать пойнтер из одного в другое и там освободить - будет красивый фейрверк

Anatoly
19.02.2018
07:44:44

Maxim
19.02.2018
07:45:18
Расскажи, почему нельзя со статическими.
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
19.02.2018
07:45:28

Alexander
19.02.2018
07:45:58

Oleg
19.02.2018
07:46:04
Хм, а на линухе эта пробоема есть?

Ilia
19.02.2018
07:46:45

Berkus
19.02.2018
07:49:28

Google

Aidar
19.02.2018
07:51:04

Berkus
19.02.2018
07:51:34
даже если выживет

Ilia
19.02.2018
07:52:11
Хм, а на линухе эта пробоема есть?
В линуксе чаще всего версия CRT зафиксирована глубоко в системе в одном экземпляре и не меняется.
А когда что-то собирают, не собирают на одном линуксе под все остальные, хотя это возможно, а
обычно под каждую систему делают отдельный пакет под конкретную CRT.
В мире Win всё немного не так.

Ostap
19.02.2018
08:04:44
Я никогда проблем с длл/либ не ловил, но хотелось бы узнать о проблеме подробнее. Подскажите какую-то статью или книгу по выше оговоренному вопросу

Ilia
19.02.2018
08:05:48
Зачем тебе это?
Простое правило запомни и соблюдай:
Все библиотеки должны быть собраны в одной конфигурации.

Aitkazy
19.02.2018
08:08:13
Читаю и вообще не понимаю ничего

Ostap
19.02.2018
08:08:26

Ilia
19.02.2018
08:09:19
Прочитай про ODR.

Alexander
19.02.2018
08:10:23

Ilia
19.02.2018
08:10:48

Aitkazy
19.02.2018
08:10:50
Сложный язык у вас?

Alexander
19.02.2018
08:11:09

Ilia
19.02.2018
08:18:41

Ostap
19.02.2018
08:19:32

Maxim
19.02.2018
08:20:34

Ilia
19.02.2018
08:21:30
Ну таких статей много, я уверен, могут быть и лучше.
Эта статья крутится в основном вокруг использования разных CRT в одном приложении.
От Debug и от Release.
На самом деле это могут быть также просто разные CRT, например, все Release, но разных версий.
Или это могут быть экземпляры других общеиспользуемых библиотек.

Maxim
19.02.2018
08:26:48
Но как я понял, если за границу dll не передовать хендлеры и не удалять объекты созданные внутри такой dll за её границей то проблем быть не должно

Ilia
19.02.2018
08:28:05

Google

Ilia
19.02.2018
08:28:47

Maxim
19.02.2018
08:29:07
я имел ввиду file handles, locales and environment variables

Ilia
19.02.2018
08:34:09
Ну как бы да, но там ещё дофига других есть глобальных или скрытых объектов.
В CRT и в C++ RT теперь.
Я просто предлагаю вам не зацикливаться на каких-то правилах, а просто посмотреть на проблему шире,
чтобы понять её глубинные причины.

Berkus
19.02.2018
08:35:12
да, либы еще таскают скрытый стейт в виде каких-нибудь статических переменных

Maxim
19.02.2018
08:38:21
согласен, так лучше и поступать, это логично линковать дебаг с дебагом, а релиз с релизом. Просто тут столкнулся в проекте с тем что на релизе работает, а если собрать проект с конфигурацией дебаг, не меняя либки, то результат с теми же входными параметрами не тот, который ожидал и вот решил получше разобраться что к чему

Ilia
19.02.2018
08:41:50

Admin
ERROR: S client not available

Maxim
19.02.2018
08:45:38

Pavel
19.02.2018
09:36:52
IDEA: A series of nonverbal algorithm assembly instructions (Score: 100+)
Link: http://j.mp/2EyozRL
Comments: http://j.mp/2Ezrlq7

zi
19.02.2018
10:07:06
.

Joy
19.02.2018
10:11:43
В supapro мне не ответили (
Подскажите, где можно почитать про юнит-тесты начиная с основ. Гуглил сам, не смог найти "точку входа" - вся найденная информация предполагает, что я уже что-то знаю

Anatoly
19.02.2018
10:15:53

Oleg
19.02.2018
10:25:40

Anatoly
19.02.2018
10:26:24

Ilia
19.02.2018
10:28:04

Anatoly
19.02.2018
10:29:31
TDD это хороший старт для проектирования API и обзора поляны use case. Возводить их в самоцель - да, зачем? но владеть этой техникой нужно.

Alexander
19.02.2018
10:31:01
всё хорошо в меру, как говорится

Berkus
19.02.2018
10:42:05

Google

Oleg
19.02.2018
10:46:56
http://theiced.livejournal.com/254704.html
считаю, что тесты - это ок. Но тесты должны покрывать код, а не код писаться для подтверждения работы тестов.

Anatoly
19.02.2018
10:48:17
главное, что этот тезис здесь никто не выдвигал

Berkus
19.02.2018
10:48:42

Joy
19.02.2018
10:49:20
во, накидали, спасибо!

Oleg
19.02.2018
10:49:32

Berkus
19.02.2018
10:51:56
в тдд тесты позволяют тебе СОЗДАТЬ минимально необходимый и достаточный АПИ, потом его реализовать так, как его ожидает увидеть пользователь, ну и потом проверять что он продолжает работать, так как ожидает от него пользователь

Oleg
19.02.2018
10:53:05
Я еще раз повторяю - твой коммент - это дело исключительно твоего вкуса и тех приложений, которые ты разрабатывал. В моем случае это никогда а) не нужно и б) не подходит.
Поэтому ешь свое tdd ложкой, но не пытайся меня этим кормить

Berkus
19.02.2018
10:53:09
вкус тут не при чём

Anatoly
19.02.2018
10:58:44

Oleg
19.02.2018
10:59:31
> истинно-верный путь.
Программирование - это не церковь. Тут не единственно правильного решения

Anatoly
19.02.2018
11:01:39

Berkus
19.02.2018
11:02:12

Joy
19.02.2018
11:02:26
Я сам разберусь, мне пока "предмет исследования" непонятен. Начиная с того, что делаю я свой проектик - имеет ли смысл делать тесты для него, и КАК ИМЕННО это делается.

Berkus
19.02.2018
11:02:54

Joy
19.02.2018
11:02:56
Пока я регулярно собираю, запускаю и тыкаю всячески кнопочки. Иногда вдруг падает.