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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
422 Кб, 645x644
Оффициальный™ традиционный® C++ тред #27 #696401 В конец треда | Веб
У каждого треда запах особый:
Пахнут ньюфаги ленью и злобой,
В перезвоним-треде пахнет злорадством,
В гитхаботреде - вниманиеблядством.

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

R-щик разит дата-майнингом скучным,
От джавабляди прет офисом душным,
Пахнут bash-ниндзя парой витой,
А шарпоебы - пиратской вендой.

Смузи и маффином пахнут рубисты,
Пахнут вчерашним борщом хаскеллисты,
Гоферы пахнут Илюши багетом,
Лисперы... впрочем, не будем об этом.

Свифтеры пахнут спекой сырою,
А 1С-ники - красной икрою,
Густо намазанной на доширак...
Лишь крестобоги не пахнут никак.


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

TL;DR

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

Памятка ньюфагу

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

Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля. Для больших фрагментов используй внешние сервисы.


FAQ

Мотивация

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:

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

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

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

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


Литература

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

  • Best practices

    Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все:


    Автор(ы) Название Год Ссылка
    Скотт Мейерс Эффективное использование 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++11, C++14, а также последняя версия черновика стандарта C++17.

  • Тонкости языка

    Книги для тех, кто возлюбил кресты всей душой и желает углубиться в детали:


    Автор(ы) Название Год Ссылка
    Герб Саттер Решение сложных задач на C++ 2002 https://goo.gl/iWaa6S
    Герб Саттер Новые сложные задачи на C++ 2004 https://goo.gl/4nn512
    Бьерн Страуструп Дизайн и эволюция C++ 1994 https://goo.gl/FqbPwo (для легкого чтения)

  • Отдельные аспекты

    Читать по необходимости:


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


Другие обучающие материалы

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

Q: Не люблю, когда льют воду. Хочу коротких материалов по существу.
A: Вот тебе блоги, факи, референсы и всякое такое:

  • Годный блог, в котором все просто и понятно тян не нужны кококок борщ
  • Блог с хорошо расписанными фичами новых стандартов
  • Краткие описания библиотечных функций и контейнеров - на русском или более подробно на ангельском
  • Блог Герба Саттера (на ангельском)
  • Блог Скотта Мейерса (на ангельском)
  • Блог еще одной тянки, много о Qt и оптимизации (на ангельском)
  • Куча других блогов (на ангельском)
  • Большой FAQ по C++ (на ангельском)
  • Видео с CppCon (на ангельском)


Софт и библиотеки

Q: Я готов начать погроммировать! Куда мне писать код?
A: На этапе написания хэллоуворлдов можно не ебаться с установкой софта, а использовать онлайн-компиляторы: раз, два, три, четыре. Для работы над более серьезными вещами удобнее всего установить какую-нибудь IDE. Ниже приведены несколько хороших вариантов:


Платформа Название Описание Ссылка
Windows Microsoft™ Visual Studio® Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика. По ссылкам справа можно скачать бесплатную редакцию последнего выпуска (2015 Community Edition). Кроме того, существуют редакции с расширенными возможностями (Professional и Enterprise). Они стоят сотни денег, но если ты студент вуза, подписанного на Dreamspark Premium, то ты можешь получить их безвоздмездно (то есть даром). Многим новичкам интерфейс студии кажется чересчур сложным, так что обязательно прочти этот гайд, если у тебя возникают проблемы с компиляцией хэллоуворда https://goo.gl/qgAAc6 (русская версия) или
https://goo.gl/WIPW9L (ангельская версия)
Все CodeLite Простая, легковесная, кроссплатформенная, швабодная IDE. Менее навороченная, чем студия, но среди бесплатных вне конкуренции. Вероятно, это наилучший вариант для новичка с *nix. Под Windows же требует чуть больше ебли с установкой компилятора MinGW/LLVM http://codelite.org/,
"sudo aptitude install codelite codelite-plugins"
для установки под *nix
Все CLion IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию на год по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует https://www.jetbrains.com/clion

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

Разумеется, установка IDE вовсе не обязательна. Ты можешь использовать текстовый редактор в связке с каким-нибудь компилятором, выбросить мышку, отрастить бороду и примкнуть к Церкви Святого Столлмана. Но лучше тогда сразу отправляйся в тред сишников, если не хочешь быть обоссанным другими сектантами за использование б-гомерзкого C++.

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

  • Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio
  • Более навороченный, но коммерческий аналог
  • Встроенный в clang статический анализатор
  • Детектор утечек для Visual Studio. Предельно прост в прикручивании
  • На порядок более мощная и сложная утилита для *nix, служащая тем же целям
  • Гугловские утилиты для контроля корректности кода
  • Гугловский фреймворк для автоматизации тестирования

Также не стоит забывать о том, что правильные посоны экономят свое время и нервы, используя мегагодные git и cmake во всех проектах.

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

  • boost

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

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

    Литература:


    Автор(ы) Название Год Ссылка
    Ариндам Мукерджи 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.х, полной обратной совместимости между ними нет как в пистоне, ага.

    Литература:


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

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

    Несколько специализированных библиотек для часто встречающихся задач. Все — маленькие, быстрые и простые в освоении:

    • libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году)
    • SFML - работа с графикой и аудио
    • FLTK - графические интерфейсы

    И еще куча библиотек на любой вкус.


Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.


#2 #696406
>>696401 (OP)
Ахаха. Типа крестовый ход.
>>696420
#4 #696416
>>696401 (OP)
Топовый стих!
#5 #696420
>>696406
Ещё круче. Это ДЕТСКИЙ крестовый поход.
#6 #696422
>>696401 (OP)

> Оффициальный™ традиционный® C++ тред #27


> #17

>>696424>>696596
#7 #696424
>>696422
Где ты 17 увидел?
2799 Кб, 1789x2047
1020 Кб, 1841x893
#8 #696427
Поможете с задачкой? Мне бы просто идею понять.
#10 #696448
Ребят, в vs2015 куда делать окошко в котором я мог бы посмотреть сколько у меня ошибок и предупреждений?
Раньше там ещё можно было не показывать предупреждения или ошибки чтобы навигация по ним была проще.
>>696496
#11 #696449
>>696446
Тут расписано что уже вошло в стандарт (список не полный), что не вошло и почему, и что возможно войдёт в июне на встрече в Oulu.
#12 #696450
>>696401 (OP)

> обгвидок


Кто такой? Чем знаменит?
>>696454
#13 #696454
>>696450
Пистон
#14 #696455

> 19:56:48


> 19:56:52


> 19:57:30


Да вы охуели.
>>696461
#15 #696461
>>696455
For you
#16 #696496
>>696448
View -> Error list
>>696513
76 Кб, 442x331
#17 #696499
Ага. Это опять я (ну тот, который из PHP хочет в C++ перекат сделать). Посоны, а поясните за указатели/ссылки? Что это за хуита, как ими пользоваться и зачем они вообще нужны?
>>696546
#18 #696513
>>696496
Сенькс.
#19 #696539
>>696446
Нахуя 2Д? Решили догнать и перегнать турбопаскаль?
#20 #696546
>>696499
А в книге что про это говорят?
>>696611
#21 #696581
Но вот. Мод хуй. Я почти уловил её прочитать нашу шапку. А ты вмешался и удалил ту шлюху. И кто теперь шапку читать будет?
>>696583>>696588
#22 #696583
>>696581
я прочла и ощутила свою ничтожность )
78 Кб, 836x1024
#23 #696588
>>696581
Это зелень, он из соседнего треда пришел.
>>696846
#24 #696596
>>696422

>17


Только в твоих влажных фантазиях.

Алсо, возрадуемся, братья. В этом треде мы обогнали жабу и вышли на первое не считая веб-макак место по количеству тредов!
>>701695
15 Кб, 442x331
#25 #696611
>>696546
Говорят, что можно выделить переменную, а потом сделать еще одну переменную, которая будет ссылкой на ячейку памяти той первой переменной. Типа синоним переменной или типа того. Только я все равно нихуя не понял. Если у меня уже есть переменная, с помощью которой можно попасть в ячейку памяти, зачем мне еще одна переменная, которая в ту же ячейку будет указывать?
#26 #696615
>>696611
Говорят, что кур доят.
#27 #696619
Я сделал класс, в нем ссылка на объект этого же класса, как в прошлом треде сказали мне, вот, потом пишу туда через & объект этого класса, потом хочу забрать через *, вроде забираю, пытаюсь из этого объекта взять значение x, а мне выдает не то, что было, а -858993460 . Что такое?
#28 #696633
>>696611
Емнип, в пыхе надо писать &tvoyamamka, чтобы оперировать самой переменной, а не ее значением. Вот здесь в точности то же самое, указатель это как бы "сама переменная", ее адрес, а не значение.
>>697486
#29 #696640
>>696611
Вот ты читаешь книгу, тебе там пишут: "Существует хуйнянейм. С ней ты можешь делать то-то, то-то, то-то." Дают простенький пример. И ты задаёшся вопросом: "А зачем мне хуйнянейм в этом примере если и без неё обойтись можно?" Вот в место того что-бы считать себя умнее автора учебника, ты должен запомнить, что хуйнянейм существует, запомнить её особенности, и продолжить читать учебник. В последующих главах, материал и примеры усложняются, автор начинает использовать то, о чём было рассказано в предыдущих. И возможно, тогда, ты поймёшь зачем оно нужно.
#30 #696649
>>696619
Без кода тебе нихуя не ответят.
>>696772
#31 #696678
>>696401 (OP)
Вопрос по MFC.
Я правильно понял, что формошлёпствовать можно только добавляя элементы в диалоговые окна и меню, а для того, чтобы добавить кнопку в основное окно надо всегда вписывать её руками?
>>696694
#32 #696694
>>696678

> 2017


> MFC

>>696702>>696783
#33 #696697
Как будет быстрее передать переменную в функцию? Через ссылку или указатель?
#34 #696698
>>696697
Одинаково.
#35 #696702
>>696694
Ну а хули, проекты на mfc никто с нуля переписывать не будет.
>>696720>>696783
#36 #696720
>>696702
Вся суть крестопидоров. Нужны только чтобы деньги экономить не перенося проект на эфективные и современные ЯП.
#37 #696724
>>696720

> эффективные и современные ЯП


Это какие?
>>696725>>696726
#38 #696725
>>696724
Haskell
#39 #696726
#40 #696727
>>696697
Одно и то же.
Ссылка - синтаксический сахар над указателями.
#41 #696732
>>696720
Отрок услыхал звон, да не понял, где он.
#42 #696735
>>696720
C++ современный. Последний стандарт в 14-м году вышел, вот-вот стандарт 17-го года выйдет.
Про эффективность я уже молчу.
>>696739
#43 #696739
>>696735

>вот-вот стандарт 17-го года выйдет


надо эту хуйню убрать из шапки, чтобы не позориться. такое язык даже стандартом не повернется назвать
#44 #696741
>>696697
Зависит от того, может ли у тебя быть null - состояние.
Если нет - по ссылке. Если можно обойтись без указателей - то лучше обойтись без них.
>>696754
#45 #696754
>>696741
И снова платиновые вредные советы. Уже сколько раз говорилось: указатели могут использоваться для передачи in-out параметров, чтобы не перепутать их со ссылочными обычными. Это, блядь, стандартная практика.
>>696755>>696784
#46 #696755
>>696754
С указателями можно обосраться, передав хуй знает что.
Со ссылками - нет.
>>696756
#47 #696756
>>696755
Да и банально использовать переменную без сраных звездочек и амперсандов куда удобнее.
#48 #696772
>>696619
Ну памагити
>>696649
Много копировать, выскажи предположения.
>>696774
#49 #696774
>>696772
Сократи до рабочего минимума и кидай код. Я нихуя не понял из того, что ты сказал.
>>696789
#50 #696781
>>696619
Хуйню делаешьили пишешь. Кидай код.
>>696789
#51 #696783
>>696694

> 17



>>696702
Да вот хуй знает. Почему бы и нет? Зачем тащить неподдерживаемое говно с собой?
#52 #696784
>>696754
>>696401 (OP)
Алсо, ОП, ссылочку на какой-нибудь(гугловский) стайлгайд в шапочку.
#53 #696789
>>696781
>>696774
Я переделал это все в ссылки и новый вопрос и вот код сразу

class yoba {
public:
yoba &yobject;
};

int main() {

yoba yobishe;

yoba yobatest;
yobatest.yobject = yobishe;

};

Так ругается на нет подходящего конструктора по умолчанию и оператор = не перегружен. Делаю конструктор и перегружаю оператор.

class yoba {
public:
int test1, test2;
yoba &yobject;

yoba() {
test1 = 0;
test2 = 0;
yobject????????
};

yoba& operator = (yoba a) {
test1 = a.test1;
test2 = a.test2;
return *this;
};

};

int main() {
yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
yobatest.yobject = yobishe;
};

Вот. И что писать на месте "yobject????????" ? Нужно же инициализировать yoba &yobject;, без него не компилится, но как, если объекта класса yoba еще нет и не может быть потому что мы еще даже не сделали класс и конструктор. Поясните ньюфагу.
#53 #696789
>>696781
>>696774
Я переделал это все в ссылки и новый вопрос и вот код сразу

class yoba {
public:
yoba &yobject;
};

int main() {

yoba yobishe;

yoba yobatest;
yobatest.yobject = yobishe;

};

Так ругается на нет подходящего конструктора по умолчанию и оператор = не перегружен. Делаю конструктор и перегружаю оператор.

class yoba {
public:
int test1, test2;
yoba &yobject;

yoba() {
test1 = 0;
test2 = 0;
yobject????????
};

yoba& operator = (yoba a) {
test1 = a.test1;
test2 = a.test2;
return *this;
};

};

int main() {
yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
yobatest.yobject = yobishe;
};

Вот. И что писать на месте "yobject????????" ? Нужно же инициализировать yoba &yobject;, без него не компилится, но как, если объекта класса yoba еще нет и не может быть потому что мы еще даже не сделали класс и конструктор. Поясните ньюфагу.
>>696797>>697513
#54 #696797
>>696789
Пиздос - то есть ты создал ссылкочлен, но не придумал что в нем хранить?

Это как? Что за йоба?
>>696799
#55 #696799
>>696797
Я придумал, другие объекты класса йоба. То есть в объекте класса йоба содержится ссылка на другой объект класса йоба, понимаешь? Но они-то инициализируются после того как я сделаю класс.
>>696800
#56 #696800
>>696799
Никак. В твоем случае подразумевается вариант null-состояния, ссылки в него не умеют.

Твой вариант - указатели, по умолчанию нулевые.
>>696801>>696802
#57 #696801
>>696800
Хотя можешь попробовать по умолчанию сделать ссылки, замкнутые на this. Хуй знает, скомпилится ли.
#58 #696802
>>696800
Окк, смотри, делаю указатели, разыменовываю где надо.

class yoba {
public:
int test1, test2;
yoba yobject;

yoba& operator = (yoba a) {
test1 = a.test1;
test2 = a.test2;
return
this;
};
};

int main () {
yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
*yobatest.yobject = yobishe;
}

error C4700: использована неинициализированная локальная переменная "yobatest"
Как так?
#58 #696802
>>696800
Окк, смотри, делаю указатели, разыменовываю где надо.

class yoba {
public:
int test1, test2;
yoba yobject;

yoba& operator = (yoba a) {
test1 = a.test1;
test2 = a.test2;
return
this;
};
};

int main () {
yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
*yobatest.yobject = yobishe;
}

error C4700: использована неинициализированная локальная переменная "yobatest"
Как так?
>>696803
#59 #696803
>>696802
Ну йобана, проебал все.

class yoba {
public:
int test1, test2;
yoba звездочкаyobject;

yoba& operator = (yoba a) {
test1 = a.test1;
test2 = a.test2;
return звездочкаthis;
};
};

int main() {

yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
звездочкаyobatest.yobject = yobishe;
}
>>696806>>696903
#60 #696806
>>696803
Блять, я нихуя не понял.
Нахуя тебе вообще оператор присваивания перегружать?
#61 #696809
тест
[code]
int main()
{
return 0;
//тест
}
[/code]
#62 #696846
>>696588
Из какого?
#63 #696847
Ананасы, помогайте. Чет мне с этого богомерзкого Qt стало еще пуще припекать, и тперь не из-за всратых тредов его, а из-за GUI, который у него основная пушка.
Так вот в чем дело:

class CLS1: public QObject {
Q_OBJECT

public:
CLS1(QObject parent = 0) :
QObject(parent) {
... ничего важного

_dialog = std::make_shared<DLG1>();
}

public slots:
kickMe() {
_dialog->show();
}

private:
std::shared_ptr<DLG1> _dialog;

}

class DLG1 : public QDialog {
Q_OBJECT

public:
DLG1(QWidget
parent = 0) :
QDialog(parent) {
... инициализирую кнопащки и все такое
}

}

Так вот, стоит мне вызвать слот CLS1::kickMe так у меня сразу всирается Q_ASSERT_X о том, что я не могу вызывать виджеты из левых тредов. Но я блять ничего не трогал, терды не перемещал. Когда запускаю в релизе, периодически окошко-таки повяляется, но отрисовывается по-инвалидски, в других случаях просто зависает (спасибо Q_ASSERT_X, который делает эту хуйню).
Что делать, посоны, ума не приложу
#63 #696847
Ананасы, помогайте. Чет мне с этого богомерзкого Qt стало еще пуще припекать, и тперь не из-за всратых тредов его, а из-за GUI, который у него основная пушка.
Так вот в чем дело:

class CLS1: public QObject {
Q_OBJECT

public:
CLS1(QObject parent = 0) :
QObject(parent) {
... ничего важного

_dialog = std::make_shared<DLG1>();
}

public slots:
kickMe() {
_dialog->show();
}

private:
std::shared_ptr<DLG1> _dialog;

}

class DLG1 : public QDialog {
Q_OBJECT

public:
DLG1(QWidget
parent = 0) :
QDialog(parent) {
... инициализирую кнопащки и все такое
}

}

Так вот, стоит мне вызвать слот CLS1::kickMe так у меня сразу всирается Q_ASSERT_X о том, что я не могу вызывать виджеты из левых тредов. Но я блять ничего не трогал, терды не перемещал. Когда запускаю в релизе, периодически окошко-таки повяляется, но отрисовывается по-инвалидски, в других случаях просто зависает (спасибо Q_ASSERT_X, который делает эту хуйню).
Что делать, посоны, ума не приложу
>>696849
#64 #696848
Добавьте в шапку что надо чтобы пойти джуном.
>>696850
#65 #696849
>>696847

>Так вот, стоит мне вызвать слот CLS1::kickMe


Как вызываешь? Сигналом, или руками?
Если руками - это надо делать через invokemethod.

И да - за std::sharedptr в Qt проге принято больно бить, там же есть QSharedPointer, ну ебана!
>>696883
#66 #696850
>>696848
Уверен, что хочешь это знать?
>>696851
#67 #696851
>>696850
А какие вообще рамки джун/неджун?

Писал на крестах, но про эту хуйню уже позже на сосаче читал.
#68 #696883
>>696849

> invokemethod


Не вышло, то же говно выдает

> сингалом


Вот эта хуйня прокатила, но мне не нравится наличие такого костыля. В чем тут проблема, может быть объяснишь?

> принято больно бить


Да у меня в наследство от прошлого досталась программа, изобилующая std::vector/list ... - это тоже плохо?
#69 #696884

>Вот эта хуйня прокатила, но мне не нравится наличие такого костыля. В чем тут проблема, может быть объяснишь?


> invokemethod Не вышло, то же говно выдает


А мне кажется, что ты пиздишь. Потому что сигналы-слоты работают через invokemethod.

Как вызывал то?

>Да у меня в наследство от прошлого досталась программа, изобилующая std::vector/list ... - это тоже плохо?


Лично я в Qt-коде никогда их не использовал. Вектор/Лист еще похуй, (хотя QList уж точно std::list'у за щеку по удобству накидает), а вот сравнивать std::set и QSet без припадков истерического смеха уже невозможно.
>>696887>>696941
#70 #696887
>>696884
Таки вот и не вышел этот invokemethod, даже когда я в своем CLS1 его определил слотом.

Пришлось у класса (пусть будет A), из которого вызывается CLS1::kickMe делать сигнал A::someSig, связывать его с CLS1::kickMe, и только потом его вызывать (emit'ом, естественно)
#71 #696888

>Таки вот и не вышел этот invokemethod, даже когда я в своем CLS1 его определил слотом.


У меня фейспалм. Ты должен его поставить там, где сейчас делаешь emit.
И вызывать kickMe. И делать это в queue-режиме.
>>696893
#72 #696893
>>696888
Я так и сделал и вышло ровно так же, как если бы я вызывал напрямую.
>>696894
#73 #696894
>>696893
Код в студию. Я тебе не верю, где-то ты пиздишь/проебался.
Еще раз - когда сигнал дергает слот, он делает именно invokeMethod.
>>696896
#74 #696896
>>696894
Таки да, пропизделся. На QueuedConnection внимания не обратил, а было DirectConnection.
#75 #696903
>>696803
http://ideone.com/hbwCxA
А ссылки указывающие на свой собственный класс оказываются слишком ограничены по функционалу. Ссылка может быть только константной по смыслу, так как наивная реализация оператора присваивания приводит к бесконечному циклу. http://ideone.com/7BOXIa Можно наверное реализовать оператор присваивания через new с размещением, но хуй знает сколько при этом ног может быть отстрелено и нахуй таким заниматься когда есть указатели.
#76 #696938
Ананасы, такой вот вопрос.
Пишу менеджер текстур и встал вопрос как лучше сделать:
Сейчас так
Есть мапа в которой ключ это хеш строки имя текстуры, а значение это индекс в векторе.
Ну и сам вектор в котором хранятся текстуры.

Но есть ли смысл в этом?
Может заменить значение на сами текстуры и обойтись без вектора?
#77 #696941
>>696884

>std::set и QSet без припадков истерического смеха уже невозможно



Ты лалка потому что. В STL используется функциональный подход, поэтому для всех операций -, +, |, & есть свои аналоги в алгоритмах. Не то, чтобы это было сильно удобнее чем ООП подход, но неправильно говорить, что в STL контейнеры УРЕЗАННИЕ АХАХА ЛОЛ
>>696949
#78 #696944
>>696938
сделай std::map<std::string, Texture> и не парься.
#79 #696949
>>696941
"функциональный подход" это когда функция передается в качестве параметра другой функции, не неси хуйни. К примеру map или reduce, применительно к крестам - transform.

Операторы позволяют записать все в читаемом виде, вроде (lal1 + lal2 + lal3) & lal4 | lal5.
Как будет выглядеть эта хуйня с "std::set_difference" и прочим? Как набор отболного нечитаемого говна.

В Qt то "функциональные функции" никуда не делись, просто там есть выбор. А в STL выбор один - жрать говно.
>>696977
#80 #696950
>>696938

>Может заменить значение на сами текстуры и обойтись без вектора?


Да, есть. А ещё есть смысл заменить map на unordered_map перформанса ради.
83 Кб, 400x300
#81 #696971
Когда говно плюс наконец приведут в порядок?

почему в шаблоне можно писать const T, а unsigned T нельзя.
когда будут опережающие описания для вложенных классов?
#82 #696973
>>696971

>когда будут опережающие описания для вложенных классов?


Никогда.
Страдай, быдло.
#83 #696974
>>696971

> unsigned float

#84 #696977
>>696949

>"функциональный подход" это когда функция передается в качестве параметра другой функции, не неси хуйни


Манька, залезь в википедию и почитай, что значит функциональный подход. То, что ты называешь функциональным подходом, на самом деле является функциями высших порядков.
В STL данные отделяются от алгоритмов и алгоритмы выполнены в виде функций, работающих с итераторами. Т.е. функции, которые принимают возвращают и данные.

Как я уже сказал, что это не всегда лучше или читаемее, чем ООП версия, но функциональность полностью равнозначная. К тому же, кто мешает написать глобальный оператор? Никто.
>>696987
#85 #696987
>>696977

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


Нет, манька, это ты залезь уж туда и почитай про функциональную парадигму.
Если в двух словах - использование map/reduce, отказ от циклов в пользу рекурсии, отказ от переменных, чистые функции, которые зависят только от своих параметров.
Короче, типо свести к минимуму побочные эффекты, все зло от них лол.

И в этих "алгоритмах" ничего функционального и близко нет, обычная процедурщина из 80х.

>К тому же, кто мешает написать глобальный оператор?


Из-за такой хуйни кресты и превращаются в говно. Вместо того, чтобы заниматься программой, все пишут велосипеды, и у каждого он свой. Нет строк? Что мешает написать свои строки? И вот и имеет char*, std::string, QString - и без сомнения, список этим не исчерпывается.
#86 #696988
>>696938
Смотря как ты работаешь с текстурами. Может тебе вообще по именам к ним надо обращаться только при загрузке, когда данные инициализируются. В векторе их имеет смысл хранить только если ты итерацию по ним часто делаешь, и тебе нужна производительность за счет локальности данных. Если нет - то проще выделять память для каждой текстуры отдельно, а в хэшмепе хранить указатели.
#87 #697032
>>696938
Не стоит в мапе хранить большие объекты, у мапа большой оверхед на элемент.
>>697135
#88 #697033
>>696987

>QString


Нестандарт.

>char *


Наследие сей, нерекомендуемое к использованию.

Фактически, нет стандартных строк, кроме std::basic_string, и std::string - пророк их. А если кто пишет велосипеды - это его проблемы, а не языка.
>>697075
#89 #697040
>>696987

>использование map/reduce


std::transform и std::accumulate в чистом виде.

>отказ от циклов в пользу рекурсии


Хвостовая рекурсия есть. Обычная рекурсия наносит ущерб производительности и не должна быть основным инструментом в крестах.

>отказ от переменных


Функции из одного return'а никто не отменял.

>чистые функции


Хочешь чистые функции - пишешь чистые. Никто насильно тебе побочных эффектов не напихает за щеку.

Серьезно, функциональщики-евангелисты, мечтающие сделать из крестов лиспохаскель, запретить и не пущать - это было ново лет пять назад. Сейчас уже даже самые упоротые даунята остыли от хайпа и смекнули, что крайности вредны. Задача крестов - не собезъянничать %языкнейм, а предоставить как можно больше средств и сделать их максимально удобными и непротиворечивыми. Все остальное на совести погроммиста.
#90 #697071
>>696971
Давно unsigned стал qualifier-ом?
>>697097
32 Кб, 565x365
#91 #697073
Подскажите, где достать много хороших программок с подробным комментированием и описанием. Отлично будет, если это написание программы с нуля с планированием и т.п.
Что-нибудь вроде древней рассылки Бобровского http://subscribe.ru/archive/comp.soft.prog.prognull.game/200507/22073836.html , по созданию простой rpg-шки,
или видосов на трубе, типа своего Марио https://www.youtube.com/watch?v=6OHMFwQK44k. Интересуют от игр типа морской бой и выше.
>>697076
#92 #697075
>>697033

> А если кто пишет велосипеды - это его проблемы, а не языка.


Нет, это проблема языка (точнее, его стандартной библиотеки). Она не предоставляет строки, удовлетворяющие всех.
>>697079
#93 #697076
>>697073

>где достать много хороших программок с подробным комментированием и описанием


Сам пиши.
#94 #697079
>>697075
Это проблема наследия велосипедистов из си, которые ради 0,4 мс на 2000000 итераций пилят свои каштомные строки.
#95 #697090
Почему-то этот тред очень медленно грузится в двачбраузере от vortexwolf'a

Котаны, в чем приемущество использования функций atol, atof, atoi и т.п. перед sscanf при парсинге текстовых протоколов? Смотрю - в программах под микропроцессоры везде только так и делается.
#96 #697094
>>697090
Сканфом можно сразу всю строку распарсить если конечно известна её структура.
>>697187
#97 #697095
>>697090
sscanf использует atol, atof, atoi или что-то подобнее, получается что это лишний вызов, ради большей абстракции.
>>697187
#98 #697097
>>697071

кого это волнует?
в коте я могу написать unsigned short/int govno;
а шаблоне видите ли нет?
#99 #697099
>>697097
Напиши специализацию шаблона.
>>697104
33 Кб, 450x297
#100 #697102
не повезло что С++ построен на наследии дауна кернигана ричи. он даже на фото всегда лыбится так как буд-то только что под дверью насрал.
>>697107
#101 #697104
>>697099

ну охуеть теперь. вместо того чтобы хорошо зделать нормальный язык из коробки, комитетские дауны предлагают программистам "ну напиши..."
>>697107>>697110
#102 #697107
>>697104

>зделать нормальный язык из коробки


>предлагает добавить в язык unsigned float, unsigned class и т.п.


просто нахуй иди

>>697102
Не повезло что твоя мать шлюха, вот это действительно не повезло.
>>697125
#103 #697110
>>697104
Отвечу на доступном тебе уровне: ЯП даёт тебе бумагу, а подтирать жопу ты должен сам.
#104 #697121
>>697097

>кого это волнует?


Всех не-долбоёбов.

>unsigned short/int govno


Идиот, unsigned int и signed int это два отдельных типа.

>то, что я не хочу тоже было не известно


unsigned это не type qualifier, в отличие от const или volatile
>>697123
#105 #697123
>>697121

>а шаблоне видите ли нет?


unsigned это не type qualifier, в отличие от const или volatile

В предыдущем сообщении вставилась какая-то хуйня
>>697130
#106 #697125
>>697107

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

> unsigned float



кто мешает не компилировать такой шаблон?
#107 #697127
>>696971

>unsigned float


У тебя есть отличная возможность сделать через std::enable_if + std::is_unsigned и выпендриться перед коллегами
>>697132
#108 #697130
>>697123

> unsigned это не type qualifier



это никого кроме зашоренных фанбоев не волнует.
там где unsigned не применим конпелятор спокойно выдаст ошибку во время инстанцирования шаблона
>>697131
#109 #697131
>>697130

>это никого кроме зашоренных фанбоев не волнует.


Пока что unsigned волнует только тебя.
>>697137
#110 #697132
>>697127

намазать говно слоем потолще? вся суть говна плюс
#111 #697135
>>697032

>Не стоит в мапе хранить большие объекты


может наоборот, не стоит хранить маленькие? оверхед три указателя плюс флаг для цвета узла.
#112 #697137
>>697131

пошел нахуй, фанбой. от вас - восторженных говноедов языку только вред.
#113 #697142
Где вообще такие изъёбства понадобиться могут?
>>697155
#114 #697143
>>697097

> у дурачка сломался мозг из-за типа состоящего из двух слов


Ты не можешь написать "unsigned short/int govno" ты можешь написать или "unsigned short govno" или "unsigned int govno" это два разных типа, имена которых состоят из двух слов.
>>697145>>697153
#115 #697145
>>697143
Да хватит уже его кормить.
#116 #697153
>>697143

так же ты можешь написать unsigned unsigned unsigned int govno;
и конпелятор схавает. т.е unsigned в говне плюс ведет себя как qualifier, но qualifier-ом не является.
>>697158
#117 #697155
>>697142

мне нужно и прямо сейчас, чтобы убрать знак

[code]
template <class T> struct
{
unsigned T value;
};
[/code]
#118 #697158
>>697153

>так же ты можешь написать unsigned unsigned unsigned int govno;


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


Написал. Не хавает.
#119 #697161
>>697155
unsigned float
>>697171
#120 #697165
>>697155
Но нахуя?
#121 #697168
>>697155

>мне нужно и прямо сейчас, чтобы убрать знак


std::make_unsigned<T>
>>697172>>697177
#122 #697171
>>697161

каким образом там окажется флоат если я планирую передавать только целочисленные типы?
и кто мешает конпелятору выдать ошибку во время инстанцирования щаблона.
>>697172
#123 #697172
#124 #697177
>>697168

вся суть говна плюс. вместо того чтобы дать возможность программисту написать просто и читабельно:

unsigned T value;

комитет заставляет мазать говно толстым слоем:

typename std::make_unsigned<T>::type value;
>>697178>>697181
#125 #697178
>>697177
Обидься и не пиши на плюсах.
#126 #697181
>>697177
А в языках, которые не говно и при этом имеют шаблоны (или их подобие), писать unsigned T value; можно?
Просто любопытно, может знает кто.
>>697198>>697199
#127 #697187
>>697095
>>697094
Можно ли считать sscanf ебанически надежным в плане отбраковки строк, которые не соответствуют шаблону?
>>697188>>697191
#128 #697188
>>697187
Нет.
>>697191>>697228
#129 #697191
>>697187

>sscanf


>>697188
Хотя. Если sscanf — то, наверное, можно.
Это scanf-ом пытаться получать ввод без уверенности в его правильности не стоит.
#130 #697195
Есть один класс. Это компонента связности графа. Но не обычная, а такая, что каждая вершина этой компоненты соединена рёбрами со всеми остальными вершинами в этой компоненте. А значит новое ребро добавить нельзя. В классе есть int количество вершин и метод которые возвращает количество ребер. Нужно переопределить операцию +=. Так чтобы можно было объединить оба компонента и он ещё вернул количество ребер которое нужно добавить в компоненту чтобы та получилась завершённой или как такие называются. То есть было бы красиво делать вот так int ans=(a+=b).
>>697242>>697609
#131 #697198
>>697181
В таких языках нет unsigned. Модификаторы Ричи под ЛСД придумал.
>>697201
#132 #697199
>>697181

>и при этом имеют шаблоны


Сколько ещё таких языков?
>>697201>>697203
#133 #697201
>>697198
Логично.

>>697199
Хуй знает, может d или rust какие-нибудь. Я их не тыкал.
#134 #697202
>>697090
Сканф умеет возвращать ошибку, ato.. - undefined behaviour.
#135 #697203
>>696987
Ты забыл про wstring и QByteArray :3

>>697199
У D толковые шаблоны. Можно там глянуть.
#136 #697213
>>697203

>Ты забыл про wstring и QByteArray


Можно много ещё чего вспомнить, всякие NSSring, CString. Он написал " без сомнения, список этим не исчерпывается."
#137 #697228
>>697188
Но почему?
>>697230
#138 #697230
>>697228
Я уже исправил на то, что можно.
#139 #697242
>>697195
Вы скучные. Говно какое-то обсуждаете. кроме sscanf но его вы плохо обсуждаете Лучше с этой штукой помогите.
>>697500
#140 #697275
>>697203

>У D толковые шаблоны. Можно там глянуть.


Ни в D ни в Rust нету модификатора unsigned, там беззнаковые типы начинаются с u (uint, ushort в D и u32, u16 и u8 в расте).

Такое говно пройдёт разве что с текстовыми макросами. Я вот серьёзно не могу понять, нахуй так пердолится если можно просто передать значение нужного типа.

Хотя в вышеперечисленные языки-то хоть завезли контракты и трейты, а семнадцатый стандарт говорит пирдольтись))))
#141 #697466
Составить программу, которая порождает несколько дочерних процессов (схема fork + exec), отправляет и обрабатывает сигнал SIGPIPE

Я правильно понял, что нужно передать данные из того pid где вызывается сигнал в принимающий?
>>697468
#142 #697468
>>697466

> Лабы идут на хуй

>>697474
#143 #697474
>>697468
Не лаба, честное пионэрское.
>>697475
#144 #697475
>>697474
По её повелительной формулировке ясно, что это лаба/ДЗ.
>>697477
#145 #697477
>>697475
Нет.
14 Кб, 442x331
#146 #697486
>>696633
Если по хардкору - чтобы внутри функции можно было значение переменной менять, я правильно понял?
>>697487
#147 #697487
>>697486
В том числе.
#148 #697500
>>697242

> Лучше с этой штукой помогите


Если ты считаешь что "int ans=(a+=b)" (при том что a и b не int) это "красиво" то тебе уже не помочь.
>>697597
#149 #697513
>>696789
Ссылке надо всегда что-то присваивать.
#150 #697517
Аноны из индустрии, что это за пидорская хуита D и Rust(никакого стильного названия)? Собсссно вопрос в том, как продакшн смотрит на этих друзей? Какие преимущества/недостатки перед крестом ИРЛ?
>>697528
#151 #697525
>>697203

> Ты забыл про wstring и QByteArray :3


А еще я забыл cv::String

Также можно посчитать количество "умных указателей", лол.
std::shared_ptr, QSharedPointer, cv::Ptr, у буста вроде были... Еще кто вспомнит/назовет?

Та же хуйня с потоками, сигналслотами.... да чем угодно.

Вот и выходит, что чтобы писать на крестах нужно ебаться с велосипедами, а не решать задачу. И велосипедов овер9000 - то, что ты написал на крестах, другой уже хуй прочтет.
#152 #697528
>>697517
По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли.
D - это кресты, сделаные нормально.

А раст смотрел - не впечатлил, синтаксис пиздец наркоманский.
>>697596
#153 #697547
Есть структура с различными полями. Теперь вопрос, возможно ли, чтобы на каждом новом цикле менялись поля у структуры?
Поясняю, есть struct User { string a, string b, string c}, есть некий цикл через for { что-то делается + User.a = smth }. То есть, чтобы уже на следующей итерации было поле не a, а уже b.
#154 #697548
>>697547
А зачем тебе это нужно? Цель какая? Так как тянет на отборное извращение.
#155 #697549
>>697547
В свое оправдание сразу хочу сказать, что с крестами знаком буквально час. В текстовом файле в строчку записана информация: ФИО, дата рождения и еще пара пунктов. Я строку кусочно парсю и хочу сразу же на итерации закидывать в соответствующее поле в структуре.
>>697551
#156 #697551
>>697549
Ты уверен, что ради трех полей тебе надо городить цикл?
>>697552
#157 #697552
>>697551
Если бы точнее, то полей 5. И в файле строк, хар-их пользователей, около 5-6, то есть пользователей нормальное кол-во.
#158 #697553
Кидай пример файла и объясни по человечески, чего ты пытаешься достичь.
>>697554
13 Кб, 413x38
9 Кб, 192x122
#159 #697554
>>697553
Строчку входную парсим по ";" и достаем необходимые поля на каждой итерации и сразу пихаем в поля структуры.
#160 #697557
>>697554
boost::split
Это если по скорости не критично.
#161 #697558
>>697554
А как даты должны превратиться в int? unix time?
>>697561
#162 #697561
>>697558
А нахуй? Тем более, если там стндартизированно - то это меньшая из проблем.
>>697562
#163 #697562
>>697561

>А нахуй?


Как тебя понимать?
#164 #697571
>>697554
Все просто же.
http://pastebin.com/8fDQMDSp
>>697572
#165 #697572
>>697571

>Все просто


>Qt

>>697573
#166 #697573
>>697572
Иии?
>>697577
#167 #697576
     
#168 #697577
>>697573
Хуиии
>>697578
#169 #697578
>>697577
То то же.
Мимоанон спросил как - я показал.

Проблемы?
#170 #697583
Почему проект в кодблокс не хочет удаляться? Если точнее, то папка "debug". И не запускается он тоже, пишет "permission denied".
>>697589>>697948
#171 #697589
>>697583
Ш1ИD0W2. Чисти говно блять.
У тебя не закрывается программа/компилятор/дебагер, стандартная спермопроблема.
>>697591>>697598
#172 #697591
>>697589
Как я чистить-то буду? Среди процессов ничего похожего на кодблокс или мингв. Чего-нибудь со словом дебаг тоже не видно.
>>698102
#173 #697596
>>697528

> D - это кресты, сделаные нормально


> GC

>>697602>>697630
#174 #697597
>>697500
А как красиво? Кажется понял. Нужен конструктор копирования в int.
>>697606
#175 #697598
>>697589
У кодблокса есть такая хуйня. Когда программу на крестик закрываешь, то она может весеть в процессах. Поищи имя программы или ld.exe.
#176 #697602
>>697554
http://stackoverflow.com/questions/11719538/how-to-use-stringstream-to-separate-comma-separated-strings
>>697596
Хотел промолчать, но другой анон не смог. Пока мне не покажут, как использовать D классы без сборки мусора (хотя бы через подсчет ссылок) элегантно без костылей, я туда не буду лезть. Меня полностью устраивает RAII в плюсах, и с циклическими ссылками я могу справиться сам.
#177 #697606
>>697597
Геттер с нормальным понятным именем. А вообще ты хуйню какую-то делаешь. Если ты уже сделал класс который соотвествует компоненте связности которая сама по себе является полным графом, то это следует понимать как инвариант (иначе это обычный класс для хранения подграфов). Твои объекты класса всегда должны быть полными графами, следовательно когда ты выполняешь какое-то действие которое нарушает инвариант ты должен его тут же востановить. Если ты реализуешь operator+= который соеденияет две компоненты связности, то прямо в том же операторе ты должен добавить все недостающие ребра, чтобы сразу после выполнения оператора результатирующий компонент уже был полным графом.
>>697624
#178 #697609
>>697195
В чём смысл? Полный (это так называется) граф задаётся только количеством вершин. Количество рёбер -- просто n(n-1)/2, где n - кол-во вершин.
Объединить компоненты -- получится n1+n2, а рёбер надо добавить n1
n2. Нахуя тут такой оверинжинирнг, классы-хуяссы, методы.
>>697625>>697627
#179 #697614
>>697602
Братюнь, но для желателей попердолиться из D никуда не убирали malloc и free.
А для сцылок в стандартной библиотеке есть RefCounted.
>>697617
#180 #697617
>>697614
Ну и если стандартные GC-шные массивы не устраивают - есть std.container.Array, который без GC.
#181 #697618
>>697602
https://dlang.org/phobos/std_experimental_allocator.html
Самый красивый метод на данный момент.

У меня 2 встречных вопроса:
1) Почему тебя ебёт наличие gc, когда говорится о синтаксисе? Это кресты без костылей, в которых есть всё из 17-го которого все ждали, а не который вышел.
2) Где gc будет реальным ботлнеком в области плюсов? В тех же риалтайм рендерах память не аллоцируется и от крестов там только перегрузка операторов и наследование. Всякую системную хуйню вроде сервера на epoll/kqueue проще и быстрее писать на сях чем на бусте. Остаётся ещё пользовательский софт на Qt.

Хотя нахуй я это пишу, ты же фанатик ебаный у которого плюсы единственный инструмент. Вчера вот на лоре был тред, http://www.linux.org.ru/forum/development/12456605?lastmod=1458888841671 — у сишника попа подгорела. Почитай, ты вот так же со стороны выглядишь.
#182 #697624
>>697606
Я так и делаю, но мне нужно знать сколько рёбер прибавилось. И хочется это делать в одну строчку вместе с +=.
#183 #697625
>>697609
Без класса делал. Где-то сделал ошибку и программа иногда работает неправильно. Теперь хочу с классами. С ними понятнее. Перед сложение нужно ещё их в вектор добавить и отсортировать.
#184 #697626
>>697618

> в расте нельзя найти элемент в массиве


> у сишника попа подгорела


Проиграл с фанатика.
>>697632>>697635
#185 #697627
>>697609

>надо добавить n1n2


Точно. Не сразу понял. Их же можно одной функцией считать. А я 3 раза количество рёбер перечитываю когда без классов делал. Щас так попробую. Спасибо.
#186 #697630
>>697596
Там же маллоком можно пользоваться, если надо.
>>697633
#187 #697632
>>697626

>не умеет читать в 2076 году


>проигрывает

#188 #697633
>>697630

> 2016


> язык с malloc


> кресты, сделаные нормально

>>697634>>697635
#189 #697634
>>697633
О чем ты? В крестах тот же маллок, только обернутый оператором new.
>>697639
#190 #697635
>>697626

>раст даёт возможность по-человечески что-то искать в массиве


>кричит что раньше было лучше и жрет дерьмо



>>697633

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


>на конструктивный высер >>697618 ответить не могёт

>>697639
#191 #697639
>>697634
У оператора new больший функционал чем у malloc
>>697635

> отвечать на высер фанатика

>>697640>>697643
#192 #697640
>>697639
Он же целый конструктор вызывает!

>будучи тупым фанатиком тыкать объективным человекам про фанатизм


Суть пирдоликав)))
#193 #697643
>>697639

>У оператора new больший функционал чем у malloc


Естественно, он же обертка, расширяющая базовый функционал. Но в D, наверняка, можно сделать еще лучше, ведь туда завезли метапрограммирование.
>>697650
#194 #697650
>>697643
Но ведь уже показали овердохуя вещей, которые там можно.
Можно юзать малок как в си.
Можно юзать аллокаторы как в крестах.
Можно юзать подсчет ссылок.
Можно блять наконец юзать стандартный ГЦ-шный new.

Тупой фанатик все равно на говно истечет.
>>697651
#195 #697651
>>697650
Тоже не понимаю его фанатизма. Кресты сейчас используют только из-за переносимости, количества библиотек и лучшего инструментария, а не каких-то особых качеств языка.
#196 #697654
>>697618

>Хотя нахуй я это пишу, ты же фанатик ебаный у которого плюсы единственный инструмент.


Лал, зашел в крестотред со своим самоваром и называет всех фанатиками. Фанатик тут только ты.
>>697660>>697708
#197 #697660
>>697654
Нет, это ты какой-то недоумок.
Дишники по большей части - бывшие/текущие крестовики. Схуяле они не должны сюда заходить?
Про пересекающиеся множества учительница по математике в школе не рассказывала еще?
>>697675>>697677
#198 #697663
Нахуя мне учить еще один язык, если его нигде не используют? success stories в студию.
>>697668
#199 #697668
>>697663
А у тебя шо, стадное мышление? Язык надо юзать не ради качеств и удобства, а потому что "везде используют"?

Кресты, по секрету - тоже редко где используют нынче. Все больше жаба да пистон.
>>697673
#200 #697673
>>697668
При чем здесь стадное мышление? Я потрачу 200+ часов, чтобы хорошо разбираться в этом языке. И что дальше? Нигде в коммерческом софте я это не применю. В некоммерческом - тоже (я обычно не страдаю хуйней по написанию велосипедов и вкладываюсь в существующие проекты)

Так вот, нахуя мне тратить столько времени на это? Мне и так есть что изучать вместо не особо востребованного языка.

>Кресты, по секрету - тоже редко где используют нынче


Охуительные истории. Весь фундаментальный софт по типу компиляторов или вебсерверов пишется на C++. Ну или на С.
>>697692>>697708
#201 #697675
>>697660
Памятка ньюфагу, пункт 5. Заходить в тематические треды сраться о языках может только dаун.
>>697694
#202 #697677
>>697660
Пусть сидят в своем D треде и обсуждают D там. Хотя, по-моему, человеку который предлагает как замену плюсов язык с GC вообще не стоило бы заходить в /pr/
>>697682>>697708
#203 #697682
>>697677

>язык с GC



Вроде же пришли к выводу, что GC можно не использовать.
Но все равно: у языка мало преимуществ перед C++, чтобы его нужно было изучать и использовать.
>>697693>>698113
#204 #697683
Алсо через год-два, будут готовы TS с модулями и концептами C++, тогда вообще D умрет из-за нинужности.
>>697708
#205 #697692
>>697673
И много ты написал компиляторов или вебсерверов?

>Весь


Шо, прям весь-весь?
>>697697
#206 #697693
>>697682

> можно не использовать


Исходя только из предоставленых ссылок это довольно смелый вывод. То что ты можешь создать один класс не управляемый GC еще не значит что GC не будет использован рантаймом. Если язык разрабатывался с учетом использования GC то при его отключении часть языка неизбежно отвалится. Откуда мы приходим к тому что язык должен изначально быть спроектирован с учетом опциональности GC. И стандартная библиотека должны быть реализована таким образом чтобы не требовать для своей работы GC. И сторонние библиотеки не должны (опционально) его использовать. Ведь какой смысл создавать неуправляемый GC объект, если при передаче его в какой-то метод сторонней библиотеки она инстанциирует несколько десятков классов управляемых GC. Такое поведение нихуя не похоже на "GC можно не использовать".
>>697696>>697708
#207 #697694
>>697675
Я заходил не за этим.
Кто то попросил пояснить за раст и D - я пояснил, а у какого-то фанатика подгорело.
>>697707>>698125
#208 #697696
>>697693
Скажи, зачем нужно не использовать GC ВООБЩЕ? Любишь анальные извращения?

Ну а возможности не использовать его там, где он будет являеться бутылочным горлышком - там учтены.
>>697700>>697713
#209 #697697
>>697692
Регулярно отправляю патчи в шланг и qt creator. Где твой бог теперь?
>>697698>>697703
#210 #697698
>>697697
Ссылку дашь на патчи? Посмотреть хочется.
#211 #697700
>>697696

> НИНУЖНО


Ясно.
>>697702
#212 #697702
>>697700
Это ты к себе обращаешься, лол?
НИНУЖНО - это ведь твой аргумент.
>>697713
#213 #697703
>>697697
дианон же
>>697706
#214 #697706
>>697703
Дианон чего? У тебя там реальное имя/фамилия в профиле?
И если ты не школьник дениска попов, у йоба-разработчик-компиляторов - чего ты боишься дианона? "Йо посоны, он в шланг патчи шлет - го затравим!" - так чтоле?
>>697709
#215 #697707
>>697694
Вот здесь: "По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли. D - это кресты, сделаные нормально.", ты ничего не написал, ты сделал эмоциональный dаунский наброс, как и положено dауну и бабе.
>>697715
#216 #697708
>>697654
Лал, если бы ты, животное, умело бы читать - увидел бы что изначально вопрос стоял о крестах, потом просто было сравнение и кто-то протёк говном увидев заветные буковки "gc".

>>697677
Просто ответь мне на вопросы из >>697618, gcgovnoistekatel blyat'.

>>697673

>Я потрачу 200+ часов, чтобы хорошо разбираться в этом языке.


Если ты знаком с плюсами - тебе нужно посидеть неделюку по часику поковырятся в справочке, чтобы спокойно писать на нём. И да - 200 часов для программирования это вообще нихуя, достаточно каждый день не посмотреть одну лишнюю серию сериальчика/аниме/не скатать в дотку и всё.

.>>697673

>Весь фундаментальный софт по типу компиляторов или вебсерверов пишется на C++. Ну или на С.


Вот именно что на C. На C++ написан только шланг с llvm, и кусочки gcc перетаскивают. И написаны они на C++ ибо есть такая мода, писать компиляторы для языков на самих этих языках.
Вебсерверы - кругом си, как и остальная системщина. Хайлоад хуйлодыч - си с классами можешь поискать доклад о плюсах с highload++ где челики std::string на char[512] меняли ради 8% ускорения функции. Про рендеры и прочее писал выше.

>>697683
Смешно. В 2020 посмотрим как концепты пошлют нахуй ибо сообщество нипамагло(, макросы будут экспортируемы, а контракты, сеть и прочее пошлют нахуй добавив пару математических фишек с ниебически крутым названием.

>>697693
Попросал для таких же дебилов как ты создан пол года назад, работа идёт, а твой мозг не развивается. Нельзя же сделать gc.disable и чистить когда будет возможность.

Итого: животные, плиз. Все люди как люди, а вы как животные истекаете говном на gc не в силах показать где он вам в конкретно вашей области так МИШАЕТ И СВЕРЛИТ.
>>697712>>697726
#217 #697709
>>697706
Самодеанониться на анонимных бордах - это для идиотов уровня илюши. Если тебе нужны имена, пиздуй на хабр.
>>697715>>697724
#218 #697712
>>697708
Съеби уже в D-тред, в который никто не заходит.
>>697716
#219 #697713
>>697696

> зачем нужно


>>697702

>НИНУЖНО - это ведь твой аргумент


Dбил продолжает клоунаду.
#220 #697715
>>697709
Я коммичу в буст и ллвм, а ещё я член комитета СтарыхПердуновПлюс (СПП). Пруфов не будет, а то дианон(
>>697707

>как и положено dауну


Братишка, ну зачем так самокретично(

>и бабе


Как что-то плохое сказал, шовинист ((((
>>697718
#221 #697716
>>697712
Знаешь, почему туда никто не заходит?
Потому что на нем люди просто пишут и не ебутся. А не ссаные студенты/школьники с вопросами "как на крестах сделать элементарнаяхуйнянейм". И не возникают вопросы как не выстрелить себе в ногу, или какой из костыльных велосипедов предпочесть.
>>697727
#222 #697718
>>697715

>Я коммичу в буст и ллвм, а ещё я член комитета СтарыхПердуновПлюс (СПП).


Я тебе верю, мне похуй, иди нахуй.
#223 #697724
>>697709
Погоди-ка, clay-мудель, ето ти?
#224 #697726
>>697708

>Смешно. В 2020 посмотрим как концепты пошлют нахуй ибо сообщество нипамагло(, макросы будут экспортируемы


Это же TS, а не следующий стандарт. Оно потому и TS, что рано для 17 и поздно для 20. А вообще твои кукареки уровня гадающей циганки на вокзале.
>>697731
#225 #697727
>>697716

> люди просто пишут и не ебутся


И только лопаются когда кто-то посмел замахнутся на священную корову GC, и предположить что возможно у программиста должен быть выбор как писать свою программу, а не делать только так как ему сказал его властелин, ведь властелину лучше знать как правильно делать и что смысла не использовать GC нет.
>>697733
#226 #697731
>>697726

>А вообще твои кукареки уровня гадающей циганки на вокзале.


Ну да. Только нам обещали мажорный релиз а после покормили сладким хлебушком.

Зато можно быть уверенным на 9000% что они будут действовать с позиции Абсолютной Обратной Великой Совместимости (с) и как обычно всё будет сделано как велосипед медведя, едущего задом вверх по лестнице.
#227 #697733
>>697727
Ну если господа плюсовики хоть раз за тред написали бы что-то объективное а не издавали вскудахи вроде "ГЦ ЕТА ЗЛО ЗАСТРЕЛИТЬ УБИТЬ ФУУУУ", то может всё стало бы куда лучше.
>>697742
#228 #697735
Пока у местных не остыли пуканы, вброшу высер скаладауна - http://eax.me/c-vs-cpp/
#229 #697742
>>697733

> ГЦ ЕТА ЗЛО


Кто пишет что GC это зло? Зло - остутсвие выбора. В плюсах можно использовать полностью ручное управление, можно простой refcounting на смартпоинтерах, можно накатить GC (boehm garbage collector, например). У C++ специфическая сфера применения, и для этой сферы само собой разумеется что у программиста должен быть выбор. И предлагать как замену крестам язык с нулевым выбором, потому что властелин решил не использовать GC смысла нет, ну это глупо.
>>697744>>697748
#230 #697743
>>697547
Можно в массиве указатели на поля класса хранить.
#231 #697744
>>697742

> В плюсах можно использовать полностью ручное управление, можно простой refcounting на смартпоинтерах, можно накатить GC (boehm garbage collector, например).


Блять! В D тоже все это можно.
Просто GC - вариант по умолчанию.
>>697747
#232 #697747
>>697744
В крестах, если ты не используешь GC то он не используется нигде. Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами, а рантайм и библиотеки делают что хотят. Это не похоже на дохуя выбор.
>>697749>>697757
#233 #697748
>>697742
Да не бывает выбора, язык или изначально дизайнится для работы без GC (C, C++, Rust), или изначально дизайнится для работы с GC (C#, D, Go), и эти два типа языков друг с другом не пересекаются.
#234 #697749
>>697747
В библиотеке есть RefCount и Unique.
В библиотеке есть аллокаторы.

А ГЦ можно управлять. И вообще:
import core.memory;
GC.disable();
>>697756
#235 #697750
>>697748
Но к языкам без GC можно подключить GC и получить язык с GC.
>>697762
#236 #697752
>>697748

>изначально дизайнится для работы без GC (Rust)


>изначально дизайнится для работы с GC (Go)


Хм...
>>697753
#237 #697753
>>697752
Двачую. Разве в русте не ГЦ был изначально, который на сцылки в относительно последний момент заменили?
>>697769
#238 #697755
D is a systems programming language with support for garbage collection. Usually it is not necessary to free memory explicitly. Just allocate as needed, and the garbage collector will periodically return all unused memory to the pool of available memory.

D also provides the mechanisms to write code where the garbage collector is not involved. More information is provided below.
>>698132
#239 #697756
>>697749

> GC.disable();


> вызвал библиотечную функцию


> приложение занимает 32 гига памяти

>>697761
#240 #697757
>>697748

>дизайнится для работы без GC


Раст изначально был языком со сборщиком, просто сейчас его выпилили нахуй "до лучших времён и редизайна" они просто поняли, что сишная аудитория gc не воспринимает ни в каком виде, даже если он только поможет им в их задачах.
>>697747

>Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами


Если у тебя есть серьёзное ограничения к требованиям по требуемой мощности выполнения/скорости и gc не подходит - тебе и на плюсах придётся переписывать/писать самому любую нетривиальную задачу, либо использовать си библиотеки вылизанные до байтика а не крестовые велосипеды от любителей вымазать всю память *stream-ами.
>>697762
#241 #697761
>>697756

>вызвал gc.collect и насладился.


А в сишечке/++ при твоих условиях пришлось пердолится 2 недели, в ожидании когда же ошибка снова произойдёт и сервер вайпнется нахуй.
#242 #697762
>>697750
Тогда ты получишь просто хуевый язык с GC. Самая большая проблема с GC в том, что он "отравляет" код, если твой код течет, то он течет, и далее переиспользовать его уже в проекте "без GC" ты не можешь. Т.е. у тебя возникает код "YobaLanguage который не течет" и "YobaLanguage который течет". И все, язык распался на два диалекта. И 90% библиотечного кода будет течь, потому что программисты народ по умолчанию ленивый.
>>697757

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


Ты один-в-один purebasic-кун, который то, что его хуесосят, обясняет тем, что вокруг его одни дебилы. Ну да, вся сишная аудитория - дебилы, один ты такой умный, умеешь сборщиком мусора пользоваться. А раз мы все тут такие дебилы, можешь съебешь в свой тред?
>>697765
#243 #697765
>>697762

>Ты один-в-один purebasic-кун


Ты на него со своим искажённым восприятием куда больше похож.
Я никому не говорил что кто-то долбоёб, я сказал что кое-кто немножко говноед и мазохист, но к умственным способностям это не относится как и условия на которых мозила начала спонсировать раст :3.
>>697767
#244 #697767
>>697765
Так сказать, что кто-то долбоеб - это недолго, проблема в том, что ты реально считаешь себя умнее сообщества. Таких дебилов полно в общем-то, и ты один из них.
>>697772
#245 #697768
Блядь, у вас тут какой-то параллельный мир с ошибками в C++. За 4 года я могу по пальцам одной руки посчитать, когда появлялись проблемы с циклическими или битыми ссылками. Про память, которая течет, вообще молчу - ни разу не видел этого, потому что пользовался умными указателями. Санитайзеры используются на тестах всегда, так что нефиг загонять про "ты просто не замечаешь".
>>698139
#246 #697769
>>697753
Пример раста как раз показателен. Сначала хотели сделать йоба-язык который и то умеет, и то умеет, и здесь, и этак (что в общем-то всегда бывает среди авторов языков), а к версии 1.0 выяснилось, что gc controlled указатели нахуй не нужны, стд-либа-то задизайнена на работу без GC.
>>697772
#247 #697772
>>697767
Проблема только у тебя и только в твоём манямирке, в котором ты видишь что я считаю себя умнее всех, при том мне за весь тред ни разу никто адекватно не ответил чем именно им мешает гц, лол.

Сходи предложи помощь бомжу-алкашу - он отреагирует как крестовик на сборщик мусора. Кому-то нравится ПРЕВОЗМОГАТЬ - и он считает это единственным верным мировозрением ислам.

>>697769
Историю изменения до 1.0 сходи глянь. Она так задизайнена потому что 3 года назад они отказались от сборки и с тех пор пидорасили всё что попадалось под горячую руку два года подряд.
#248 #697775
>>697772
Начиная с DMD 2.067 мусорщик можно вообще выключить нахер.
Посмотрел я, что зависит от него - и в принципе все ясно, по сути - new, встроенные массивы и ассоциативные массивы и делегаты.

И непонятно с последним - как юзать делегаты без GC-то?
>>697792
#249 #697779
>>697772
Все эти разговоры хуйня, когда нет наглядных сравнений производительности больших проектов с и без gc. А поскольку никто не будет специально одинаково писать большой проект с gc и без него, то появляется такая благодатная почва для специальных олимпиад.

Но несмотря на это, могу тебе привести косвенный пример-доказательство.
Возьмем CLion и QtCreator. Открываем через них какой-нибудь охуительно большой проект, например llvm, GCC или UE4. Начинаем анализ проекта и смотрим на потребление памяти и плавность работы.

Лично для меня вопрос эффективности GC уже снят давно. Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода
#250 #697781
>>697779
CLion ещё и может гораздо больше, чем QtCreator, так себе сравнение. Почему просто не сравнить андроид с гейфоном?
>>697785
#251 #697783
>>697772

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


С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде? Ты ебаный рак, убивающий его, меня за эти годы на бордах крестохейтеры заебали страшно. Задай вопрос в ньюфаг-треде, я тебе отвечу. В конце концов, я тебе ответил и здесь, но у тебя уже бомбит достаточно, чтобы не воспринимать мои слова: GC мешает тем, что создает 2 диалекта языка, код которых работает в одну сторону: GC-код может использовать не GC-код, а наоборот нельзя - будет память течь. Поэтому есть два варианта, или язык становится неюзабельным говном:
>>697772

>Историю изменения до 1.0 сходи глянь.

>>697792
#252 #697784
>>697779

>native-кода


Хочу заметить, что тут я сравниваю нативный код с ненативным, т.е. это не совсем корректно и в случае с D результаты могут быть другие.

Но сравнения с нативным кодом с GC нет, так что иди нахуй заранее.
#253 #697785
>>697781
Все его возможности основаны на изменении уже построенной языковой модели. А я предлагал сравнивать этапы анализа кода. Вещи они там делают одинаковые.
#254 #697786
>>697772

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


С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде? Ты ебаный рак, убивающий его, меня за эти годы на бордах крестохейтеры заебали страшно. Задай вопрос в ньюфаг-треде, я тебе отвечу. В конце концов, я тебе ответил и здесь, но у тебя уже бомбит достаточно, чтобы не воспринимать мои слова: GC мешает тем, что создает 2 диалекта языка, код которых работает в одну сторону: GC-код может использовать не GC-код, а наоборот нельзя - будет память течь. Поэтому есть два варианта, или язык становится неюзабельным говном:

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.)

Или же в языке GC становится переусложением, которое выпиливают:

This has not, however, been the case in practice. In reality, since the libraries all use owning pointers (~), Rust programmers have to learn them quickly anyhow. And once Rust programmers learn how to use ~ effectively, they quickly find @ relegated to a marginal role, if it’s used at all. ~ has so many advantages: deterministic allocation and destruction, interaction with the standard library, freedom from GC marking pauses, simpler semantics, appendability where vectors and strings are concerned, and sendability across tasks.

Вот и все. И по этой причине ни Boehm, ни C++/CLI не взлетели - ну кому нахуй нужен C++/CLI код, не совместимый в будущем с С++, когда есть C#. И D не взлетел ровно по этой же причине.
#254 #697786
>>697772

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


С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде? Ты ебаный рак, убивающий его, меня за эти годы на бордах крестохейтеры заебали страшно. Задай вопрос в ньюфаг-треде, я тебе отвечу. В конце концов, я тебе ответил и здесь, но у тебя уже бомбит достаточно, чтобы не воспринимать мои слова: GC мешает тем, что создает 2 диалекта языка, код которых работает в одну сторону: GC-код может использовать не GC-код, а наоборот нельзя - будет память течь. Поэтому есть два варианта, или язык становится неюзабельным говном:

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.)

Или же в языке GC становится переусложением, которое выпиливают:

This has not, however, been the case in practice. In reality, since the libraries all use owning pointers (~), Rust programmers have to learn them quickly anyhow. And once Rust programmers learn how to use ~ effectively, they quickly find @ relegated to a marginal role, if it’s used at all. ~ has so many advantages: deterministic allocation and destruction, interaction with the standard library, freedom from GC marking pauses, simpler semantics, appendability where vectors and strings are concerned, and sendability across tasks.

Вот и все. И по этой причине ни Boehm, ни C++/CLI не взлетели - ну кому нахуй нужен C++/CLI код, не совместимый в будущем с С++, когда есть C#. И D не взлетел ровно по этой же причине.
#255 #697792
>>697775

>И непонятно с последним - как юзать делегаты без GC-то?


Заменять тип на alias и писать всё побочками, либо залезть в анус и выделять память маллоком, перемещать её memmove и вызывать как (*hui)().
>>697779

>Возьмем CLion и QtCreator.


1. Второй делает сасай по работе с кодом и не только, причём раз 10;
2. Сравнивать жяву с нативным языком конечно гениально. Особенно в задачах вроде парсинга, когда она не может обойти массив без проверок и тд., так что там ботлнек далеко не в gc (он может произойти только если настроить clion на несколько гб оперативки, которая будет сканироваться вчено).

>Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода


А я неоднократно видел баги и няшности вроде фрагментации кучи, особенно с распространением смартпоинтеров. Бывает, чо.
>>697783

>С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде?


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

>Ты ебаный рак


Лан даун)

>Поэтому есть два варианта, или язык становится неюзабельным говном:


Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.
>>697796>>697818
#256 #697796
>>697792

>Наверно потому что я не хейтер внезапно действующий плюсовик, а пытаюсь получить ответ.


А ты думаешь мало хейтеров, получающих деньги за кресты? Это самая днищенская порода людей: кресты они ненавидят, но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят. В итоге вместо роста скилла происходит отравление окружающей действительности миазмами своего лузерства.

>Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.


Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?
>>697799
#257 #697799
>>697796

>Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?


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

>кресты они ненавидят


Умозаключение о ненависти после того, как я сказал что есть что-то лучше? Ещё один господин-манямирок.

>но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят


Эх. Прозвучало ахуенно, но тупо.
>>697817
#258 #697817
>>697799

>Загружу как динамическую библиотеку


Ну да, ты это имел в виду. Динамические библиотеки - это просто динамически прилинкованный код, который с точки зрения языка мало отличается от статически прилинкованного. И оно здесь тебе ничем не поможет. RPC - поможет, только здесь возникает вопрос, нахуя мне D, когда у меня есть C++, в котором любая (любая) фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов (включая std::function, например), и, допустим, один из милларда управляемых языков с толстым рантаймом и батарейками - от пайтона до Java?

>Умозаключение о ненависти после того, как я сказал что есть что-то лучше?


"Сходи предложи помощь бомжу-алкашу - он отреагирует как крестовик на сборщик мусора.". Себя ты крестовиком не считаешь, ты оппонируешь крестовикам. Потому что ты сам - dаун, который вынужден пользоваться крестами, ведь деньги-то за D платить не будут.
#259 #697818
>>697792

>няшности вроде фрагментации кучи


Как там в 2007? Если ты встречаешься с такой проблемой сейчас, то ты должен использовать кастомные аллокаторы by design. Проблема высосана из пальца.

>1. Второй делает сасай по работе с кодом и не только, причём раз 10;


>2. Сравнивать жяву с нативным языком конечно гениально.


Как я уже писал выше:
- возможности работы с кодом на этапе парса ничего не решают.
- принеси сравнение нативного gc-языка с просто нативным и тогда поговорим. Ах да, никто же не написал крупного проекта на нативном gc-языке.
Забыл, прости.
>>697879
#260 #697824
>>697817

>работает без GC без всяких компромиссов (включая std::function, например)


Охуенный пример - std::function срет в кучу если замыкание больше 24 байт. Если ты будешь массово их использовать, производительность у тебя будет хуже, чем со сборщиком, который все убивает за один прием. То же самое с Qt, где ехал пимпл через пимпл. В плане производительности можно топить за метапрограммирование, но тут кресты у ди сосут с причмоками.
>>697829
#262 #697842
>>697817

> включая std::function, например


Говно твоя std::function
В ди можно ПРОСТО писать вложенные функции, а не создавать over9000 нечитаемого синтаксического шума.
>>697843
#263 #697843
>>697842
И это функции будут ПРОСТО течь.
>>697848>>697854
#264 #697845
>>697829
Проще свою std::function написать, чем с аллокаторами ебаться.
>>697853
#265 #697848
>>697843
С чего бы это? Это же не текущие кресты с его любимым "segmentation fault"
#266 #697853
>>697845
Что за хуйню я читаю?
>>697858
#267 #697854
>>697843
Схуяли они будут течь, если GC циклические ссылки убивать умеет? Течь будут крестовые лямбы, если поймают смартпойнтеры друг на друга.
>>697855
#268 #697855
>>697854
С того. Ты в контекст диалога вообще можешь? Пиздец идиоты.
>>697861
#269 #697858
>>697853
std::function - это обертка вокруг лямбда-выражений. Можно легко написать свою реализацию, которая будет работать с памятью, как тебе хочется.
>>697862
#270 #697861
>>697855

>Ты в контекст диалога вообще можешь?


Я другой ананас, который тред-не-читай-сразу-отвечай.
>>697867
#271 #697862
>>697858
Лалка, а поддержку обычных функций ты тоже хочешь писать? Ну удачи, чо. Я написать обертку на std::function, чтобы удобно передавать аллокаторы и не буду ебать себе мозг.
>>697866
#272 #697866
>>697862
Там в 200 строчек все делается.
>>697870
#273 #697867

>нахуя мне D, когда у меня есть C++, в котором любая (любая) фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов (включая std::function, например), и, допустим, один из милларда управляемых языков с толстым рантаймом и батарейками - от пайтона до Java?


>А В D У НАС НЕ НУЖЕН STD::FUNCTION У НАС ВСЕ КРАСИВЕНЬКО


>Но ведь течь же будет без GC


>ИДИОТ ЭТО КРЕСТЫ ТЕКУТ А В D ЕСТЬ GC



Как видно, уровень dауна не позволяет ему следить за дискуссией вообще.

>>697861
Ввиду того, что вас таких двое, я считаю это не случайным совпадением, а статистикой.
>>697876
#274 #697868
int foo, goo;
foo = new int;
foo = 1;
goo = new int;
goo = 3;
foo = goo + 3;
foo = goo;
goo = 5;
foo = goo + foo;// я насчитал 11
cout << foo; // а выдаёт 10

Что за хуйня, анон? Как выходит, что в
foo оказывается 5, а не 6?
#275 #697870
>>697866
Ты че, ебанутый? Зачем дублировать уже написанную функциональность? Ну не хочешь аллокатор каждый раз передавать, напиши wrapper
>>697877>>697882
#276 #697872
>>697868
Оно не компилируется
>>697874
#277 #697873
>>697868
на ideone залей
#278 #697874
>>697872
Наверняка у него кучу звездочек сожрало.
#279 #697875
>>697868
Проебался с разметкой, сорри
[code]
int foo, goo;
foo = new int;
foo = 1;
goo = new int;
goo = 3;
foo = goo + 3;// 6
cout << foo;
foo = goo;
goo = 5; // 5
cout << goo;
cout <<
foo;
foo = goo + foo;// 11
cout <<
foo;// 10!
[/code]

И вот на всякий случай - http://ideone.com/c4xrBM
>>697937
#280 #697876
>>697867
Заменить на счетчик ссылок - и не будет течь, схуяле?
#281 #697877
>>697870

>Зачем дублировать уже написанную функциональность?


Затем, что стдлиб++ не всегда можно использовать.
>>697880>>697881
#282 #697879
>>697817

>И оно здесь тебе ничем не поможет.


И почему же?

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


А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли. Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.

>от пайтона до Java


Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.
>>697817

>Себя ты крестовиком не считаешь, ты оппонируешь крестовикам.


Нет, я просто не фанатик как ты. Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры. Сказали что синтаксис лучше - говорят сами себе ГЦ и срут кровью. Слышат попытки дискутировать как человеки а не животные - срут кровью на предложившего, он не из их стаи, хотя говорит на их языке.

>Потому что ты сам - dаун


Самое топовое оскорбление, чем больше повторяешь - тем смишнее. Четыре десятка айкью видимо, простора для размышления не дают.
>>697818

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


Зато решает что на яве банально объекты толще и всё работает через вм, лол.
Когда в qtcreator завезут хотя бы анализ кода на лету (который в лионе не хуже чем в студии, которая кстати почти не лагает) напиши это ещё разок что лион кококо лагаит, а не сравнивай хуй с пальцем.

>Проблема высосана из пальца.


Ну ты иди, создай массив с умными указателями. Позавидуешь скорости питона. И тебя никакой jemalloc в такой ситуации не спасёт.
#283 #697880
>>697877
Препод запретил?
#284 #697881
>>697877
Юзай буст, лалка
#285 #697882
>>697870
Олсо, ты заебешься писать аллокатор для чисто стековой лямбды.
#286 #697889
>>697879

>Зато решает что на яве банально объекты толще и всё работает через вм, лол.


>...


Ты тупая мразь, я сказал, что сравнение некорректно, еще до того, как ты начал свое кукареку. Повторю для тебя-жопочтетца еще раз: неси сравнение GC-native с native и тогда побеседуем.

>Ну ты иди, создай массив с умными указателями.


И? Что произойдет-то? Если объектов мало - похуй. Если объектов много и они помещаются в оперативку - похуй. Если объектов так много, что вылетает bad_alloc, то а хуле ты хотел-то? Юзай пулл с кастомным распределением памяти.
>>697899>>697910
#287 #697899
>>697889

>И? Что произойдет-то?


Почитай что такое фрагментация памяти. И подумай что будет когда хотя бы треть из них удалится.

>Если объектов так много


То что будет когда у каждого СВОЙ счётчик?

>Ты тупая мразь, я сказал, что сравнение некорректно, еще до того, как ты начал свое кукареку.


Сам сравнил и сам обосрался, ок, вопросов нету.

>Повторю для тебя-жопочтетца еще раз: неси сравнение GC-native с native и тогда побеседуем.


Вопрос: как их сравнивать, если одинаковые стратегии работы с памятью использовать некорректно?
>>697907>>697916
#288 #697907
>>697899

>Почитай что такое фрагментация памяти.


Лол, ты сам-то читал? О фрагментации надо заботиться, когда у тебя объекты больше страницы.
>>697922
#289 #697910
>>697889

>Если объектов мало - похуй


Как минимум GC убьет их сразу, а со смартпойнтерами - по одиночке. А в каждом объекте может тоже быть смартпойнтер на что-то еще.
#290 #697911
>>697879

>И почему же?


Я написал в предыдущем предложении того же поста.

>А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли.


Ты главное повторяй это почаще. Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.

>Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.


Я лучше Scala возьму, на ней хоть работа есть, а общего с С++ примерно столько же. Ну или C# с await/async и linq.

>Нет, я просто не фанатик как ты.


Это я что ли пришел в D-тред и стал нахваливать С++? В чем заключается мой фанатизм? Я отлично знаю достоинства и недостатки С++, и так же знаю, что отсутствие GC - это его killer feature, а никак не наоборот.

>Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры.


На С++ я пишу только уберперформанс (мой софт один из самых быстрых в мире на рынке), но с чего ты взял, что я пишу только на С++? Я много на чем пишу, выбирая язык под задачу, у D задач нет, для языка с GC он очень отстал от жизни, без GC он превращается даже не в С++, а в plain C.
>>697947
#291 #697916
>>697899

>Почитай что такое фрагментация памяти. И подумай что будет когда хотя бы треть из них удалится.


Повторяю для аутистов:
- Если объектов мало - похуй.(мало памяти теряется)
- Если объектов много и они помещаются в оперативку - похуй. (либо потери памяти малые, либо paging устранит последствия фрагментации, либо не устранит и потери большие, тогда см. пункт 3)
- Если объектов так много, что либо тебе не похуй на потери памяти, либо ее уже тупо нет, то юзай пулл с кастомным распределением памяти. Дефрагментирующие процедуры GC тебя в этом случае все равно будут неприемлемы.

>Вопрос: как их сравнивать, если одинаковые стратегии работы с памятью использовать некорректно?


Щито? Тебе говорят, что GC гарантированно увеличивает расход памяти и делает паузы в работе программы из-за очистки или дефрагментации by design. А ты отвечаешь, что все хуйня, GC очень редко делает программу медленнее и все такое. На что у меня вопрос: где найти такую программу на native с GC, которая будет работать хотя бы сопоставимо с обычным native языком?
>>697947
#292 #697922
>>697907

>О фрагментации надо заботиться, когда у тебя объекты больше страницы.


Точнее, когда будет много страниц, которые только немного заполнены. А если пустые промежутки в фрагментированной виртуальной памяти будут давать пустые страницы, то реальный расход памяти будет сопоставим с логическим. Новый блок памяти будет просто выделен в другой части адресного пространства. Слава б-гу, что адресное пространство 64-битное
>>697930
#293 #697930
>>697922
Да нет, просто у аллокатора внутре и так пулы под размеры объектов по степеням двойки. Пока ты туда укладываешься, фрагментации нет.
>>697934
#294 #697934
>>697930
Тогда причем здесь страницы? Это само по себе выполняет дефрагментирующую функцию
>>697939
#295 #697937
>>697875
там где foo = goo должно быть @foo = @goo (@ - звезда), чтобы было 11
#296 #697939
>>697934
Когда объект в пул не влезает (обычно если он больше страницы), то может уже быть фрагментация при большом количестве таких аллокаций.
>>697945
#297 #697945
>>697939
Я не пойму, при чем страницы. Пул это просто большой кусок памяти. Если объект не влезает, можно увеличить пул. Но страницы-то здесь причем? Они как и раньше служат для поддержки многоуровневой памяти. И как свойство - некоторые проблемы фрагментации виртуальной памяти могут быть устранены.
>>697955
#298 #697947
>>697911

>Я написал в предыдущем предложении того же поста.


Хуйню написал.

>Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.


А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.

>на ней хоть работа есть


1 контора на всё СНГ? Особенно много работы на ней будет после того, как её спонсор отмежевался от неё и направился н жяву.

>а общего с С++ примерно столько же


Сколько? Нихуя? Ехал воид имплицит через имплицит?
Ты на самый главный вопрос не ответил:

>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.


>Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.


>На С++ я пишу только уберперформанс


Пропруфай чтоле. Хоть направление скажи.

>отсутствие GC - это его killer feature


>без GC он превращается даже не в С++, а в plain C.


Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней. Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.
>>697916

>А ты отвечаешь, что все хуйня, GC очень редко делает программу медленнее и все такое.


Учебник по русскому языку там -> google.com

>где найти такую программу на native с GC, которая будет работать хотя бы сопоставимо с обычным native языком?


Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта. Иди скорость компиляции dmd посравнивай там с любым плюсовым компилятором, лол.
#299 #697948
>>697583
Сервис Application Experience включи.
#300 #697955
>>697945
Пулы растут постранично. Страницы, отведенные под пулы тоже могут фрагментироваться, но очень медленно. Поэтому пока объекты влезают в пул, фрагментация минимальна. Если объект не влезает в пул, аллокатор выделяет ему нужное количество страниц вне пула. При его освобождении (если заняты следующие за ним адреса), образуется дыра в адресном пространстве, которая может быть занята только объектом меньшего размера. При большом количестве таких дыр память фрагментируется - свободная память есть, но кусочки ее слишком маленькие, что там разместить объект.
#301 #697965
>>697879

>Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.


Ну да, жаль только что оптимизатора не завезли. И либ. И из-за GC нельзя писать системы реального времени (надеюсь понятно почему?). А так все хорошо, язык будущего, который уже 10 лет на месте стоит. Нахуй этот D нужен когда есть Rust? Он в отличае от D действительно движение в перед.
И кстати, не 40 лет, а 30.

>>697947

>А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.


Да, ты прав, перл и делфи люди используют, некорректное сравнение

>>697947

>Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней.


Ну это же наглый пиздеж, не стыдно тебе?
>>697979>>697983
#302 #697979
>>697965

>Ну да, жаль только что оптимизатора не завезли.


Сторонние компиляторы с этим прекрасно справляются будто он тебе чем-то поможет где-то кроме какого нибудь рендера.

>И либ.


У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.

>И из-за GC нельзя писать системы реального времени


У местных GC головного мозга, и каждая задача должна работать в риалтайме, оно понятно. Только все такие системы пишутся на си, ой.
>>697965

> Нахуй этот D нужен когда есть Rust? Он в отличае от D действительно движение в перед.


Движение вперёд в плане "не дать макаке выебать байтики неаккуратно". Это замена сишечке, слишком низкоуровенно чтобы ставить в одну шеренгу с D.

>Да, ты прав, перл и делфи люди используют, некорректное сравнение


Легаси, как и плюсы. Как в коде, так и в голове.

>Ну это же наглый пиздеж, не стыдно тебе?


Ну ты пропруфай обратное, обоссы мудака.
>>697983
#303 #697983
>>697965

>Ну да, жаль только что оптимизатора не завезли.


>>697979

>У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.


Сюда надо ещё доклад швитого отца Александерску о том, как с ничестивым инлайнингом боролся покуда кодило-то не намокло.
#304 #697988
Посоны, писал тут код для себя - и нате вам, не запускайте свою программу.
Похоже, что я с копирующим конструктором что-то напортачил, но он-то вроде есть:
#include <unordered_set>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>

class Comparable {
public:
int _weight;
std::string _name;
std::string _surname;

Comparable(const int weight, const std::string &name, const std::string &surname) {
_weight = weight;
_name = name;
_surname = surname;
}

Comparable(Comparable &&other) = default;
Comparable &operator=(const Comparable &other) = default;
Comparable &operator=(Comparable &&other) = default;
};

class Hasher {
public:
size_t operator() (const Comparable &c) const {
return c._name.size() + c._surname.size() << (c._weight & 0x0f);
}
};

class SetComparator {

public:
enum class ComparatorType {
CompareByName,
CompareBySurname,
CompareByWeight
};

SetComparator(ComparatorType type) {
_type = type;
}

bool operator() (const Comparable &first, const Comparable &second) const {
switch (_type) {
case ComparatorType::CompareByName:
return first._name == second._name;
break;
case ComparatorType::CompareBySurname:
return first._surname == second._surname;
break;
case ComparatorType::CompareByWeight:
return first._weight == second._weight;
break;
}
}

private:
ComparatorType _type;
};

std::ostream &operator<<(std::ostream &stream, const Comparable &c) {
stream << c._name << " - " << c._surname << " - " << c._weight << std::endl;
return stream;
}

void main() {

std::vector<Comparable> data{
Comparable(10, "Andrew", "Malkin"),
Comparable(12, "Ivan", "Gusakov"),
Comparable(10, "Shamil", "Huil"),
Comparable(15, "Ivan", "Chkalov"),
Comparable(15, "Maxim", "Huil")
};

SetComparator nameComparator(SetComparator::ComparatorType::CompareByName);
SetComparator weightComparator(SetComparator::ComparatorType::CompareByWeight);

Hasher hasher;

std::unordered_set<Comparable, Hasher, SetComparator> set(20, hasher, nameComparator);
std::unordered_set<Comparable, Hasher, SetComparator> secondSet(20, hasher, weightComparator);

set.max_load_factor(0.8f);
secondSet.max_load_factor(0.8f);

std::cout << "Inserting first set: " << std::endl;
std::copy(data.cbegin(), data.cend(), std::inserter<decltype(set)>(set, set.begin()));
std::copy(set.cbegin(), set.cend(), std::ostream_iterator<decltype(std::cout)>(std::cout));

std::cout << "Inserting second set: " << std::endl;
std::copy(data.cbegin(), data.cend(), std::inserter<decltype(secondSet)>(secondSet, secondSet.begin()));
std::copy(secondSet.cbegin(), secondSet.cend(), std::ostream_iterator<decltype(std::cout)>(std::cout));
}
#304 #697988
Посоны, писал тут код для себя - и нате вам, не запускайте свою программу.
Похоже, что я с копирующим конструктором что-то напортачил, но он-то вроде есть:
#include <unordered_set>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>

class Comparable {
public:
int _weight;
std::string _name;
std::string _surname;

Comparable(const int weight, const std::string &name, const std::string &surname) {
_weight = weight;
_name = name;
_surname = surname;
}

Comparable(Comparable &&other) = default;
Comparable &operator=(const Comparable &other) = default;
Comparable &operator=(Comparable &&other) = default;
};

class Hasher {
public:
size_t operator() (const Comparable &c) const {
return c._name.size() + c._surname.size() << (c._weight & 0x0f);
}
};

class SetComparator {

public:
enum class ComparatorType {
CompareByName,
CompareBySurname,
CompareByWeight
};

SetComparator(ComparatorType type) {
_type = type;
}

bool operator() (const Comparable &first, const Comparable &second) const {
switch (_type) {
case ComparatorType::CompareByName:
return first._name == second._name;
break;
case ComparatorType::CompareBySurname:
return first._surname == second._surname;
break;
case ComparatorType::CompareByWeight:
return first._weight == second._weight;
break;
}
}

private:
ComparatorType _type;
};

std::ostream &operator<<(std::ostream &stream, const Comparable &c) {
stream << c._name << " - " << c._surname << " - " << c._weight << std::endl;
return stream;
}

void main() {

std::vector<Comparable> data{
Comparable(10, "Andrew", "Malkin"),
Comparable(12, "Ivan", "Gusakov"),
Comparable(10, "Shamil", "Huil"),
Comparable(15, "Ivan", "Chkalov"),
Comparable(15, "Maxim", "Huil")
};

SetComparator nameComparator(SetComparator::ComparatorType::CompareByName);
SetComparator weightComparator(SetComparator::ComparatorType::CompareByWeight);

Hasher hasher;

std::unordered_set<Comparable, Hasher, SetComparator> set(20, hasher, nameComparator);
std::unordered_set<Comparable, Hasher, SetComparator> secondSet(20, hasher, weightComparator);

set.max_load_factor(0.8f);
secondSet.max_load_factor(0.8f);

std::cout << "Inserting first set: " << std::endl;
std::copy(data.cbegin(), data.cend(), std::inserter<decltype(set)>(set, set.begin()));
std::copy(set.cbegin(), set.cend(), std::ostream_iterator<decltype(std::cout)>(std::cout));

std::cout << "Inserting second set: " << std::endl;
std::copy(data.cbegin(), data.cend(), std::inserter<decltype(secondSet)>(secondSet, secondSet.begin()));
std::copy(secondSet.cbegin(), secondSet.cend(), std::ostream_iterator<decltype(std::cout)>(std::cout));
}
>>697992>>697997
#305 #697991
>>697947

>Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта.


>микросервис


>микро


>реальный софт


Ох лол. Может еще сортировочку посоветуешь сравнивать?

В целом, ты уже расписался в том, что не можешь доказать свои кукареки о невероятной эффективности GC в реальной жизни:

>хз что ещё тебе сказать из реального софта.



Вывод: не создано ни одного крупного проекта на нативном языке в GC. А GC-бляди все наяривают на свои gc-языки без ниши. Найс.
>>697999
#306 #697992
>>697988
Сука, юзай
>>697994
#307 #697994
>>697992
Пастебин!
>>698001
#308 #697997
>>697988

> std::ostream_iterator<Comparable>(std::cout)


фикс
#309 #697999
>>697991

>Вывод: не создано ни одного крупного проекта на нативном языке в GC. А GC-бляди все наяривают на свои gc-языки без ниши. Найс.


Докер на говне ещё. Чё-то никто не жалуется, только ты вскудахтываешь будто пнули под жёпу.

Ну что, пора чистить говно вилкой легаси.
>>698014
175 Кб, 500x480
#311 #698014
>>697999

>Docker


>Набор консольных утилит-оберток над cgroups и namespaces


>Размер репы 86Mb


>Крупный проект



Можешь попытаться еще раз
>>698017
#312 #698017
>>698014
Прости, признаю поражение. Мой список с твоим списком говнолегаси не сравнится, я проиграл.
>>698022
#313 #698022
>>698017

>Мой список


А где список-то? Ты назови хоть один большой, высокопроизводительный проект на go или d. Их же просто нет. Все серьезное дерьмо пишут на C или C++.
>>698023
#314 #698023
>>698022

> Все серьезное дерьмо пишут на C или C++.


На С. Без "или С++"
>>698028
#315 #698026
>>697947

>Хуйню написал.


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

>А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.


Делфи-треда в /pr/ нет, а С++ - есть, потому что это актуальный и очень полезный язык, изучение которого окупится сторицей. У D же есть пара фанбоев, которым настолько скучно, что они тралят С++-тред.

>1 контора на всё СНГ?


Она хотя бы есть, в отличие от работодателей на D. Хотя не знаю, зачем тебе так рынок СНГ принципиален.

>Сколько? Нихуя?


Exactly. Как и у D.

>Пропруфай чтоле. Хоть направление скажи.


Я на анонимной борде, избавь меня от этого мерянья хуйцами своего авторитета. Я предположений от твоей личности не делаю, твоя дурь видна из твоих постов, но ты почему-то о моей - делаешь, и любые твои промахи показывают больше о тебе, чем обо мне.
Последнее, что я написал (вчера) - это GPU-контейнер, который умеет swap'иться в CPU память при переполнении GPU, по определенной стратегии. Это уберперформанс, и D здесь не пришей к пизде рукав.

>Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней.


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

>Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.


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

>Ты на самый главный вопрос не ответил:


>>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.


Да я давно понял, что D метит в нишу Go - легкие микросервисы без ВМ для дешевых инстансов виртуальных машин (в докере, например). Только, вот какая беда, у Go он сосет тоже, причем по-своему. Да и юзкейс это редкий. Ну и в любом случае это оффтоп. Мне на данный момент важно, что нишу С++ dlang не покрывает вообще никак.
#315 #698026
>>697947

>Хуйню написал.


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

>А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.


Делфи-треда в /pr/ нет, а С++ - есть, потому что это актуальный и очень полезный язык, изучение которого окупится сторицей. У D же есть пара фанбоев, которым настолько скучно, что они тралят С++-тред.

>1 контора на всё СНГ?


Она хотя бы есть, в отличие от работодателей на D. Хотя не знаю, зачем тебе так рынок СНГ принципиален.

>Сколько? Нихуя?


Exactly. Как и у D.

>Пропруфай чтоле. Хоть направление скажи.


Я на анонимной борде, избавь меня от этого мерянья хуйцами своего авторитета. Я предположений от твоей личности не делаю, твоя дурь видна из твоих постов, но ты почему-то о моей - делаешь, и любые твои промахи показывают больше о тебе, чем обо мне.
Последнее, что я написал (вчера) - это GPU-контейнер, который умеет swap'иться в CPU память при переполнении GPU, по определенной стратегии. Это уберперформанс, и D здесь не пришей к пизде рукав.

>Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней.


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

>Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.


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

>Ты на самый главный вопрос не ответил:


>>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.


Да я давно понял, что D метит в нишу Go - легкие микросервисы без ВМ для дешевых инстансов виртуальных машин (в докере, например). Только, вот какая беда, у Go он сосет тоже, причем по-своему. Да и юзкейс это редкий. Ну и в любом случае это оффтоп. Мне на данный момент важно, что нишу С++ dlang не покрывает вообще никак.
17 Кб, 330x263
#316 #698028
>>698023

>Photoshop


>Autocad


>GCC


>llvm


>Chromium, Firefox, Edge, Opera


>KDE


>все AAA игровые движки


>MS Office


>.NET и множество других компиляторов.


>большинство EDA software

#317 #698030
>>698028
Ты не понял. Старый софт на С++ (которому больше 2-х лет) - это говнолегаси. Новый софт на С++ - это исключения, написанные дебилами. Старый софт на С - это няшный софт, которым все пользуются. Новый софт на С - это СМОТРИТЕ ВСЕ ВОТ ЭТО С А НЕ С++.
Самое забавное, что у любого крестохейтера всегда к этому сводится, даже если он программирует на лиспе, c#, теперь вот D.
#318 #698040
Ананасы, такой вопрос.
Есть некий класс, для которого перегружен оператор <<. Вот его определение:

Foo &operator << (uint32 val) { Method1Name( arg ); return this; } (разметку распидорасит немного)

Соответственно, при выполнении строк
Foo foo;
foo << huipizda;

вызовется то, что стоит в определении перегруженного метода, в моём случае это Method1Name с аргументом huipizda

С этим всё ясно.
Но в классе есть также следующее определение:

operator uint32 () { return Method2Name( ); }

Какой оператор перегружается в этой строке? То есть, в каких случаях вызовется Method2Name?
>>698053>>698055
#320 #698047
>>698028

>KDE


>Photoshop


>MS Office


Блядь, не поливай плюсы говном.
>>698062
#321 #698053
>>698040
Функтор, гугли function call operator overload
#322 #698055
>>698040
Перегрузка cast оператора. Будет вызываться в этих случаях:
uint32 mamka = foo;
int mamka = foo;
bool mamka = foo;
double mamka = foo;(sic!)
Т.е. везде где нужен либо uint32, либо где возможно неявное преобразование из этого типа.
>>698090
#323 #698062
>>698047
Ну если про kde еще можно поговорить(хотя на самом деле топовая opensource оконная система),
то все остальные - лидеры в своей сфере.
#324 #698075
>>698028

>KDE


Ты же на сборщик мусора вроде ругался, не?
142 Кб, 1920x1080
#325 #698082
Ну охуеееть, вот это вы насрали меньше, чем за день.
>>698324
#326 #698090
>>698055
Спасибо! сук пздц это мне гемора добавило только что
#327 #698100
>>697618
Нет, я просто не могу осилить D, пытаюсь временами и нравится. Но потом натыкаюсь на какую-то мелкую проблему и бросаю. Опять же, от библиотек сторонних глаза разбегаются. Хочу следующий проект на D начать. Аллокаторы вроде то ли дописывают еще, то ли только дописали. Спасибо, гляну более пристально. Молодые вы... Вам всё легко.
#328 #698102
>>697591
Выключи комплютер, отойди, подойди, включи, удали.
#329 #698105
>>697602
Лол, что!??! Сборщик мусора? Нахуя?
#330 #698109
То самое чувство, когда на анона говорящего про лучший синтаксис накидываются со словом "GC" всем тредом. Ахуенное зрелище.
#331 #698113
>>697682
Что по компиляторам? Есть вроде стандартный dmd и надстройка над clang'ом. Что с перфомансом на личном опыте?
>>698116>>698120
#332 #698116
>>698113
Да вы заебали. Пиздуйте в D-тред.
#333 #698120
>>698113
Мой велосипед из треда олимпиадных задач, как ни странно, быстрее работал под dmd.

dmd лучше умеет в стандарты, но ldc и gdc переносимее - конпелял на планшете с убунтой (dmd нету, ldc писало какую-то хрень, gdc заработало)
#334 #698125
>>697694
Спасибо, пояснили. Вы, анончики, выяснили, что главным отличием является GC, но противоречиво вышло. Алсо, что с внутренними механизмами ООП между C++/D?
>>698126>>698129
#335 #698126
>>698125
С крестами вроде хорошо стыкуется, но точно не скажу - на практике не юзал, только читал доки.

С сишкой стыкуется идеально, по сути D включает в себя подмножество сишки и может юзать все ее библиотеки. Пробовал ковыряться с opengl.
>>698128
#336 #698128
>>698126
Хотя, похоже то же самое. Объявляешь функцию через extern (c++) - и юзаешь ее.
#337 #698129
>>698125
Короче, сам вот почитай
https://dlang.org/spec/cpp_interface.html

Как дергать кресты из D, и наоборот.
#338 #698132
>>697755
Как в D устроен сборщик мусора? Разве для этого не нужно разрывать контекст выполнения?
>>698142>>698147
#339 #698139
>>697768
Двачую этого. Не используя явную аллокацию(new, placement-new), все проблемы внезапно проходят. Если же очень нужно перфоманса ради радотать с памятью руками, то создаёшь отдельный объект/оборачиваешь стандартными поинтерами. Никаких вроблем и GC не нужен.
>>698144
#340 #698142
#341 #698144
>>698139
Более того, это единственный правильный путь. Тягать new/delete не в конструкторе означает то, что код будет течь при исключениях. Просто у каждого неосилятора в программе сплошные циклические графы всего со всем, да еще и в многопоточной среде с shared state.
#342 #698147
>>698132
https://en.wikipedia.org/wiki/Boehm_garbage_collector

>The collector uses a mark-sweep algorithm.



>Разве для этого не нужно разрывать контекст выполнения?


Да, нужно
#343 #698179
Эта ваша boost::asio Header-Only?
>>698184
#344 #698184
>>698179
Да, если будешь билдить без зависимостей в boost::system (вроде каким-то дефайном отключается).

А вообще, бросай это говно.
>>698195>>698537
#345 #698195
>>698184
Ты не знаешь как в get запросе этот ебучий unicode передается?
>>698236
#346 #698236
>>698195
Боже, серьёзно, если тебе нужна библиотека http клиента даже не смотри в сторону asio. Это оверархитектурнутое говно - для клиентской части слишком низкоуровенно, для серверной - медленно и перегруженно.
>>698300
#347 #698300
>>698236
А что можно использовать? Я там нагуглил пару вроде простеньких библиотек, но они сходу не скомпилились так как сраная винда, еще и под mingw, так что я их дропнул. У меня маленькая утилитка для личного пользования, она дергает гугл транслейт. Я изначально сделал на винсокетах чтобы по-быстрому. Все было нормально, пока я не решил с этим ебучим юникодом связаться. Но, в принципе, я уже разобрался, там юникод в utf8 перегоняется и через percent encoding отдается.
>>698356>>698546
#348 #698324
>>698082

>Ну охуеееть, вот это вы насрали меньше, чем за день.


Дауны-аутисты кормят хейтера-аутиста.
>>698335
#349 #698335
>>698324
У вас GARBAG COLLECTOR протёк.
>>698466
#350 #698356
>>698300
vibe.d
68 Кб, 736x736
#351 #698466
>>698335
SEGMENTATION FAULT
#352 #698537
>>698184
лоло, буст в наше время _уже_ стандарт стандарт по факту
во многих конторах за неуважение к бусту расстреливают, а потом разделывают на мясо неугодных
>>698538>>698546
#353 #698538
>>698537

>стандарт стандарт


т.е. наистандартнейший стандарт
#354 #698546
>>698537
Такой ты кек.

>стандарт по факту


Разве что в конторках с C++98, где без его костылей никуда.

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


Есть пытка повеселее - посадить этих неверных читать код на бусте, особенно со всеми старыми высерами вроде boost::lambda.
>>698300
Casablanca очень приятная, и имеет более высокоуровенный API, посмотри в её сторону.
>>698637
#355 #698637
>>698546

>Casablanca


тэк о разве касабланка не тянет за собой буст и его сраный асио в том числе?
>>698650
#356 #698650
>>698637
Вне шинды тащит. Целую хидер-онли библиотеку тащит, лел.
Если нужно написать клиентскую часть она всё равно в 10 раз лучше чистого асио.
#357 #698713
Стреляю в ногу, пасаны:
http://pastebin.com/jiqEyQCN
>>698721
#358 #698721
>>698713

>int = 0;


Не попал
>>698748
#359 #698748
>>698721
точно, коряво скопировал из своего кода
>>698753
#360 #698753
>>698748
http://pastebin.com/Y7ZJsGYf
Щинок блядь, стрелять не научился ещё.
>>698783
#361 #698783
>>698753
Люблю развернутый код, один хуй нормальный компилятор это говно вот так бы и оптимизировал.
#362 #698819
Помогите с заданиями, пожалуйста. Учу кресты дома сам для себя по книгам, но там задачи слишком примитивные и направлены на закрепление прочитанного и синтаксиса, а хочется каких-нибудь подходящих для новичка задач, не сильно оторванных от реальности.
>>698823>>698878
#363 #698823
>>698819
Напиши калькулятор, змейку на псевдографике. Все зависит от того зачем ты их учишь.
#364 #698865
>>698823

>калькулятор, змейку на псевдографике


К C++ это имеет никакое отношение.
>>698870>>698874
#365 #698870
>>698865
Хорошо, не пиши
#366 #698874
>>698865

> имеет никакое отношение.


Инглиш параллельно учишь?
#367 #698878
>>698819
Открываешь любой сайт с задачами и решаешь. Только решай их не как олимпиадные, нормально. По максимуму используй stl. Пиши классы. Реши так задач 25-30. Потом придумаешь проект для себя и пили его.
#368 #698881
>>698823
Калькулятор я уже простенький на винформах накидал, надо будет ему функциональности добавить еще. А вот змейку попробую, только как консоль очищать? system() использовать не рекомендуют, а clrscr() из conio.h у меня ошибку при компиляции выдает.
>>698883>>698888
#369 #698883
>>698881
ncurses
>>698934
#370 #698888
>>698881
А если я хочу написать кросплатформенное что-то, не используя Qt, что делать
>>698906
#371 #698906
>>698888
STLPort
>>698933
#372 #698933
>>698906
Спасибо.
>>699275
#373 #698934
>>698883
Спасибо, вроде выглядит достаточно простой для освоения библиотекой.
>>698972
#374 #698938
Ананасы, посоветуйте либу для чтения/записи .zip файлов под мингв. Чтобы можно было сразу скачать, подключить и работать безо всякой ёбли со сборкой.
>>699127
#375 #698972
>>698934
Только оно под *nix (и, вроде, в cygwin есть).
#376 #699045
>>698823
Напиши консольный клиент сосача, который умеет находить список проксей и писать и читать мессаги в тред, ебя мочу в ротешник.

Сам думаю заделать такую штуку. Или на Qt, или на дишке.

А если сделать сабж как мобильное приложение - и вовсе наверное популярностью будет пользоваться.
>>699118>>699195
#377 #699070
Анончики, а посоветуйте где можно почитать про всякие оптимизационные алгоритмы. lru например или типа того.
>>699265>>699309
#378 #699118
>>699045
Я шарю в крестах на уровне расчёта факториала на этапе компиляции и понимания зачем нужен виртуальный диструктор. Этих знаний точно должно хватить чтобы писать такое. Но я не умею. Что я упустил? Какую книгу прочитать чтобы научиться?
>>699139
6 Кб, 335x63
#379 #699127
>>698938
Из шапки. http://en.cppreference.com/w/cpp/links/libs ещё буст в такое умеет
>>699518
#380 #699139
>>699118
Никакую. Практика лучше сраных книг.
Просто пиши.
>>699148
#381 #699148
>>699139
А упустил я что? Я ведь понятия не имею с чего начать и как закончить. Может есть где-нибудь блог где чел по шагам подробно расписывал как он какой-нибудь мелкий но полезный проект пилил?
>>699158>>699185
#382 #699158
>>699148
Если конкретно про это - начни с апи сосача. Там этакая жсонная ебань.
>>699164
#383 #699164
>>699158
Нет. Про разработку хочу почитать. Не полуметровые статьи с хабра, а подробные описания.
>>699267
#384 #699185
>>699148

>с чего начать


Определить функционал, найти инструмент, спроектировать архитектуру, реализовать, протестировать, повторить
>>699191
#385 #699191
>>699185
Во вот это хочу читать. Давай на примере. И так чтобы код ещё мог прочитать который получился. Чтобы автор пояснял за каждый свой выбор. Почему он сделал так, а не иначе.
>>699198
#386 #699195
>>699045

>находить список проксей и писать и читать мессаги в тред, ебя мочу в ротешник.


А капча?
>>699206>>699256
#387 #699198
>>699191
Но зачем? Не хочешь самостоятельно шишек набить что ли?
>>699206>>699231
#388 #699206
>>699198
Говно выйдет.

>>699195
Анон кстати что-то такое писал. Когда запускал вайп был бешеный. По посту в секунуд.
https://github.com/anon3341/2ch.hk/blob/test/sage/sage.py
>>699274
#389 #699231
>>699198

>самостоятельно шишек набить


DUDE WEED LMAO
#390 #699235
Вот скажите аноны Лафоре Р. "Объектно-ориентированное программирование в С++" годный учебник? Стоит ли с него начинать?
>>699251
#391 #699251
>>699235
Да. После страуструпа очень легко читался. Пример с лошадями не понятный т.к. не смазано где он указатели на объекты взял. Хотя в коде написал this так и не пояснив что это. единственный косяк что заметил.
#392 #699256
>>699195

> А капча?


Когда я делал это вручную, через фраерфокс - капчи не было.
#393 #699265
>>699070
В книжках про оси обычно неплохо это описывается (в применении к переключению процессов/механизму страниц/etc). Начни с Таненбаума, а потом глянь там в конце библиографию, если не хватит. Инфа сотка, что там найдутся книги или статьи, где конкретно про диспетчеризацию более подробно.
>>699272
#394 #699267
>>699164
Специально для твоего случая Г-сподь послал годноту в виде книжки Brown, Wilson - The Architecture of Open Source Applications, в двух частях. Там подробно описано, как строятся настоящие приложения, и, главное, почему они строятся именно так.
>>699271>>699375
#395 #699271
>>699267
Спасибо.
>>699275
#396 #699272
>>699265
Спасибо.
>>699275
#397 #699274
>>699206
У всех поначалу выходит говно, это не просто нормально, а даже необходимо, чтобы ты потом мог сравнивать и видеть свой прогресс. Если от своего кода годичной давности тебе хочется блевать, то ты на верном пути. А если ты будешь ждать, пока по волшебству возникнет Страуструп, и своим хуем вобьет тебе в жопу сакральный опыт разработки, то ты так и останешься на уровне лаб. Царской дороги нет, знаешь ли.
#398 #699275
>>699272
>>698933
>>699271
Блять я придумал как оценить качество треда! Ищем в нём количество благодарностей и вежливостей. Потом ищем в ней количество обзывательств и оскорблений. Ещё надо найти гринтекст. Если текст из него есть в посте на который ответили, то это цитата и игнорим. Иначе это может быть цитата из другого места или оскорбление. Если там есть упоминание мамы или других слов-маяков, то это обзывательство. И ещё можно считать количество удалёных ностов, но сохранённых на архиваче. Тогда можно устроить соревнование между другими тредами или в другой тематике. Это будет здорово. Ну, кто сделает?
#399 #699308
>>699275
Слишком удавопопугаисто.
#400 #699309
>>699070
Книга Дракона. Сорцы llvm, gcc.
#401 #699323
аноны.. есть /dev/video0
как можно с ним работать? где почитать как с ним работать?
>>699364>>699569
#402 #699364
>>699323
Как с файлом. Всё - файл.
>>699389
#403 #699375
>>699267
Анон, это супер. Я кончил.
>>699451
#404 #699389
>>699364
ну я работал с /dev/dsp* это я понял что файл, а что в нем? как вытащить битмапу?
>>699569
#405 #699451
>>699375
Поделись где взял?
>>699485
#406 #699485
>>699451
На рутрекере же. Личуй - по ip тебя вычислю.
>>699488
#407 #699488
>>699485
Почему тогда качателей цп так не вычесляют?
>>699491
#408 #699491
>>699488
Потому что качать цп не противозаконно.
>>699494
#409 #699494
>>699491
А раздавать?
#410 #699511
>>699275
Я бы вписался в такое. Надо только продумать метрики получше, а то мы же на двачах, тут даже в полезном/сочувственном/мотивирующем посте нет-нет, а маму выебут.
>>699516
#411 #699516
>>699511
1. Можно разбивать нити/доски на тематики LDA или HDP.
2. Посмотреть, что за тематики получились.
3. Проранжировать их по шкале/хорошо плохо.
4. ???????????
5. Подсунуть новую доску/нить.
6. PROFFFIIFFTFTIFITI!!111!!IiIFIFITIfkzdfsd!!!!!!1!
>>699522
#412 #699518
>>699127
Мало того, что с ней идёт куча лишнего для меня говна, так она просто содержит в себе библиотеку как раз нужную мне которую и так можно найти отдельно.
Нахуй так.
>>699526>>699527
#413 #699522
>>699516
1) Найти инструмент для анализа данных больше подходящий чем плюсы;
2) Сказать об этом в треде;
3) Проскролить 200 постов о том что ты ДОЛЖИН ЛЮБИТЬ плюсы;
4) Отправится в след за дишниками.
Профит.
#414 #699526
>>699518
Понятия не имею что это не читая взял с гугла.
http://www.zlib.net/
http://www.libarchive.org/
#415 #699527
>>699518
Просто libzip сложно?
>>699566
#416 #699530
>>699275
По-твоему самый лучший тред - это такой филиал Stack Overflow, где отвечают на тупые вопросы за спасибо? Но SO уже есть и в нем система настроена лучше (дубликаты банят, студентов с домашками банят, хейтеров минусуют). Борды совсем не об этом, на них отдыхают.
>>699533
#417 #699533
>>699530
Можно ещё за длинопосты была треду начислять, а некрасивую орфографию снимать.
>>699537>>699841
#418 #699537
>>699533
За граммотную пунктуацию плюсовать, а красивые речевые обороты - пасскод. Ебучий хабр
>>699539>>699541
#419 #699539
>>699537
Плюсвать будт рбоот.
#420 #699541
>>699537
Есть способ проще. Много постов - тред хороший, мало постов - плохой. А люди голосуют ногами. Вот и все.
>>699543>>699545
#421 #699543
>>699541
значит лучший пхп тред?
>>699551
#422 #699545
>>699541
Так ведь он уже реализован.

Всё равно остаётся некий хайп около топовых нитей в выдаче.
#423 #699551
>>699543
Пхп-тред неплох.
#424 #699566
>>699527
Просто не хочется ёбли со сборкой, а просто скачать и сразу использовать.
>>699618
#425 #699569
>>699323
>>699389
ну черт.. я так и не нагуглил в каком формате в /dev/video0 валяется видопоток. ну спасите аноны!
>>699583
#426 #699583
>>699569
Третья ссылка в гугле.
linux /dev/video0 capture video example
>>699591
#427 #699591
>>699583
огогог.. етить там кода..
#429 #699633
Как кодится в России, си-плюс-плюсники? Вон http://keinkeinkein.livejournal.com/83261.html по ссылке пишут, что в России работы нормальной нету.
#430 #699636
Сколько времени нужно, чтобы надрочиться на алгоритмы?
>>699725
#431 #699662
Как заполнить массив рандомными числами?
>>699665
sage #432 #699665
>>699662
std::generate или std::generatte_n
В качестве генератора суешь генератор случайных чисел.
#433 #699676
Сука проект не компилится! "Project is not compiled, compile it now?"
Как это исправить?
#434 #699720
>>699676
Телепаты в отпуске :)
#435 #699725
>>699636
Год.
#436 #699726
>>699676
Нажми Yes
>>699728
#437 #699727
>>699676

>compile it now?


Yes.
>>699728
#438 #699728
>>699726
>>699727
Спасибо всем. Помогло.
39 Кб, 686x356
#439 #699731
Я хочу, чтобы этот скрин всегда был вторым постом в треде.
#440 #699732
Можно ли с помощью оператора switch, дать пользователю выбрать, каким методом он может рассортировать массив?
>>699734
#441 #699734
>>700242
#442 #699801
Спасибо за детальную инфу в шапке, очень помогла
#443 #699841
>>699533
Тредов пять назад анон подводил статистику употребления "тся/ться" по борде. Крестотред был безусловным лидером по грамотности.
#444 #699849
Вот почитываю я тут книгу из шапки, и что я вижу - пришли лямбды - так значит теперь бинды можно сваливать в мусорку?
#445 #699852
>>699849
Иногда бинды короче и выразительнее.
Но вообще рекомендуют использовать лямбды, даже если получается длиннее.
К тому же, в C++14 у них няшный capture list запилили.
#446 #699853
>>699849
В новых проектах - да. Легаси которое написано с ними легче продолжать компилировать старым комапилятором и писать с биндами, чем пытаться присунуть туда лямбды.
#447 #699857
>>699849
В С++11 были места, где bind был нужен - полиморфные лямбды, capture-by-move и т. п, в С++14, насколько я понимаю, уже все равно.
#448 #699946
Сап, аноны. Я тут новичок, тащемта не могу в транспонирование матрицы:
Есть глобальная static int матрица, ее нужно транспонировать и тут я застрял. Нужно именно транспонировать оригинальную матрицу, не создавая копий всяких, как это сделать?
#449 #699951
>>699946
std::swap
#450 #699959
Есть одна программа на C++. Как в OllyDbg найти точку входа в нее и поставить бряку без спама кнопки F8?
#451 #699981
>>699946
Просто меняешь местами элементы матрицы.
#452 #699982
>>699946
[code lang="cpp"]for (auto i = 0; i < size; ++i) for (auto j = i+1; j<size; ++j) swap (matrix [isize + j], matrix [jsize + i]);[/code]

Это если квадратная. Для произвольной прямоугольной в любом случае будут копии из-за сдвигов, причем в предельном случае с копией единственного элемента будет охуенно избыточная сложность.
>>700237
#453 #700237
>>699982
Матрица не квадратная точна, транспонирование нужно только если n > m
#454 #700242
>>699734
http://ideone.com/Wg2Ulv
Выдает кучу ошибок, которые мне не совсем понятны. Заного переписывать код?
#455 #700245
>>700242
Ââåäèòå çíà÷åíèÿ ìàòðèöû
>>700260
#456 #700250
>>700242

> switch (Âàø âûáîð)


■╘╧ ▄╘╧?
>>700260
#457 #700252
>>700242
У тебя в 27 строке какая-то хуита, почитай как switch работает.
>>700285
#459 #700271
>>700260
Там же написано в логе что не так.
>>700285
#460 #700285
>>700252
>>700271
Заработало, я неправильно cout написал.
#461 #700303
Теперь возникла другая проблема, он не правильно сортирует массив.
[code]for(int i=1;i<n;i++)
for(int j=i;j>0 && a[j-1]>a[j];j--)
swap(a[j-1],a[j]); [code]
#462 #700304
>>700303
Блядь, обосрался.
#463 #700318
>>700303

>Лабы идут на хуй

>>700330
#464 #700330
>>700318
как твоя жирная спидозная мамаша
>>700332
#465 #700332
>>700330
Все идут на хуй
Хейтер сосет члены на пару со своей мамашей
#466 #700350
>>700303
std::sort(std::begin(a), std::end(a));
>>700371
#467 #700371
>>700350

>std::begin(a), std::end(a)


Эхх блять. Щас бы попросал с диапазонами для C++17 отклонить.
>>700404
#468 #700404
>>700371
а что там в c++17 сделали?
>>700429
#469 #700429
>>700404
Файловую систему, пара директив компилятора для отключения ворнингов, пара мат. функций, паральльные алгоритмы в STL. Ещё вроде попросал с человеческими кортежами а не ублюдства из stl не отклонили.
#470 #700443
Плюсы скоро загонят меня в психушку со своими тонкостями. Что в этом коде не так?
https://ideone.com/dqZ5ze
>>700448>>700451
#471 #700448
>>700443
std::cout << a.capacity()
перед каждым emplace и после всех emplace
>>700453
#472 #700451
>>700443
Да, конструктор копий запили и всё поймёшь.
>>700453
#473 #700453
>>700451
>>700448
Понятно. Спасибо.
>>700458
#474 #700458
>>700453
Точно? Объясни тогда.
>>700466
#475 #700466
>>700458
Сначала capacity 0.
запрос на добавление объекта
память выделяется (capacity 1)
добавляем новый объект в конец
запрос на добавление объекта
память выделяется (capacity 2)
копируем старый объект (вызывается конструктор копирования)
старые данные чистим (вызывается деструктор)
добавляем новый объект в конец
Так?
>>700475
#476 #700475
#477 #700757
Как же я зебался двач. Суть проблемы, есть такой класс в Qt, называется QSqlDataBase. При стандартном коннекте с базой данной вылетает ошибка, что драйвера нет нужного.

Что пишу:
[code]
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("acidalia");
db.setDatabaseName("customdb");
db.setUserName("mojito");
db.setPassword("J0a1m8");
bool ok = db.open();
[/code]

Ошибка:
[code]
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
[/code]

Покапавшись с дебагером и в Интернете осознал, что необходимо вручную добавить в соответсвующую папку библиотеку libmysqlclient_r.so.16. После добавления появилась новая ошибка:
wrong ELF class: ELFCLASS32

Суть ошибки в том, что библиотеку нужно компилировать 32 битным компилятором, а не 64, который стоит у меня. Так вот, как мне скомпилировать эту библиотеку на Ubuntu с учетом того, что у меня система 64 и Qt стоит тоже 64 битный? Поиск в Интернете дал много информации, но мало практического решения, хелп анон. Блять, я пак с няшной-няшей тебе отдам, если ты поможешь
>>700781>>700813
#478 #700781
>>700757
Поставить 32 битный компилятор.
sudo dpkg --add-architecture i386
sudo apt-get install libkompilyator:i386
>>700787
#479 #700787
>>700781

>libkompilyator


Ты совсем писька?
#480 #700813
>>700757
Попробуй же найти скомпилиную.
#481 #700936
Сап, ебач.
Начинаю прогать на плюсах, какой софт самый годный для проганья?
>>700992
#482 #700946
Почитал про изменение политик лицензирования Qt и понял, что эти ребята теперь не дадут нормально делать софт бесплатно и без смс. Только если ты не будешь распространять свою программу или откроешь пользователям сорсы.
Возвращаться на MFC? Покупать за 49 баксов в месяц нет пути.
>>700949>>700957
#483 #700949
>>700946
Лол, а не жопой ли ты читал?
>>700953
#484 #700953
>>700949
почему? с 5.6 только LPGLv3 во всех компонентах, а это и квик контролы в том числе.
>>700956
#485 #700956
>>700953
И каким образом LGPLv3 принуждает тебя открывать сырцы своей проги, а?
>>700959
#486 #700957
>>700946
Для некоммерческого софта достаточно динамической линковки. Коли он коммерческий – или плати, или пиздуй обратно на mfc в 2005.
>>700960>>700968
#487 #700959
>>700956
Нет что ли? А что поменялось тогда?
>>700963
#488 #700960
>>700957
Лол, где ты взял такое?
LGPL на то и нужна, чтобы юзать свободные библиотеки в закрытом софте.
>>700964
#489 #700963
>>700959
Хуй знает. По большей части ничего.

Открывать тебе придется патчи, которые ты внес в САМ Qt. Если вносил.
ЕМНИП, суть этой лицензии - пользователь должен иметь возможность заменить опенсорцные либы по своему усмотрению и не зависеть от того, чего ты внутри них намудрил, так что ты должен обеспечить это. Самый простой способ - динамическая линковка, юзер просто подменит либы на свои.

Открывать саму прогу ты не обязан и никогда не был.
#490 #700964
>>700960
Лан, а какого хуя этот петух ты? вообще набухает? Нистатическая линковка, кококо?
Запахло винапи пидором.
#491 #700968
>>700957
Так вот же, ты ведь взял это откуда-то. Они какой-то тарифный план для стартапов добавили еще и 30-тидневный пробный период для ознакомления.
>>700971
#492 #700971
>>700968
Блять, это для коммерческой версии!
Тебе надо качать опенсорцную.
>>700975
#493 #700975
>>700971
Еее, теперь ты видишь разницу? Если я вдруг решу продавать даже за один рубль, уже мне нужна коммерческая версия. Это паршиво, согласись.
>>700977
#494 #700977
>>700975
Ты че, ебанутый?

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


Сука, откуда ты это берешь?
>>700986
#495 #700986
>>700977
Ну, вот же

>Коли он коммерческий – или плати, или пиздуй обратно на mfc


Если коммерческий софт пишу, значит надо коммерческую лицензию, не?
>>700992>>700996
#496 #700992
>>700936
Emacs и Arch Linux.

>>700986
Не, ты ебанутый или как? Они по твоему за грязь из под ногтей работают, как Столлман?

>>700976
Пиши конкретней чтоле.
>>701005
#497 #700996
>>700986

> Если коммерческий софт пишу, значит надо коммерческую лицензию, не?


Прикинь? Не.

Коммерческую лицензию тебе надо если ты собрался сам Qt менять и не соблюдать LGPL. И если тебе нужны коммерческие плюшки. Например, boot2qt или как он там.

В твоем случае, коммерческая лицензия тебе нахуй не уперлась. Я раньше сетовал на то, что в коммерческой был рендер qml софтварный - из-за его отсутствия в опенсорце приходилось жрать qt quick1.
Но сейчас они кучу коммерческой хуйни в опенсорц перевели.
>>701008>>701010
#498 #701005
>>700992
А чем тогда open-source версия отличается в этом? Тем, что библиотеки можно только динамически линковать?
>>701008
#499 #701008
#500 #701010
>>700996

>Коммерческую лицензию тебе надо если ты собрался сам Qt менять и не соблюдать LGPL. И если тебе нужны коммерческие плюшки. Например, boot2qt или как он там.


Тогда норм.
#501 #701085
Сразу к делу. Как в дебаге вижуал студио посмотреть значение переменной, которая инициализируется в последней строчке области видимости? Брейкпоинт на ней - она ещё не инициализирована, шаг вперёд - уже вышла из скоупа. Есть путь адекватнее добавления холостой строки для того, чтобы на ней стояла каретка дебага?
>>701099>>701102
#502 #701099
>>701085
Нету. Один из случаев полезности ассертов.
>>701709
#503 #701102
>>701085
Что-то с кодфлоу не так. Если переменная локальная, то она нахуй не нужна, иначе она доступна вне скоупа.
>>701133
#504 #701133
>>701102
Что, после каждого вызова функции брейкпоинт ставить?
>>701294
#505 #701200
Какой петух засунул в шапку codelite? Эта хуйня даже CMake без плясок с бубном открыть не может.
#506 #701294
>>701133
Тебе результат функции нужен? Студийный отладчик и gdb умеют показывать значение return
#507 #701321
В какой книге лучше всего описана работа с файловыми потоками? Например, мне нужно разобраться, как работает seekg(0, std::ios::end), а на cppreference я вижу только это:

http://www.cplusplus.com/reference/istream/istream/seekg/

>off


>Offset value, relative to the way parameter.


>streamoff is an offset type (generally, a signed integral type).



Что за ебаные формулировки? Как понимать "значение смещение, относительное к параметру пути"?
#508 #701322
>>701321

>значение смещение


смещения
#509 #701326
>>701321
Смещение относительно направления
Ты можешь указать смещение относительно начала, конца и текущей позиции.
35 Кб, 600x596
#510 #701647
Как же хочется перекатика.
>>701655
#511 #701655
>>701647

>Как же хочется перекатика.


Ну так делай епта
>>701656
#512 #701656
>>701655
Я не ОП.
#513 #701695
>>696596
То есть приблизились по зашквару и быдланству к пхп
>>701697
#514 #701697
>>701695
Ты не понимаешь, у них все быстро из-за популярности технологий и кучи неофитов, мы же тащим за счет неплохого контента, который привлекает не только студентов которые идут на хуй со своими лабами.
#515 #701709
>>701099
И как в таком случае верно заасертить? другой анон
#516 #701712
Сап аноны.
есть пара вопросов..
1) я смотрю на С++ как на мощный инструмент круче которого нет. И наверное связываю свое будующее с ним мимо прыщевод/20лвл/гуманитаростудент/технарь в душе/кун
но помимо написания программ по курсу С++ за 21*10^3 дней я понимаю что нужно сеч в алгоритмах от стабилизации потоков до алгоритмизации чистых иксов в 4ре строки из которых 2 это

>int main()


>return -1; // мать его eror



вопрос по первому -- больше годной литературы по этой штуке
и по работе с сетями на низком уровне, больно тема интересная
2) коль я хочу обмазаться работой за ничего и елду на какую ide смотреть?
мимо смотрел на qt около 5ти месяцев без библиотек qt ща разговор, просто ide ну куйня без задач!
смотрел на эклипс -- годно но настраивает проект очнь тонко я так понимаю такая ide не для работы больше а для сольного проекта

вопрос -- какой ide обмазываться чтобы взяли на работу?

3) популярные либы вопрос к бустоебам в С++11 стоит ли? просят ли работодатели больше STL?

зы: с голоду ппц умираю.. умею по сути только писать код по разжеванному в пиздец тз. за плечами 15к строк только. + я не плохой прыщееб на уровне rm -rf / не вводи, а dd if=/dev/zero of=/dev/ada0 попробуй. Может это спасет меня?
#517 #701720
>>701712
Насчет ide: пользуйся CMake и попробуй все ide популярные.
>>701736
#518 #701725
Кто-нибудь может пояснить за ассемблерные вставки на C++ в вижуал студио?
>>701726
#519 #701726
>>701725
Поясняю, не нужны
>>701727
10 Кб, 404x410
#520 #701727
>>701726
Как мне заполнить массив в асм вставке числами от 0 до 99, юморист?
#521 #701728
>>701727
Ну смотри, выделяешь весь блок и жмёшь бэкспейс, затем пишешь нормальный код на C++
>>701729
#522 #701729
>>701728
И своему преподу я как это объясню?
>>701735>>701736
#523 #701735
>>701729
Скажешь, что он совковый дегенерат, а за ассемблерные вставки в 2016 ссут в ротешник

> Лабы идут нахуй
>>701737
#524 #701736
>>701729
лабы идут нахуй ему говоришь и все

>>701720
у меня в репах кодблок эклипс и кьют.
есть еще что-то?
>>701791
#525 #701737
>>701735
мне кажется в 2016ом асм вставки в крестах нужны чтобы зажечь светодиод по шине pci-e в куллере видеокарты.
двачюю крч
>>701739
#526 #701739
>>701737
Для кулеров видеокарты есть говняшная и чистый ассемблер, кресты там вообще не всрались
>>701743
#527 #701743
>>701739
я погляжу как ты на асме будншь многопоточный рендер писать...
кресты это достаточно низкоуровнневый язык чтобы ебнуть массив данных на шинку и порулить ими на внешнем устройстве а не внутри православного сипию/озу.
чистый асм нужен почти нигде. разве что при написании ос драйвера к фс и бла бла. но есть граб => чистый асм только для великов
>>701745
#528 #701745
>>701743

> чистый асм нужен почти нигде.


Тем более же. Кресты и говняшная покрывают весь спектр потребностей.
>>701749
#529 #701749
>>701745

> говняшная.


что ты под этим имеешь ввиду?
>>701768
#530 #701768
>>701777
#531 #701777
>>701768
открою тайну.. C++ обратносовместим с С
>>701782
#532 #701782
>>701777
Да только всё равно 99% нативной хуйни пишут на чистом си.
>>701784
#533 #701784
>>701782
нахера тебе классы в драйвере то?
>>701787
#534 #701787
>>701784

> нинужна

>>701793>>701808
#535 #701791
>>701736
NetBeans?
>>701813
#536 #701793
>>701787
вероятность того сто ты билдишь не кланг а кланг++ и не замечаешб
#537 #701808
>>701787
Вот именно, что нинужна, по крайней мере в любом kernel mode драйвере они нахуй не упали, когда нужен переносимый ассемблер, с прямым как профиль твоей мамаши поведением.
>>701924
#538 #701813
>>701791
не пробовал.. ща пробну
#539 #701814
>>701727
А я бампану свой вопрос. Заебали обсуждать ебаный асм, просто помогите и я съебу.
#540 #701820
>>701727
Берешь такой, значит, пишешь на C++ сначала, а потом ДИЗАССЕМБЛИРУЕШЬ и КОПИПАСТИШЬ всю эту срань типа ты такой ВСТАВКУ НАПИСАЛ САМЫЙ УМНЫЙ В КЛАССЕ ПРЕПОД ПОСТАВИЛ 5 И ПОХЛОПАЛ ПО ПЛЕЧУ
#541 #701828
>>701712
еще что то подскажите баааамп
#542 #701844
>>701321
Джотаттис, пару дней назад просматривал потоки, там заебись написано, с примерам. А вообще этот интерфейс со смещениями еще из C идет, поэтому в C++ обычно такие моменты не объясняют.
>>701865
#543 #701865
>>701844

>Джотаттис


Сколько вариантов написания его фамилии я видел. И джосатис, и джосьютис, и теперь джотаттис. Давайте выясним правильное написание и будем использовать его в этом треде.
>>701869>>701875
#544 #701869
>>701865
Ты ещё правильный вариант произношения имени страуструпа предложи обсудить.
>>701874
#545 #701874
>>701869
А что ещё делать в бамплимите?
>>701912
#546 #701875
>>701865

> правильное написание


Josuttis
>>701878
#547 #701878
>>701875
На forvo нет, но нашел это.https://www.howtopronounce.com/josuttis/ С телефона не могу прослушать. Ещё можно на офсайте и вики посмотреть.
#548 #701896
Есть ли какие-нибудь стандартные методы шифрования в Qt? Не хочется класс писать ручками.
>>701929
#549 #701912
>>701874
Обсуждать D.
#550 #701924
>>701808
Манямирок. Нужен минимальный оверхед, потому и берут си.
>>701936>>701992
#551 #701929
>>701896

> стандартные методы шифрования


Ишь что удумал, пердолься с опенссл, это тебе не джява бездуховная.
>>701931
#552 #701931
>>701929
Сильно геморрно?
>>701942
#553 #701936
>>701924
Манямирок – это хуйня, которую ты написал, повторив смысл моего поста.

В самих плюсах по сравнению с си кроме виртуальных функций и ритти оверхеда почти нету.
>>701942>>701992
#554 #701942
>>701931
http://hayageek.com/rsa-encryption-decryption-openssl-c/

>>701936
Таблетки принял? Оверхед это лишнее потребление памяти/скорости, а ты кукарекаешь что классы не нужны и лучше жрать байтопортянки.
Однако если бы можно было писать йоба-функциональный-высокоуровневый код не теряя в ресурсах, то все бы делали именно так, а за байтоебство ссали на еблет.
>>701945>>701960
#555 #701945
>>701942

>http://hayageek.com/rsa-encryption-decryption-openssl-c/


Ебаный в рот, лучше XOR хуевину напишу руками.
>>701947
#556 #701947
>>701945
Только оберини во что-нибудь а-ля XorCryptoHuinya от YobaCryptoHuinya. Как-нибудь потом реализуешь SslCryptoHuinya от YobaCryptoHuinya.
>>701949
#557 #701949
>>701947
Хорошо.
#558 #701960
>>701942

>Однако если бы можно было писать йоба-функциональный-высокоуровневый код не теряя в ресурсах, то все бы делали именно так, а за байтоебство ссали на еблет.


Если ты бы не был таким ебланом, то ты не писал такой хуйни.
sage #559 #701992
>>701936
неистово арчюю тебя

>>701924
бля ты пиздец как драйвер пишешь?

>#include<boost/dotnet>


>begin кудахтахтах; boost::кукареку; end;


тебя не говорили что си и кресты и что прога на си/крестах будет
1 -- оптимизированнее
2 -- быстрее
3 -- девелоперы gnu ебашат компилятор чтобы он был охуенней твоих "чистых" masm
4 -- байтоебит на си/крестах онли линковщик и то слабее чем ты наговнишь в MASM своём, сажа тебе
>>702624
#560 #702119
>>701712

> я смотрю на С++ как на мощный инструмент круче которого нет


Blub paradox as is.
#562 #702624
>>701992

> наговнишь в MASM своём


Ясно, иди таблетки пей, шизофреник
>>702777
#563 #702777
>>702624
ты еблан? я не юзаю это гавно
#564 #704107
>>696401 (OP)
Люблю кресты и лично Страуструпа за хорошие книжки и веселые задания. А ещё у вас в шапке стихи пишут. Хороший тред.
мимопроходилв/б/
Тред утонул или удален.
Это копия, сохраненная 19 апреля 2016 года.

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

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