История изменений
Исправление KivApple, (текущая версия) :
В итоге болезный не знает током ни WinAPI, ни POSIX — ничерта.
В этом и есть суть кроссплатформенной разработки. Чтобы один код можно было скомпилировать без изменений под любую платформу. Создал я проект на том же Qt, вёл всю разработку под Linux, а потом открыл в Qt Creator под виндой, нажал «Build» и проект мало того, что собрался, так ещё и работает нормально. Кстати, многие организации и люди не захотят программировать «только под Linux» как это делаешь ты. И тем фактом, что они таки выпустили свой софт под онтопик, ты должен быть благодарен именно лёгкости портирования.
какой лютый ужас кроется за его любимыми iostream-ами, какое лютое говно лежит в boost::filesystem::path
Но ты то знаешь это, раз делаешь такие заявления. Так давай, расскажи остальным конкретные претензии к реализации данных библиотечных функций.
просадить производительность, забыв передавать по ссылке параметры
В случае Си можно забыть сделать free для какой-нибудь небольшой структуры в цикле и получить memory leak (в C++ хотя бы есть RAII, чтобы в большинстве случаев delete вызвался сам). Если там не гигабайты в секунду текут, то проблема тоже может обнаружится не сразу. Однако просадка производительности таки приятнее, чем внезапное падение программы с несохранёнными данными. Кстати, уход программы в подкачку породит фризы на порядки более эпичные, чем любое лишнее копирование в C++. А нормальным людям достаточно запомнить правило «передавай по ссылке всё кроме элементарных типов, если нет ОЧЕНЬ веских причин делать иначе». В итоге & ставится на автомате для всех структур и классов (кроме умных указателей).
И да, в Си ссылок нет, поэтому там структуры передают по указателю. И если забыть это сделать, то просадка производительности будет абсолютно такая же, как и для POD-структур в C++.
код адово пухнет
Ты ведь понимаешь, что реализация ООП средствами Си заставляет пухнуть код гораздо сильнее, а использование макросов вместо шаблонов затрудняет отладку?
Но больше всего мне интересно, каким образом заставляет пухнуть код ключевое слово auto. В любой ситуации, когда длина требуемого имени типа длиннее слова auto (4 буквы), применение auto гарантированно уменьшает размер кода. Если приведёшь хоть один пример кода, где auto заменяет имя типа длинной больше 4 символов и при этом размер кода без auto (всё остальное остаётся неизменным) меньше, чем с ним, то я обещаю больше никогда не использовать C++.
Исходная версия KivApple, :
В итоге болезный не знает током ни WinAPI, ни POSIX — ничерта.
В этом и есть суть кроссплатформенной разработки. Чтобы один код можно было скомпилировать без изменений под любую платформу. Создал я проект на том же Qt, вёл всю разработку под Linux, а потом открыл в Qt Creator под виндой, нажал «Build» и проект мало того, что собрался, так ещё и работает нормально. Кстати, многие организации и люди не захотят программировать «только под Linux» как это делаешь ты. И тем фактом, что они таки выпустили свой софт под онтопик, ты должен быть благодарен именно лёгкости портирования.
какой лютый ужас кроется за его любимыми iostream-ами, какое лютое говно лежит в boost::filesystem::path
Но ты то знаешь это, раз делаешь такие заявления. Так давай, расскажи остальным конкретные претензии к реализации данных библиотечных функций.
просадить производительность, забыв передавать по ссылке параметры
В случае Си можно забыть сделать free для какой-нибудь небольшой структуры в цикле и получить memory leak (в C++ хотя бы есть RAII, чтобы в большинстве случаев delete вызвался сам). Если там не гигабайты в секунду текут, то проблема тоже может обнаружится не сразу. Однако просадка производительности таки приятнее, чем внезапное падение программы с несохранёнными данными. Кстати, уходи программы в подкачку породит фризы на порядки более эпичные, чем любое лишнее копирование в C++. А нормальным людям достаточно запомнить правило «передавай по ссылке всё кроме элементарных типов, если нет ОЧЕНЬ веских причин делать иначе». В итоге & ставится на автомате для всех структур и классов (кроме умных указателей).
код адово пухнет
Ты ведь понимаешь, что реализация ООП средствами Си заставляет пухнуть код гораздо сильнее, а использование макросов вместо шаблонов затрудняет отладку?
Но больше всего мне интересно, каким образом заставляет пухнуть код ключевое слово auto. В любой ситуации, когда длина требуемого имени типа длиннее слова auto (4 буквы), применение auto гарантированно уменьшает размер кода. Если приведёшь хоть один пример кода, где auto заменяет имя типа длинной больше 4 символов и при этом размер кода без auto (всё остальное остаётся неизменным) меньше, чем с ним, то я обещаю больше никогда не использовать C++.