Этого треда уже нет.
Это копия, сохраненная 20 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
90 Кб, 604x602
Оффициальный™ традиционный® C++ тред #19 #631744 В конец треда | Веб
Глупец! Фреймворков сотни не дадут
Senior'а должность, если нет крещенья,
Которым к вере истинной ведут!

Без тайн крестов познаешь лишь мученья:
Макакинг гостевух из года в год
Иль в крудошлепство с Python погруженье.

И всякий раз, листая тот байт-код,
Которым обратились твои муки,
Юнец-тимлид брезгливо скривит рот.

Так, запоздало вняв моей науке,
Ты будешь гнить, как листья под дождем,
И на себя в конце наложишь руки.

А перед смертью вспомнишь вновь о том,
Что мог, кресты познав, прожить иначе,
И, этого желая всем нутром,

Ты от бессилья горького заплачешь.


TL;DR Читаешь https://goo.gl/kVaela , делаешь примеры и суешь в http://ideone.com , ошибки копипастишь в гугл, непонятное ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее. И прочитай FAQ, расположенный ниже, в нем много полезного.

Унаследованная памятка:

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Старший брат: >>609376 (OP)
Предыдущий: >>622611 (OP)

FAQ:

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

Q: Но он же давно устарел!
A: Современный C++ весьма далек от языка, которым он был в 1998 году. В настоящее время кресты живее всех живых, их развитие движется семимильными шагами, а новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими. К сожалению, из-за обилия некачественной литературы по крестам, в которой игнорируются новые средства языка, бытует мнение о его "несовременности".

Q: Сейчас все пишут на %languagename, а кресты сосут у него!
A: Нужно понимать, что используемый язык должен соответствовать поставленной задаче. Никому не придет в голову писать на C++ скрипты или веб-фронтенд, но лишь немногие языки могут соперничать с ним по разнообразию решаемых задач.

Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:

Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa

<устарело> Герберт Шилдт - C++. Базовый курс (2010) - https://goo.gl/qMLAFl
<устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004) - https://goo.gl/QvjR6x

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR

Проектирование:
Следует пролистать все перед переходом от лаб к написанию настоящего софта.
Последний пункт есть квинтэссенция ГИБКОСТИ, поэтому стоит прочитать его в любом случае, чтобы охуеть от того, как можно делать.
Ален Голуб - Веревка достаточной длины, чтобы выстрелить себе в ногу (2001) - https://goo.gl/fBmuxp
Джеймс Коплиен - Программирование на C++ (2005) - https://goo.gl/Y1WGdU
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC

Ахтунг! Предыдущие два раздела дополняют, а не заменяют классические книги о лучших практиках разработки без привязки к конкретному языку (Макконнелл, Uncle Bob, GoF).

Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
<устарело> Бьерн Страуструп - Язык программирования C++ (2010) - https://goo.gl/iZBDiV
Стандарт C++14 (на ангельском) - https://github.com/cplusplus/draft/raw/master/papers/n4140.pdf
Последняя на данный момент версия черновика стандарта C++17 (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf

Тонкости языка (для гурманов):
Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512

Также для легкого чтения подойдет книжка c историей создания C++:
Бьерн Страуструп - Дизайн и эволюция C++ (1994) - https://goo.gl/FqbPwo

Отдельные аспекты:
Читать по необходимости.
Энтони Уильямс - Параллельное программирование на C++ в действии (2012) - https://goo.gl/qJfBkD
Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
Дэвид Абрахамс, Алексей Гуртовой - Шаблонное метапрограммирование на C++ (2009) - https://goo.gl/isSt7j
Дэвид Вандевурд, Николаи Джоссатис - Шаблоны C++. Справочник разработчика (2003) - https://goo.gl/0M4NpG
Роберт Седжвик - Фундаментальные алгоритмы на C++ (2001) - https://goo.gl/4jwxSl (части 1-4), https://goo.gl/yDuQgG (часть 5)

Q: Хуле тут так сложно? Я открыл учебник, там какой-то ад!
A: Попробуй учебники, изданные после 2011 года. Фичи последних стандартов не только добавили выразительности, но и серьезно упростили жизнь разработчиков. Теперь программировать на C++ стало проще, чем когда-либо! Это не отменяет необходимости прочитать несколько серьезных книжек, чтобы написать на нем что-то годное. Тем не менее, да, C++ это по-настоящему сложный язык. Его никак не получится выучить за 21 день, ну вот совсем никак. Именно высокий порог вхождения повышает твою ценность как специалиста, не позволяя нанять вместо тебя индуса за еду. Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.

Q: Ты охуел? В этих книгах по тысяче страниц! Хочу коротких статей.
A: Вот тебе блоги, факи, референсы и всякое такое:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru
Блог с хорошо расписанными фичами новых стандартов - http://scrutator.me
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/ или более подробно на ангельском http://en.cppreference.com/w
Блог Герба Саттера (на ангельском) - http://herbsutter.com
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru
Блог еще одной тянки, много о Qt и оптимизации (на ангельском) - https://katecpp.wordpress.com
Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq

Q: Я не умею читать.
A: Можешь посмотреть какой-нибудь онлайн-курс:

Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
Среди прочих есть несколько курсов по C++ - https://stepic.org

И еще есть вот такое, если проникся:
Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos

Q: Я готов начать погроммировать! Куда мне писать код?
A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".

Под *nix, как правило, уже предустановлен компилятор gcc (если нет, используй sudo aptitude install gcc), так что достаточно сохранить хэллоуворлд, набранный в текстовом редакторе, и выполнить g++ helloworld.cpp и ./a.out. Но удобнее установить какую-нибудь IDE, например, весьма удобную CodeLite (sudo aptitude install codelite codelite-plugins), и работать в ней. Ее также можно использовать и в шиндошс, но тогда сперва придется установить MinGW (http://mingw.org).

Еще у нас есть IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует - https://www.jetbrains.com/clion

Можно также не устанавливать ничего, а запускать свои хэллоуворлды на http://ideone.com, выбрав в левом нижнем углу язык C++14.

Q: Не буду я все делать сам! Подавайте сюда софт, который все сделает за меня и подотрет мне жопу!
A: Без проблем:

Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio - http://cppcheck.sourceforge.net
Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
Гугловские утилиты для контроля корректности кода - https://github.com/google/sanitizers
Гугловский фреймворк для автоматизации тестирования - https://code.google.com/p/googlemock

Q: Мне надоело писать велосипеды, какие у вас тут популярные либы?
Q: Нужно зделать %монструозная_хуйня_нейм, но я обосрался от одной мысли о написании ее с нуля, что же делать?
A: Гляди сюда:

boost

Бесспорно, это самый популярный набор C++-библиотек. Не будет лукавством сказать, что C++ во многом обязан популярностью именно ему. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. И да, boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.

Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонент boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.

http://www.boost.org - скачать бесплатно без смс.
http://www.solarix.ru/for_developers/cpp/boost/boost-library-list.shtml - краткие аннотации к большинству компонентов.
http://sindicollo.blogspot.ru/2008/09/boost.html - документация к некоторым компонентам.
http://www.boost.org/doc - документация (на ангельском).

Литература:
Ариндам Мукерджи - Learning Boost C++ Libraries (на ангельском) (2015) - https://goo.gl/b0gPN1

Qt

Существует швабодный кроссплатформенный фреймворк-надмножество C++ под названием Qt. Он содержит довольно большое количество компонент (для работы с сетью, базами данных, для юнит-тестирования и др.), но киллер-фичей и основным полем его применения являются возможности по разработке графических интерфейсов. Qt сам по себе, как расширение языка, предоставляет для этого более удобные средства, чем обычные библиотеки, а использование специализированных IDE наподобие Qt Creator позволяет в буквальном смысле собирать интерфейсы мышкой, а код писать только по существу.

Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.

В настоящее время основные версии Qt - 4.8 и 5.х, полной обратной совместимости между ними нет как в пистоне, ага.

http://www.qt.io/ru - скачать бесплатно без смс.
http://doc.crossplatform.ru - документация к 4.8.
http://doc.qt.io - более полная документация к обеим версиям (на ангельском).

Литература:
Макс Шлее - Qt 5.3. Профессиональное программирование на C++ (2015) - https://goo.gl/aZ66gK
Макс Шлее - Qt 4.8. Профессиональное программирование на C++ (2012) - https://goo.gl/Slb1In (книга) + https://goo.gl/toUDWc (исходники примеров)
Марк Саммерфилд - Qt. Профессиональное программирование (только Qt 4.х) (2011) - https://goo.gl/qpkZFm (книга) + https://goo.gl/LIIECh (исходники примеров)

Другие хорошие библиотеки:

Несколько специализированных библиотек для часто встречающихся задач. Все маленькие, быстрые и простые в освоении:
libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году) - http://curl.haxx.se
SFML - работа с графикой и аудио - http://www.sfml-dev.org
FLTK - графические интерфейсы - http://fltk.org

И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs

Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке http://cppquiz.org/ , пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.
#2 #631746
Добавлена подборка проверочных вопросов для мамкиных language lawyer'ов.
Добавлена инфа о том, что делать после прочтения материалов из шапки.
Книги по проектированию отделены от best practices в самостоятельный пункт.
Небольшие дополнения в тексте.
Добавлены книги Коплиена и Голуба.
Ссылки на архивач пронумерованы.

Предыдущие треды на архиваче:
#1 https://arhivach.org/thread/94971/
#2 https://arhivach.org/thread/94972/
#3 https://arhivach.org/thread/99414/
#4 https://arhivach.org/thread/100995/
#5 https://arhivach.org/thread/105148/
#6 https://arhivach.org/thread/109335/
#7 https://arhivach.org/thread/112797/
#8 https://arhivach.org/thread/114519/
#9 https://arhivach.org/thread/117109/
#10 https://arhivach.org/thread/120019/
#11 https://arhivach.org/thread/122683/
#12 https://arhivach.org/thread/124637/
#13 https://arhivach.org/thread/125532/
#14 https://arhivach.org/thread/127327/
#15 https://arhivach.org/thread/128133/
#16 https://arhivach.org/thread/134437/
#17 https://arhivach.org/thread/135285/
#18 https://arhivach.org/thread/139690/

Старые ненумерованные треды:
https://arhivach.org/thread/45477/
https://arhivach.org/thread/48611/
https://arhivach.org/thread/60085/
https://arhivach.org/thread/66322/
https://arhivach.org/thread/69413/
https://arhivach.org/thread/73221/
https://arhivach.org/thread/77999/
https://arhivach.org/thread/79194/
https://arhivach.org/thread/82038/
https://goo.gl/vvs9GP
https://goo.gl/ZnBsYt

Отдельные Qt-треды:
https://arhivach.org/thread/15387/
https://arhivach.org/thread/65590/
#2 #631746
Добавлена подборка проверочных вопросов для мамкиных language lawyer'ов.
Добавлена инфа о том, что делать после прочтения материалов из шапки.
Книги по проектированию отделены от best practices в самостоятельный пункт.
Небольшие дополнения в тексте.
Добавлены книги Коплиена и Голуба.
Ссылки на архивач пронумерованы.

Предыдущие треды на архиваче:
#1 https://arhivach.org/thread/94971/
#2 https://arhivach.org/thread/94972/
#3 https://arhivach.org/thread/99414/
#4 https://arhivach.org/thread/100995/
#5 https://arhivach.org/thread/105148/
#6 https://arhivach.org/thread/109335/
#7 https://arhivach.org/thread/112797/
#8 https://arhivach.org/thread/114519/
#9 https://arhivach.org/thread/117109/
#10 https://arhivach.org/thread/120019/
#11 https://arhivach.org/thread/122683/
#12 https://arhivach.org/thread/124637/
#13 https://arhivach.org/thread/125532/
#14 https://arhivach.org/thread/127327/
#15 https://arhivach.org/thread/128133/
#16 https://arhivach.org/thread/134437/
#17 https://arhivach.org/thread/135285/
#18 https://arhivach.org/thread/139690/

Старые ненумерованные треды:
https://arhivach.org/thread/45477/
https://arhivach.org/thread/48611/
https://arhivach.org/thread/60085/
https://arhivach.org/thread/66322/
https://arhivach.org/thread/69413/
https://arhivach.org/thread/73221/
https://arhivach.org/thread/77999/
https://arhivach.org/thread/79194/
https://arhivach.org/thread/82038/
https://goo.gl/vvs9GP
https://goo.gl/ZnBsYt

Отдельные Qt-треды:
https://arhivach.org/thread/15387/
https://arhivach.org/thread/65590/
#3 #631747
Первыйнах.
#4 #631797

>Добавлена подборка проверочных вопросов для мамкиных language lawyer'ов.


Это и есть ссылка из

>инфа о том, что делать после прочтения материалов из шапки.


?
#5 #631824
>>631797
Ага.
#6 #631989
Cпасибо за cppquiz. До этого проходил на рузком quiz'e в котором ограничения.
#8 #632111
Наркоманские вопросы в квизе. Гоуту джва раза попался, охуеть вообще
13 Кб, 440x264
#9 #632183
>>632019
Бьерн, упрости язык для вкатываемости.
#10 #632186
#include <bjorn>

main {
bjorn::zdelotZaebis();
}
#11 #632188
>>632019

>Хочу осилить С++


>лень читать фак, многабукаф


/0
#12 #632277
Сап прогеры. Начал изучать плюсы и возник такой вопрос.
Какая разница между
void func(int *i){}

void func(int &i){}
#13 #632280
>>632277
в первой функции ты можешь проверить, что i != null
#14 #632281
>>632280
nullptr

фаст-фикс
#15 #632282
>>632280
Меня операторы интересуют, какая разница между * и &
#16 #632287
>>632282
int *; это указатель
int &; это ссылка
#17 #632288
>>632282
Указатели более гибкие, но и ебли больше. Ссылки более автоматизированы, и имеют высокоуровневые фичи наподобие rvalue-семантики.
#18 #632289
>>632287
>>632288
Буду очень признателен, если обьясните как их и в каком контексте и ситуации использовать
#19 #632293
>>632289
Константную ссылку, если параметр не изменятся (только входные данные). Указатель, если в параметре возвращается инфа (например, такое бывает, когда нужно вернуть больше одного объекта, и неудобно все пихать в возвращаемое значение).
#20 #632301
>>632289
Если твой параметр не может быть NULL/nullptr, то используй ссылку.
И даже констатную ссылку, если возможно.
Ссылка на численные типы бесполезна.
#21 #632306
>>632293
>>632301
Начинаю понимать
#22 #632307
>>632306
А ещё ссылку нельзя "переуказать" в отличие от указателя. Ссылка всегда разыменована
#23 #632313
>>632287

>int &; это ссылка


Это эффективный адрес, транслируется в lea. Совсем охуели крестобляди.
#24 #632314
>>632313
иди нахуй, штеудопидор
#25 #632341
>>632313
А здесь, дорогие друзья, мы с вами видим типичного представителя Sishkoblyad Vulgaris. На время уборки клетки его выпустили наружу. Агрессивные повадки и неумелые попытки применить свой опыт в незнакомом окружении - отличительная черта этих неуклюжих зверьков.
#26 #632345
https://wiki.qt.io/D-Pointer
Разбирался с этим туториалом.
Там где Q_D(Label) - схватил ошибку
"d_func was not declared in this scope"
Рили не гуглится, уже хуй знает что делать. У кого было?
#27 #632356
>>632345
ссылку перечитай
Q_DECLARE_PRIVATE, use it
#28 #632392
>>632356
Ебануться.
Вот откуда вы всё знаете ._.
#29 #632405
Ну шо за хрень, ребят

в .h

int switcher

в .cpp

(в конструкторе)
switcher = 0
(в функции)
switch (switcher)
{ case ... }

Запускаю.
free(): invalid pointer

Через раз - запускается.
#30 #632409
>>632405
Остальной код типа самим придумать?
Прикольная игра
#31 #632411
>>632409
да там вокруг этого switch`а все, один хер.

то ему, блять, int не нравится, то еще что.

а вот сейчас сюда написал - заработало, сука, как миленькое

возвращаюсь к вопросу - ну шо за хрень, ребят
#32 #632412
>>632411
Ну хуй знает. Invalid pointer?
#33 #632416
>>632405
Покажи полный код, а то так ничего понять нельзя.
#34 #632417
>>632412
Понял почему заработало. Я внезапно с отладки на выпуск перевел.

А вот обратно вернул - опять free(): invalid pointer

У меня указателей то нет тут, откуда он вообще это взял, ума не приложу
#35 #632419
>>632417
Ну твою мать, непонятно же.
Покажи код полностью.
#36 #632423
>>632419
НУ БЛЯ
ТАМ НеВаЖНО ЧТО ДАЛЬШЕ
ТАМ СВИЧИ)
Главное инвалид поинтер. Знаешь такую ошибку?
Ну free(). Free вызвал.
А потом заработало.
Что это могло быть?
#37 #632430
>>632419
http://pastebin.com/9KQHtX65

в заголовке switcher объявлен так:
private:
int switcher;
#38 #632431
>>632430
p.s. точку с запятой там проебал, не суть, в оригинале она есть
#39 #632434
>>632431
Дефалт где
#40 #632435
>>632434
шта?
#41 #632436
>>632434
а, тоже проебал.
в оригинале есть

я с микроволновки пишу прост
#42 #632440
>>632436
test1 выводится как и должно.
В чем твоя проблема, парень?
#43 #632442
>>632440
Я не знаю.
в ебучем ide есть отладка и выпуск
в выпуске все норм, в отладке шлет нахуй
#44 #632443
>>632442
Не думал еще МеНЬШЕ кода прислать?
#45 #632444
>>632443
Я же говорил - я с микроволновки
Может я вообще ASCII-кодами по цифроклаве каждый символ тут набираю
#46 #632446
>>632444
Значит не нужно тебе программирование.
У тебя ошибка вне теста, это очевидно
#47 #632447
>>632446
А что ж мне еще, с микроволновкой то на северном полюсе делать?
Яйца клал уже туда. И свои тоже.
Теперь вот решил делом заняться, а тут такая хрень.
#48 #632531
Есть примеры адекватных резюме по крестам?
#49 #632545
Придумайте задачу для опыта, если хочу вкатиться в кодинг на плюсах или сишке под linux или кроссплатформ?
#50 #632559
>>632531
тебе кого, джуна или синьора? или вакансию закрыть надо? тогда писечку показывай, HRша!

>>632545
напиши торрентокачалку с жабберклиентом
#51 #632573
>>632559
Джуна
#52 #632576
>>632545
Редактор сабов.
#53 #632668
>>632531
Есть.
#54 #632671
>>632668

>


Кидай же, комрад
#55 #632685
>>632671
Нет
#56 #632686
>>632685
Хуесос.
#57 #632781
>>632573
пиши вузик
пиши все олимпиадки которые были
пиши технологии которые знаешь
пиши ссылку на гитхаб с проектами

этого будет достаточно
#58 #632799
>>631744 (OP)

><устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004)


Котаны, насколько устарело? У меня издание 2006 года (4е издание). Легко читается. Есть ли смысл учить по этой книге а потом добрать знаний по новшествам либо лучше сразу брать новую кригу? эта в бумажном варианте, а читать с монитора ну совсем не круто
При этом паралельно смотрю разные видео на тытрубе, кстати.
#59 #632813
>>632799
Если ты еще его не знаешь - с++ лучше не учить.
sage #60 #632879
>>632188
перед тем как найти там что искал успел пару раз заблудиться и начать искать сначала
#61 #632888
>>632799

>издание 2006 года


это перевод такого года
#62 #632890
>>632813
ТЫ так написал что не совсем понятно- С++ лучше не учить или по этой книге лучше не учить? Знаю немного на уровне того что такое переменная, функции, массивы, циклы, немного о том как создавать классы, вообщем самые основы. Ну а по алгоритмам-рекурсия, динамика, сортировки, немного графы. Вообщем все то что можно взять из паскаля, лол.

Кстати, почему если с++ так охуенен, то в перепись-треде, большинство анонов с норм ЗП указали JS и PHP? С плюсами всего пара человек. Цель-хотя бы за пол года устроится на работу.
#63 #632892
>>632799
Читай всё норм. Она самая лёгкая из всех что я видел. Потом лимпмана прочитаешь.
#64 #632900
>>632890
C++ лучше вообще не учить. Работу с большой вероятностью на крестах ты не найдешь - нужны только спецы, джуны на крестах никому не нужны. При том, что "для себя" как язык - дерьмо и для любителей себе в ногу стрелять, плюс писать на них долго.

Существуют потому, что на них невъебенное количество уже написаного софта и библиотек, и все это не выкинуть.

Поскольку кресты невъебенно сложны и полностью их не знает наверное даже труп страуса - ты рискуешь угрохать хуеву тучу времени на их изучения и остаться нахуй никому не нужным.
#65 #632910
>>632900
А как же взяли на работу новичка за еду и всему научили?
#66 #632911
>>632900
А что лучше вместо крестов из серьёзного программирования? Сишарп, ява? Меня кресты привлекают тем, что они могут работать без дотнета/жабы. Можно запрограммировать даже небо, даже Аллаха!
#67 #632913
>>632911
Я не кодил ни на том, ни на этом. Лично я делю их так: сишарп фичастее и лучше как язык, а зато ява без анальной привязки к винде и может в ведроид.

Алсо, если че - яву можно и в бинарь компилить.

А вон на моей работе мы компилили скрипты на си в байткод, лол.
#68 #632914
>>632913
Плюс (минус) - у сишарпа анальный зоопарк из разных несовместимых версий дотнета.
#69 #632917
>>632799
Я бы на твоем месте выбрал из трех неустаревших книг, в которых есть последние стандарты. Книги для ньюфагов натурально взаимозаменяемы, а если в выбранной что-то непонятно, то можно моментально посмотреть конкретно это тему в джвух других. В таком режиме очень легко работать, в отличие от хайлевел книжек, которые обычно в единственном варианте, да еще и на ангельском.
#70 #632918
>>632913

>сишарп фичастее и лучше как язык


До сишарпа его задачу выполнял дэлфи. Сишарп убил дэлфи. Дотнет помог ему в этом. ЕМНИП дотнет и под дэлфи работал. Один детский язык занял место в песочнице другого детского языка. За это он не может быть фичастым и хорошим.
#71 #632919
>>632918
Ну пиши на делфи, кто тебе мешает?

А я сишарп не возьму чисто из-за привязки к винде.
#72 #632921
>>632917
Кстаи я нуфаг мечта лет через 30 работать в иностранном вузе и написать свою книгу. Накидайте мне за шёку книжки таких же энтузиастов чтобы я посмотрел какое это говно и отговорить.
51 Кб, 508x740
#73 #632927
>>632900

>нужны только спецы


Ну толсто же. Разница только в том, что можно на недельку нырнуть в какой-нибудь пистон и сразу бежать на собеседование, а с крестами придется поработать. Это не запредельно сложно, если у тебя больше 90 пунктов айсикью.

>Работу с большой вероятностью на крестах ты не найдешь


TIOBE и агрегаторы вакансий а также мой личный опыт с тобой не согласны. В том же гейдеве полно вакансий, например. Другое дело, что требования там выше, чем для крудошлепов, отсюда кукареки про НИПОРАБОТАТЬ.

>Существуют потому, что на них невъебенное количество уже написаного софта и библиотек


Только одна из причин. Когда-то на фортране было дохуя софта и библиотек, но он успешно вытеснился. Верить, что язык без кучи объективных преимуществ находится в топе только из-за легаси, по меньшей мере наивно.
#74 #632930
>>632913

>Я не кодил ни на том, ни на этом


Ну ты охуительный критик, чего уж там.
#75 #632932
>>632930
Ну конкретнее - пиздуй в тред жабы и сишарпа, и там спрашивай, что лучше.
#76 #632933
>>632927
Я бы хотел в гейдев
wannable_серьёзный_программист
#77 #632936
>>632927

>крудошлепов


Лол ниразу не слылаш такое слово и не могу понять что оно означает. Кого это ты так назвал? Неосиляторов?
#78 #632942
>>632932
Однажды путник увидел в стороне от дороги, по которой он шел, двух ожесточенно спорящих людей. Заинтересовавшись и подойдя поближе, он услышал, что они спорят о том, что лучше употреблять на завтрак: говно или мочу. Когда спорщики утомились и на минуту замолчали, путник горячо обратился к ним:
- Добрые люди! Почему вы ограничиваете выбор пищи столь неприятными на вкус блюдами? Разве не лучше завтракать пшеничной лепешкой и бутылкой вина?
- Говна поешь! - воскликнул один из спорщиков и метнул в путника куском засохшего навоза. Второй спорщик расстегнул штаны и помочился на путника.
#80 #632977
>>632781

>ссылку на гитхуб


Лол, как-то в самом пдф с резюме это будет уж совсем убого выглядеть.
#81 #632979
>>632977
Такой отсылаешь pdf - а там не стоит доб ридера и его в корзину.
#82 #632981
>>632979
Ахахах_)
Два чаю, бротиш
#83 #632983
>>632979
Зато в следующий раз будет в тхт писать и ссылку на гитхаб туда положит.
#84 #632984
>>632983

>2016


>верить в существование блокнота

#85 #632985
>>632983
Так он же не узнает об этом - ему перезвонят.
#86 #632986
Эээ.... Я не понял, я за интернеты плачу, чтобы вы тут меня обсирали что ли?
#87 #632987
>>632986
Покажи кто обсирает. Пока не заметил срача.
#88 #632988
>>632987
Ну вот эти, они специально вот с меня потешаются!
#89 #632989
>>632988
Это они не с тебя потешаются, а вместе с тобой. Продолжай платить за интернет.
Твой провайдер
#90 #633052
>>632927
Ох. Ты меня успокоил. Потому что мне нравится учить С++, ве логично и понятно, а тот кун немного напряг отсутствием работы.
#91 #633060
>>633052

>ве логично и понятно


До тех пор, пока до писания на нём не дошёл. Потом ещё полюбишь. И игрища с указателями/ссылками/константами полюбишь, и прочую уб-хуиту вроде негарантированного порядка выполнения аргументов.
#92 #633067

>Программист-разработчик C/С++


>Наши ожидания:


>Языки программирования и библиотеки: C, C++, Borland C++ Builder (VCL), С#, Visual Basic, Pascal, Microsoft Visual Studio 6, Microsoft Visual Studio 2005, Boland Builder 6, SQL, Java, Eclipse, Microsoft Office, Novell Netware; .Net ; gcc, make, shell script;

#93 #633071
>>633060
Поясни, если шаришь, какой уровень должен быть? Что я должен уметь написать? Именно пример задания. Смутно понимаю что на практике должен уметь джуниор ну или хоть стажер.
#94 #633088
>>633071
Пиши справочник телефонный или эмулятор файловой системы. Обращай внимание на аккуратность кода, стиль, структуру, тесты. Помни золотое правило: "твой код будет поддерживать маньяк садист, который знает где ты живёшь".
Поищи тестовые задания разных компаний. Порешай задачи с hackerrank и codility.
#95 #633093
>>633060
Signed integer overflow, motherfucker
#96 #633095
>>632183
Чет он поправился, если это он, конечно.
#97 #633097
>>632910
Вмм2007
#98 #633099
>>632933
Гейммейкер скачал уже, погромист?
#99 #633104
>>633097
Пиздишь. В этом году взяли двух интернов. Один туповат, через 4 месяца нахуй послали. Второй годный и скоро джуном станет
#100 #633106
>>633088

>поддерживать


использовать
#101 #633136
>>633104
Поясни за интернов?
Скоро практика, летом если быть точнее. Вот и думаю, сейчас ли пытаться встрять джуном, или подождать произв. практики и разослать резюме по компаниям, где есть возможность прохождения практики.
Сложный выбор .-.
#102 #633164
>>633067
ООО НИИ Рога и копыта?
#103 #633165
>>633067
Хуйня.
Классика - вот это вот все без упоминания крестов, и в конце
Желание работать на джаве
Тешу себя мыслью что это просто ебанутые эйчары
#104 #633175
>>633136
Встрявай сразу. Так и пиши - молодой толковый, возьмите интерном. но лучше через преподов вкатываться. Ещё всякие "школы/университеты" в конторах, где можно выделиться и попасть в компанию
#105 #633211
>>633099
Я бы хотел пойти в графику, так что нет, гейммейкера не скачал.
Если с гейдевом не получится, я бы хотел работать в прикладной отрасли, чтобы видеть результат своей работы, а если хватит мозгов, то можно бы и в написание прошивок, железяки мне тоже нравятся.
#106 #633267
А кто-то с qml работал? Не знаю, где еще об этом спросить, в js-треде явно никто не знает о нём.
#107 #633273
>>633267
Чо там работать-то? Проблематично было года 2 назад, когда даже привязка цпп бэкэнда не особо документирована была.
#108 #633276
>>633273

Ну у меня есть проблемы с TableView. Я написал rowdelegate для него, но не могу сделать так, чтобы между колонками была линия черная. Костылил через rectangle черного цвета после самой ячейки для headerdelegate, оно работает. А для row нет.

Вот линк -- http://pastebin.com/R1HfQ2ja
#109 #633277
>>633273

Небольшой фикс - http://pastebin.com/8VW5AJea
#110 #633339
>>633267
Я работал, спрашивай.
#111 #633492
>>633339

Я спросил. Вот >>633276
#112 #633553
с Ардуиной реально хотя бы вьехать и начать писать работающий говнокод под конкретные задачи?
Если да - реально ли перейти с Ардуиновских "крестов" на настоящие?
#113 #633557
>>633553
А нахрен тебе ардуина?

Алсо на моей работке прошлой (текущей нет, дома сычую) мы делали так - паяли контроллеры на базе stm32. Под него была прошивка на крестах, нативная ("Операционка"). И был самописный компилятор своего диалекта сишки в байткод. Сабжевый байткод загружался в контроллер по USB - и там исполнялся операционкой и управлял разными аггрегатами. Получалось мегагодно. Несмотря на то, что контроллеры те были говно в плане надежности (2/3 модулей выбрасывали/перепаивали, платы тоже отбраковывались) - схема такая охуенно удобная и пиздатая. Байткод тот может имполняться или виртуалкой на компе (когда не контроллеры, а промышленный комп какой-то йобой рулит), или как связка планшет на ведроиде/комп на винде/линупсе/ одноплатник для интерфейса оператора и контроллер для управления оборудованием.

Вот купил stm32f4 дискавери и хочу написать все свое, ибо у меня было много претензий.
#114 #633560
>>633557

>байткод


джава штоле?
#115 #633563
Програмач, пару лет назад довольно плотно изучал кресты читал Шилдта ( Базовый курс какой-то - 400 стр книга, еще книга этого же чувака Справочник по С/С++ - на 2013г это было последним изданием) и Дейтелов (где с самого начала идут классы). Вроде бы все зыбысы. Изучал ссылки, указатели, массивы, наследование, работу с файлами и т.д. Вообщем, на уровне универских лаб по ПЯВУ знаю норм(которые сдал без особых проблем). Но, блджад, лабы это ведь не все фишки, которые используются в книгах. Где применять всякие виртуальные функции, шаблоны классов etc.?

Вообщем, посоветуйте годных книг (больше 700-800 стр. - нахуй такие книги) с короткими и строгими формулировками как у того же Шилдта и задачников, где можно все от и до опробовать, а то как-то прочитал и забыл к херам, что прочитал, ибо не применял.
#116 #633566
>>633560
Нет, свой байткод. У кодера, с которым работал - была голубая мечта использовать таки джабный байткод, а не свой.

Я вот тоже хочу с ним разобраться и компилить таки в джабный. А так - простенькая виртуальная машина, все операции - на стеке. Суть байткода - свой диалект сишки был запилен для кооперативной многозадачности, чтобы не ебаться с синхронизацией и прочей еботой (еще когда контроллеров не было и сабж выполнялся на ПК). Там просто есть CreateTask, а в функциях которые выполняются надо делать Wait() - передать управление следующей задаче. Ну и обязательно эту еботу во всех циклах.
#117 #633569
>>633566
ладно жабный, но lua / squirrel?
#118 #633570
>>633569
НЕХ, которую никто не знает. Это была работа а не джаст фор лулз, главное - слепить по быстрому и чтобы работало, как оно будет работать - никого не ебет.

Мой коллега бывший и словей таких не знает. Он железячник и ненавидит паскаль и сишник, юзает кресты и Qt в режиме "си с классами" и ненавидит все эти жабоскрипты и лямбды с автоматическим выведением типов.
#119 #633576
>>633553
Ардуиновские кресты это фактически ядро обычных крестов, без стандартной библиотеки и с несколькими ардуиновскими макросами. Из core возможностей крестов не работают емнип только исключения (их не поддерживает ARM по-моему). В остальном там все как обычно, конпелируется clang'ом.
#120 #633577
>>633557
Небось это тормозило безбожно и жрало память на поддержку окружения?
#121 #633582
>>633577
Эм - нет? А с чего ему вдруг тормозить? Цель этой херни - управление оборудованием. Пиздец реакции рам не нужно, и большую часть времени вообще занимает ожидание. Например, ожидание, пока привод механизма доедет до датчика и его показания изменятся.

А суть в том, что механизмов там было дохрена и управлять ими нужно было параллельно (но со своими заебами и у нажном порядке, чтобы один за другой не зацепился).

На контроллер цепляется туева хуча модулей - для CAN, входов/выходов (дискретных или алалоговых), термопары, ШИМ и прочая блевота. Когда одного контроллера не хватало - цепляли несколько штук и объединяли их через CAN, главный общается с компом по USB и говорит остальным, чего им делать.
#122 #633586
>>633276
Можешь внятно объяснить, чего ты пытаешься добиться?
#123 #633594
>>633175
Через преподов я только нахуй вкачусь
#124 #633597
>>633594
Господи, пиши какую-нибудь хуету для себя, в как скилл набьешь - укажи сцылки на битбукет, где на твои высеры посмотреть можно.
#125 #633598
>>633597
Чего такой агрессивный? Я так и делаю.
#126 #633601
>>633598
Да где же я агрессивный? Я спокоен и умиротворен.
#127 #633602
>>633601

>ХОСПАДИИИИ ХУЕТУ ВЫСЕР ХУЙ ХУЙ ХУЙ ЖОПА

#128 #633603
>>633602
Издержки сосача, увы.
#129 #633621
>>633582
Тогда заебись, да.
#130 #633694
Почему по крестам работы почти нет, хотя именно на крестах сделано 95% годного софта?

Почему в корпоративном секторе все пишут на жаве и сишарпе с их убогими виртуалбоксами и калечной производительностью?

Почему бэкенд С++ фреймворки не популярны? В теории именно плюсы могли бы дать серверам максимальные возможности и лучшую производительность.
85 Кб, 732x715
#131 #633697
>>633694

>по крестам работы почти нет


0/10
#132 #633698
>>633694

>работы нет


Только в нащих с тобой мухосрансках, к сожалению.
#133 #633699
>>633697
Ты случайно не из Днепропетровска?
#134 #633700
>>633699
ніт
Харьков
#135 #633701
>>633694

>Почему по крестам работы почти нет, хотя именно на крестах сделано 95% годного софта?


А ты платишь за этот софт? На крестах по массе есть только один вид софта, за который платят - игры. Вот в геймдеве кресты пока и остались еще.

>Почему в корпоративном секторе все пишут на жаве и сишарпе с их убогими виртуалбоксами и калечной производительностью?


А ты мерял их производительностью? Часто скорость написания важнее. Лучше в 2-3 раза быстрее написать, чем оно будет на 50% быстрее работать.

>В теории именно плюсы могли бы дать серверам максимальные возможности и лучшую производительность.


У них сейчас нет проблем с возможностями и производительностью.
#136 #633703
>>633701
То чувство, когда непонятно - троллит или всерьез говорит.
В любом случае, кросавчик
#137 #633704
поцоны, а есть какой космический стартап с плюсами? Элона Маска не предлагать
#138 #633705
>>633704
Зачем тебе стартап с плюсами? Плюсы - говно, их нужно знать чтобы текущие проекты, уже написаные, поддерживать.

А новые на них писать - мазохистом надо быть.
#139 #633707
>>633705
тролль уходи, еды здесь нет
#140 #633708
>>633707
Я не тролль.
#141 #633812
>>633694
Плюсы и на практике экономят гуглу с фейсбукрм сотни милионов долларов, только это немного другой уровень.
#142 #633845
Я вообще поражаюсь тем, кто кричит что на плюсах работы нет.
Да один блумберг столько вакансий даёт, что всем обитателям этой клоаки хватит. Но вот мозгов у обитателей не хватит для бб.
Откройте сайт вакансий европейский или американский. Там сотни вакансий в разных сферах.

А в России кризис, людей увольняют. Много регуляр девелоперов в поисках работы. Они сожрут остаток рынка.

Так что, корзинусы, бегите учиться в европу. В России программисты скоро станут не нужны.
#143 #633903
>>633211
Пилю прошивки, на графенописателей смотрю как на мудрецов. Каждый со своей колокольни
#144 #633907
>>632913

> А вон на моей работе мы компилили скрипты на си в байткод, лол.


Ловите наркомана!
#145 #633914
>>633566
Есть реализации JVM для контроллеров, не выдумывай велосипед.
#146 #633949
>>633914
Пил тут как-то год назад с программистом, пишущим никзкоуровневый Java-код для JVM, тарахтящей на симке.
>>633845
На линкдине 80% ейчаров хотят дегри в КС + волонтёрский опыт. А у меня такого нету, например. Вообще вышки нету, вакансии замотивировали наконец получить . Ну и такое же говно желают типа bash, python, haskell, ГЛУБОКОЕ ПОНИМАЕНИЕ АРХИТЕКТУРЫ *NIX. В общем не сказал бы что я им там сильно нужен.
#147 #633981
>>633705
Неосилятор опять бунтует, лол.
#148 #633982
>>633704
Эта борда, например, на крестах. Видишь баннер сверху? Легким движением руки Абу за несколько дней собрал со школьников овер100к. Чем не стартап?
#149 #634024
как вы изучали boost ? На русском только книга по графам.
#150 #634053
>>633949

> haskell bash


> unix


В чем проблема? Ебать ты конченный.
#151 #634056
Здравствуйте, господа! Что скажете насчёт C++ Builder 10 от embarcadero? Пока учусь (в университете) писать в стареньком С++ Builder 6, нравится, но начинаю думать о будущем.
#152 #634066
>>634024
На ангельском, как белые люди. По докам и исходникам, там все просто и понятно. Еще книжка Мукерджи в шапке годная.
>>634056
Качество уровня опенсорсных сред, но за деньги и с велосипедным компилятором. В 2016 году, с кучей современных бесплатных IDE, такое просто стыдно устанавливать. Это как написать на лбу, что ты только что выполз из дремучего университетского машзала, застрявшего в 90-х.
#153 #634073
>>634066
Ты кек чтоле? Там цланг.
>>634056
Он тебе пригодится только если для тебя программирование на тыканье формочек заканчивается.
В остальных ситуациях бери нативный для платформы конпелятор и visual studio для шинды и clion для остального (если не хочешь пиратить - можешь выслать им студенческий и пользоваться халявной лицензией).
#154 #634075
>>634066

>Это как написать на лбу, что ты только что выполз из дремучего университетского машзала, застрявшего в 90-х



Но я ещё оттуда не выползал, только планирую начинать свой путь. Знаю, есть миллион советов по поводу выбора среды, но стал глядеть именно на этот вариант, так как попросту привык к 6-му билдеру. Интересно всё-таки узнать, чем он конкретно плох (деньги ни при чём, естественно, ставиться всё будет нахаляву), ну и услышать очередной конкретный совет новичку (если не посыл).
#155 #634077
>>634075

>Интересно всё-таки узнать, чем он конкретно плох


Конкретно 6-й (и все, до использования clang как компилятора) - поддержка только древних стандартов, дерьмо вместо линковщика и потимизатора. Ужастный медленный дэльфи-рантайм.
#156 #634079
>>634077

>потимизатора


оптимизатора
#157 #634080
>>634073
Там не цланг, а цлангоподобный велосипед собственного производства, если верить их сайту. Сказано "в 10 версии улучшена поддержка clang", то есть он предоставляется чисто как дополнительная фича. А с эти так - либо ты можешь писать продакшен-код, либо это игрушка наподобие того, что сейчас в студии прикрутили. Без исключений и всей хуйни.
#158 #634082
>>634077
А еще там даже если предположить прикрученный нормальный компилятор, хуевое автодополнение. Ты, блядь, посмотри на скрины и сравни со студией. Разница как между авиалайнером и трехколесным велосипедом же.
#159 #634086
>>634082
Вообще никогда не пользовался автодополнением. Люблю сам все скобочки вводить, да и мелочи это уже.
>>634077
А конкретно 10й? Тоже безнадёжно отстает в стандартах?
#160 #634091
>>633982
борду вообще похуй на чем писать
ее даже купить можно
проблема в раскрутке, а это школомаркетинг а не быдлокодинг
#161 #634098
>>634086

>Вообще никогда не пользовался автодополнением. Люблю сам все скобочки вводить, да и мелочи это уже.


Эээ, ты о чём вообще? Какие скобочки?
https://www.google.ru/search?q=visual+studio+autocomplete&newwindow=1&client=ubuntu&hs=FRP&channel=fs&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiNqceDk8XKAhUBj3IKHSggAGAQ_AUIBygB&biw=1920&bih=960
-
Что-то сложнее лабы1, где нужно только знание синтаксиса, без таких вещей писать трудновато.

>А конкретно 10й? Тоже безнадёжно отстает в стандартах?


Они и в 10-й своего зверя намутить сумели.
#162 #634109
>>634098
Хорошо, я полностью верю тебе касаемо организации удобства среды, всяких автодополнений и прочих. Я хочу вот какую вещь понять, чтобы разубедиться (и поставить видимо Visual): в каких аспектах использования современных средств языка и современных методов разработки одна среда может превзойти ту, о которой я завел речь? Или билдер плох и отвратителен по своей сути, изначально и навсегда имеет "велосипедный" компилятор и плохой линкер?
#163 #634120
>>634109
Тут тебе весь список его красот никто не скажет - им банально никто не пользуется сейчас.

Из точно известного:
- С++14 не поддерживается (вообще);
- исключения не поддерживаются как выше писали;
- рантайм и всё остальное там так и осталось дельфевым - ошибки тупо из-за разной модели памяти и уродства реализации тебя приветствуют;
- точно помню, что в 6-м билдере были свои нестандартизированные расширения плюсов;
- собственное соглашение о вызове и прочие плюшки их велосипедов - пользоваться сторонними библиотеками будет оч приятно, я тебе это гарантирую.
#164 #634136
>>634120
Хорошо, большое спасибо тебе.
Ставлю, видимо, visual.

И ещё. Всякие срачи на тему того, что в Builder'e VCL, а он так нужен - это что-то из дремучего университетского машзала, застрявшего в 90х?
#165 #634159
>>634109
Ты слышал про первородный грех? Вот в применении к IDE Builder это, блядь, Каин. Он настолько омерзителен и порочен по своей сути, изначально, что в свое время многие именно из-за него потеряли доверие к IDE и ушли на vim/emacs.
#166 #634169
>>633701

>А ты платишь за этот софт?


За Windows и за Kaspersky плачу, да.

>А ты мерял их производительностью?


Вообще-то да.
Сейчас дизайн алгоритмов изучаю, пишу наибыстрейшие возможные алгоритмы для типовых задач. На С# низкоуровневые алгоритмы работают в среднем в 4-8 раз медленнее, чем на С++.

>У них сейчас нет проблем с возможностями и производительностью.


Как сказать. Может быть, если бы Макака писал на С++, он бы сейчас собирал донатом не 100к рублей, а всего 50к.
#167 #634176
>>634169

>На С# низкоуровневые алгоритмы работают в среднем в 4-8 раз медленнее, чем на С++.


Вообще ни о чем не говорит. Можно намеренно или ненамеренно всрать код на одном языке, не учтя его особенности
#168 #634181
>>634176
Утверждение о том, что управляемый код в среднем медленнее нативного, настолько очевидно, что я даже не знаю, что тебе ответить, лол.
#169 #634227
>>634181
На бенчмарках - да.
А ИРЛ - звучит как утверждение, что ассемблер быстрее чем с++. В теории да, а на практике компиляторы куда умнее погромистов.
#170 #634240
>>634176

>ненамеренно всрать код на одном языке, не учтя его особенности


Я не знаю С++ даже на базовом уровне, компилирую с трудом.
C# знаю на продвинутом уровне. Также знаю множество особенностей, относящихся к его быстродействию, например:
- Цикл foreach работает в несколько раз медленнее цикла for в большинстве ситуаций;
- Целочисленные типы малой размерности (byte, short) при любых операциях автоматически приводятся к Int32 , а потом - обратно. Поэтому, эти типы всегда работают медленнее, чем Int32 и они полностью бесполезны.

Можно ли такие вещи называть особенностями? По-моему это никакие не особенности, и просто недоработки. Кстати, многие из них слабо или вообще никак не документированы, единственный способ их выявить - собственноручно писать бенчмарки. Соответственно, многие C# разработчики про эти "особенности" не знают.

В С++ есть подобные дыры в ядре языка?
#171 #634255
>>634227

>А ИРЛ - звучит как утверждение, что ассемблер быстрее чем с++. В теории да, а на практике компиляторы куда умнее погромистов.


Ну ладно, видимо ты плохо понимаешь, о чем говоришь, не буду спорить.
#172 #634257
>>634255
А ты кто такой собсно, решать кто тут чего понимать? Неужели Торвальдс собственной персоной вкатился?
#173 #634275
>>633694

>Почему по крестам работы почти нет, хотя именно на крестах сделано 95% годного софта?


Потому что С++ аутистам 20 лет назад внушили, что швабода и опенсорс - это хорошо, а проприетарный софт и деньги - это плохо. И с тех пор они пишут код забесплатно.

Так исторически сложилось.
#174 #634278
>>634240

>Целочисленные типы


В плюсах (и вообще всех нативных языках) здеся все повеселее - их размер вообще зависит от платформы. Собственно, отсюда проблема этих типов у тебя в шарпе и исходит.

>Цикл foreach


Они в С++ бесплатны. Как и вообще почти все.

Бывают разве что непонятки например в разных реализациях STL как правило, из-за незадокументированности чего либо, как недавно в GNU реализации стандартной библиотеки размер листа просчитывался при каждом вызове size() вместо простого счетчика при добавлении.

Раньше еще модно было умножать побитовыми сдвигами (сейчас компиляторы сами и не такое делают) и исключения считались медленным говном (ныне эпоха итаниумовского аби и исключения уже тоже стали "зеро кост").
#175 #634285
>>634240

> при любых операциях автоматически приводятся к Int32 , а потом - обратно


В плюсах тоже такое, это следствие из архитектуры процессора. Другие типы не то чтобы бесполезны - если тебе нужен массив с ебенячим количеством элементов, то инты могут просто не влезть. Но просто так использовать что-то меньше интов (для целочисельных типов) конечно не стоит.
#176 #634292
>>634240
В крестах real всегда приводится к double.
#177 #634307
>>634292
Тип которого нету приводится к типу, который есть?
Я вкурсе только того, что типы без окончания дробной части на .xxxf автоматически приводятся к double.
#178 #634318
>>634292
Тогда почему в пакет SIMD влезает вдвое больше флоатов, чем даблов?
#179 #634546
Пацаны, что мне такое написать на крестах, чтобы задрочить многопоточность?
#180 #634550
>>634546
Присоединюсь к вопросу
#181 #634554
>>634292
В крестах нет real
#182 #634555
>>634546
Многопоточнозадрочительную программу.
#183 #634575
>>634240

>В С++ есть подобные дыры в ядре языка


Главная дыра - указатели и работа с памятью.
Ну и еще немножко счастья с виртуальными методами и множественным наследованием. Это то, что все вменяемые полюсовики знают и рассказывают друг другу на собеседованиях.
#184 #634585
>>634546
Перемножение матриц 10к на 10к
#185 #634586
>>634585
благодарю
#186 #634980
Нужно написать сервер, способный принять на 1 порт ~100 пакетов/сек(грубо говоря есть 3000 клиентов, каждый клиент отправляет пакет на сервер каждые 30 сек). Пакеты где-то по 100-200 байт.
С сетями особо не работал, сервер буду писать однозначно с использованием boost.asio.

Мои мысли:
С TCP сервер может просто захлебнуться(это моё предположение).
С UDP придётся ебаться дико(битые пакеты, дубли, очерёдность), ибо мне нужно знать дошёл ли пакет на сервер.

Рассказывайте, как проще всего реализовать.
#187 #634993
>>634980
QTcpServer
#188 #634997
>>634980

>способный принять на 1 порт ~100 пакетов/сек


На локалхосте это вообще не проблема. В реальной ситуации вся производительность сводится к минимизации нагрузки на сервер - расходы на транспортировку данных и ширина каналов нивелирует все.

В любом случае лучше бери TCP. Скорость UDP не окупит твоих велосипедных попыток скорректировать данные.

>С сетями особо не работал, сервер буду писать однозначно с использованием boost.asio.


Самая перенагруженная и медленная сетевая библиотека. Если что-то упадет - энжой юр дебаггинг, оч приятно.
Твоя задача решается в 100 строк кода на сокетах Беркли.
#189 #634998
>>634993
Андрюш, съеби к своим чулочникам.
#190 #635003
>>634993
если проект себя зарекомендует и придётся брать лицу - отдавать 350$ в месяц за QT, нннуууу таккоеее

>>634997
Спасибо.
#191 #635033
Я вам покушать новую IDE принёс

https://github.com/cppit/jucipp/blob/master/README.md
#192 #635068
>>635033
У Шпака точно такая же куртка CodeLite точно такие же скриншоты. Меня терзают смутные сомнения.
#193 #635095
>>635003
Тут такое дело - Qt какбе бесплатна.
#194 #635193
аноны помогите разобраться, нужно найти левый и правый крайние отрицательные элементы в массиве, вот минимальный элемент находит, а максимальный отрицательный нихуя, или выходит 0 или положительное число.
Вот код http://pastebin.com/18yUkcp4 .
#195 #635209
>>635193

>а максимальный отрицательный нихуя


Ты уж определись, тебе максимальный отрицательный, или

>левый и правый крайние отрицательные элементы в массиве

#196 #635217
>>635209
facepalm Вот я аутист, то что в задании конечно.
#197 #635218
>>635217
Ну так делай while перебирая с начала и с конца, как только найдешь отрицательный - дропай.
#198 #635279
>>635218
Блять, анон дай бох тебе здоровья выручил!
#199 #635515
Аноны, нужно реализовать интерфейс Drag-and-Drop. Конкретно задача - создать редактор штрифтов TrueType (ну это такие буквы, которые для экономии частями хранятся). Естественно это надо возится с Form Application вижуала. В какую сторону для этого курить? Что навернуть? MDSN не предлагать.
#200 #635524
>>635515

> Form Application вижуала


> Что навернуть?


Сам поймёшь, или подсказать?
#201 #635526
>>635524
Подсказать.

>MDSN не предлагать.

#202 #635563
>>635095
Как бе там LGPL - халявно для опенсорс проектов.
>>635515
Нету для плюсов такой хуйни. Для шарпа мб есть, но не для плюсов.
#203 #635578
>>635563
А для проприетарщины нужно просто линковаться с Qt динамически
#204 #635647
>>635563

>Как бе там LGPL - халявно для опенсорс проектов.


Лол, а может быть ты все таки прочитаешь, что такое LGPL?

Даю подсказку - lgpl разрешено линковать к проприетарным прогам динамической. В чем её запрет - нельзя использовать производные работы. Короче говоря ты не можешь внести изменения в сам Qt и не открыть, назвав своим продуктом.
#205 #635662
Окей дауны.
Поясните тогда, как будет работать lgpl в его случае - закрытый коммерческий сервер.
#206 #635664
>>635662
Никак. Поскольку сервер ты распространять не будешь - вообще не парься. А если будешь распространять - то по lgpl ты обязан линковаться динамически.
#207 #635666
#208 #635667
>>635664
Ну а если действия происходят в цивилизованной части мира или к тебе придут дяди с проверкой?
#209 #635668
>>635667
тоже самое
#210 #635669
>>635667
Пиздец, типичная пидорашка, вместо знания знать ничего не знает, но зато уже трясется от проверок непонятного чего. (L)GPL требует открывать исходный код при дистрибуции. Нет дистрибуции - нет исходников.
#211 #635674
>>635667
Блять ну не тупи же ты!
Ты обязан открыть саму Qt, если внёс в неё изменения. А производные продукты, которые её используют - ты открывать не обязан.

LGPL это считай такой аналог BSD.
#212 #635716
>>635563
А чому? Оно же жрет кресты. Чего мне теперь, на шарп пересаживаться, что ли?
#213 #635733
>>635716
Нету там ни редакторов, ни средств создания гуя (кроме системного - винапи, но это совсем мазохизм). Мб есть какая нибудь обвязка крестов к дотнету.
#214 #635778
>>635716
Qt + visual studio может в визуальное редактирование.
#215 #635799
>>635778
Вроде в qml умеет только Qt Cretor.
#216 #635801
>>635799
qml это текстовый формат (а графдизайнер кумэлэ просто говнище)
#217 #635805
>>635801
Ну даже если и дизайнером не пользоваться - надо уметь в нормальное автодополнение и интеграцию.

Кроме креатора, это кто то умеет?
#218 #635819
>>635733
>>635805
В общем, понятно. Последний вопрос - а как вообще приложения на крестах пишут тогда? То есть для UI мне надо ещё какой-нибудь шарп знать. Так штоле?
#219 #635834
>>635819
Для UI лучше всего qml.
#220 #635835
>>635834
Окай, спасибо.
#221 #635891
>>635834
Кстати, еще не копал. Обещают сделать компилятор для qml, кмк, это будет просто бомба.
#222 #635899
>>635891
я могу сделать хуиту а-ля qml, но на чистых плюсах с boost::proto
#223 #635934
>>635891
Ващет компилятор для qml давно уже есть.
Собсно, он входит в коммерческую версию Qt.

>>635899
Суть qml - писать гуй проще и не ебаться. Ты, коль желаешь, можешь и с бустом поебаться.
#224 #636000
>>635819
Посмотри wxWidgets
Это средство создания гуя на крестах, пистоне и чём-то ещё. Кросплатформенный к иому же, и где-то формошлёпалка была.
#225 #636015
>>636000
Соси хуй пердолик. Кутя милая и я её на твою гейскую деревянную хуиту не променяю.
#226 #636020
>>636015
Причём тут пердолик? Вх и на венде канают
#227 #636023
>>636000
Еще один. В беседу достопочтенных господ о фреймворке с декларативным описанием гуя принес парашу с `Button1 = TButton.Create(owner)`
#228 #636050
А что нибудь из кросплатформенного гуя без ебической кучи зависимостей по 20-30мб есть?
#229 #636052
>>636050
И да: все советчики fltk сосут члены со своими мамашами.
#230 #636060
>>636050
Lazarus.
#231 #636063
>>636060

>Lazarus


>нормальное

#232 #636064
>>636050
каково там в 2001ом?
#233 #636065
>>636063
Нормального в требованиях не было. Было "маленькое и кроссплатворменное без кучи зависимостей"
#234 #636075
>>636065
Под C++ биндинги есть? :D
>>636064
Норм. Меня вот серьёзно напрягает, что я пишу на C++ и у меня хэловорды по 30 мб в оперативке занимают.
#235 #636089
>>636075

>Под C++ биндинги есть? :D


Это паскаль тащемто
#236 #636100
>>636089
Я потому и спрашивал про биндинги, тащемта. VCL к плюсам как-то прикручивали жеж.
#237 #636106
>>636050
wxwidgets?
197 Кб, 1124x1024
#238 #636113
Господа, порекомендуйте профайлер памяти для проекта. Желательно свободный для коммерческого использования, и чтоб под шиндошсом работало. Мне не нужны проверки на утечки памяти (Весь проект на автопоинтерах), достаточно просто посмотреть какой компонент софта при работе потребляет сколько памяти.

Вообще есть идея изменить автопоинтер чтоб он при создании/уничтожении логгировал что-то, а потом скрипт написать для анализа этих логов. Но как в таком случае я получу имя функции/метода/неймспейса из которого память выделяли? Да и велосипедненько это.
#239 #636114
>>636113
Да и опять же, по самому поинтеру мы не поймём сколько памяти выделили.
#240 #636116
>>636113

>Мне не нужны проверки на утечки памяти


>Весь проект на автопоинтерах


does not compute
#241 #636117
>>636116
Ну утечек памяти нет, всё на автопоинтерах же.
Мне нужно узнать какой компонент сколько памяти заюзал при работе.
#242 #636120
>>636113
Вообще любой из первых строк выдачи гугла, лол.>>636113

>Вообще есть идея изменить автопоинтер чтоб он при создании/уничтожении логгировал что-то


Есть вообще очевидный valgrind для таких велосипедистов как ты.
#243 #636127
>>636120
Но он под шиндошсом же работать не будет.
#244 #636138
>>636113
VLD. Работает везде, прикручивается за минуту
#245 #636141
>>636138
Мимо, он для утечек
#246 #636150
>>636138
Хоть я и форсер vld, справедливости ради хочу заметить, что он не работает на никсах. Надстройка над чисто вендовой debug crt.
#247 #636153
>>636052
>>636023

> декларативным описанием


Я не понял, опять штоле у функциональных петухов тред прохудился? Пиздуйте свои топосы дрочить, дайте взрослым дядям поговорить.
#248 #636156
>>636117
Прикрути кастомный аллокатор типа dmalloc или jmalloc
#249 #636157
>>636113
В студии прекрасный встроенный профайлер с графиками и прочими вкусностями. И еще можно делать автоматические оптимизации по результатам профилирования.

Недостаток - для проекта из 10к строк на выходе профилировщика получается уже полугиговый файл. Поэтому неудобно после каждой сборки профилировать.
#250 #636160
>>636153
Каких функциональных, крудошлёп ты лысеющий?
>>636156
Реализация на пильйон:
#define malloc(x) malloc(x); printf("аллокатед %ыыы бутес", x);
#251 #636164
Посоветуйте, аноны. Хочу вкатиться в Qt, кресты буду учить практически с ноля. Какую IDE устанавливать? Стоит начинать с Qt Creator или есть что более годное?
#252 #636171
>>636164
Ставь QTCreator.
#253 #636184
>>636164
Вкатывайся, дорогой, QTCreator, C++11 тебя ждут.
#254 #636188
>>636184
Причем не просто Qt Creator, а Qt SDK.
Иначе он еще будет тут ебать всем мозги, как компилятор подключать.
#255 #636201
>>636188
Вангую плптиновые вопросы по пунктам:
установил этот ваш куте ничего не запускается
как установить gcc под windows
как установить mingw под windows
установил этот ваш mingw ничего не запускается
как задать переменную среды
бля ну почему runtime error
как включить dwarf исключения
как переустановить mingw
#256 #636276
>>636188
>>636184
>>636201
Ненене антон, ты меня не так понял. Я скорее интересуюсь тем, что православнее - ставить криэйтор, studio, clion или что ещё. Или может рановато и мне нужно вкатываться в блокнот и gcc.exe?
#257 #636396
Ребята, есть Точка:
class Point
{
private:
int _x;
int _y;
public:
Point():_x(0),_y(0){}
Point(int a, int b):_x(a),_y(b){}

void set(int a, int b)
{
_x=a;
_y=b;
}
int getX()
{
return _x;
}
int getY()
{
return _y;
}
};
Нужен ли тут деструктор? Поясните за деструктор, когда и зачем он применяется?
#258 #636398
>>636396
а как ты думаешь? и почему?
#259 #636401
>>636396
Здесь деструктор будет создан компилятором, как конструктор копирования.
Гугли POD.
Деструктор нужен для кастомнрго разрушения объектов. Самое простое - освобождение ресурса: память, файл, коннект к базе. Но может быть и более сложная логика, хотя и не рекомендуется (читай про исключения).
#260 #636405
>>636396
А за _x и _y стоит убивать.
#261 #636408
>>636398
Думаю, что не нужен, так как нету динамического выделения памяти. Или нужен. Я не улавливаю сути.
#262 #636410
>>636405
Почему?
#263 #636411
>>636410
Обычно их везде бы назвали как mX/mY или m_x m_y.

От подчеркиваний блевать тянет.
#264 #636414
>>636408
По умолчанию, деструктор может только вызвать деструктор для членов класса (не всегда, читай про виртуальный деструктор) и чистит память самого объекта (только там где сам объект лежал). Все остальное надо делать руками
#265 #636415
>>636411
Понятно.
#266 #636416
>>636411
Это вопрос стиля. Где то принято с подчёркивания, где-то m_ или m или i.
#267 #636417
>>636415
Алсо вместо

>int getY()


нужно
int getY() const

Ну ты понел.
#268 #636419
>>636417
Да, спасибо.
#269 #636519
>>636410
Начальные подчеркивания зарезервированы для компилятора. Если хочешь их использовать, ставь в конце. x_ и y_.
#270 #636560
Чому на С++ так мало опенсорца? Если и есть, то только в качестве второго/третьего языка для всякой хуйни по мелочи.
Исключение - KDEProject и OpenCV и всякое фб/гуглоговно.
#271 #636562
Помогите тупому ньюфагу, токо начинаю вкатываться в плюсы с нуля. Кароч такая вот задача:
"Write a program that uses a loop to display the characters for each ASCII code 32 through 127. Display 16 characters on each line with one space between characters"
Как сделать только 16 цифр на 1 строке, а не 32 33 34 35...127, и как это все показать в ascii как вставлять эту хуиту из acii table?
Пока есть токо это
int val = 32;
while (val <= 127)
{
cout << val << " ";
val = val + 1;
}
#272 #636563
>>636519
Таки нет, зарезервированы двойные подчёркивания __, так же не рекомендуется использовать подчёркивание и прописную букву _A, _Bxx, а со строчными проблем быть не должно. Но смотрится по-уебански.
#273 #636564
>>636562
Джва счётчика, один для символа, другой для количества символов. условный оператор в начале блока цикла который напечатает "\n" при 17 символе и сбросит счётчик символов.
#274 #636566
>>636562
Когда выводишь val касти его к типу char. Следи сколько ты уже вывел символов на текущей строке, и когда наберется 16 то вставляй std::endl. Сделай счетчик, или, например, можно смотреть на остаток деления val на 16 (val % 16) и в зависимости от остатка вставлять конец строки. Можно два вложеных цикла сделать.
952 Кб, Webm
#275 #636569
>>636564
>>636566
Как следить, зачем следить, после чего вписывать <<endl
Я когда запускаю
int val = 32;
while (val <= 127)
{
cout << val << " ";
val = val + 1;
}
у меня просто хуярит с 32 до 127 сразу, что значит когда наберется?
#276 #636571
>>636569

>другой для количества символов


>условный оператор


>когда наберется 16

#277 #636572
>>636560

>Чому на С++ так мало опенсорца


Firefox, VirtualBox, LibReOffice, тонны его.
#278 #636577
>>636560
Ебать ты дебик.
https://github.com/trending?l=cpp
Проектов дохуя, только в основном все - ниебически большие, и ентрилевел там соответствующий хотя бы сделать работающий прототип на плюсах внезапно выше, чем на питонах/раби, вот мы и не видим еженедельно новых веб фреймворков.
#279 #636579
>>636572
Хромиум, почти все новые и старые компиляторы, игровые движки и куча прочей хуйни.
#280 #636582
>>636579

>компиляторы


Да, самое главное забыл. LLVM + Шlang.
#281 #636583
>>636577
Не обзывайся.
#282 #636839
Такой вопрос, ананы. Часто в вакансиях вижу что-то типа "умение программировать на С++ в среде UNIX/Linux" мб по-уебански как-то написал, ну ладно
Так вот че почитать, поделать для этого самого умения. Мб есть какие вводные в кернел программинг. (Это уже и для себя интересно, не вдаваясь, каэш в продакшн)
Или это вообще просто-напросто сводится к умению компилить из командной строки, установке пакетов, в общем к базовому/продвинутому пользованию терминала?
#283 #636850
>>636839
Кернел на крестах непопограмируешь. А вообще прочитай книжку по системному погромировпнию под линупс.
#284 #636860
>>636850
Возможно с кернелом я загнул, но что тогда подразумевается под знанием линупса? Минимальная системуха?
#285 #636867
>>636860
Думаю, что навыки системного программирования и подразумеваются.
#286 #636879
>>636860
Наверное нужно системное API, там POSIX например.
#287 #636898
>>636839
Перед тобой свежеустановленая убунта.
Напиши и скомпилируй хеловорлд и твою лаба2 на ней.
Элементарные знания командной строки, GCC/clang, git и тп.
#288 #636903
>>636898
Это требования к первокуру/школьнику
#289 #636905
>>636903
Это и есть "умение программировать в среде линукс".
#290 #636907
>>636905
Начальные.
#291 #636908
>>636905
Умение программировать хелловорлд?
Ты серьёзно считаешь, что они ищут это?
#292 #636915
>>636908
На джуна - это. На миддла - еще make, autotools, cmake, понятие ldconfig, grep/sed/awk и до бесконечности. Но это точно не про программирование ведра или что ты там себе выдумал.
#293 #636920
>>636560
Упоролся? Берешь линукс и ищешь пакеты, которые зависят от буста, qt, gtkmm и сотен других либ для плюсов.
51 Кб, 577x755
56 Кб, 638x717
#294 #636929
Анон, объясни, что за хуита происходит на рисунке? Почему последнее дерево не является кучей? Что там вообще демонстрируется, если в результате получается не куча?
#295 #636931
>>636929
Пиздец, почему там вообще дерево не перестраивается, а меняется только положение узла i? Нахуй такие иллюстрации нужны?
#296 #636933
>>636929

> последнее дерево не является кучей


Не соответсвует критерию кучи - каждый ребенок должен быть больше (или меньше, смотря какая куча) своего родителя.
#297 #636946
>>636933
Ну так я и говорю. Нахуя они в демонстрации построения кучи показывают дерево, которое в конце кучей не является?
#298 #636947
Пришлось все это говно руками на бумажке расписывать.
35 Кб, 209x300
#299 #636996
>>636839
Я однажды тем же вопросом задался. Поиом эту книгу нашёл. Файловый ввов-вывод, процессы, права пользователей, системные вызовы.
Почитай, интересно
sage #300 #636998
>>636996
И да, там в книге ещё про ведро рассказывается,это не надо.
#301 #637039
>>636946
Ну там дерево же вообще не изменяется. Наверное показана работа именно Bild-Heap (тоесть изменение индекса i), а Heapify нихуя не делает, тоесть дерево не изменяется, а только индекс скачет.
#302 #637046
>>636929
о, корбан
#303 #637232
Поясните, я тут начинаю вливаться в программирование на ++, такой вопрос.
В книге написано что если return в функции main будет -1, то программа должна выдать ошибку.
Но я делал -1 или вообще удалял ретурн, мне ничего не писало.
#304 #637237
>>637232
Это стандартное соглашение в командной строке - отрицательный результат программы трактуется как ошибка.
#305 #637243
>>637232
Удалил ретурн из main - автоматически вернуло 0, стандарт гарантирует. Написал -1 - вернуло -1, но твоя ось проигнорировала это.
#306 #637256
>>637232
Ничего она не должна. Это код выхода, который, если не равен нулю, говорит об аварийном завершении программы. Т.е. это ты должен его считать и уже сам делать выводы. Бывает очень полезным в скриптах, для остального есть логирование.
https://en.wikipedia.org/wiki/Exit_status
#307 #637278
>>637232

>В книге написано что если return в функции main будет -1, то программа должна выдать ошибку.


Точно, но наоборот.
#308 #637575
Где можно украсть книгу Степанова Elements of Programming?
http://demin.ws/blog/russian/2009/07/30/elements-of-programming/
37 Кб, 810x486
#310 #637807
Как с++прогеры поступают если надо работать с символами русского языка?
Тут проскакивала инфа что в qt нет таких проблем а я проверил есть.
#311 #637815
>>637807
Ты юзаешь стандартный std::string, хули ожидал-то? В QT тупо свой QString юникодовский.
#313 #637825
>>637818
Нет систем кроме винды?
#314 #637827
>>637818
Прыщи и юникод хранимый в std::srting

Давай ка мне теперь найди среднюю длину слова в строке из русских и англ слов :3
#315 #637829
>>637827
А, ну или не прыщи, а Windows и cp1251
#316 #637831
>>637825
>>637827
Я не прыщеблядь. А вам, раз уж вы прыщебляди, должно быть очевидно, что что-то не будет работать.
#317 #637835
>>637818

>А я что юзаю?


std::string

>В QT тупо свой QString юникодовский.


Ты не используешь библиотеку Qt, а просто используешь Qt Creator как я понял.
Вместо std::string используй QString и подключи Qt в .pro
#318 #637836
>>637835

>std::string


Вот и я о чём, почему у них реализация другая?
#319 #637839
>>637836
Потому что реализовали по-другому?
#320 #637840
>>637839
А как же стандарт?
#321 #637845
>>637840
пиздос
у нас в опенспейсе за такие вопросы убивают нахуй!
#322 #637846
>>637840
Стандарт в плюсах не сильно строгий же.
#323 #637852
>>637840
std::string базируется на char (байтовом)
Есть еще std::wstring, который базируется на wchar_t)
Хочешь юникода - используй wstring.
#324 #637855
>>637852
Хотя я что-то ошибся.
Почитал про wstring подробнее - говорят, что очень зависит от платформы и лучше не использоватью
#325 #637870
Анон, расскажи про состояние Qt в индустрии. Как оно там, не умирает? Можно погружаться? Вакансии не исчезнут с рынка труда, пока я более-менее разберусь?
#326 #637884
Блин, а мне то что делать? Изучать библиотеки qt?
#327 #637910
>>637855
Что мешает сделать basic_string <MyOwnYobaChar>?
#328 #637926
>>632186
#include <bjorn>

int
main {
Bitard ty{};
ty.sheka = bjorn::proveril();
}
#329 #637931
>>637926
return забыл и скобочки
#330 #638031
>>637852

> Хочешь юникода - используй wstring.


Хочешь юникода - используй utf8 в std::string. Вообще советую почитать http://utf8everywhere.org/ , там и про ситуацию с юникодом в крестах рассказано, и в STL и в Qt.
#331 #638040
Анончики, я новенький в плюсах. У меня такой вопрос. В классе в одном из методов мне нужно использовать константу. Я так понял значение константы хранится в бинарнике после линковки. Так вот, если я этот метод буду вызывать несколько раз, то у меня будет просто всё время браться значение из того места где хранятся константы. Я правильно понимаю? И как называется то место, где хранятся константы? В хипе вместе с программой?
#332 #638065
>>638040
Если просто const переменная, то в машинном коде она, как правило, станет обычной переменной если забыть про тонкости наподобие оптимизаций, связанных с read-only memory etc, разместится на стеке или в сегменте данных, как обычно, в общем. Т.е. константность это просто такое высокоуровневое средство для проверки при компиляции, что ты не накосячил.

constexpr же на этапе компиляции будет подставлена вместо всех упоминаний и зашита в код. Например, для constexpr int x = 1 что y+=x, что y+=1 превратятся во что-то с inc eax, ну ты понел. Никакой отдельной памяти для этих чисел не выделится, они будут прямо в машинных инструкциях.

Это как происходит на практике. В теории же стандарт вообще ничего не говорит о таких деталях, просто правила подобраны так, чтобы на обычных пекарнях удобно подставлять constexpr - для них запрещено взятие адреса и подобные палки в колеса подстановке. Но никто не мешает таки выделить для них память, если компилятор дохуя щедрый. Наоборот, до появления constexpr компиляторы видели, когда const допустимо подставлять с сохранением семантики - и делали это.
#333 #638069
>>638065
Спасибо за ответ.
#334 #638209
>>631744 (OP)
пиздец важный вопрос
сколько времени минимум понадобиться, что бы выучить кресты на достаточном для стажировки на джуна?
#335 #638213
>>638209
Что в твоем понятии "выучить кресты"?
#336 #638216
>>638209
год

мимоуебок
#337 #638258
>>638209
Иди на хуй, ты профнепригоден.
282 Кб, 626x662
#338 #638265
>>638209

>Времени минимум понадобиться


6 лет в вузе. 5 лет активной работы в опенсорсе.
Наличие своих проектов, которые нужны еще кому-то, кроме тебя, обязательно.
А еще ((SOLID&&OOP&&Patterns&&Algoritms)&&(Containers&&Pointers&&etc)&&(stl||boost||qt)&&(vim||emacs)&&unit_tests&&git&&unix_terminal&&etc)
иначе
junior1464_cpp->~useless_crap();

джуны в крестах не нужны, крестами заканчивают, а не начинают
#339 #638477
>>638209
3 месяца, не слушай пердунов
#340 #638480
Кто-то пишет игры, что проще, именно проще в программном смысле использовать с плюсами GL или DX?
#341 #638481
>>638480
Пишу игру для конкурса из соседнего раздела
https://2ch.hk/gd/res/211718.html (М)

Поэтому графика нужна не замороченная. Повторюсь, в приоритете простота написания кода.
#342 #638482
>>638480
обычно готовый движок юзают
#343 #638486
>>638482
Задумка простая, но важна скорость 3D, движки обычно монструозные и тормозные для моей игры. Поэтому выбрал кресты, потому что раньше писал утилиты на них, хотя сейчас работаю в java, но там сам понимаешь, что с графикой.
#344 #638491
>>638486
На Java minecraft написан.
#345 #638492
>>638491
Об этом и речь
#346 #638526
>>638486
http://irrlicht.sourceforge.net/
http://www.ogre3d.org/

>движки обычно монструозные и тормозные для моей игры


я конечно не знаю всех подробностей, но я сомневаюсь что можно написать вменяемый 3Д движ за две недели и при этом задавать вопросы что лучше OGL или DX
лучше две недели потратить на геймплей/графоуни/багофикс для твоей игры, а не для абстрактного движа
#347 #638940
>>638491
Есть же minetest который, блядь, не тормозит как высер жирного джаваблядка, а мелкомягкие обещали зделать c++ версию настоящего под шиндовс10.
Быдлокодер #348 #639000
Ребят, такой вопрос, работаю в cbuilder, и нужно чтобы когда мы вводим что-то в edit, и нажимаем enter, происходило нажатие кнопки. Как отловить это нажатие enter когда активен edit?
#349 #639011
>>639000

> работаю в cbuilder


В дэльфи тред.
#350 #639033
>>639000
в событиях смотри, keypress либо еще что-нибудь
алсо смотри Qt вместо этой некрофилии
#351 #639086
>>639000

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget ``parent = 0);

protected:
void keyPressEvent(QKeyEvent `
`event);
};

void MainWindow::keyPressEvent(QKeyEvent ``event)
{
switch(event->key())
{
case Qt::Key_Shift: /
ввв*/; break;
}
}

вакаба наверное указатели перед event съест, ну ты понял
Быдлокодер #352 #639175
>>639011

При чем тут дельфи? Это же чистый С++!
Быдлокодер #353 #639176
>>639033

Keypress это понятно, но как проще понять что нажат именно ентер
Быдлокодер #354 #639178
>>639086

Спасибо!
#355 #639185
>>639178

>спросил про cbuilder


>съел говно про Qt и сказал спасибо


Лол.
>>639175
VCL билдера (как и он сам) - это обертка с плюсовым синтаксисом над дэльфи библиотеками, не больше.
Быдлокодер #356 #639236
>>639185

>лол


Я с кодом попозже решил разобраться просто. А че за qt?

>vcl это обертка с плюсовым синтаксисом над дэлфи


На уровне компилятора - да, но весь код пишется на чистом с++. В то что внутри билдера меня не сильно волнует
#357 #639241
>>639236

>Я с кодом попозже решил разобраться просто. А че за qt?


https://ru.wikipedia.org/wiki/Qt
C++ гуевый (и не только) фреймворк.

>В то что внутри билдера меня не сильно волнует


Ты, блядь, вася. Тебе нужно именно то, что внутри билдера, т.к. именно он обрабатывает эту всю хуйню, неважно на каком языке. Найти ту же обмотку на плюсах потом проблемы не составит, а в дэльфитред я тебя послал потому, что тут никто с этим говном не работает хотя мб когда нибудь сюда зайдёт старый печальный крудошлёп, который работает с этим говном с начала 2000-х.
Быдлокодер #358 #639253
>>639241

>с начала 2000-х



Ну окей, а как же с ХЕ8 Билдером, он ведь вышел не так давно. Основной принцип работы между борланд с++ билд ером и современным хе8 не изменился
#359 #639266
>>639253
Вась, ухади!

>а как же с ХЕ8 Билдером


А новые вещи в продакшен в рашке нитащут. В яндексе например, по комментариям его работников в 2014, запрещали писать на C++11. И это, блядь, топ ит компания, а шаражкины конторы использующие билдер в лучшем случае на 6-м сидят.

Тебе уже ясно пометили территорию: или нормальный C++, или пиздуй в дэльфитред с вопросами по VCL.
#360 #639318
>>639266
Лол, у нас как-то арх все ждал появления вариадик теплейтс в мс Вижул Студии. А другой каллека бугуртил, что это все дрисня, и вместо шаблонов нужны интерфейсы и полиморфизм.
#361 #639326
>>639318
А можно было просто взять D и не ебя мозга реализовывать все новое на нем. Но сори, у нас продакшен, главное - стабильность по 80 рублей за доллар.
#362 #639336
>>639326
<Здесь был срач, что Cpp11+ почти догнал мертворожденный Dlang>
#363 #639352
>>639336
D не взлетел именно из-за политики больших компаний.

И да: даже не начнет догонять пока его полностью не рефакторнут, т.е. - никогда.
Быдлокодер #364 #639367
>>639266
А что же по твоему тогда нормальный с++?
#365 #639369
#366 #639378
>>639367
Это C++ который не C++, ибо его уже поздно переделывать.
#367 #639379
>>639369
Этот наврятли что-то изменит - даже модули отклонили.
#368 #639429
>>639379
модули не нужны
#369 #639526
>>639352
Не начнет, пока не сделают сборку мусора опциональной нормально.

К тому времени сборщик уже успеют нормально прикрутить к плюсам лол
#370 #639533
>>639526
Она никогда не была в D обязательной.
#371 #639536
>>639533
D requires garbage-collection
This could be seen as controversial because it is possible to run D without the GC. However, just because it is possible doesn't mean it is practical. Without a GC, you lose a lot of D's features, and using the standard library would be like walking in a minefield (who knows which functions allocate memory?). Personally, I think it is totally impractical to use D without a GC, and if you aren't a fan of GCs (like I am) then this can be quite off-putting.
#372 #639552
>>639536
Щас бы пиздаболию теоретика послушать. Стандартная библиотека прекрасно работает и без GC.
http://ideone.com/dhu5gU
#373 #639570
>>639552
Течет она прекрасно и непредсказуемо.
#374 #639574
>>639570
На уровне C++, чо.
#375 #639581
>>639574
Нет, потому что у С++ библиотека рассчитана на работу без GC.

Here are some things not to do with GC disabled, because they will cause memory leaks:

Do not use the array append ( ~= ) operator, or use the .length property to enlarge an array that has already been allocated. These rely on GC to free the old array if it has to be reallocated, since there may be aliasing to it somewhere else in the program.
Do not use builtin associative arrays. The only way to free these is by GC.
Most of Phobos and, I believe, Tango, were designed with the assumption that garbage collection is present. Functions in these libraries may leak memory horribly if used w/o GC.
Do not use D2 closures with GC disabled. (Not that you would anyway, for a game.)
#376 #639603
>>639581
У меня аж идея для проекта появилась.
Тебе опять же никто не мешает делать вещей вроде GC.collect в середине кода.

И да, к началу разговора: если D развивали бы не пара его создателей и люди не любили бы сидеть своем говне - это все давно не было бы проблемой.
#377 #639608
Сап, анон. Вот я, начинающий программистраспиздяй, научился писать всякую простенькую херню на с++, типа операций со строками, ввод/вывод из файла, массивы там, циклы. Куда двигаться дальше? Не хочется просто читать учебники, хотелось бы именно иметь какие-то задачи, чтоб по ходу разбираться в новых темах.
#378 #639609
>>639603
Вот как бе пруфы последней строчки:
http://wiki.dlang.org/Memory_Management#Writing_GC_free_code

>Work is in progress to make the D standard library, Phobos, usable without any use of the garbage collector. Eventually Phobos will be fully @nogc compliant.

#379 #639610
>>639603
Нет, D изначально ущербен. Это такой C# с темплейтами. То есть не нужен ни пользователям C#, которым и с генериками норм, ни пользователям C++, которым нужны value-types и отсутствие GC везде. Есть язык, который "если D развивали бы не пара его создателей и люди не любили бы сидеть своем говне - это все давно не было бы проблемой." - это Clay. Который на голову выше D и при этом действительно слаборазвит. Но тут уж не судьба.
#380 #639623
>>639610

>Это такой C# с темплейтами.


Ниет. Ты ни одного, ни второго не знаешь видимо.

>это Clay


Ок ок, я понял, уноси свою сишку со скриптовым сахаром без нихуя.
23 Кб, 656x164
153 Кб, 731x1017
#381 #639678
Помогите, пограммисты, не знаю куда обратиться!
Начал изучать недавно С++ по книге с вашей шапки Липпмана.
Там я дошёл до главы с классами, где какая-то ссылка на Sales_item.h была. Сначала я не понял т.к. я файл не создавал, и нигде до этого не было указано как его сделать или взять. Но дочитав главу до конца в книге указана гиперссылка, по которой, якобы, есть этот файл - пик №1.
Но при заходе по этой ссылке этого файла нет, а идёт редирект на эту книгу.
Что делать, подскажите?
#382 #639679
#383 #639698
>>639610
Насчет сисярпа с темплейтами ты загнул, конечно. Со скоростью у D вроде бы все на уровне крестов. Но насчет ущербности я поддвачну тебя.

Если что, дело даже не в том, что, мол, кресты популярны, а D - нет, и вот поэтому на них не перекатываются и кодобазы кот наплакал. Дело в том, что сама концепция "взять существующий язык и выбросить возможности, которые кажутся плохими" - она тупиковая. Хотя бы потому что каждая выброшенная фича, даже объективно плохая, вроде хэдеров вместо модулей, даст моментальный отказ тех, кто ее использует, от переката на новый язык. В крестах есть более удачные и менее удачные фичи, но практически за каждой стоит серьезная мотивация, серьезная проблема, для решения которой в свое время решили использовать эту фичу. Поэтому объединение недовольных крестогоспод, которые, увидев D, предали его анафеме, оказалось больше допустимого. И именно это стало причиной того, что D умер в младенчестве.

Кресты же с самого начала осуществляют стратегию впитывания - берут из других языков разные парадигмы и фичи, но никогда ни от чего не отказываются. От успешного Си был взят популярнейший синтаксис и машинная ориентированность. Когда заговорили об ООП, а университеты стали пилить академические языки, в которых было только ООП, страус взял и аккуратно встроил парадигму в Си, получив смешанный ООП-процедурный подход, а не синтаксически бедную дрисню, в которой есть объекты, сообщения и больше нихуя. Заговорили об обобщенном программировании - вместо переката на какие-нибудь стандартные интерфейсы - страус со Степановым покумекали и внедрили шаблоны и STL. Заговорили о функциональном программировании - комитет впилил лямбды и variadic templates. Можно еще много примеров привести: умные указатели, конкурентные фичи, вывод типов - тысячи их. И все делаются по одному сценарию: "старое не ломается, новое гармонично дополняет старое". Поэтому происходит процесс, обратный тому, что произошло с D - алтфаки остаются, и вдобавок к ним перекатываются люди из других языков, соблазнившись тем, что тут есть и привычные им фичи, и крестовые.

Можно сколько угодно кукарекать про выстрелы в ногу и преимущества сильной типизации/функциональной парадигмы/еще чего-нибудь. Но успех крестов наглядно показывает, почему любые намеренные ограничения, призванные облегчить вкатывание для макак, на самом деле являются злом, убивающим язык. Диванные аналитики пилят стены текста с длиннющими апологиями своих языков, пытаются доказать, что их ЕДИНСТВЕННО ВЕРНЫЙ подход лучше всех остальных особенно функциональные петухи этим грешат, вместо того, чтобы запилить объединение концепций, которое лучше каждого в отдельности.
#383 #639698
>>639610
Насчет сисярпа с темплейтами ты загнул, конечно. Со скоростью у D вроде бы все на уровне крестов. Но насчет ущербности я поддвачну тебя.

Если что, дело даже не в том, что, мол, кресты популярны, а D - нет, и вот поэтому на них не перекатываются и кодобазы кот наплакал. Дело в том, что сама концепция "взять существующий язык и выбросить возможности, которые кажутся плохими" - она тупиковая. Хотя бы потому что каждая выброшенная фича, даже объективно плохая, вроде хэдеров вместо модулей, даст моментальный отказ тех, кто ее использует, от переката на новый язык. В крестах есть более удачные и менее удачные фичи, но практически за каждой стоит серьезная мотивация, серьезная проблема, для решения которой в свое время решили использовать эту фичу. Поэтому объединение недовольных крестогоспод, которые, увидев D, предали его анафеме, оказалось больше допустимого. И именно это стало причиной того, что D умер в младенчестве.

Кресты же с самого начала осуществляют стратегию впитывания - берут из других языков разные парадигмы и фичи, но никогда ни от чего не отказываются. От успешного Си был взят популярнейший синтаксис и машинная ориентированность. Когда заговорили об ООП, а университеты стали пилить академические языки, в которых было только ООП, страус взял и аккуратно встроил парадигму в Си, получив смешанный ООП-процедурный подход, а не синтаксически бедную дрисню, в которой есть объекты, сообщения и больше нихуя. Заговорили об обобщенном программировании - вместо переката на какие-нибудь стандартные интерфейсы - страус со Степановым покумекали и внедрили шаблоны и STL. Заговорили о функциональном программировании - комитет впилил лямбды и variadic templates. Можно еще много примеров привести: умные указатели, конкурентные фичи, вывод типов - тысячи их. И все делаются по одному сценарию: "старое не ломается, новое гармонично дополняет старое". Поэтому происходит процесс, обратный тому, что произошло с D - алтфаки остаются, и вдобавок к ним перекатываются люди из других языков, соблазнившись тем, что тут есть и привычные им фичи, и крестовые.

Можно сколько угодно кукарекать про выстрелы в ногу и преимущества сильной типизации/функциональной парадигмы/еще чего-нибудь. Но успех крестов наглядно показывает, почему любые намеренные ограничения, призванные облегчить вкатывание для макак, на самом деле являются злом, убивающим язык. Диванные аналитики пилят стены текста с длиннющими апологиями своих языков, пытаются доказать, что их ЕДИНСТВЕННО ВЕРНЫЙ подход лучше всех остальных особенно функциональные петухи этим грешат, вместо того, чтобы запилить объединение концепций, которое лучше каждого в отдельности.
#384 #639728
>>639679
Внизк страницы несколько вкладок, и там вкладка downloads.
#385 #639733
>>639698

>Дело в том, что сама концепция "взять существующий язык и выбросить возможности, которые кажутся плохими" - она тупиковая.


Ну как бы в D ничего и не выкидывали. Ну ладно, кроме этого еще дефайны и неймспейсы послали нахуй.

>Заговорили о функциональном программировании - комитет впилил лямбды и variadic templates


Самое смешное, что вообще все это было за почти за десяток лет до C++11 в D. Причем там это реализовано намного лучше, чем в крестах. Страуструп задумался о модулях и UFCS в C++17 - он тоже уже давно в D.

>фича, даже объективно плохая, вроде хэдеров вместо модулей, даст моментальный отказ тех, кто ее использует


Ну хэдэры-то конечно ахуенная вещь, особенно в плюсах, где дебажная сборка хэловорда с темплейтами может занимать пол часа с соответствующими бесконечными багами линкера.
И убрав эти хэдэры из языка их функциональности внезапно никто не лишится.
Все эти "обдуманные решения" в плюсах - такое же костыльное легаси говно, как и отсутствие этого решения.

>Но успех крестов наглядно показывает


Что людям просто похуй, они привыкли пихать костыль в зад и пихают.

Ты не понял сути D - никто ничего не выкидывал, просто все по-человечески рефакторнули. Тут тебе и быстрая компиляция, и куда более мощные средства метапрограммирования и вся compile-time хуита которая в плюсах костыльно реализованна на constexpr, и вообще все - но в отличие от плюсов ты можешь зайти в стандартную библиотеку и без проблем понять что автор пытался сделать. Это называется дизайном языка с учетом ошибок, а не накоплением говна как в плюсах.
#386 #639736
>>639728
Спасибо, как ты понял, а я нет?
#387 #639761
>>639698

> Со скоростью у D вроде бы все на уровне крестов.


Да нет, из-за GC это типичный C#. C# тоже довольно быстр, надо сказать.
>>639733
Страуструп задумался о модулях в С++ еще в книжке Дизайн и эволюция, которая появилась намного раньше D.

>Ты не понял сути D - никто ничего не выкидывал


D выкинул гигабайты кодобазы. Это - главное. А С++xy ничего не выкидвает.
#388 #639772
>>639733
Не путай "хотели" и "сделали". Фобос до сих пор рефакторят. Они так бешено быстро всего понапихали, что все эти десять лет только и переделывают туда-обратно. Быстрее будет с нуля язык сделать, нежели сделать всё стройно и гладко с тем, что уже есть.

// Тот анон, которому не нравится GC
#389 #639781
>>639761

>Да нет, из-за GC это типичный C#.


Да нет, он таки быстрее, хотя GC у него таки хуже чем в яве или го.

>Страуструп задумался о модулях в С++ еще в книжке Дизайн и эволюция, которая появилась намного раньше D.


И где они? По его заверениям он хотел ввести и вывод типов еще в 90-х, но отказался под давлением сишников.

>D выкинул гигабайты кодобазы. Это - главное. А С++xy ничего не выкидвает.


Использовать из D код из C++ никто не мешает, даже модель памяти аналогияная и аби плюсовый полностью поддерживается.
>>639772
Это следствие разработки 2 человеками (ну еще рандомные челики через раз с форума набигают). Сколько лет коммитет C++ обсуждал C++11 и сколько изменено в C++14?
#390 #639786
>>639761
Дело не только в этом же. Фортран тоже не выкидывал, но этого недостаточно. Суть в том, что комьюнити фактически с каждым стандартом существенно расширяется, и это мешает появиться какому-нибудь йоба-языку и убить кресты, как это было с фортраном. Новый язык вольно или невольно отвергает некоторые фичи крестов, а в новом стандарте все его годные фичи, напротив, будут, причем, грамотно интегрированные и пропиаренные. Поэтому кресты оказываются на шаг впереди, смекаешь?
#391 #639857
>>639786
Каких фич крестов нету в D?
#392 #639881
>>639781

>И где они?


У С++ фичи обсуждаются до тех пор, пока они не устроят всех. В отличие от тоталитарных корпоративных языков. Поэтому медленно. Но и хорошо при этом.

>Использовать из D код из C++ никто не мешает, даже модель памяти аналогияная и аби плюсовый полностью поддерживается.


Не поленился проверить - нихуя не так.
#394 #639986
>>639881

>Не поленился проверить - нихуя не так.


https://dlang.org/spec/cpp_interface.html
Что именно?

>Поэтому медленно. Но и хорошо при этом.


Ясно. Что именно хорошего? Что в языке, каждую фичу которого обсуждают по 10 лет все такие же костыльные простыни вместо шаблонов? Что ещё за 3 года обсуждений тебе могут дать чуть расширенный костыль в виде constexpr? Аргументация уровня "мы в говне, но зато стабильность".
#395 #640004
>>637870
А с чего ему умирать-то? Qt развивается, годных qt-программеров не хватает. Наши американские и канадские заказчики например проекты переводят на Qt, всё норм.
#396 #640053
Пацаны, хочу вкатиться в кресты.
Есть какие-никакие знания по Java. С чего начинать обучение, чтобы не самые низы? Кокие подводные камни?
#397 #640290
>>640053
Ты безнадежен.
#398 #640307
>>636996
Спасибо, анон, добра.
>>636839-кун
39 Кб, 666x267
#399 #640379
Я ничего не понял, поясните, я по вашей книге учу С++, только выучил операторы иф, вайл и т.д.
И книга уже мне подкинула какое-то странное задание: 1.21 с пика.
Я ничего не понимаю как её писать, в книге ничего не объясняется.
Сам файл Sales_item.h - в нём написано чтобы я не пытался понять код на данном этапе.
Что делает программа я не понимаю, а если я не понимаю как я могу дальше что-то делать по этой программе?
Я тупой и лучше мне всё это бросить?
#400 #640396
>>640379
Ну в 1.21 в программу вводятся 2 объекта Sales_item (operator<< в файле уже написан, так что самому ввод писать не надо), потом ты их сравниваешь на одинаковость isbn (функцие compareisbn) или по заданию предполагается, что вводятся две одинаковые, хуй пойми и тупо складываешь их (operator+ и operator+= для класса тоже определён)
38 Кб, 942x959
44 Кб, 673x298
#401 #640427
Поясните еще пожалуйста, у вас же тут можно нубские вопросы задавать?
Почему если я пишу std::cin >> item1 >> item2;
Т.е. сам ввожу значения item1 and 2, то всё нормально.
А если пишу так, чтобы значения были указаны:
item1 = "0-201-78345-X 3 20.00";
item2 = "0-201-78345-X 2 25.00";
То выводит какие-то странные ошибки?
Просто, я не хочу эти значения постоянно вводить, в книге на 2 пике написано вроде как этого избежать, но я не совсем понял т.к. там для Юникса, а у меня виндовс 10.
#402 #640432
>>631744 (OP)
Гайс, везде рассматриваются консольные приложения, хотя в жизни я с ними почти не сталкивался. Почему так? Где учиться писать программы без ебучего черного окна?
#403 #640436
>>640432
Сначала язык выучи, потом формочки шлепать пойдешь.

>>640427
Дело не в ос, тебе конпилер ясно сказал что ты пытаешься присвоить строку объекту.
#404 #640437
>>640427
Не стоит вскрывать эту тему. Делай то что в книге пишут, потом дойдешь до переопределения операторов.
#405 #640439
>>640432

> писать программы без ебучего черного окна


Это не является частью языка, поэтому мало где рассматривается.
#406 #640578
ОБРАЩАЮСЬ К ОПУ

ОП, добавишь в следующем треде инфу об OpenFrameworks? АТОМНАЯ БОМБА ПРОГРАММИСТА НА ЦЕДВАПЛАСА

> http://openframeworks.cc/


> https://xakep.ru/2016/01/12/open-frameworks/



Алсо, обсуждаем сие событие.
#407 #640601
>>640436
Так я уже выучил, я хочу формочки шлёпать, понимаешь? Что читать, где учить?
>>640439
Что не является? C++ только для консольных приложений?
#408 #640614
Посоветуйте IDE с поддержкой C++11 и C++14. Не студию.
#409 #640615
>>640601
Ну ты чем вообще хочешь заниматься? Десктоп?
#410 #640616
>>640614
clion
Чем студия не угодила?
#411 #640620
>>640601
Лан, иди Qt ковыряй.
#412 #640624
>>640601

> Что читать


Документацию по выбраной тобой библиотеке виджетов.
#413 #640632
>>640614
kdevelop
#414 #640633
>>640616

>Чем студия не угодила?


Винда зашкварилась, и студия на нее не устанавливается. Переустанавливать ее лень. Даже попросить тыжпрограммиста было бы лень, ведь потом надо столько программ устанавливать, и делать это мне лень.
#415 #640651
>>640632
ШIИD0W2
#416 #640655
Анончики, проходил кто курсы от майлру на stepic (многопоточное программирование). Годнота?
#417 #640661
>>640578
Хипстерская хуета сделаная какими-то азиатами, причем даже не со своей кодобазой, лал. Учитывая публику пишущую на этом прекрасном языке - будем давится говном, но не вот этим.
#418 #640689
>>640578

Не очень понял, почему нельзя заюзать эти либы по отдельности.
#419 #640709
>>640578

Ользо, несмотря на бессмысленность написания еще одного фреймворка, то, что у них может получиться, - это пакетный менеджер. По-хорошему, именно так им и нужно себя позиционировать.
#420 #640793
>>640615
Окошки, игрушечки,системные приложения. Браузер, допустим, написать хочу.

Может быть риверс инжиниринг в дальнейшем.
#421 #640874
>>640427
Здесь используется конструктор копии:
item1 = "0-201-78345-X 3 20.00";
item2 = "0-201-78345-X 2 25.00";

Ошибка возникает, потому что в классе он не определен.
#422 #640913
>>640874

>Здесь используется конструктор копии


Нет.
#423 #640915
>>640913
Просто конструктор some_type (std::string), который, наверное можно самому без труда запилить, скопировав код из some_type::operator (std::istream) или типа того
#424 #641146
>>640601

> Так я уже выучил, я хочу формочки шлёпать, понимаешь?


Чет я не верю что ты осилил все основы языка и до сих пор не знаешь как сделать оконное приложение вместо консольного. Или ты тупо книжку одну прочитал, не вдаваясь в подробности?
#425 #641161
Господа, попрошу вас вспомнить старые стандарты, и сказать мне, как эта хуйня должна была работать. (перевожу говно мамонта на новый компиляктор)

govno.h:
#if defined(WIN32) || defined(WIN64)
void SetStrColorProcess(,...);
#else

Какое нахуй ",..."? Что это такое блядь?
#426 #641176
>>641161
Мб имеется в виду какой-то аргумент и после него троеточие? няшная сишечка например вообще не волновалась по этому поводу - SetStrColor() и void SetStrColor(int b, ...) для неё были синонимами.
6 Кб, 447x326
#427 #641208
Чем отличается i++ от ++i?
Я гуглил: http://stackoverflow.com/questions/24853/what-is-the-difference-between-i-and-i
По этой ссылке говорится одно, я попробовал сделать, и у меня по другому.
#428 #641212
>>641208
Запиши тоже, но в два оператора. Так как ты записал разницы нет, кроме того что i++ чуть медленее.
#430 #641215
>>641212
>>641213
Ага, значит если ++i - то сначала прибавляется, а потом выводится, а если i++ - сначала выводится, а потом прибавляется. Спасибо.
#431 #641223
>>641208
Специально для тупых макакичей
http://pastebin.com/qq0hqh4Y
#432 #641258
Вообще, если я знал 1 язык программирования, учёба С++ пойдёт лучше, если бы я его не знал?
Я давно работал на пхп - делал сайты. Но уже мало что помню из него. Вот, решил выучить С++ и найти работу...
#433 #641261
>>641258

>решил выучить С++ и найти работу


>_o

#434 #641267
>>641261
Ну, делать мне пока нечего, видеоигры надоели, а мамка на работу гонит.
#435 #641270
>>641267
Работа есть для шарпов и жабы.
#436 #641271
>>641270
Ну не знаю, постоянно скроллирую всякие вакансии, много вижу с++.
Ну и я его хочу изучить - хочу свои игры писать.
#437 #641272
>>641267
На то, чтобы выучить плюсы на уровне приемлемом хотя бы для прохождения собеседования у нюфага уйдет не меньше 2-х лет. А еще нужно знать весь стак их технологий. И опыт пыха иебе здесь не поможет.

Иди в раби или петон тред если нужна работа нет ребующая 5 лет задротства.
#438 #641274
>>641271
Эталонный крестовик прямо
#439 #641275
>>641272
Я слышал что С++, как и СИ - непотопляемые языки. И у меня знакомый сначала работал на обычной физической работе, а потом как-то перепрофилировался, и работает программистом на С++.
#440 #641279
>>641275
Они непотопляемые в том смысле что их ближайшие 10 лет никто и ничто не заменит. Но это не отменяет того факта, что C++ один из сложнейших (из мейнстримовых - самый сложный) язык. А чтобы куда-то попасть на работу сегодня (10 лет назад каждого васю брали, это да) нужно на зубок пересказывать изъёства вроде наследования виртуальных функций на собеседованиях, знать Qt с Boost и ещё кучу хуйни вроде опыта работы с прыщами и гита - и это если компания современная и не байтоёбский продукт делают, иначе нужно знать ещё кучу хуйни вроде ассемблера и сетевых протоколов.

И да, игрушки - без математической вышки пошлют нахуй.
#441 #641281
>>641279

>игрушки - без математической вышки пошлют нахуй


Чем так важна мат. вышка в игрушках?
Когда я учился в вузе, у меня по матанам была самая высокая оценка в группе среди мужского населения. Даже помогал другим решать, но я уже мало что помню из всего этого.
#442 #641284
>>641281
Ты хоть симулятор бильярда то напишешь?
Вышка нужна для всякого 3D, а термех - для физики.
#443 #641285
>>641281
Тем что на плюсах в игрулях сегодня пишутся только движки (рендер, физика). Сам попробуй догадаться.
#444 #641286
>>641285
>>641284
Ладно, не надо меня пугать раньше времени. Сейчас выучу ++ хотя бы на уровне пользователя, а там посмотрим.
122 Кб, 744x638
#445 #641288
>>641286
Какой ныне анон оптимистичный пошёл :3
7 Кб, 200x193
#446 #641289
>>641288
Я знаю что у меня вряд ли что получится, но я хотя бы попробую.
#447 #641311
Попробуй не кресты. Больше толку будет.
#448 #641319
>>641289
Начни с кернигана и ритчи язык си. Пригодится писать модули для пистонов и рубей
#449 #641344
>>641279
такой-то манямирок
#450 #641379
Поясните ньюфагу, в чём разница крестов и решетки(шарпа)?
#451 #641380
>>641379
Указатели.
#452 #641382
>>641379
С какой целью интересуешся?
#453 #641386
>>641379
Во всём, кроме C-like синтаксиса.
#454 #641389
>>641379
В шарп байтоебства не завезли.
Лучше поясните, почему С++ это именно отдельный язык, а не С с классами. без троллинга вопрос
#455 #641390
>>641389
/unsafe
#456 #641392
>>641390
Это не считается.
#457 #641393
>>641389
1) Потому что он не просто расширяет, но и выкинул некоторые фишки C (как автоматическое приведение типов и прочие прелести слабой типизации C и тд);
2) Они развиваются отдельно и имеют разные идеологии;
#458 #641394
>>641389

> язык, а не С с класса


Много дополнительных возможностей (шаблоны, перегрузки операторов). Но "С с классами" тоже считался бы отдельным языком. Вон - objective C именно что С с классами, но никто его не назовет просто С.
#459 #641509
>>640578
ОП на связи. ИМХО нельзя сразу пихать новое в шапку. Надо сначала присмотреться, убедиться, что это выстрелит, будет хорошей практикой, а не говном. Например, >>640689 - куна я удваиваю ссылки просмотрел пока что по диагонали. Так что в ближайший перекат это впиливать преждевременно, ящитаю.
#460 #641597
>>641379
Есть два Си. На одном кресты точёные, на другом решётка дрочёная. Куда сам сядешь, куда свой проект посадишь?
#461 #641598
>>641597
Сам на ди сяду, проект на джаву посажу.
#462 #641602
Как перевести числа от 1 до 10 в текст в зависимости от выбора?
#463 #641603
>>641602
Эээ, свичем обычным?
#464 #641605
>>641603
Я нуфак, помоги плиз(
#465 #641607
>>641605
if (i == 1) cout << "odin";
if (i == 1) cout << "odin";
if (i == 1) cout << "odin";
#466 #641627
>>641602
Словарь. Например std::set. Если тебе не нужно будет итерировать по словарю то лучше std::unordered_set (быстрее доступ по ключу). Так как у тебя ключом служит непрерывная последовательность чисел то идеальный вариант - какой-то из массивов.
#467 #641631
>>641627
Пиздос.
А ты дома комаров часом не из базуки отстреливаешь?
#468 #641644
>>641631
Ты забыл свой вариант предложить.
#469 #641645
Мб кто компилит в vcc 14.0?

из инклюда убрали math.h, теперь если в .c файлах поменять <math.h> на <cmath>, в котором, по спеке, должна быть и старая функциональность, то все, пиздец.
...\Microsoft Visual Studio 14.0\VC\INCLUDE\cmath(17): error C2143: синтаксическая ошибка: отсутствие "{" перед "<", и т.д. по файлу.
Чет ошибка гуглится, но пути ее решения не гуглятся.
#470 #641646
>>641644
Но я предложил. Обычный сраный свитч.
#472 #641656
>>641646
Но ведь это тоже самое, только вместо того чтобы использовать чужой код ты пишешь все сам.
#473 #641679
>>641650
Сожалею, но у вас быдлокод головного мозга.
#474 #641685
>>641602
itoa
std::to_string
39 Кб, 570x515
#475 #641686
#476 #641701
>>641679
Ты когда примеры в книгах по C++ читаешь, тоже на быдлокод ругаешься?
#477 #641703
>>641656
У unordered_map константный доступ, но с большими константами. Для каждого обращения будет считаться хэш, который наверняка сложнее, чем схема Горнера в std::to_string. Более того, в unordered_map на каждый хранимый int будет приходиться дохуя служебной информации, емнип 16 или больше байтов. Поэтому ему следует использовать to_string и не выебываться. Или сделать вектор со строковыми представлениями индекса, если надо прямо совсем быстро, за одну машинную команду.
#478 #641723
>>641703

Бля идите нахуй, пусть хоть через шаблоны хуячит свою задачку из лабы первого курса. Обсуждаете тут, что лучше хэшмап или switch в контексте какого-то несущественного говна.
#479 #641747
>>641703

> который наверняка сложнее


Очень спорное утверждение, все зависит от реализации, но так как от std::hash (которое используется по умолчанию) никто не требует криптографической стойкости то скорее всего в качестве хеша целого числа будет просто возвращено это число.
#480 #641927
>>641747
В студии возвращается вообще адрес этого инта, например.
14 Кб, 456x83
#481 #642002
Блядь, да что такое-то?
#482 #642003
>>642002
Индекс кривой, но похуй, ошибка та же.
#483 #642008
>>642002
А мог бы программы писать, вместо борьбы с языком.
#484 #642009
>>642003
ты че, ебанат? Нахуй ты вектору инт присваиваешь?
#485 #642012
Тфу, блядь, разобрался. Продолбился в глаза и при инициализации поставил [] вместо ().
>>642009
Пошёл нахуй.
>>642008
Мне сейчас байты ебать надо, а тут у плюсов нет альтернатив. Скоро перееду на жабу.
#486 #642043
Поясните нубу: если на объекте std::thread не вызвали .join() или .detach(), то он вызывает std::terminate() в деструкторе. Мол, эта ниправильна так делать. При этом, для написания exception-safe кода заебашили thread_guard, который в ситуации выше вызывает .join() перед уничтожением std::thread. Вопрос: почему это поведение просто не реализовали в самом std::thread?
#487 #642044
>>642002
Ты вектор с си-массивом перепутал.
#488 #642104
>>642043

> просто не реализовали в


Это противоречит идеологии языка. Попытка вызова джойна в деструкторе не бесплатна. А программист не должен платить за то чего не использует.
#489 #642107
>>642104

> просто не реализовали в


>Это противоречит идеологии языка. Попытка вызова джойна в деструкторе не бесплатна. А программист не должен платить за то чего не использует.



Ты не можешь не вызвать джойн(или детач) перед запуском десьруктора. Если ты этого не сделаешь, то получишь краш
#490 #642111
>>642107
Хотя да, я понял, ситуация здесь как с [] и at() у вектора. Но вот только [] вызывается очень часто, а деструктор у std:thread не так часто. На лицо слишком фанатичное следование парадигме, из-за чего возникают неудобства.
#491 #642123
Хорошо-ли использзовать исключения?
#492 #642124
>>642107
Ну. Ты создаешь thread_guard, вызываешь джойн или детатч. Потом при вызове деструктора произойдет совершенно ненужная (в твоем случае) проверка. Скажем для 99.99% программистов это будет оправдано - накладные расходы мизерны а запасная проверка не помешает. Но если эту проверку зашить std::thread то у 0.01% поехавших пригорит, они начнут городить свои велосипеды (без проверок) и везде срать что std::thread использовать не стоит так как он тормозит из-за ненужных проверок. Идеология языка такая что если каких-то расходов можно избежать, то такая возможность предоставляется - даже если выигрыш на самом деле мизерный.
#493 #642130
>>642124
Ты можешь себе представить, что у людей пригорит из-за одного сраного if'а, который, блять, просто меркнет на фоне того, что делает операционная система при завершении потока?
#494 #642133
>>642123
Исключения сильно упрощает код на участках, где возможны нехарактерные ситуации. Если это критично - отключай их нахуй и пиши велосипед.
#495 #642134
>>642133
*критично по производительности
#496 #642135
>>642123
Это холиварная тема.
Надо понимать как реализованы исключения, из этого вытекают их плюсы и минусы.
Гугл стайл гайд запрещает исключения.
У них есть проблемы с перформансом, но с другой стороны это бывает удобным механизмом обработки нештатных ситуаций.
#497 #642148
>>642043
Потому что .join при ошибке кидает исключение, а не перехваченное исключение в деструкторе - это вызов std::terminate(). Так что даже если бы join и вызывался, то поведение не изменилось бы, такие дела. Не понимаю чего тебе не нравится
#498 #642160
>>642130
Погуглил, там проблема с исключениями а не производительностью, так как проверка есть в любом случае, просто она вызывает не join() а ternimate()
Судя по http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2802.html сначала хотели сделать чтобы в деструкторе вызывался detach(), но там вообще пиздец получается, оставался вызов join() или terminate(), и получилось что от джойна отказались потому что он "results in serious responsiveness issues" или вообще может вызвать дедлок (имеется ввиду ситуация с обработкой исключения, последующей раскруткой стека, а потом возвращением назад и продолжением работы).
#499 #642213
>>641161
Как используется?
#500 #642226
>>639266
Они таскают свой stl за собой. Лежит в ${SOURCE_DIRECTORY}/contrib

Поэтому можно что-то. Но без auto в лямбдах и инициализации в захвате, decltype(auto) 11 плюсы нахуй. Потоки, промисы, таски, прочая многопоточность есть в бусте, всякие all_of или find_if там же.

Да и нахуй это в хуяндексе с их:
std::int64_t yasize () const;

Или стл несовместимые строчки и штрочки.
#501 #642299
>>642160

>Судя по http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2802.html



Ебать они умные, я аж охуел.
#502 #642332
>>641212

>i++ чуть медленее.


почему?
#503 #642415
>>642332
Потому что создается временный объект. Более подробно смотри в Прате.
#504 #642748
Надоело писать код и видить постоянно черную и угрюмую консольку, я конечно могу поменять цвет, но все же не то.
Хочу попробовать написать с графоном, пока мой выбор пал на windows form или winapi, но все же прошу советов, что использовать чтобы было все красиво и с кнопочками.
#505 #642757
>>642748

> видить


fix. видеть
#506 #642760
>>642748

>Рождение юнитибога

#507 #642761
>>642760
Прочитал свои первые 2 книжки, хочу попробовать что-то новое, что ты сразу так?
#508 #642765
>>642761
Чем тебя Qt не устраивает, говноед?
#509 #642768
>>642765
Ты че обзываешься?
Я про нестандартные либы не знаю, не сталкивался. Просто пока варианты перебираю.
#510 #642776
>>642768
Для кого шапку пишут...
#511 #642778
>>642776
Дык я идиот, ты понимаешь?
Если носом не ткнуть со словами, "Вот, то что тебе нужно!" я не пойму.
#512 #642918
Как думаете ОП за неделю успеет тред перекатить?
167 Кб, 822x591
#513 #643104
Pizufe, я всё ещё жду тебя.
#514 #643310
>>642918
Зачэм абыжаищь, дарагой? Пят днэй максымум, мамой клинус!
#515 #643569
Где можно почитать про устройство памяти, стек, куча, вот это вот все.
И про стек вызовов еще.
#516 #643588
>>642748
Я пользую c++builder от борланда, либо новые версии - embercadero cbuilder.
50 Кб, 712x465
#517 #643642
Поясните, я сейчас читаю про всякие литералы етц главу, но я почти ничего в ней не понял. Я потом пойму всё это или учить на зубок?
Пикрил - на большинство вопросов не могу ответить.
Могу сказать что:
'а' - символьный литерал. 8 байт.
"а" - строковый литерал. Не знаю сколько байт, вроде по 8 на каждую букву.
L'a' и L"a" - широкосимвольный литерал. 16 байт.
Дальше, там где 10u и 10L - я вообще не понял что это.
#518 #643669
>>643642
И еще подвопрос, пишет что unsigned не может быть меньше нуля или больше 255. Если я пишу 260U - всё корректно выдаёт.
#519 #643672
>>643642
Нужно учить. "Понимать потом" окажется достаточно сложно так как все проблемы с литералами будут проявлятся исключительно в каких-то ебанутых багах, но ты скорее всего этого никак не избежишь, так что возможно и не стоит особо заебыватся. Главное ясно понимать разницу между 'a' и "a" (особенно важно понять что "a" это два символа 'a' и '\0'). Также желательно знать про запись в шестнадцатеричном и двоичном виде. Все остальное редко встречается.
#520 #643675
>>643672
Зачем в строковых литералах добавляется этот нулевой символ?
Он добавляется в конце строки или после каждого символа в строке?
#521 #643676
>>643669

> больше 255


Тебя наебали. Может быть больше, вплоть до long long, если на 11 стандарте компилировать.
#522 #643677
>>643675

>ли после каждого сим


Только в конце строки, такое соглашение что последний символ в с-строке должен быть нулевой.
#523 #643678
>>643642>>643669
Положи назад учебник по сям 2001 года
34 Кб, 728x999
#524 #643680
>>643678
Но я по вашему совету скачал учебник в шапке 2014 года...
#525 #643696
>>643569
Это архитектура компьютера. Темы простые можно на всяких хасклетах видеокурс базовые посмотреть. И про ассемблер тоже чутка пояснят. Талмуд таненбаума для этого читать не обязательно.
#526 #643893
Посаны, это не лаба, это не помощь по синтаксису. Что не так с кодом и почему он уязвим?

#include <vector>
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
vector<char> str(MAX_PATH);

cout << "Enter your name: ";
cin >> str.data();

cout << "Hello " << str.data() << " :)" << endl;

return -14;
}
#527 #643897
Господа, только у меня не работают ссылки на учебники по Qt?
#528 #643906
>>643897
Всё, открылось. Извините что размножаю флуд. Вот вам по теме.
int main(int argc, char *argv[])//кажется, мы стали забывать классику
{
}
#529 #643909
>>643893>
В коде две уязвимости, но какие и где - не знаю. Читаю сейчас учебник по С++. Подтолкните на мысль.
#530 #643911
>>643909>
Но возможно в каком месте кода возможно переполнение буфера.
#531 #643984
>>643893
https://www.youtube.com/watch?v=aEZKGW_VTd4
Твое тоже наверняка поломает. Дебаггера нет под рукой.
#532 #644218
>>643893

>vector<char> str(MAX_PATH);


>cin >> str.data();



Кто сказал, что введенная строка будет меньше MAX_PATH?
#533 #644254
>>644218
Откуда я знаю кто. Был дан код и я пытаюсь понять. Я пришёл к мнению, что нужно выделять память по размеру введённому юзером в stdin, дабы избежать переполнение. Но как и что исправить не знаю.
#534 #644334
>>644254

> что исправить


Например cin.get(str.data(), MAX_PATH);
125 Кб, 770x700
#535 #644348
Анон, need help! Пытаюсь компилировать прогу на распберри пи, прога работает с одной библиотечкой. Короче кидает следующую ошибку:

>g++-4.7 -std=c++11 -g -O2 main.cpp -o main


In file included from tlc5940-raspberry/tlc-controller.h:34:0,from main.cpp:40:
tlc5940-raspberry/gpio.h:44:2: error: expected identifier before numeric constant
tlc5940-raspberry/gpio.h:44:2: error: expected ‘}’ before numeric constant
tlc5940-raspberry/gpio.h:44:2: error: expected unqualified-id before numeric constant
tlc5940-raspberry/gpio.h:46:1: error: expected declaration before ‘}’ token

Вот ссылка на файл, на который ругается компилятор:
https://github.com/sh4wn/tlc5940-raspberry/blob/master/tlc5940-raspberry/gpio.h

В чем проблема. Сам в кресты не могу, потому как питонодебил.
#536 #644351
>>644334
О, спасибо. Теперь нет переполнения.
#537 #644355
А тут что может быть не так?

#include <math.h>
#include <stdio.h>
#include <windows.h>

int main(int argc, char argv)
{

char str = (char )malloc(100);
int repeat = 0;

char line = GetCommandLineA();

while (
line != ' ')
line++;
line++;

if (strncmp(line, "repeat=", 7) == 0)
{
line += 7;
repeat = atoi(line);
line += (int)ceil(log10((double)repeat)) + 1;
}

if (strncmp(line, "str=", 4) == 0)
{
line += 4;
str = strtok(line, " ");
}

for (int i = 0; i < repeat; i++)
printf("%s\n", str);

line += strlen(str);
for (; line >= GetCommandLineA(); line--)
*line = '\x0';

free(str);
return -14;
}
#537 #644355
А тут что может быть не так?

#include <math.h>
#include <stdio.h>
#include <windows.h>

int main(int argc, char argv)
{

char str = (char )malloc(100);
int repeat = 0;

char line = GetCommandLineA();

while (
line != ' ')
line++;
line++;

if (strncmp(line, "repeat=", 7) == 0)
{
line += 7;
repeat = atoi(line);
line += (int)ceil(log10((double)repeat)) + 1;
}

if (strncmp(line, "str=", 4) == 0)
{
line += 4;
str = strtok(line, " ");
}

for (int i = 0; i < repeat; i++)
printf("%s\n", str);

line += strlen(str);
for (; line >= GetCommandLineA(); line--)
*line = '\x0';

free(str);
return -14;
}
#538 #644359
>>644351

>Теперь нет переполнения.


На глаз определил?
#539 #644361
>>644359
Дебаггером.
#540 #644363
>>644348
попробуй =0 убрать. он и так с нуля нумерует. или точку с запятой перед } поставить. или =1 после HIGH
тоже пока плохо знаю
#541 #644369
>>644363
Кстати у меня получилось скомпилировать только когда сократил до этого. Что значат удалёные слова я не знаю.

enum PinValue
{
LOW = 0,
HIGH
};
#542 #644380
Аноны, расскажите, зачем нужен C++? Где его применяют?
#543 #644384
>>644380

Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

Современный C++ весьма далек от языка, которым он был в 1998 году. В настоящее время кресты живее всех живых, их развитие движется семимильными шагами, а новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими. К сожалению, из-за обилия некачественной литературы по крестам, в которой игнорируются новые средства языка, бытует мнение о его "несовременности".

Нужно понимать, что используемый язык должен соответствовать поставленной задаче. Никому не придет в голову писать на C++ скрипты или веб-фронтенд, но лишь немногие языки могут соперничать с ним по разнообразию решаемых задач.
#544 #644388
>>644369

>644363


>Кстати у меня получилось скомпилировать только когда сократил до этого. Что значат удалёные слова я не знаю.



Ты поменял новый strongly typed enum на старое гуано. Видимо, компилятор на это и ругался, что вообще-то странно, потому что в gcc это есть с 4.6 версии. Что у тебя прячется под g++-4.7?
#545 #644390
>>644388
До этого ещё 1 enum и на него компилятор не ругается.
g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
#546 #644391
>>644384
Ну вот меня и интересует, для каких задач C++ хорош (кроме легаси и игор)? Пусть универсален, но проигрывает специализированным инструментам.
#547 #644396
>>644391
Там где важна скорость и надёжность.
#548 #644399
>>644390
Здесь какая-то мелкая хуйня из-за невнимательности. Скомпиль clang'ом.
#549 #644401
>>644399

>Скомпиль clang'ом.


Его ещё 12 минут устанавливать.
#550 #644403
>>644355
Посмотрите пожалуйста, аноны.
#551 #644408
>>644403
на пастебин или идеон залей. звёздачки не удобно искать
#552 #644410
>>644363
>>644369
Чет как-то не помогает.
#553 #644411
>>644396
Надёжность? Да и наверное найдутся инструменты, не сильно уступающие в скорости. Впрочем, я мало об этом знаю.
#554 #644413
>>644410
Что пишет когда вот это делаешь? >>644369
#555 #644416
>>644391
Хоть я и считаю, что писать быстрый код можно на любом языке, оптимизируя критические участки, но на моей памяти большая программа, написанная на c/c++ работала отзывчивее и быстрее на ресурсоемких задачах, чем аналоги, написанные на java. Доходило до того, что java приложение юзает ту же либу на C, а работает медленнее. И это уж не говоря об отзывчивости нативного UI и не нативных. Ярчайший пример - обоссаный qt creator и йоба clion. Первый хоть и кривой, как моя жизнь, но все везде быстренько, если не упадет нахуй. А clion, вроде и оптимизируют дохуя, но жрет он по 5 гигов на большом проекте и регулярно задумывается то там, то сям.
#557 #644419
>>644410

>644363


>644369


>Чет как-то не помогает.



Поставь clang, его ставить 2 минуты, если не собирать из сорцов. Тут явно какая-то синтаксическая проблема, о которой говно gcc сказать нормально не может. В таком режиме мы полночи искать проблему будем.
7 Кб, 424x71
#558 #644422
>>644399
Тоже такого не знает. Компилирую с 11ым стандартом.
#559 #644423
>>644413
Либа компилируется как и раньше, когда компилирую прогу получаю тот же результат. Ругается на отсутсвующий identifier и фигруную скобочку.
#560 #644425
>>644419
Под raspberry полюбому собирать из сорцов. Плюс я питонодебил.
#561 #644426
>>644423
Что в 35-45 строках main.cpp?
#562 #644434
>>644417
Что возвращает GetCommandLineA?
#563 #644435
Короче сделал все в одну строчку:
enum class PinDirection : std::uint8_t {IN = 0, OUT = 1};

enum class PinValue : std::uint8_t {LOW = 0, HIGH = 1};
Ошибка почему-то та же, хость строк должно быть меньше.
#564 #644439
>>644426
инклюд для этой либы

#include <tlc5940-raspberry/tlc-controller.h>
#include <tlc5940-raspberry/raspberry-gpio.h>
#565 #644443
>>644434
Вроде как stdin.
122 Кб, 2082x402
#566 #644444
>>644423
У меня скомпилилось
#567 #644446
>>644417
Подозреваю переполнение если после str= больше 100 символов не разделёных пробелом.
#568 #644447
>>644425
Нихуя, кстати. LLVM умеет генерить ARM код
#569 #644449
>>644444
make main и взлетело?
больше ничего не менял?
#570 #644450
>>644443
Тогда что делает эта строка?
for (; line >= GetCommandLineA(); line--) *line = '\x0';
#571 #644451
>>644396
Где важна скорость и только.

Там где надежность настолько же важна (в системах управления космических кораблей, медицинском ПО, етц) дважды подумают, чем стрелять себе в ногу
#572 #644454
>>644450
А хер его знает. Мне самому интересно. Плюсов не знаю.
#573 #644455
>>644451
Для надёжных ничего другого нет. Страуструп писал об этом.
#574 #644456
>>644454
Есть коммент:

// STRING ECHO
//
// Sample usage:
// strecho repeat=4,str=pleaseechome
#575 #644458
>>644454
А что сделать надо?
#576 #644459
>>644435
Сделал все в одну строчку и поменял строки местами. Все равно точно такая же ошибка в той же строке! Для чистоты эксперимента закомментил одну из строк, ошибка, как и положено, в отсутствующем классе.
#577 #644460
>>644449
Почему make main? С чего ты взял, что это правильная цель? Я просто вызвал make
#578 #644462
>>644458
Найти уязвимое место в коде (переполнение буфера) и избавиться от уязвимости.
#579 #644464
>>644416

>упадёт нахуй


У меня тоже падает пару раз в месяц QtCreator и подтекает, но запускается за 5 секунд.
#580 #644465
>>644449
Скорее всего, ты собираешь не ту цель, поэтому у тебя компилятор не подключил стандартную библиотеку и ругается на неймспейс std::
#581 #644466
>>644464
На больших проектах он хоть и долго проводит анализ, но хотя бы не UI не виснет бля
#582 #644467
>>644455
C, виртовские поделия, lisp - это только из того, что я с дивана вспомнил
#583 #644469
>>644460
Я так понимаю, что в файле make инструкии для компиляции файла main.cpp
Напилши с какими параметрами компилировал.
#584 #644471
>>644469
make VERBOSE=1 подставь
#585 #644472
>>644469
xampp% pwd
/home/server/dev/tlc5940-raspberry
xampp% make
#586 #644473
>>644472
Там же в readme написано
#587 #644476
Алзо, шапка - какая-то китайская лапша, читать невозможно
#588 #644479
Читай внимательно, пока не прогрокаешь во всей полноте.
#589 #644480
>>644462
Может так? И убери малок/фри

if (strncmp(line, "str=", 4) == 0)
{
line += 4;
char str =line;
while(
str == ' ')str++;
}

Ещё поясните за си-строки. Ели я указываю только на первый символ строки а её длина не исвесна, то значит она храниться в свободной памяти? Тогда почему какой нибудь маллок не заберёт себе часть памяти занятой этой строкой или почему следующая же перемена объявленая на стэке не затрёт это строку?
#590 #644482
>>644476
вот там предлагал исправить >>632019 а оп даже опечатку орфографическую ошибку в слове зделать не убрал.
#591 #644484
>>644480
Почему бы тебе не ебать нас нуб-вопросами и почитать, например, ритчи? Чтобы нормально освоить материал.
#592 #644488
>>644484
Потому что это си. всю книгу ради пары вопросов долго. Лучше Что-то интересное прочитать.
#593 #644489
>>644482
Двачую. Что за дебилизм думать, что раз трудно читать материал, значит он сложный? Бред! Это ты, еблан, хуево написал.
162 Кб, 860x1236
#594 #644492
>>644473
>>644472
>>644471
Слушайте, я вот поудалял комменты из шапки и поменял строки местами, но получаю точно те же ошибки с теми же номерами строк. При этом, если бы я копилировал либу с левым файлом, то небыло бы такого результата >>644459
В чем, мать его, дело?
#595 #644493
>>644480
source.cpp: In function 'int main(int, char)':
source.cpp:34:16: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
while(str == ' ')str++;
#596 #644495
>>644488
Чем дальше ты будешь идти, тем больше будет таких вопросов. Того Ритчи читать дней 5 максимум, зато на выходе у тебя будет структурированный материал со всеми нюансами.
#597 #644497
>>644489

>трудно читать


трудно = сложно
сложно читать материал = материал сложный

Ну не удобно же вот так листать не компактную шапку.
#598 #644499
>>644492
Запили трансляцию на twitch, можно без звука
#599 #644503
>>644497
Д а т ы ч т о, а м н е в се ж е каж ет ся, ч то в се сло жн ы й ма тери ал не вс егда тр удн о чи т а ть. И н ао бо ро т.
#600 #644506
>>644417
Так получается, что при проверке программа падает даже при нормальных вводных данных. Пиздец.
103 Кб, 917x547
#601 #644512
>>644503
Ты так не шути больше. У меня лиса иногда буквы ворует и долго не возвращает.
#602 #644515
>>644506
Иди нахуй читать основы, заебал
#603 #644517
>>644515
Нахуй мне основы? Я вообще на другом ЯП пишу. Просто на задании попался С++ код, а я нихуя не знаю. Хули вам помочь-то, блядь?
#604 #644521
>>644493
Там где курсив начинается и заканчивается звёздочки стоят
#605 #644524
>>644499
Может так и сделаю, но не сегодня. Спасибо за помощь!
#606 #644529
>>644517
Я ебал тебе помогать
#607 #644535
>>644521
Теперь нарушена нормальная работа программы.
#608 #644540
>>644535
Как так? Покажи что ты получил и что должно быть.
#609 #644547
>>644540
В общем, у меня CTF. Большинство заданий я выполнил, а вот с исправлением С++ кода у меня проблемы. Даётся этот код. Нужно починить его чтобы он корректно работал и нужно убрать уязвимости в коде. Есть комментарий:

// STRING ECHO
//
// Sample usage:
// strecho repeat=4,str=pleaseechome

Я читал статьи - нихуя не понимаю и поэтому пришёл сюда. Сам я питоноблядь.
#610 #644556
>>644480
>>644547
Оба варианта должны работать. Что вот этот выводит?
#611 #644568
>>644556
Я правильно понял?

if (strncmp(line, "str=", 4) == 0)
{
line += 4;
char (звёздочка) str = line;
while((звёздочка)str == ' ')str++;
}
#612 #644576
>>644556
char str = (char );
А что тут не так?
source.cpp(14) : error C2059: syntax error : ';'
#613 #644581
>>644576
ты что указателю присваиваешь? эта строчка не нужна.
>>644568
Да. Не работает? Что на тот тест который ты кидал выводит?
#614 #644588
>>644581
Если без этой строки:

source.cpp:39:17: error: 'str' was not declared in this scope
line += strlen(str);

Если с char str = (char );

source.cpp(14) : error C2059: syntax error : ';'

Если char str = (char )malloc(100);

LOST!

The program's normal behaviour is changed! (RULE0)

Я заебался уже. 6 утра, а я не могу решить эти таски.
#615 #644593
>>644588
char str = (char )malloc(100);
...
str = strtok(line, " ");
...
free(str);

Освобождаешь ты память по указателю на подстроку. Утечка + краш на выходе.

К тому же strtok вернет только первый токен перед пробелом. Как именно уязвимость заюзать - интереснее.

Лучше дай условие полное, какой цтф ебашишь чтобы это говно переписать.
#617 #644595
>>644588

>line += strlen(str);


не заметил. тогда char (звёздочка) str в начале напиши, а в ифе просто str = line;
#618 #644602
>>644595
Таким образом программа работает верно, но уязвимость осталось. Их три.
#619 #644606
>>644593
Значит это не str переполняется. Вот он >>644602 тебе дальше помогать будет.
#620 #644608
>>644606
Я сам себе не помогу. Это мой пост как раз таки.
#621 #644611
>>644608
Тогда зачем просил сам у себя полное условие?
#622 #644613
>>644611
А нет. Это я номера постов перепутал. Ну ты понял.
#623 #644634
http://pastebin.com/UtZ4gSTW
Если я буду вбрасывать код сразу на цтф, тебе попытку засчитают?
#626 #644759
>>644634

The program is still vurnerable! (RULE1)
3 vulnerability(ies) remained unpatched.

Some vulnerability is detected via unexpected empty output. In order to avoid any false crash detection, be sure that you output some error message when you detect that the input is malicious.
#627 #645071
>>631744 (OP)
Сейчас часто встречаются вакансии программиста на чистом C.
Кто-нибудь может мне обьяснить... ЗАЧЕМ?
#628 #645076
>>645071
л е г а с и г о в н о
е
г
а
с
и
г
о
в
н
о
#629 #646047
>>645071
СКОРОСТЬ!!!
МК всяких смарт тв, смартфонов и прочей хуйни.
Алсо легаси.
#630 #648734
Я тот ньюфаг, что недавно начал учить С++. Такой вопрос, я иногда листаю вакансии, и там где указан С++, как правило, кроме знания ++ стоит еще понимание ООП.
Я слышал что объектно-ориентированное программирование - это основная фишка ++ или я что-то не понял?
Тред утонул или удален.
Это копия, сохраненная 20 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски