Сохранен 577
https://2ch.hk/pr/res/696401.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

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

 Аноним 23/03/16 Срд 18:58:09 #1 №696401 
14587486900900.jpg
У каждого треда запах особый:
Пахнут ньюфаги ленью и злобой,
В перезвоним-треде пахнет злорадством,
В гитхаботреде - вниманиеблядством.

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

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: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.


Аноним 23/03/16 Срд 19:00:43 #2 №696406 
>>696401 (OP)
Ахаха. Типа крестовый ход.
Аноним 23/03/16 Срд 19:07:31 #3 №696411 
https://habrahabr.ru/company/infopulse/blog/279927/
Аноним 23/03/16 Срд 19:15:10 #4 №696416 
>>696401 (OP)
Топовый стих!
Аноним 23/03/16 Срд 19:24:22 #5 №696420 
>>696406
Ещё круче. Это ДЕТСКИЙ крестовый поход.
Аноним 23/03/16 Срд 19:27:52 #6 №696422 
>>696401 (OP)
> Оффициальный™ традиционный® C++ тред #27
> #17
Аноним 23/03/16 Срд 19:29:25 #7 №696424 
>>696422
Где ты 17 увидел?
Аноним 23/03/16 Срд 19:32:23 #8 №696427 
14587507430440.jpg
14587507431011.jpg
Поможете с задачкой? Мне бы просто идею понять.
Аноним 23/03/16 Срд 19:54:01 #9 №696446 
>>696411
https://botondballo.wordpress.com/2016/03/21/trip-report-c-standards-meeting-in-jacksonville-february-2016/
Аноним 23/03/16 Срд 19:56:48 #10 №696448 
Ребят, в vs2015 куда делать окошко в котором я мог бы посмотреть сколько у меня ошибок и предупреждений?
Раньше там ещё можно было не показывать предупреждения или ошибки чтобы навигация по ним была проще.
Аноним 23/03/16 Срд 19:56:52 #11 №696449 
>>696446
Тут расписано что уже вошло в стандарт (список не полный), что не вошло и почему, и что возможно войдёт в июне на встрече в Oulu.
Аноним 23/03/16 Срд 19:57:30 #12 №696450 
>>696401 (OP)
> обгвидок
Кто такой? Чем знаменит?
Аноним 23/03/16 Срд 19:59:07 #13 №696454 
>>696450
Пистон
Аноним 23/03/16 Срд 19:59:57 #14 №696455 
> 19:56:48
> 19:56:52
> 19:57:30
Да вы охуели.
Аноним 23/03/16 Срд 20:02:06 #15 №696461 
>>696455
For you
Аноним 23/03/16 Срд 20:27:36 #16 №696496 
>>696448
View -> Error list
Аноним 23/03/16 Срд 20:27:59 #17 №696499 
14587540791890.jpg
Ага. Это опять я (ну тот, который из PHP хочет в C++ перекат сделать). Посоны, а поясните за указатели/ссылки? Что это за хуита, как ими пользоваться и зачем они вообще нужны?
Аноним 23/03/16 Срд 20:37:04 #18 №696513 
>>696496
Сенькс.
Аноним 23/03/16 Срд 21:11:43 #19 №696539 
>>696446
Нахуя 2Д? Решили догнать и перегнать турбопаскаль?
Аноним 23/03/16 Срд 21:16:41 #20 №696546 
>>696499
А в книге что про это говорят?
Аноним 23/03/16 Срд 21:30:24 #21 №696566 DELETED
почему оно повторно отправилось блять
Аноним 23/03/16 Срд 21:32:10 #22 №696569 DELETED
>>696539
А почему нет?
Аноним 23/03/16 Срд 21:32:12 #23 №696570 DELETED
сука я не дочитала господи не читайте пожалуйста все блять как стыдно
Аноним 23/03/16 Срд 21:45:11 #24 №696581 
Но вот. Мод хуй. Я почти уловил её прочитать нашу шапку. А ты вмешался и удалил ту шлюху. И кто теперь шапку читать будет?
Аноним 23/03/16 Срд 21:51:27 #25 №696583 
>>696581
я прочла и ощутила свою ничтожность )
Аноним 23/03/16 Срд 21:59:00 #26 №696588 
14587595407990.jpg
>>696581
Это зелень, он из соседнего треда пришел.
Аноним 23/03/16 Срд 22:04:11 #27 №696596 
>>696422
>17
Только в твоих влажных фантазиях.

Алсо, возрадуемся, братья. В этом треде мы обогнали жабу и вышли на первое не считая веб-макак место по количеству тредов!
Аноним 23/03/16 Срд 22:12:26 #28 №696611 
14587603470290.jpg
>>696546
Говорят, что можно выделить переменную, а потом сделать еще одну переменную, которая будет ссылкой на ячейку памяти той первой переменной. Типа синоним переменной или типа того. Только я все равно нихуя не понял. Если у меня уже есть переменная, с помощью которой можно попасть в ячейку памяти, зачем мне еще одна переменная, которая в ту же ячейку будет указывать?
Аноним 23/03/16 Срд 22:15:25 #29 №696615 
>>696611
Говорят, что кур доят.
Аноним 23/03/16 Срд 22:19:43 #30 №696619 
Я сделал класс, в нем ссылка на объект этого же класса, как в прошлом треде сказали мне, вот, потом пишу туда через & объект этого класса, потом хочу забрать через *, вроде забираю, пытаюсь из этого объекта взять значение x, а мне выдает не то, что было, а -858993460 . Что такое?
Аноним 23/03/16 Срд 22:28:41 #31 №696633 
>>696611
Емнип, в пыхе надо писать &tvoyamamka, чтобы оперировать самой переменной, а не ее значением. Вот здесь в точности то же самое, указатель это как бы "сама переменная", ее адрес, а не значение.
Аноним 23/03/16 Срд 22:32:44 #32 №696640 
>>696611
Вот ты читаешь книгу, тебе там пишут: "Существует хуйнянейм. С ней ты можешь делать то-то, то-то, то-то." Дают простенький пример. И ты задаёшся вопросом: "А зачем мне хуйнянейм в этом примере если и без неё обойтись можно?" Вот в место того что-бы считать себя умнее автора учебника, ты должен запомнить, что хуйнянейм существует, запомнить её особенности, и продолжить читать учебник. В последующих главах, материал и примеры усложняются, автор начинает использовать то, о чём было рассказано в предыдущих. И возможно, тогда, ты поймёшь зачем оно нужно.
Аноним 23/03/16 Срд 22:39:10 #33 №696649 
>>696619
Без кода тебе нихуя не ответят.
Аноним 23/03/16 Срд 23:02:12 #34 №696678 
>>696401 (OP)
Вопрос по MFC.
Я правильно понял, что формошлёпствовать можно только добавляя элементы в диалоговые окна и меню, а для того, чтобы добавить кнопку в основное окно надо всегда вписывать её руками?
Аноним 23/03/16 Срд 23:22:54 #35 №696694 
>>696678
> 2017
> MFC
Аноним 23/03/16 Срд 23:25:37 #36 №696697 
Как будет быстрее передать переменную в функцию? Через ссылку или указатель?
Аноним 23/03/16 Срд 23:27:17 #37 №696698 
>>696697
Одинаково.
Аноним 23/03/16 Срд 23:31:17 #38 №696702 
>>696694
Ну а хули, проекты на mfc никто с нуля переписывать не будет.
Аноним 23/03/16 Срд 23:58:19 #39 №696720 
>>696702
Вся суть крестопидоров. Нужны только чтобы деньги экономить не перенося проект на эфективные и современные ЯП.
Аноним 24/03/16 Чтв 00:03:14 #40 №696724 
>>696720
> эффективные и современные ЯП
Это какие?
Аноним 24/03/16 Чтв 00:03:43 #41 №696725 
>>696724
Haskell
Аноним 24/03/16 Чтв 00:04:12 #42 №696726 
>>696724
Swift
Аноним 24/03/16 Чтв 00:09:48 #43 №696727 
>>696697
Одно и то же.
Ссылка - синтаксический сахар над указателями.
Аноним 24/03/16 Чтв 00:12:56 #44 №696732 
>>696720
Отрок услыхал звон, да не понял, где он.
Аноним 24/03/16 Чтв 00:15:54 #45 №696735 
>>696720
C++ современный. Последний стандарт в 14-м году вышел, вот-вот стандарт 17-го года выйдет.
Про эффективность я уже молчу.
Аноним 24/03/16 Чтв 00:29:52 #46 №696739 
>>696735
>вот-вот стандарт 17-го года выйдет
надо эту хуйню убрать из шапки, чтобы не позориться. такое язык даже стандартом не повернется назвать
Аноним 24/03/16 Чтв 00:43:39 #47 №696741 
>>696697
Зависит от того, может ли у тебя быть null - состояние.
Если нет - по ссылке. Если можно обойтись без указателей - то лучше обойтись без них.
Аноним 24/03/16 Чтв 00:55:28 #48 №696754 
>>696741
И снова платиновые вредные советы. Уже сколько раз говорилось: указатели могут использоваться для передачи in-out параметров, чтобы не перепутать их со ссылочными обычными. Это, блядь, стандартная практика.
Аноним 24/03/16 Чтв 00:58:11 #49 №696755 
>>696754
С указателями можно обосраться, передав хуй знает что.
Со ссылками - нет.
Аноним 24/03/16 Чтв 00:58:43 #50 №696756 
>>696755
Да и банально использовать переменную без сраных звездочек и амперсандов куда удобнее.
Аноним 24/03/16 Чтв 02:03:29 #51 №696772 
>>696619
Ну памагити
>>696649
Много копировать, выскажи предположения.
Аноним 24/03/16 Чтв 02:06:46 #52 №696774 
>>696772
Сократи до рабочего минимума и кидай код. Я нихуя не понял из того, что ты сказал.
Аноним 24/03/16 Чтв 02:27:53 #53 №696781 
>>696619
Хуйню делаешьили пишешь. Кидай код.
Аноним 24/03/16 Чтв 02:29:33 #54 №696783 
>>696694
> 17

>>696702
Да вот хуй знает. Почему бы и нет? Зачем тащить неподдерживаемое говно с собой?
Аноним 24/03/16 Чтв 02:32:39 #55 №696784 
>>696754
>>696401 (OP)
Алсо, ОП, ссылочку на какой-нибудь(гугловский) стайлгайд в шапочку.
Аноним 24/03/16 Чтв 02:54:11 #56 №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 еще нет и не может быть потому что мы еще даже не сделали класс и конструктор. Поясните ньюфагу.
Аноним 24/03/16 Чтв 03:06:32 #57 №696797 
>>696789
Пиздос - то есть ты создал ссылкочлен, но не придумал что в нем хранить?

Это как? Что за йоба?
Аноним 24/03/16 Чтв 03:08:38 #58 №696799 
>>696797
Я придумал, другие объекты класса йоба. То есть в объекте класса йоба содержится ссылка на другой объект класса йоба, понимаешь? Но они-то инициализируются после того как я сделаю класс.
Аноним 24/03/16 Чтв 03:10:53 #59 №696800 
>>696799
Никак. В твоем случае подразумевается вариант null-состояния, ссылки в него не умеют.

Твой вариант - указатели, по умолчанию нулевые.
Аноним 24/03/16 Чтв 03:11:41 #60 №696801 
>>696800
Хотя можешь попробовать по умолчанию сделать ссылки, замкнутые на this. Хуй знает, скомпилится ли.
Аноним 24/03/16 Чтв 03:22:21 #61 №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"
Как так?
Аноним 24/03/16 Чтв 03:24:12 #62 №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;
}
Аноним 24/03/16 Чтв 03:32:53 #63 №696806 
>>696803
Блять, я нихуя не понял.
Нахуя тебе вообще оператор присваивания перегружать?
Аноним 24/03/16 Чтв 03:53:37 #64 №696809 
тест
[code]
int main()
{
return 0;
//тест
}
[/code]
Аноним 24/03/16 Чтв 08:57:18 #65 №696846 
>>696588
Из какого?
Аноним 24/03/16 Чтв 09:00:59 #66 №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, который делает эту хуйню).
Что делать, посоны, ума не приложу
Аноним 24/03/16 Чтв 09:01:44 #67 №696848 
Добавьте в шапку что надо чтобы пойти джуном.
Аноним 24/03/16 Чтв 09:06:03 #68 №696849 
>>696847
>Так вот, стоит мне вызвать слот CLS1::kickMe
Как вызываешь? Сигналом, или руками?
Если руками - это надо делать через invokemethod.

И да - за std::sharedptr в Qt проге принято больно бить, там же есть QSharedPointer, ну ебана!
Аноним 24/03/16 Чтв 09:11:39 #69 №696850 
>>696848
Уверен, что хочешь это знать?
Аноним 24/03/16 Чтв 09:14:22 #70 №696851 
>>696850
А какие вообще рамки джун/неджун?

Писал на крестах, но про эту хуйню уже позже на сосаче читал.
Аноним 24/03/16 Чтв 10:35:04 #71 №696883 
>>696849
> invokemethod
Не вышло, то же говно выдает

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

> принято больно бить
Да у меня в наследство от прошлого досталась программа, изобилующая std::vector/list ... - это тоже плохо?
Аноним 24/03/16 Чтв 10:39:31 #72 №696884 
>Вот эта хуйня прокатила, но мне не нравится наличие такого костыля. В чем тут проблема, может быть объяснишь?
> invokemethod Не вышло, то же говно выдает
А мне кажется, что ты пиздишь. Потому что сигналы-слоты работают через invokemethod.

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

>Да у меня в наследство от прошлого досталась программа, изобилующая std::vector/list ... - это тоже плохо?
Лично я в Qt-коде никогда их не использовал. Вектор/Лист еще похуй, (хотя QList уж точно std::list'у за щеку по удобству накидает), а вот сравнивать std::set и QSet без припадков истерического смеха уже невозможно.
Аноним 24/03/16 Чтв 10:44:00 #73 №696887 
>>696884
Таки вот и не вышел этот invokemethod, даже когда я в своем CLS1 его определил слотом.

Пришлось у класса (пусть будет A), из которого вызывается CLS1::kickMe делать сигнал A::someSig, связывать его с CLS1::kickMe, и только потом его вызывать (emit'ом, естественно)
Аноним 24/03/16 Чтв 10:46:10 #74 №696888 
>Таки вот и не вышел этот invokemethod, даже когда я в своем CLS1 его определил слотом.
У меня фейспалм. Ты должен его поставить там, где сейчас делаешь emit.
И вызывать kickMe. И делать это в queue-режиме.
Аноним 24/03/16 Чтв 10:54:53 #75 №696893 
>>696888
Я так и сделал и вышло ровно так же, как если бы я вызывал напрямую.
Аноним 24/03/16 Чтв 10:56:50 #76 №696894 

>>696893
Код в студию. Я тебе не верю, где-то ты пиздишь/проебался.
Еще раз - когда сигнал дергает слот, он делает именно invokeMethod.
Аноним 24/03/16 Чтв 10:59:04 #77 №696896 
>>696894
Таки да, пропизделся. На QueuedConnection внимания не обратил, а было DirectConnection.
Аноним 24/03/16 Чтв 11:08:31 #78 №696903 
>>696803
http://ideone.com/hbwCxA
А ссылки указывающие на свой собственный класс оказываются слишком ограничены по функционалу. Ссылка может быть только константной по смыслу, так как наивная реализация оператора присваивания приводит к бесконечному циклу. http://ideone.com/7BOXIa Можно наверное реализовать оператор присваивания через new с размещением, но хуй знает сколько при этом ног может быть отстрелено и нахуй таким заниматься когда есть указатели.
Аноним 24/03/16 Чтв 12:23:01 #79 №696938 
Ананасы, такой вот вопрос.
Пишу менеджер текстур и встал вопрос как лучше сделать:
Сейчас так
Есть мапа в которой ключ это хеш строки имя текстуры, а значение это индекс в векторе.
Ну и сам вектор в котором хранятся текстуры.

Но есть ли смысл в этом?
Может заменить значение на сами текстуры и обойтись без вектора?
Аноним 24/03/16 Чтв 12:25:36 #80 №696941 
>>696884
>std::set и QSet без припадков истерического смеха уже невозможно

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

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

В Qt то "функциональные функции" никуда не делись, просто там есть выбор. А в STL выбор один - жрать говно.
Аноним 24/03/16 Чтв 12:33:38 #83 №696950 
>>696938
>Может заменить значение на сами текстуры и обойтись без вектора?
Да, есть. А ещё есть смысл заменить map на unordered_map перформанса ради.
Аноним 24/03/16 Чтв 13:04:15 #84 №696971 
14588138556800.jpg
Когда говно плюс наконец приведут в порядок?

почему в шаблоне можно писать const T, а unsigned T нельзя.
когда будут опережающие описания для вложенных классов?
Аноним 24/03/16 Чтв 13:07:16 #85 №696973 
>>696971
>когда будут опережающие описания для вложенных классов?
Никогда.
Страдай, быдло.
Аноним 24/03/16 Чтв 13:07:27 #86 №696974 
>>696971
> unsigned float
Аноним 24/03/16 Чтв 13:09:16 #87 №696977 
>>696949
>"функциональный подход" это когда функция передается в качестве параметра другой функции, не неси хуйни
Манька, залезь в википедию и почитай, что значит функциональный подход. То, что ты называешь функциональным подходом, на самом деле является функциями высших порядков.
В STL данные отделяются от алгоритмов и алгоритмы выполнены в виде функций, работающих с итераторами. Т.е. функции, которые принимают возвращают и данные.

Как я уже сказал, что это не всегда лучше или читаемее, чем ООП версия, но функциональность полностью равнозначная. К тому же, кто мешает написать глобальный оператор? Никто.
Аноним 24/03/16 Чтв 13:30:47 #88 №696987 
>>696977
>То, что ты называешь функциональным подходом, на самом деле является функциями высших порядков.
Нет, манька, это ты залезь уж туда и почитай про функциональную парадигму.
Если в двух словах - использование map/reduce, отказ от циклов в пользу рекурсии, отказ от переменных, чистые функции, которые зависят только от своих параметров.
Короче, типо свести к минимуму побочные эффекты, все зло от них лол.

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

>К тому же, кто мешает написать глобальный оператор?
Из-за такой хуйни кресты и превращаются в говно. Вместо того, чтобы заниматься программой, все пишут велосипеды, и у каждого он свой. Нет строк? Что мешает написать свои строки? И вот и имеет char*, std::string, QString - и без сомнения, список этим не исчерпывается.
Аноним 24/03/16 Чтв 13:31:18 #89 №696988 
>>696938
Смотря как ты работаешь с текстурами. Может тебе вообще по именам к ним надо обращаться только при загрузке, когда данные инициализируются. В векторе их имеет смысл хранить только если ты итерацию по ним часто делаешь, и тебе нужна производительность за счет локальности данных. Если нет - то проще выделять память для каждой текстуры отдельно, а в хэшмепе хранить указатели.
Аноним 24/03/16 Чтв 14:34:36 #90 №697032 
>>696938
Не стоит в мапе хранить большие объекты, у мапа большой оверхед на элемент.
Аноним 24/03/16 Чтв 14:37:24 #91 №697033 
>>696987
>QString
Нестандарт.
>char *
Наследие сей, нерекомендуемое к использованию.

Фактически, нет стандартных строк, кроме std::basic_string, и std::string - пророк их. А если кто пишет велосипеды - это его проблемы, а не языка.
Аноним 24/03/16 Чтв 14:49:39 #92 №697040 
>>696987
>использование map/reduce
std::transform и std::accumulate в чистом виде.
>отказ от циклов в пользу рекурсии
Хвостовая рекурсия есть. Обычная рекурсия наносит ущерб производительности и не должна быть основным инструментом в крестах.
>отказ от переменных
Функции из одного return'а никто не отменял.
>чистые функции
Хочешь чистые функции - пишешь чистые. Никто насильно тебе побочных эффектов не напихает за щеку.

Серьезно, функциональщики-евангелисты, мечтающие сделать из крестов лиспохаскель, запретить и не пущать - это было ново лет пять назад. Сейчас уже даже самые упоротые даунята остыли от хайпа и смекнули, что крайности вредны. Задача крестов - не собезъянничать %языкнейм, а предоставить как можно больше средств и сделать их максимально удобными и непротиворечивыми. Все остальное на совести погроммиста.
Аноним 24/03/16 Чтв 15:31:19 #93 №697071 
>>696971
Давно unsigned стал qualifier-ом?
Аноним 24/03/16 Чтв 15:33:36 #94 №697073 
14588228167920.jpg
Подскажите, где достать много хороших программок с подробным комментированием и описанием. Отлично будет, если это написание программы с нуля с планированием и т.п.
Что-нибудь вроде древней рассылки Бобровского http://subscribe.ru/archive/comp.soft.prog.prognull.game/200507/22073836.html , по созданию простой rpg-шки,
или видосов на трубе, типа своего Марио https://www.youtube.com/watch?v=6OHMFwQK44k. Интересуют от игр типа морской бой и выше.
Аноним 24/03/16 Чтв 15:37:35 #95 №697075 
>>697033
> А если кто пишет велосипеды - это его проблемы, а не языка.
Нет, это проблема языка (точнее, его стандартной библиотеки). Она не предоставляет строки, удовлетворяющие всех.
Аноним 24/03/16 Чтв 15:45:56 #96 №697076 
>>697073
>где достать много хороших программок с подробным комментированием и описанием
Сам пиши.
Аноним 24/03/16 Чтв 15:47:51 #97 №697079 
>>697075
Это проблема наследия велосипедистов из си, которые ради 0,4 мс на 2000000 итераций пилят свои каштомные строки.
Аноним 24/03/16 Чтв 16:13:44 #98 №697090 
Почему-то этот тред очень медленно грузится в двачбраузере от vortexwolf'a

Котаны, в чем приемущество использования функций atol, atof, atoi и т.п. перед sscanf при парсинге текстовых протоколов? Смотрю - в программах под микропроцессоры везде только так и делается.
Аноним 24/03/16 Чтв 16:16:44 #99 №697094 
>>697090
Сканфом можно сразу всю строку распарсить если конечно известна её структура.
Аноним 24/03/16 Чтв 16:19:13 #100 №697095 
>>697090
sscanf использует atol, atof, atoi или что-то подобнее, получается что это лишний вызов, ради большей абстракции.
Аноним 24/03/16 Чтв 16:20:18 #101 №697097 
>>697071

кого это волнует?
в коте я могу написать unsigned short/int govno;
а шаблоне видите ли нет?
Аноним 24/03/16 Чтв 16:21:22 #102 №697099 
>>697097
Напиши специализацию шаблона.
Аноним 24/03/16 Чтв 16:22:54 #103 №697102 
14588257750890.jpg
не повезло что С++ построен на наследии дауна кернигана ричи. он даже на фото всегда лыбится так как буд-то только что под дверью насрал.
Аноним 24/03/16 Чтв 16:24:32 #104 №697104 
>>697099

ну охуеть теперь. вместо того чтобы хорошо зделать нормальный язык из коробки, комитетские дауны предлагают программистам "ну напиши..."
Аноним 24/03/16 Чтв 16:29:48 #105 №697105 DELETED
>>697102
>2016
>не срать под дверь
Аноним 24/03/16 Чтв 16:36:51 #106 №697107 
>>697104
>зделать нормальный язык из коробки
>предлагает добавить в язык unsigned float, unsigned class и т.п.
просто нахуй иди

>>697102
Не повезло что твоя мать шлюха, вот это действительно не повезло.
(Автор этого поста был предупрежден.)
Аноним 24/03/16 Чтв 16:58:13 #107 №697110 
>>697104
Отвечу на доступном тебе уровне: ЯП даёт тебе бумагу, а подтирать жопу ты должен сам.
Аноним 24/03/16 Чтв 17:27:08 #108 №697121 
>>697097
>кого это волнует?
Всех не-долбоёбов.

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

>то, что я не хочу тоже было не известно
unsigned это не type qualifier, в отличие от const или volatile
Аноним 24/03/16 Чтв 17:28:49 #109 №697123 
>>697121
>а шаблоне видите ли нет?
unsigned это не type qualifier, в отличие от const или volatile

В предыдущем сообщении вставилась какая-то хуйня
Аноним 24/03/16 Чтв 17:29:51 #110 №697125 
>>697107


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

> unsigned float

кто мешает не компилировать такой шаблон?
Аноним 24/03/16 Чтв 17:30:28 #111 №697127 
>>696971
>unsigned float
У тебя есть отличная возможность сделать через std::enable_if + std::is_unsigned и выпендриться перед коллегами
Аноним 24/03/16 Чтв 17:32:02 #112 №697130 
>>697123

> unsigned это не type qualifier

это никого кроме зашоренных фанбоев не волнует.
там где unsigned не применим конпелятор спокойно выдаст ошибку во время инстанцирования шаблона
Аноним 24/03/16 Чтв 17:32:47 #113 №697131 
>>697130
>это никого кроме зашоренных фанбоев не волнует.
Пока что unsigned волнует только тебя.
Аноним 24/03/16 Чтв 17:32:54 #114 №697132 
>>697127

намазать говно слоем потолще? вся суть говна плюс
(Автор этого поста был забанен. Помянем.)
Аноним 24/03/16 Чтв 17:33:24 #115 №697134 DELETED
>>697132
Да, плюсы говно. Доказано анонимным хуйлом.

Всё, съеби.
Аноним 24/03/16 Чтв 17:33:33 #116 №697135 
>>697032
>Не стоит в мапе хранить большие объекты
может наоборот, не стоит хранить маленькие? оверхед три указателя плюс флаг для цвета узла.
Аноним 24/03/16 Чтв 17:34:11 #117 №697137 
>>697131

пошел нахуй, фанбой. от вас - восторженных говноедов языку только вред.
Аноним 24/03/16 Чтв 17:35:20 #118 №697138 DELETED
>>697137
>пошел нахуй, фанбой
>мама, мама, кругом фанбои плюсов!11 памахи!11
Да, плюсы говно. Но не потому, что там нельзя написать unsigned T в шаблоне.
Аноним 24/03/16 Чтв 17:38:03 #119 №697142 
Где вообще такие изъёбства понадобиться могут?
Аноним 24/03/16 Чтв 17:38:37 #120 №697143 
>>697097
> у дурачка сломался мозг из-за типа состоящего из двух слов
Ты не можешь написать "unsigned short/int govno" ты можешь написать или "unsigned short govno" или "unsigned int govno" это два разных типа, имена которых состоят из двух слов.
Аноним 24/03/16 Чтв 17:39:11 #121 №697145 
>>697143
Да хватит уже его кормить.
Аноним 24/03/16 Чтв 18:02:13 #122 №697153 
>>697143

так же ты можешь написать unsigned unsigned unsigned int govno;
и конпелятор схавает. т.е unsigned в говне плюс ведет себя как qualifier, но qualifier-ом не является.
Аноним 24/03/16 Чтв 18:03:48 #123 №697155 
>>697142

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

[code]
template <class T> struct
{
unsigned T value;
};
[/code]
Аноним 24/03/16 Чтв 18:06:14 #124 №697158 
>>697153
>так же ты можешь написать unsigned unsigned unsigned int govno;
>и конпелятор схавает.
Написал. Не хавает.
Аноним 24/03/16 Чтв 18:06:53 #125 №697161 
>>697155
unsigned float
Аноним 24/03/16 Чтв 18:11:09 #126 №697165 
>>697155
Но нахуя?
Аноним 24/03/16 Чтв 18:12:22 #127 №697168 
>>697155
>мне нужно и прямо сейчас, чтобы убрать знак
std::make_unsigned<T>
Аноним 24/03/16 Чтв 18:16:25 #128 №697171 
>>697161

каким образом там окажется флоат если я планирую передавать только целочисленные типы?
и кто мешает конпелятору выдать ошибку во время инстанцирования щаблона.
Аноним 24/03/16 Чтв 18:17:10 #129 №697172 
>>697171
>>697168
Аноним 24/03/16 Чтв 18:21:12 #130 №697177 
>>697168

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

unsigned T value;

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

typename std::make_unsigned<T>::type value;
Аноним 24/03/16 Чтв 18:22:10 #131 №697178 
>>697177
Обидься и не пиши на плюсах.
Аноним 24/03/16 Чтв 18:24:37 #132 №697181 
>>697177
А в языках, которые не говно и при этом имеют шаблоны (или их подобие), писать unsigned T value; можно?
Просто любопытно, может знает кто.
Аноним 24/03/16 Чтв 18:27:26 #133 №697187 
>>697095
>>697094
Можно ли считать sscanf ебанически надежным в плане отбраковки строк, которые не соответствуют шаблону?
Аноним 24/03/16 Чтв 18:28:04 #134 №697188 
>>697187
Нет.
Аноним 24/03/16 Чтв 18:29:08 #135 №697191 
>>697187
>sscanf
>>697188
Хотя. Если sscanf — то, наверное, можно.
Это scanf-ом пытаться получать ввод без уверенности в его правильности не стоит.
Аноним 24/03/16 Чтв 18:34:31 #136 №697195 
Есть один класс. Это компонента связности графа. Но не обычная, а такая, что каждая вершина этой компоненты соединена рёбрами со всеми остальными вершинами в этой компоненте. А значит новое ребро добавить нельзя. В классе есть int количество вершин и метод которые возвращает количество ребер. Нужно переопределить операцию +=. Так чтобы можно было объединить оба компонента и он ещё вернул количество ребер которое нужно добавить в компоненту чтобы та получилась завершённой или как такие называются. То есть было бы красиво делать вот так int ans=(a+=b).
Аноним 24/03/16 Чтв 18:36:41 #137 №697198 
>>697181
В таких языках нет unsigned. Модификаторы Ричи под ЛСД придумал.
Аноним 24/03/16 Чтв 18:38:08 #138 №697199 
>>697181
>и при этом имеют шаблоны
Сколько ещё таких языков?
Аноним 24/03/16 Чтв 18:39:19 #139 №697201 
>>697198
Логично.

>>697199
Хуй знает, может d или rust какие-нибудь. Я их не тыкал.
Аноним 24/03/16 Чтв 18:39:48 #140 №697202 
>>697090
Сканф умеет возвращать ошибку, ato.. - undefined behaviour.
Аноним 24/03/16 Чтв 18:40:22 #141 №697203 
>>696987
Ты забыл про wstring и QByteArray :3

>>697199
У D толковые шаблоны. Можно там глянуть.
Аноним 24/03/16 Чтв 18:51:01 #142 №697213 
>>697203
>Ты забыл про wstring и QByteArray
Можно много ещё чего вспомнить, всякие NSSring, CString. Он написал " без сомнения, список этим не исчерпывается."
Аноним 24/03/16 Чтв 19:05:30 #143 №697228 
>>697188
Но почему?
Аноним 24/03/16 Чтв 19:08:40 #144 №697230 
>>697228
Я уже исправил на то, что можно.
Аноним 24/03/16 Чтв 19:21:01 #145 №697242 
>>697195
Вы скучные. Говно какое-то обсуждаете. кроме sscanf но его вы плохо обсуждаете Лучше с этой штукой помогите.
Аноним 24/03/16 Чтв 19:59:02 #146 №697275 
>>697203
>У D толковые шаблоны. Можно там глянуть.
Ни в D ни в Rust нету модификатора unsigned, там беззнаковые типы начинаются с u (uint, ushort в D и u32, u16 и u8 в расте).

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

Хотя в вышеперечисленные языки-то хоть завезли контракты и трейты, а семнадцатый стандарт говорит пирдольтись))))
Аноним 25/03/16 Птн 00:08:09 #147 №697466 
Составить программу, которая порождает несколько дочерних процессов (схема fork + exec), отправляет и обрабатывает сигнал SIGPIPE

Я правильно понял, что нужно передать данные из того pid где вызывается сигнал в принимающий?
Аноним 25/03/16 Птн 00:13:51 #148 №697468 
>>697466
> Лабы идут на хуй
Аноним 25/03/16 Птн 00:19:36 #149 №697474 
>>697468
Не лаба, честное пионэрское.
Аноним 25/03/16 Птн 00:20:23 #150 №697475 
>>697474
По её повелительной формулировке ясно, что это лаба/ДЗ.
Аноним 25/03/16 Птн 00:21:43 #151 №697477 
>>697475
Нет.
Аноним 25/03/16 Птн 00:36:46 #152 №697486 
14588554066760.jpg
>>696633
Если по хардкору - чтобы внутри функции можно было значение переменной менять, я правильно понял?
Аноним 25/03/16 Птн 00:40:28 #153 №697487 
>>697486
В том числе.
Аноним 25/03/16 Птн 01:13:52 #154 №697500 
>>697242
> Лучше с этой штукой помогите
Если ты считаешь что "int ans=(a+=b)" (при том что a и b не int) это "красиво" то тебе уже не помочь.
Аноним 25/03/16 Птн 01:48:39 #155 №697513 
>>696789
Ссылке надо всегда что-то присваивать.
Аноним 25/03/16 Птн 02:04:51 #156 №697517 
Аноны из индустрии, что это за пидорская хуита D и Rust(никакого стильного названия)? Собсссно вопрос в том, как продакшн смотрит на этих друзей? Какие преимущества/недостатки перед крестом ИРЛ?
Аноним 25/03/16 Птн 02:18:27 #157 №697525 
>>697203
> Ты забыл про wstring и QByteArray :3
А еще я забыл cv::String

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

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

Вот и выходит, что чтобы писать на крестах нужно ебаться с велосипедами, а не решать задачу. И велосипедов овер9000 - то, что ты написал на крестах, другой уже хуй прочтет.
Аноним 25/03/16 Птн 02:31:52 #158 №697528 
>>697517
По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли.
D - это кресты, сделаные нормально.

А раст смотрел - не впечатлил, синтаксис пиздец наркоманский.
Аноним 25/03/16 Птн 05:28:24 #159 №697547 
Есть структура с различными полями. Теперь вопрос, возможно ли, чтобы на каждом новом цикле менялись поля у структуры?
Поясняю, есть struct User { string a, string b, string c}, есть некий цикл через for { что-то делается + User.a = smth }. То есть, чтобы уже на следующей итерации было поле не a, а уже b.
Аноним 25/03/16 Птн 05:31:17 #160 №697548 
>>697547
А зачем тебе это нужно? Цель какая? Так как тянет на отборное извращение.
Аноним 25/03/16 Птн 05:42:22 #161 №697549 
>>697547
В свое оправдание сразу хочу сказать, что с крестами знаком буквально час. В текстовом файле в строчку записана информация: ФИО, дата рождения и еще пара пунктов. Я строку кусочно парсю и хочу сразу же на итерации закидывать в соответствующее поле в структуре.
Аноним 25/03/16 Птн 05:44:27 #162 №697551 
>>697549
Ты уверен, что ради трех полей тебе надо городить цикл?
Аноним 25/03/16 Птн 05:47:37 #163 №697552 
>>697551
Если бы точнее, то полей 5. И в файле строк, хар-их пользователей, около 5-6, то есть пользователей нормальное кол-во.
Аноним 25/03/16 Птн 05:48:26 #164 №697553 
Кидай пример файла и объясни по человечески, чего ты пытаешься достичь.
Аноним 25/03/16 Птн 05:52:42 #165 №697554 
14588743626800.png
14588743626801.png
>>697553
Строчку входную парсим по ";" и достаем необходимые поля на каждой итерации и сразу пихаем в поля структуры.
Аноним 25/03/16 Птн 06:08:53 #166 №697557 
>>697554
boost::split
Это если по скорости не критично.
Аноним 25/03/16 Птн 06:19:20 #167 №697558 
>>697554
А как даты должны превратиться в int? unix time?
Аноним 25/03/16 Птн 06:26:54 #168 №697561 
>>697558
А нахуй? Тем более, если там стндартизированно - то это меньшая из проблем.
Аноним 25/03/16 Птн 06:27:39 #169 №697562 
>>697561
>А нахуй?
Как тебя понимать?
Аноним 25/03/16 Птн 07:04:23 #170 №697571 
>>697554
Все просто же.
http://pastebin.com/8fDQMDSp
Аноним 25/03/16 Птн 07:07:32 #171 №697572 
>>697571
>Все просто
>Qt
Аноним 25/03/16 Птн 07:10:55 #172 №697573 
>>697572
Иии?
Аноним 25/03/16 Птн 07:39:06 #173 №697576 
     
Аноним 25/03/16 Птн 07:42:16 #174 №697577 
>>697573
Хуиии
Аноним 25/03/16 Птн 07:43:17 #175 №697578 
>>697577
То то же.
Мимоанон спросил как - я показал.

Проблемы?
Аноним 25/03/16 Птн 08:46:32 #176 №697583 
Почему проект в кодблокс не хочет удаляться? Если точнее, то папка "debug". И не запускается он тоже, пишет "permission denied".
Аноним 25/03/16 Птн 09:10:38 #177 №697589 
>>697583
Ш1ИD0W2. Чисти говно блять.
У тебя не закрывается программа/компилятор/дебагер, стандартная спермопроблема.
Аноним 25/03/16 Птн 09:22:33 #178 №697591 
>>697589
Как я чистить-то буду? Среди процессов ничего похожего на кодблокс или мингв. Чего-нибудь со словом дебаг тоже не видно.
Аноним 25/03/16 Птн 09:36:57 #179 №697596 
>>697528
> D - это кресты, сделаные нормально
> GC
Аноним 25/03/16 Птн 09:36:59 #180 №697597 
>>697500
А как красиво? Кажется понял. Нужен конструктор копирования в int.
Аноним 25/03/16 Птн 09:41:42 #181 №697598 
>>697589
У кодблокса есть такая хуйня. Когда программу на крестик закрываешь, то она может весеть в процессах. Поищи имя программы или ld.exe.
Аноним 25/03/16 Птн 09:49:38 #182 №697602 
>>697554
http://stackoverflow.com/questions/11719538/how-to-use-stringstream-to-separate-comma-separated-strings
>>697596
Хотел промолчать, но другой анон не смог. Пока мне не покажут, как использовать D классы без сборки мусора (хотя бы через подсчет ссылок) элегантно без костылей, я туда не буду лезть. Меня полностью устраивает RAII в плюсах, и с циклическими ссылками я могу справиться сам.
Аноним 25/03/16 Птн 09:55:45 #183 №697606 
>>697597
Геттер с нормальным понятным именем. А вообще ты хуйню какую-то делаешь. Если ты уже сделал класс который соотвествует компоненте связности которая сама по себе является полным графом, то это следует понимать как инвариант (иначе это обычный класс для хранения подграфов). Твои объекты класса всегда должны быть полными графами, следовательно когда ты выполняешь какое-то действие которое нарушает инвариант ты должен его тут же востановить. Если ты реализуешь operator+= который соеденияет две компоненты связности, то прямо в том же операторе ты должен добавить все недостающие ребра, чтобы сразу после выполнения оператора результатирующий компонент уже был полным графом.
Аноним 25/03/16 Птн 09:59:47 #184 №697608 DELETED
Всем привет.
Предлагаю всем желающим присоединиться
Аноним 25/03/16 Птн 10:02:13 #185 №697609 
>>697195
В чём смысл? Полный (это так называется) граф задаётся только количеством вершин. Количество рёбер -- просто n(n-1)/2, где n - кол-во вершин.
Объединить компоненты -- получится n1+n2, а рёбер надо добавить n1
n2. Нахуя тут такой оверинжинирнг, классы-хуяссы, методы.
Аноним 25/03/16 Птн 10:13:55 #186 №697614 
>>697602
Братюнь, но для желателей попердолиться из D никуда не убирали malloc и free.
А для сцылок в стандартной библиотеке есть RefCounted.
Аноним 25/03/16 Птн 10:17:03 #187 №697617 
>>697614
Ну и если стандартные GC-шные массивы не устраивают - есть std.container.Array, который без GC.
Аноним 25/03/16 Птн 10:18:55 #188 №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 — у сишника попа подгорела. Почитай, ты вот так же со стороны выглядишь.
Аноним 25/03/16 Птн 10:33:04 #189 №697624 
>>697606
Я так и делаю, но мне нужно знать сколько рёбер прибавилось. И хочется это делать в одну строчку вместе с +=.
Аноним 25/03/16 Птн 10:37:15 #190 №697625 
>>697609
Без класса делал. Где-то сделал ошибку и программа иногда работает неправильно. Теперь хочу с классами. С ними понятнее. Перед сложение нужно ещё их в вектор добавить и отсортировать.
Аноним 25/03/16 Птн 10:52:02 #191 №697626 
>>697618
> в расте нельзя найти элемент в массиве
> у сишника попа подгорела
Проиграл с фанатика.
Аноним 25/03/16 Птн 10:53:41 #192 №697627 
>>697609
>надо добавить n1n2
Точно. Не сразу понял. Их же можно одной функцией считать. А я 3 раза количество рёбер перечитываю когда без классов делал. Щас так попробую. Спасибо.
Аноним 25/03/16 Птн 11:01:02 #193 №697630 
>>697596
Там же маллоком можно пользоваться, если надо.
Аноним 25/03/16 Птн 11:04:13 #194 №697632 
>>697626
>не умеет читать в 2076 году
>проигрывает
Аноним 25/03/16 Птн 11:07:16 #195 №697633 
>>697630
> 2016
> язык с malloc
> кресты, сделаные нормально
Аноним 25/03/16 Птн 11:10:55 #196 №697634 
>>697633
О чем ты? В крестах тот же маллок, только обернутый оператором new.
Аноним 25/03/16 Птн 11:11:17 #197 №697635 
>>697626
>раст даёт возможность по-человечески что-то искать в массиве
>кричит что раньше было лучше и жрет дерьмо

>>697633
>видит только высеры про малок
>на конструктивный высер >>697618 ответить не могёт
Аноним 25/03/16 Птн 11:23:02 #198 №697639 
>>697634
У оператора new больший функционал чем у malloc
>>697635
> отвечать на высер фанатика
Аноним 25/03/16 Птн 11:27:40 #199 №697640 
>>697639
Он же целый конструктор вызывает!
>будучи тупым фанатиком тыкать объективным человекам про фанатизм
Суть пирдоликав)))
Аноним 25/03/16 Птн 11:29:23 #200 №697643 
>>697639
>У оператора new больший функционал чем у malloc
Естественно, он же обертка, расширяющая базовый функционал. Но в D, наверняка, можно сделать еще лучше, ведь туда завезли метапрограммирование.
Аноним 25/03/16 Птн 11:47:13 #201 №697650 
>>697643
Но ведь уже показали овердохуя вещей, которые там можно.
Можно юзать малок как в си.
Можно юзать аллокаторы как в крестах.
Можно юзать подсчет ссылок.
Можно блять наконец юзать стандартный ГЦ-шный new.

Тупой фанатик все равно на говно истечет.
Аноним 25/03/16 Птн 11:53:26 #202 №697651 
>>697650
Тоже не понимаю его фанатизма. Кресты сейчас используют только из-за переносимости, количества библиотек и лучшего инструментария, а не каких-то особых качеств языка.
Аноним 25/03/16 Птн 12:02:05 #203 №697654 
>>697618
>Хотя нахуй я это пишу, ты же фанатик ебаный у которого плюсы единственный инструмент.
Лал, зашел в крестотред со своим самоваром и называет всех фанатиками. Фанатик тут только ты.
Аноним 25/03/16 Птн 12:13:36 #204 №697660 
>>697654
Нет, это ты какой-то недоумок.
Дишники по большей части - бывшие/текущие крестовики. Схуяле они не должны сюда заходить?
Про пересекающиеся множества учительница по математике в школе не рассказывала еще?
Аноним 25/03/16 Птн 12:16:51 #205 №697663 
Нахуя мне учить еще один язык, если его нигде не используют? success stories в студию.
Аноним 25/03/16 Птн 12:21:56 #206 №697668 
>>697663
А у тебя шо, стадное мышление? Язык надо юзать не ради качеств и удобства, а потому что "везде используют"?

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

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

>Кресты, по секрету - тоже редко где используют нынче
Охуительные истории. Весь фундаментальный софт по типу компиляторов или вебсерверов пишется на C++. Ну или на С.
Аноним 25/03/16 Птн 12:32:21 #208 №697675 
>>697660
Памятка ньюфагу, пункт 5. Заходить в тематические треды сраться о языках может только dаун.
Аноним 25/03/16 Птн 12:33:51 #209 №697677 
>>697660
Пусть сидят в своем D треде и обсуждают D там. Хотя, по-моему, человеку который предлагает как замену плюсов язык с GC вообще не стоило бы заходить в /pr/
Аноним 25/03/16 Птн 12:38:32 #210 №697682 
>>697677
>язык с GC

Вроде же пришли к выводу, что GC можно не использовать.
Но все равно: у языка мало преимуществ перед C++, чтобы его нужно было изучать и использовать.
Аноним 25/03/16 Птн 12:39:41 #211 №697683 
Алсо через год-два, будут готовы TS с модулями и концептами C++, тогда вообще D умрет из-за нинужности.
Аноним 25/03/16 Птн 12:55:29 #212 №697692 
>>697673
И много ты написал компиляторов или вебсерверов?
>Весь
Шо, прям весь-весь?
Аноним 25/03/16 Птн 12:55:57 #213 №697693 
>>697682
> можно не использовать
Исходя только из предоставленых ссылок это довольно смелый вывод. То что ты можешь создать один класс не управляемый GC еще не значит что GC не будет использован рантаймом. Если язык разрабатывался с учетом использования GC то при его отключении часть языка неизбежно отвалится. Откуда мы приходим к тому что язык должен изначально быть спроектирован с учетом опциональности GC. И стандартная библиотека должны быть реализована таким образом чтобы не требовать для своей работы GC. И сторонние библиотеки не должны (опционально) его использовать. Ведь какой смысл создавать неуправляемый GC объект, если при передаче его в какой-то метод сторонней библиотеки она инстанциирует несколько десятков классов управляемых GC. Такое поведение нихуя не похоже на "GC можно не использовать".
Аноним 25/03/16 Птн 12:56:09 #214 №697694 
>>697675
Я заходил не за этим.
Кто то попросил пояснить за раст и D - я пояснил, а у какого-то фанатика подгорело.
Аноним 25/03/16 Птн 12:57:53 #215 №697696 
>>697693
Скажи, зачем нужно не использовать GC ВООБЩЕ? Любишь анальные извращения?

Ну а возможности не использовать его там, где он будет являеться бутылочным горлышком - там учтены.
Аноним 25/03/16 Птн 12:59:28 #216 №697697 
>>697692
Регулярно отправляю патчи в шланг и qt creator. Где твой бог теперь?
Аноним 25/03/16 Птн 13:01:27 #217 №697698 
>>697697
Ссылку дашь на патчи? Посмотреть хочется.
Аноним 25/03/16 Птн 13:03:01 #218 №697700 
>>697696
> НИНУЖНО
Ясно.
Аноним 25/03/16 Птн 13:04:03 #219 №697702 
>>697700
Это ты к себе обращаешься, лол?
НИНУЖНО - это ведь твой аргумент.
Аноним 25/03/16 Птн 13:05:21 #220 №697703 
>>697697
дианон же
Аноним 25/03/16 Птн 13:07:35 #221 №697706 
>>697703
Дианон чего? У тебя там реальное имя/фамилия в профиле?
И если ты не школьник дениска попов, у йоба-разработчик-компиляторов - чего ты боишься дианона? "Йо посоны, он в шланг патчи шлет - го затравим!" - так чтоле?
Аноним 25/03/16 Птн 13:07:52 #222 №697707 
>>697694
Вот здесь: "По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли. D - это кресты, сделаные нормально.", ты ничего не написал, ты сделал эмоциональный dаунский наброс, как и положено dауну и бабе.
Аноним 25/03/16 Птн 13:08:46 #223 №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 не в силах показать где он вам в конкретно вашей области так МИШАЕТ И СВЕРЛИТ.
Аноним 25/03/16 Птн 13:08:49 #224 №697709 
>>697706
Самодеанониться на анонимных бордах - это для идиотов уровня илюши. Если тебе нужны имена, пиздуй на хабр.
Аноним 25/03/16 Птн 13:10:17 #225 №697712 
>>697708
Съеби уже в D-тред, в который никто не заходит.
Аноним 25/03/16 Птн 13:10:38 #226 №697713 
>>697696
> зачем нужно
>>697702
>НИНУЖНО - это ведь твой аргумент
Dбил продолжает клоунаду.
Аноним 25/03/16 Птн 13:12:04 #227 №697715 
>>697709
Я коммичу в буст и ллвм, а ещё я член комитета СтарыхПердуновПлюс (СПП). Пруфов не будет, а то дианон(
>>697707
>как и положено dауну
Братишка, ну зачем так самокретично(
>и бабе
Как что-то плохое сказал, шовинист ((((
Аноним 25/03/16 Птн 13:12:16 #228 №697716 
>>697712
Знаешь, почему туда никто не заходит?
Потому что на нем люди просто пишут и не ебутся. А не ссаные студенты/школьники с вопросами "как на крестах сделать элементарнаяхуйнянейм". И не возникают вопросы как не выстрелить себе в ногу, или какой из костыльных велосипедов предпочесть.
Аноним 25/03/16 Птн 13:13:17 #229 №697718 
>>697715
>Я коммичу в буст и ллвм, а ещё я член комитета СтарыхПердуновПлюс (СПП).
Я тебе верю, мне похуй, иди нахуй.
Аноним 25/03/16 Птн 13:18:03 #230 №697724 
>>697709
Погоди-ка, clay-мудель, ето ти?
Аноним 25/03/16 Птн 13:19:17 #231 №697726 
>>697708
>Смешно. В 2020 посмотрим как концепты пошлют нахуй ибо сообщество нипамагло(, макросы будут экспортируемы
Это же TS, а не следующий стандарт. Оно потому и TS, что рано для 17 и поздно для 20. А вообще твои кукареки уровня гадающей циганки на вокзале.
Аноним 25/03/16 Птн 13:19:43 #232 №697727 
>>697716
> люди просто пишут и не ебутся
И только лопаются когда кто-то посмел замахнутся на священную корову GC, и предположить что возможно у программиста должен быть выбор как писать свою программу, а не делать только так как ему сказал его властелин, ведь властелину лучше знать как правильно делать и что смысла не использовать GC нет.
Аноним 25/03/16 Птн 13:22:12 #233 №697731 
>>697726
>А вообще твои кукареки уровня гадающей циганки на вокзале.
Ну да. Только нам обещали мажорный релиз а после покормили сладким хлебушком.

Зато можно быть уверенным на 9000% что они будут действовать с позиции Абсолютной Обратной Великой Совместимости (с) и как обычно всё будет сделано как велосипед медведя, едущего задом вверх по лестнице.
Аноним 25/03/16 Птн 13:23:13 #234 №697733 
>>697727
Ну если господа плюсовики хоть раз за тред написали бы что-то объективное а не издавали вскудахи вроде "ГЦ ЕТА ЗЛО ЗАСТРЕЛИТЬ УБИТЬ ФУУУУ", то может всё стало бы куда лучше.
Аноним 25/03/16 Птн 13:24:02 #235 №697734 DELETED
>>697733
>У-И-И-И
Аноним 25/03/16 Птн 13:25:31 #236 №697735 
Пока у местных не остыли пуканы, вброшу высер скаладауна - http://eax.me/c-vs-cpp/
Аноним 25/03/16 Птн 13:29:28 #237 №697742 
>>697733
> ГЦ ЕТА ЗЛО
Кто пишет что GC это зло? Зло - остутсвие выбора. В плюсах можно использовать полностью ручное управление, можно простой refcounting на смартпоинтерах, можно накатить GC (boehm garbage collector, например). У C++ специфическая сфера применения, и для этой сферы само собой разумеется что у программиста должен быть выбор. И предлагать как замену крестам язык с нулевым выбором, потому что властелин решил не использовать GC смысла нет, ну это глупо.
Аноним 25/03/16 Птн 13:29:32 #238 №697743 
>>697547
Можно в массиве указатели на поля класса хранить.
Аноним 25/03/16 Птн 13:31:36 #239 №697744 
>>697742
> В плюсах можно использовать полностью ручное управление, можно простой refcounting на смартпоинтерах, можно накатить GC (boehm garbage collector, например).
Блять! В D тоже все это можно.
Просто GC - вариант по умолчанию.
Аноним 25/03/16 Птн 13:34:25 #240 №697747 
>>697744
В крестах, если ты не используешь GC то он не используется нигде. Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами, а рантайм и библиотеки делают что хотят. Это не похоже на дохуя выбор.
Аноним 25/03/16 Птн 13:35:23 #241 №697748 
>>697742
Да не бывает выбора, язык или изначально дизайнится для работы без GC (C, C++, Rust), или изначально дизайнится для работы с GC (C#, D, Go), и эти два типа языков друг с другом не пересекаются.
Аноним 25/03/16 Птн 13:36:25 #242 №697749 
>>697747
В библиотеке есть RefCount и Unique.
В библиотеке есть аллокаторы.

А ГЦ можно управлять. И вообще:
import core.memory;
GC.disable();
Аноним 25/03/16 Птн 13:37:34 #243 №697750 
>>697748
Но к языкам без GC можно подключить GC и получить язык с GC.
Аноним 25/03/16 Птн 13:38:12 #244 №697752 
>>697748
>изначально дизайнится для работы без GC (Rust)
>изначально дизайнится для работы с GC (Go)
Хм...
Аноним 25/03/16 Птн 13:39:05 #245 №697753 
>>697752
Двачую. Разве в русте не ГЦ был изначально, который на сцылки в относительно последний момент заменили?
Аноним 25/03/16 Птн 13:40:40 #246 №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.
Аноним 25/03/16 Птн 13:42:20 #247 №697756 
>>697749
> GC.disable();
> вызвал библиотечную функцию
> приложение занимает 32 гига памяти
Аноним 25/03/16 Птн 13:44:00 #248 №697757 
>>697748
>дизайнится для работы без GC
Раст изначально был языком со сборщиком, просто сейчас его выпилили нахуй "до лучших времён и редизайна" они просто поняли, что сишная аудитория gc не воспринимает ни в каком виде, даже если он только поможет им в их задачах.
>>697747
>Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами
Если у тебя есть серьёзное ограничения к требованиям по требуемой мощности выполнения/скорости и gc не подходит - тебе и на плюсах придётся переписывать/писать самому любую нетривиальную задачу, либо использовать си библиотеки вылизанные до байтика а не крестовые велосипеды от любителей вымазать всю память *stream-ами.
Аноним 25/03/16 Птн 13:47:28 #249 №697761 
>>697756
>вызвал gc.collect и насладился.
А в сишечке/++ при твоих условиях пришлось пердолится 2 недели, в ожидании когда же ошибка снова произойдёт и сервер вайпнется нахуй.
Аноним 25/03/16 Птн 13:49:40 #250 №697762 
>>697750
Тогда ты получишь просто хуевый язык с GC. Самая большая проблема с GC в том, что он "отравляет" код, если твой код течет, то он течет, и далее переиспользовать его уже в проекте "без GC" ты не можешь. Т.е. у тебя возникает код "YobaLanguage который не течет" и "YobaLanguage который течет". И все, язык распался на два диалекта. И 90% библиотечного кода будет течь, потому что программисты народ по умолчанию ленивый.
>>697757
>они просто поняли, что сишная аудитория gc не воспринимает ни в каком виде, даже если он только поможет им в их задачах.
Ты один-в-один purebasic-кун, который то, что его хуесосят, обясняет тем, что вокруг его одни дебилы. Ну да, вся сишная аудитория - дебилы, один ты такой умный, умеешь сборщиком мусора пользоваться. А раз мы все тут такие дебилы, можешь съебешь в свой тред?
Аноним 25/03/16 Птн 13:53:18 #251 №697765 
>>697762
>Ты один-в-один purebasic-кун
Ты на него со своим искажённым восприятием куда больше похож.
Я никому не говорил что кто-то долбоёб, я сказал что кое-кто немножко говноед и мазохист, но к умственным способностям это не относится как и условия на которых мозила начала спонсировать раст :3.
Аноним 25/03/16 Птн 13:54:29 #252 №697767 
>>697765
Так сказать, что кто-то долбоеб - это недолго, проблема в том, что ты реально считаешь себя умнее сообщества. Таких дебилов полно в общем-то, и ты один из них.
Аноним 25/03/16 Птн 13:55:48 #253 №697768 
Блядь, у вас тут какой-то параллельный мир с ошибками в C++. За 4 года я могу по пальцам одной руки посчитать, когда появлялись проблемы с циклическими или битыми ссылками. Про память, которая течет, вообще молчу - ни разу не видел этого, потому что пользовался умными указателями. Санитайзеры используются на тестах всегда, так что нефиг загонять про "ты просто не замечаешь".

Аноним 25/03/16 Птн 13:56:33 #254 №697769 
>>697753
Пример раста как раз показателен. Сначала хотели сделать йоба-язык который и то умеет, и то умеет, и здесь, и этак (что в общем-то всегда бывает среди авторов языков), а к версии 1.0 выяснилось, что gc controlled указатели нахуй не нужны, стд-либа-то задизайнена на работу без GC.
Аноним 25/03/16 Птн 14:04:23 #255 №697772 
>>697767
Проблема только у тебя и только в твоём манямирке, в котором ты видишь что я считаю себя умнее всех, при том мне за весь тред ни разу никто адекватно не ответил чем именно им мешает гц, лол.

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

>>697769
Историю изменения до 1.0 сходи глянь. Она так задизайнена потому что 3 года назад они отказались от сборки и с тех пор пидорасили всё что попадалось под горячую руку два года подряд.
Аноним 25/03/16 Птн 14:08:04 #256 №697775 
>>697772
Начиная с DMD 2.067 мусорщик можно вообще выключить нахер.
Посмотрел я, что зависит от него - и в принципе все ясно, по сути - new, встроенные массивы и ассоциативные массивы и делегаты.

И непонятно с последним - как юзать делегаты без GC-то?
Аноним 25/03/16 Птн 14:14:17 #257 №697779 
>>697772
Все эти разговоры хуйня, когда нет наглядных сравнений производительности больших проектов с и без gc. А поскольку никто не будет специально одинаково писать большой проект с gc и без него, то появляется такая благодатная почва для специальных олимпиад.

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

Лично для меня вопрос эффективности GC уже снят давно. Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода
Аноним 25/03/16 Птн 14:17:27 #258 №697781 
>>697779
CLion ещё и может гораздо больше, чем QtCreator, так себе сравнение. Почему просто не сравнить андроид с гейфоном?
Аноним 25/03/16 Птн 14:17:57 #259 №697783 
>>697772
>при том мне за весь тред ни разу никто адекватно не ответил чем именно им мешает гц, лол.
С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде? Ты ебаный рак, убивающий его, меня за эти годы на бордах крестохейтеры заебали страшно. Задай вопрос в ньюфаг-треде, я тебе отвечу. В конце концов, я тебе ответил и здесь, но у тебя уже бомбит достаточно, чтобы не воспринимать мои слова: GC мешает тем, что создает 2 диалекта языка, код которых работает в одну сторону: GC-код может использовать не GC-код, а наоборот нельзя - будет память течь. Поэтому есть два варианта, или язык становится неюзабельным говном:
>>697772
>Историю изменения до 1.0 сходи глянь.
Аноним 25/03/16 Птн 14:19:07 #260 №697784 
>>697779
>native-кода
Хочу заметить, что тут я сравниваю нативный код с ненативным, т.е. это не совсем корректно и в случае с D результаты могут быть другие.

Но сравнения с нативным кодом с GC нет, так что иди нахуй заранее.
Аноним 25/03/16 Птн 14:20:25 #261 №697785 
>>697781
Все его возможности основаны на изменении уже построенной языковой модели. А я предлагал сравнивать этапы анализа кода. Вещи они там делают одинаковые.
Аноним 25/03/16 Птн 14:20:38 #262 №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 не взлетел ровно по этой же причине.
Аноним 25/03/16 Птн 14:28:25 #263 №697792 
>>697775
>И непонятно с последним - как юзать делегаты без GC-то?
Заменять тип на alias и писать всё побочками, либо залезть в анус и выделять память маллоком, перемещать её memmove и вызывать как (*hui)().
>>697779
>Возьмем CLion и QtCreator.
1. Второй делает сасай по работе с кодом и не только, причём раз 10;
2. Сравнивать жяву с нативным языком конечно гениально. Особенно в задачах вроде парсинга, когда она не может обойти массив без проверок и тд., так что там ботлнек далеко не в gc (он может произойти только если настроить clion на несколько гб оперативки, которая будет сканироваться вчено).
>Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода
А я неоднократно видел баги и няшности вроде фрагментации кучи, особенно с распространением смартпоинтеров. Бывает, чо.
>>697783
>С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде?
Наверно потому что я не хейтер внезапно действующий плюсовик, а пытаюсь получить ответ.
>Ты ебаный рак
Лан даун)
>Поэтому есть два варианта, или язык становится неюзабельным говном:
Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.
Аноним 25/03/16 Птн 14:32:47 #264 №697796 
>>697792
>Наверно потому что я не хейтер внезапно действующий плюсовик, а пытаюсь получить ответ.
А ты думаешь мало хейтеров, получающих деньги за кресты? Это самая днищенская порода людей: кресты они ненавидят, но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят. В итоге вместо роста скилла происходит отравление окружающей действительности миазмами своего лузерства.
>Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.
Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?
Аноним 25/03/16 Птн 14:37:56 #265 №697799 
>>697796
>Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?
Загружу как динамическую библиотеку или запущу с нужными параметрами или воспользуюсь одним из 9000 способов межпроцессного взаимодействия вроде пайпов или общей памяти. Всё лучше и быстрее пишется, чем пихать 2 разных диалекта языка в один анус и сидеть с отладчиком на простате.
>кресты они ненавидят
Умозаключение о ненависти после того, как я сказал что есть что-то лучше? Ещё один господин-манямирок.
>но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят
Эх. Прозвучало ахуенно, но тупо.
Аноним 25/03/16 Птн 14:48:57 #266 №697817 
>>697799
>Загружу как динамическую библиотеку
Ну да, ты это имел в виду. Динамические библиотеки - это просто динамически прилинкованный код, который с точки зрения языка мало отличается от статически прилинкованного. И оно здесь тебе ничем не поможет. RPC - поможет, только здесь возникает вопрос, нахуя мне D, когда у меня есть C++, в котором любая (любая) фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов (включая std::function, например), и, допустим, один из милларда управляемых языков с толстым рантаймом и батарейками - от пайтона до Java?
>Умозаключение о ненависти после того, как я сказал что есть что-то лучше?
"Сходи предложи помощь бомжу-алкашу - он отреагирует как крестовик на сборщик мусора.". Себя ты крестовиком не считаешь, ты оппонируешь крестовикам. Потому что ты сам - dаун, который вынужден пользоваться крестами, ведь деньги-то за D платить не будут.
Аноним 25/03/16 Птн 14:50:46 #267 №697818 
>>697792
>няшности вроде фрагментации кучи
Как там в 2007? Если ты встречаешься с такой проблемой сейчас, то ты должен использовать кастомные аллокаторы by design. Проблема высосана из пальца.

>1. Второй делает сасай по работе с кодом и не только, причём раз 10;
>2. Сравнивать жяву с нативным языком конечно гениально.
Как я уже писал выше:
- возможности работы с кодом на этапе парса ничего не решают.
- принеси сравнение нативного gc-языка с просто нативным и тогда поговорим. Ах да, никто же не написал крупного проекта на нативном gc-языке.
Забыл, прости.
Аноним 25/03/16 Птн 14:53:09 #268 №697824 
>>697817
>работает без GC без всяких компромиссов (включая std::function, например)
Охуенный пример - std::function срет в кучу если замыкание больше 24 байт. Если ты будешь массово их использовать, производительность у тебя будет хуже, чем со сборщиком, который все убивает за один прием. То же самое с Qt, где ехал пимпл через пимпл. В плане производительности можно топить за метапрограммирование, но тут кресты у ди сосут с причмоками.
Аноним 25/03/16 Птн 14:57:00 #269 №697829 
>>697824
http://stackoverflow.com/questions/21094052/how-can-i-create-a-stdfunction-with-a-custom-allocator
Аноним 25/03/16 Птн 15:01:30 #270 №697842 
>>697817
> включая std::function, например
Говно твоя std::function
В ди можно ПРОСТО писать вложенные функции, а не создавать over9000 нечитаемого синтаксического шума.
Аноним 25/03/16 Птн 15:03:20 #271 №697843 
>>697842
И это функции будут ПРОСТО течь.
Аноним 25/03/16 Птн 15:05:19 #272 №697845 
>>697829
Проще свою std::function написать, чем с аллокаторами ебаться.
Аноним 25/03/16 Птн 15:05:46 #273 №697848 
>>697843
С чего бы это? Это же не текущие кресты с его любимым "segmentation fault"
Аноним 25/03/16 Птн 15:07:11 #274 №697853 
>>697845
Что за хуйню я читаю?
Аноним 25/03/16 Птн 15:07:30 #275 №697854 
>>697843
Схуяли они будут течь, если GC циклические ссылки убивать умеет? Течь будут крестовые лямбы, если поймают смартпойнтеры друг на друга.
Аноним 25/03/16 Птн 15:08:02 #276 №697855 
>>697854
С того. Ты в контекст диалога вообще можешь? Пиздец идиоты.
Аноним 25/03/16 Птн 15:08:36 #277 №697858 
>>697853
std::function - это обертка вокруг лямбда-выражений. Можно легко написать свою реализацию, которая будет работать с памятью, как тебе хочется.
Аноним 25/03/16 Птн 15:09:19 #278 №697861 
>>697855
>Ты в контекст диалога вообще можешь?
Я другой ананас, который тред-не-читай-сразу-отвечай.
Аноним 25/03/16 Птн 15:10:12 #279 №697862 
>>697858
Лалка, а поддержку обычных функций ты тоже хочешь писать? Ну удачи, чо. Я написать обертку на std::function, чтобы удобно передавать аллокаторы и не буду ебать себе мозг.
Аноним 25/03/16 Птн 15:11:33 #280 №697866 
>>697862
Там в 200 строчек все делается.
Аноним 25/03/16 Птн 15:12:08 #281 №697867 
>нахуя мне D, когда у меня есть C++, в котором любая (любая) фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов (включая std::function, например), и, допустим, один из милларда управляемых языков с толстым рантаймом и батарейками - от пайтона до Java?
>А В D У НАС НЕ НУЖЕН STD::FUNCTION У НАС ВСЕ КРАСИВЕНЬКО
>Но ведь течь же будет без GC
>ИДИОТ ЭТО КРЕСТЫ ТЕКУТ А В D ЕСТЬ GC

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

>>697861
Ввиду того, что вас таких двое, я считаю это не случайным совпадением, а статистикой.
Аноним 25/03/16 Птн 15:12:51 #282 №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?
Аноним 25/03/16 Птн 15:13:44 #283 №697870 
>>697866
Ты че, ебанутый? Зачем дублировать уже написанную функциональность? Ну не хочешь аллокатор каждый раз передавать, напиши wrapper
Аноним 25/03/16 Птн 15:14:13 #284 №697872 
>>697868
Оно не компилируется
Аноним 25/03/16 Птн 15:14:34 #285 №697873 
>>697868
на ideone залей
Аноним 25/03/16 Птн 15:14:42 #286 №697874 
>>697872
Наверняка у него кучу звездочек сожрало.
Аноним 25/03/16 Птн 15:16:50 #287 №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
Аноним 25/03/16 Птн 15:16:57 #288 №697876 
>>697867
Заменить на счетчик ссылок - и не будет течь, схуяле?
Аноним 25/03/16 Птн 15:18:29 #289 №697877 
>>697870
>Зачем дублировать уже написанную функциональность?
Затем, что стдлиб++ не всегда можно использовать.
Аноним 25/03/16 Птн 15:18:49 #290 №697879 
>>697817
>И оно здесь тебе ничем не поможет.
И почему же?
>фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов
А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли. Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.
>от пайтона до Java
Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.
>>697817
>Себя ты крестовиком не считаешь, ты оппонируешь крестовикам.
Нет, я просто не фанатик как ты. Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры. Сказали что синтаксис лучше - говорят сами себе ГЦ и срут кровью. Слышат попытки дискутировать как человеки а не животные - срут кровью на предложившего, он не из их стаи, хотя говорит на их языке.
>Потому что ты сам - dаун
Самое топовое оскорбление, чем больше повторяешь - тем смишнее. Четыре десятка айкью видимо, простора для размышления не дают.
>>697818
>возможности работы с кодом на этапе парса ничего не решают.
Зато решает что на яве банально объекты толще и всё работает через вм, лол.
Когда в qtcreator завезут хотя бы анализ кода на лету (который в лионе не хуже чем в студии, которая кстати почти не лагает) напиши это ещё разок что лион кококо лагаит, а не сравнивай хуй с пальцем.
>Проблема высосана из пальца.
Ну ты иди, создай массив с умными указателями. Позавидуешь скорости питона. И тебя никакой jemalloc в такой ситуации не спасёт.
Аноним 25/03/16 Птн 15:18:54 #291 №697880 
>>697877
Препод запретил?
Аноним 25/03/16 Птн 15:18:59 #292 №697881 
>>697877
Юзай буст, лалка
Аноним 25/03/16 Птн 15:19:38 #293 №697882 
>>697870
Олсо, ты заебешься писать аллокатор для чисто стековой лямбды.
Аноним 25/03/16 Птн 15:27:18 #294 №697889 
>>697879
>Зато решает что на яве банально объекты толще и всё работает через вм, лол.
>...
Ты тупая мразь, я сказал, что сравнение некорректно, еще до того, как ты начал свое кукареку. Повторю для тебя-жопочтетца еще раз: неси сравнение GC-native с native и тогда побеседуем.

>Ну ты иди, создай массив с умными указателями.
И? Что произойдет-то? Если объектов мало - похуй. Если объектов много и они помещаются в оперативку - похуй. Если объектов так много, что вылетает bad_alloc, то а хуле ты хотел-то? Юзай пулл с кастомным распределением памяти.
Аноним 25/03/16 Птн 15:36:01 #295 №697899 
>>697889
>И? Что произойдет-то?
Почитай что такое фрагментация памяти. И подумай что будет когда хотя бы треть из них удалится.
>Если объектов так много
То что будет когда у каждого СВОЙ счётчик?
>Ты тупая мразь, я сказал, что сравнение некорректно, еще до того, как ты начал свое кукареку.
Сам сравнил и сам обосрался, ок, вопросов нету.
>Повторю для тебя-жопочтетца еще раз: неси сравнение GC-native с native и тогда побеседуем.
Вопрос: как их сравнивать, если одинаковые стратегии работы с памятью использовать некорректно?
Аноним 25/03/16 Птн 15:44:53 #296 №697907 
>>697899
>Почитай что такое фрагментация памяти.
Лол, ты сам-то читал? О фрагментации надо заботиться, когда у тебя объекты больше страницы.
Аноним 25/03/16 Птн 15:47:10 #297 №697910 
>>697889
>Если объектов мало - похуй
Как минимум GC убьет их сразу, а со смартпойнтерами - по одиночке. А в каждом объекте может тоже быть смартпойнтер на что-то еще.
Аноним 25/03/16 Птн 15:49:00 #298 №697911 
>>697879
>И почему же?
Я написал в предыдущем предложении того же поста.
>А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли.
Ты главное повторяй это почаще. Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.
>Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.
Я лучше Scala возьму, на ней хоть работа есть, а общего с С++ примерно столько же. Ну или C# с await/async и linq.
>Нет, я просто не фанатик как ты.
Это я что ли пришел в D-тред и стал нахваливать С++? В чем заключается мой фанатизм? Я отлично знаю достоинства и недостатки С++, и так же знаю, что отсутствие GC - это его killer feature, а никак не наоборот.
>Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры.
На С++ я пишу только уберперформанс (мой софт один из самых быстрых в мире на рынке), но с чего ты взял, что я пишу только на С++? Я много на чем пишу, выбирая язык под задачу, у D задач нет, для языка с GC он очень отстал от жизни, без GC он превращается даже не в С++, а в plain C.
Аноним 25/03/16 Птн 15:50:39 #299 №697916 
>>697899
>Почитай что такое фрагментация памяти. И подумай что будет когда хотя бы треть из них удалится.
Повторяю для аутистов:
- Если объектов мало - похуй.(мало памяти теряется)
- Если объектов много и они помещаются в оперативку - похуй. (либо потери памяти малые, либо paging устранит последствия фрагментации, либо не устранит и потери большие, тогда см. пункт 3)
- Если объектов так много, что либо тебе не похуй на потери памяти, либо ее уже тупо нет, то юзай пулл с кастомным распределением памяти. Дефрагментирующие процедуры GC тебя в этом случае все равно будут неприемлемы.

>Вопрос: как их сравнивать, если одинаковые стратегии работы с памятью использовать некорректно?
Щито? Тебе говорят, что GC гарантированно увеличивает расход памяти и делает паузы в работе программы из-за очистки или дефрагментации by design. А ты отвечаешь, что все хуйня, GC очень редко делает программу медленнее и все такое. На что у меня вопрос: где найти такую программу на native с GC, которая будет работать хотя бы сопоставимо с обычным native языком?
Аноним 25/03/16 Птн 15:56:23 #300 №697922 
>>697907
>О фрагментации надо заботиться, когда у тебя объекты больше страницы.
Точнее, когда будет много страниц, которые только немного заполнены. А если пустые промежутки в фрагментированной виртуальной памяти будут давать пустые страницы, то реальный расход памяти будет сопоставим с логическим. Новый блок памяти будет просто выделен в другой части адресного пространства. Слава б-гу, что адресное пространство 64-битное
Аноним 25/03/16 Птн 16:02:04 #301 №697930 
>>697922
Да нет, просто у аллокатора внутре и так пулы под размеры объектов по степеням двойки. Пока ты туда укладываешься, фрагментации нет.
Аноним 25/03/16 Птн 16:07:11 #302 №697934 
>>697930
Тогда причем здесь страницы? Это само по себе выполняет дефрагментирующую функцию
Аноним 25/03/16 Птн 16:08:46 #303 №697937 
>>697875
там где foo = goo должно быть @foo = @goo (@ - звезда), чтобы было 11
Аноним 25/03/16 Птн 16:10:44 #304 №697939 
>>697934
Когда объект в пул не влезает (обычно если он больше страницы), то может уже быть фрагментация при большом количестве таких аллокаций.
Аноним 25/03/16 Птн 16:17:49 #305 №697945 
>>697939
Я не пойму, при чем страницы. Пул это просто большой кусок памяти. Если объект не влезает, можно увеличить пул. Но страницы-то здесь причем? Они как и раньше служат для поддержки многоуровневой памяти. И как свойство - некоторые проблемы фрагментации виртуальной памяти могут быть устранены.
Аноним 25/03/16 Птн 16:18:54 #306 №697947 
>>697911
>Я написал в предыдущем предложении того же поста.
Хуйню написал.
>Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.
А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.
>на ней хоть работа есть
1 контора на всё СНГ? Особенно много работы на ней будет после того, как её спонсор отмежевался от неё и направился н жяву.
>а общего с С++ примерно столько же
Сколько? Нихуя? Ехал воид имплицит через имплицит?
Ты на самый главный вопрос не ответил:
>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
>Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.
>На С++ я пишу только уберперформанс
Пропруфай чтоле. Хоть направление скажи.
>отсутствие GC - это его killer feature
>без GC он превращается даже не в С++, а в plain C.
Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней. Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.
>>697916
>А ты отвечаешь, что все хуйня, GC очень редко делает программу медленнее и все такое.
Учебник по русскому языку там -> google.com
>где найти такую программу на native с GC, которая будет работать хотя бы сопоставимо с обычным native языком?
Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта. Иди скорость компиляции dmd посравнивай там с любым плюсовым компилятором, лол.
Аноним 25/03/16 Птн 16:18:55 #307 №697948 
>>697583
Сервис Application Experience включи.
Аноним 25/03/16 Птн 16:26:08 #308 №697955 
>>697945
Пулы растут постранично. Страницы, отведенные под пулы тоже могут фрагментироваться, но очень медленно. Поэтому пока объекты влезают в пул, фрагментация минимальна. Если объект не влезает в пул, аллокатор выделяет ему нужное количество страниц вне пула. При его освобождении (если заняты следующие за ним адреса), образуется дыра в адресном пространстве, которая может быть занята только объектом меньшего размера. При большом количестве таких дыр память фрагментируется - свободная память есть, но кусочки ее слишком маленькие, что там разместить объект.
Аноним 25/03/16 Птн 16:34:23 #309 №697965 
>>697879
>Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.
Ну да, жаль только что оптимизатора не завезли. И либ. И из-за GC нельзя писать системы реального времени (надеюсь понятно почему?). А так все хорошо, язык будущего, который уже 10 лет на месте стоит. Нахуй этот D нужен когда есть Rust? Он в отличае от D действительно движение в перед.
И кстати, не 40 лет, а 30.

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

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



Аноним 25/03/16 Птн 16:42:02 #310 №697979 
>>697965
>Ну да, жаль только что оптимизатора не завезли.
Сторонние компиляторы с этим прекрасно справляются будто он тебе чем-то поможет где-то кроме какого нибудь рендера.
>И либ.
У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.
>И из-за GC нельзя писать системы реального времени
У местных GC головного мозга, и каждая задача должна работать в риалтайме, оно понятно. Только все такие системы пишутся на си, ой.
>>697965
> Нахуй этот D нужен когда есть Rust? Он в отличае от D действительно движение в перед.
Движение вперёд в плане "не дать макаке выебать байтики неаккуратно". Это замена сишечке, слишком низкоуровенно чтобы ставить в одну шеренгу с D.
>Да, ты прав, перл и делфи люди используют, некорректное сравнение
Легаси, как и плюсы. Как в коде, так и в голове.
>Ну это же наглый пиздеж, не стыдно тебе?
Ну ты пропруфай обратное, обоссы мудака.
Аноним 25/03/16 Птн 16:44:45 #311 №697983 
>>697965
>Ну да, жаль только что оптимизатора не завезли.
>>697979
>У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.
Сюда надо ещё доклад швитого отца Александерску о том, как с ничестивым инлайнингом боролся покуда кодило-то не намокло.
Аноним 25/03/16 Птн 16:50:42 #312 №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));
}
Аноним 25/03/16 Птн 16:51:13 #313 №697991 
>>697947
>Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта.
>микросервис
>микро
>реальный софт
Ох лол. Может еще сортировочку посоветуешь сравнивать?

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

Вывод: не создано ни одного крупного проекта на нативном языке в GC. А GC-бляди все наяривают на свои gc-языки без ниши. Найс.
Аноним 25/03/16 Птн 16:51:19 #314 №697992 
>>697988
Сука, юзай
Аноним 25/03/16 Птн 16:51:35 #315 №697994 
>>697992
Пастебин!
Аноним 25/03/16 Птн 16:55:27 #316 №697997 
>>697988
> std::ostream_iterator<Comparable>(std::cout)
фикс
Аноним 25/03/16 Птн 16:56:42 #317 №697999 
>>697991
>Вывод: не создано ни одного крупного проекта на нативном языке в GC. А GC-бляди все наяривают на свои gc-языки без ниши. Найс.
Докер на говне ещё. Чё-то никто не жалуется, только ты вскудахтываешь будто пнули под жёпу.

Ну что, пора чистить говно вилкой легаси.
Аноним 25/03/16 Птн 16:57:54 #318 №698001 
>>697994
http://pastebin.com/B2iRsSTH
кок
Аноним 25/03/16 Птн 17:05:19 #319 №698014 
14589147195650.png
>>697999
>Docker
>Набор консольных утилит-оберток над cgroups и namespaces
>Размер репы 86Mb
>Крупный проект

Можешь попытаться еще раз
Аноним 25/03/16 Птн 17:08:12 #320 №698017 
>>698014
Прости, признаю поражение. Мой список с твоим списком говнолегаси не сравнится, я проиграл.
Аноним 25/03/16 Птн 17:11:52 #321 №698022 
>>698017
>Мой список
А где список-то? Ты назови хоть один большой, высокопроизводительный проект на go или d. Их же просто нет. Все серьезное дерьмо пишут на C или C++.
Аноним 25/03/16 Птн 17:13:24 #322 №698023 
>>698022
> Все серьезное дерьмо пишут на C или C++.
На С. Без "или С++"
Аноним 25/03/16 Птн 17:22:43 #323 №698026 
>>697947
>Хуйню написал.
Просто с каждый постом мне все меньше охота тебе что-то разжевывать. Ну если ты не понимаешь, что такое динамическая библиотека, что мне, лекцию тебе читать?
>А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.
Делфи-треда в /pr/ нет, а С++ - есть, потому что это актуальный и очень полезный язык, изучение которого окупится сторицей. У D же есть пара фанбоев, которым настолько скучно, что они тралят С++-тред.
>1 контора на всё СНГ?
Она хотя бы есть, в отличие от работодателей на D. Хотя не знаю, зачем тебе так рынок СНГ принципиален.
>Сколько? Нихуя?
Exactly. Как и у D.
>Пропруфай чтоле. Хоть направление скажи.
Я на анонимной борде, избавь меня от этого мерянья хуйцами своего авторитета. Я предположений от твоей личности не делаю, твоя дурь видна из твоих постов, но ты почему-то о моей - делаешь, и любые твои промахи показывают больше о тебе, чем обо мне.
Последнее, что я написал (вчера) - это GPU-контейнер, который умеет swap'иться в CPU память при переполнении GPU, по определенной стратегии. Это уберперформанс, и D здесь не пришей к пизде рукав.
>Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней.
Типичный баттхерт неосилятора, который я слышу уже много лет. К реальности не имеет никакого отношения, просто передается неосиляторами из уст в уста.
>Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.
Ну вот опять же, вместо того, чтобы слушать мужиков с опытом программирования больше, чем тебе лет, ты уверен, что ты самый умный и понимаешь в программировании хоть что-то. И ты еще смеешь кого-то фанатиками называть.

>Ты на самый главный вопрос не ответил:
>>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
Да я давно понял, что D метит в нишу Go - легкие микросервисы без ВМ для дешевых инстансов виртуальных машин (в докере, например). Только, вот какая беда, у Go он сосет тоже, причем по-своему. Да и юзкейс это редкий. Ну и в любом случае это оффтоп. Мне на данный момент важно, что нишу С++ dlang не покрывает вообще никак.
Аноним 25/03/16 Птн 17:31:16 #324 №698028 
14589162763100.jpg
>>698023
>Photoshop
>Autocad
>GCC
>llvm
>Chromium, Firefox, Edge, Opera
>KDE
>все AAA игровые движки
>MS Office
>.NET и множество других компиляторов.
>большинство EDA software
Аноним 25/03/16 Птн 17:34:39 #325 №698030 
>>698028
Ты не понял. Старый софт на С++ (которому больше 2-х лет) - это говнолегаси. Новый софт на С++ - это исключения, написанные дебилами. Старый софт на С - это няшный софт, которым все пользуются. Новый софт на С - это СМОТРИТЕ ВСЕ ВОТ ЭТО С А НЕ С++.
Самое забавное, что у любого крестохейтера всегда к этому сводится, даже если он программирует на лиспе, c#, теперь вот D.
Аноним 25/03/16 Птн 17:47:14 #326 №698040 
Ананасы, такой вопрос.
Есть некий класс, для которого перегружен оператор <<. Вот его определение:

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

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

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


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

operator uint32 () { return Method2Name( ); }

Какой оператор перегружается в этой строке? То есть, в каких случаях вызовется Method2Name?
Аноним 25/03/16 Птн 17:50:37 #327 №698046 
>>698028
https://github.com/search?p=1&q=language%3AC%2B%2B+size%3A%3E%3D400000&ref=searchresults&type=Repositories&utf8=✓
Аноним 25/03/16 Птн 17:52:32 #328 №698047 
>>698028
>KDE
>Photoshop
>MS Office
Блядь, не поливай плюсы говном.
Аноним 25/03/16 Птн 17:55:08 #329 №698053 
>>698040
Функтор, гугли function call operator overload
Аноним 25/03/16 Птн 17:56:02 #330 №698055 
>>698040
Перегрузка cast оператора. Будет вызываться в этих случаях:
uint32 mamka = foo;
int mamka = foo;
bool mamka = foo;
double mamka = foo;(sic!)
Т.е. везде где нужен либо uint32, либо где возможно неявное преобразование из этого типа.
Аноним 25/03/16 Птн 17:58:37 #331 №698062 
>>698047
Ну если про kde еще можно поговорить(хотя на самом деле топовая opensource оконная система),
то все остальные - лидеры в своей сфере.
Аноним 25/03/16 Птн 18:13:30 #332 №698075 
>>698028
>KDE
Ты же на сборщик мусора вроде ругался, не?
Аноним 25/03/16 Птн 18:16:56 #333 №698082 
14589190169800.jpg
Ну охуеееть, вот это вы насрали меньше, чем за день.
Аноним 25/03/16 Птн 18:20:24 #334 №698090 
>>698055
Спасибо! сук пздц это мне гемора добавило только что
Аноним 25/03/16 Птн 18:36:42 #335 №698100 
>>697618
Нет, я просто не могу осилить D, пытаюсь временами и нравится. Но потом натыкаюсь на какую-то мелкую проблему и бросаю. Опять же, от библиотек сторонних глаза разбегаются. Хочу следующий проект на D начать. Аллокаторы вроде то ли дописывают еще, то ли только дописали. Спасибо, гляну более пристально. Молодые вы... Вам всё легко.
Аноним 25/03/16 Птн 18:43:53 #336 №698102 
>>697591
Выключи комплютер, отойди, подойди, включи, удали.
Аноним 25/03/16 Птн 18:45:07 #337 №698105 
>>697602
Лол, что!??! Сборщик мусора? Нахуя?
Аноним 25/03/16 Птн 18:50:45 #338 №698109 
То самое чувство, когда на анона говорящего про лучший синтаксис накидываются со словом "GC" всем тредом. Ахуенное зрелище.
Аноним 25/03/16 Птн 18:51:52 #339 №698113 
>>697682
Что по компиляторам? Есть вроде стандартный dmd и надстройка над clang'ом. Что с перфомансом на личном опыте?
Аноним 25/03/16 Птн 18:53:15 #340 №698116 
>>698113
Да вы заебали. Пиздуйте в D-тред.
Аноним 25/03/16 Птн 18:54:52 #341 №698120 
>>698113
Мой велосипед из треда олимпиадных задач, как ни странно, быстрее работал под dmd.

dmd лучше умеет в стандарты, но ldc и gdc переносимее - конпелял на планшете с убунтой (dmd нету, ldc писало какую-то хрень, gdc заработало)
Аноним 25/03/16 Птн 18:56:44 #342 №698125 
>>697694
Спасибо, пояснили. Вы, анончики, выяснили, что главным отличием является GC, но противоречиво вышло. Алсо, что с внутренними механизмами ООП между C++/D?
Аноним 25/03/16 Птн 18:58:44 #343 №698126 
>>698125
С крестами вроде хорошо стыкуется, но точно не скажу - на практике не юзал, только читал доки.

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

Как дергать кресты из D, и наоборот.
Аноним 25/03/16 Птн 19:04:29 #346 №698132 
>>697755
Как в D устроен сборщик мусора? Разве для этого не нужно разрывать контекст выполнения?
Аноним 25/03/16 Птн 19:09:20 #347 №698139 
>>697768
Двачую этого. Не используя явную аллокацию(new, placement-new), все проблемы внезапно проходят. Если же очень нужно перфоманса ради радотать с памятью руками, то создаёшь отдельный объект/оборачиваешь стандартными поинтерами. Никаких вроблем и GC не нужен.
Аноним 25/03/16 Птн 19:10:07 #348 №698142 
>>698132
https://dlang.org/spec/garbage.html
Тут почитай
Аноним 25/03/16 Птн 19:12:46 #349 №698144 
>>698139
Более того, это единственный правильный путь. Тягать new/delete не в конструкторе означает то, что код будет течь при исключениях. Просто у каждого неосилятора в программе сплошные циклические графы всего со всем, да еще и в многопоточной среде с shared state.
Аноним 25/03/16 Птн 19:20:46 #350 №698147 
>>698132
https://en.wikipedia.org/wiki/Boehm_garbage_collector
>The collector uses a mark-sweep algorithm.

>Разве для этого не нужно разрывать контекст выполнения?
Да, нужно
Аноним 25/03/16 Птн 19:51:08 #351 №698179 
Эта ваша boost::asio Header-Only?
Аноним 25/03/16 Птн 20:07:24 #352 №698184 
>>698179
Да, если будешь билдить без зависимостей в boost::system (вроде каким-то дефайном отключается).

А вообще, бросай это говно.
Аноним 25/03/16 Птн 20:23:35 #353 №698195 
>>698184
Ты не знаешь как в get запросе этот ебучий unicode передается?
Аноним 25/03/16 Птн 21:50:44 #354 №698236 
>>698195
Боже, серьёзно, если тебе нужна библиотека http клиента даже не смотри в сторону asio. Это оверархитектурнутое говно - для клиентской части слишком низкоуровенно, для серверной - медленно и перегруженно.
Аноним 25/03/16 Птн 23:15:49 #355 №698300 
>>698236
А что можно использовать? Я там нагуглил пару вроде простеньких библиотек, но они сходу не скомпилились так как сраная винда, еще и под mingw, так что я их дропнул. У меня маленькая утилитка для личного пользования, она дергает гугл транслейт. Я изначально сделал на винсокетах чтобы по-быстрому. Все было нормально, пока я не решил с этим ебучим юникодом связаться. Но, в принципе, я уже разобрался, там юникод в utf8 перегоняется и через percent encoding отдается.
Аноним 25/03/16 Птн 23:53:20 #356 №698324 
>>698082
>Ну охуеееть, вот это вы насрали меньше, чем за день.
Дауны-аутисты кормят хейтера-аутиста.
Аноним 26/03/16 Суб 00:02:01 #357 №698335 
>>698324
У вас GARBAG COLLECTOR протёк.
Аноним 26/03/16 Суб 00:22:58 #358 №698356 
>>698300
vibe.d
Аноним 26/03/16 Суб 06:33:47 #359 №698466 
14589632279330.jpg

>>698335
SEGMENTATION FAULT
Аноним 26/03/16 Суб 11:14:16 #360 №698537 
>>698184
лоло, буст в наше время _уже_ стандарт стандарт по факту
во многих конторах за неуважение к бусту расстреливают, а потом разделывают на мясо неугодных
Аноним 26/03/16 Суб 11:16:08 #361 №698538 
>>698537
>стандарт стандарт
т.е. наистандартнейший стандарт
Аноним 26/03/16 Суб 11:24:41 #362 №698546 
>>698537
Такой ты кек.
>стандарт по факту
Разве что в конторках с C++98, где без его костылей никуда.
>а потом разделывают на мясо неугодных
Есть пытка повеселее - посадить этих неверных читать код на бусте, особенно со всеми старыми высерами вроде boost::lambda.
>>698300
Casablanca очень приятная, и имеет более высокоуровенный API, посмотри в её сторону.
Аноним 26/03/16 Суб 13:02:00 #363 №698637 
>>698546
>Casablanca
тэк о разве касабланка не тянет за собой буст и его сраный асио в том числе?
Аноним 26/03/16 Суб 13:08:22 #364 №698650 
>>698637
Вне шинды тащит. Целую хидер-онли библиотеку тащит, лел.
Если нужно написать клиентскую часть она всё равно в 10 раз лучше чистого асио.
Аноним 26/03/16 Суб 14:00:07 #365 №698713 
Стреляю в ногу, пасаны:
http://pastebin.com/jiqEyQCN
Аноним 26/03/16 Суб 14:08:27 #366 №698721 
>>698713
>int = 0;
Не попал
Аноним 26/03/16 Суб 14:44:13 #367 №698748 
>>698721
точно, коряво скопировал из своего кода
Аноним 26/03/16 Суб 14:53:35 #368 №698753 
>>698748
http://pastebin.com/Y7ZJsGYf
Щинок блядь, стрелять не научился ещё.
Аноним 26/03/16 Суб 15:16:31 #369 №698783 
>>698753
Люблю развернутый код, один хуй нормальный компилятор это говно вот так бы и оптимизировал.
Аноним 26/03/16 Суб 15:45:25 #370 №698819 
Помогите с заданиями, пожалуйста. Учу кресты дома сам для себя по книгам, но там задачи слишком примитивные и направлены на закрепление прочитанного и синтаксиса, а хочется каких-нибудь подходящих для новичка задач, не сильно оторванных от реальности.
Аноним 26/03/16 Суб 15:48:12 #371 №698823 
>>698819
Напиши калькулятор, змейку на псевдографике. Все зависит от того зачем ты их учишь.
Аноним 26/03/16 Суб 16:29:39 #372 №698865 
>>698823
>калькулятор, змейку на псевдографике
К C++ это имеет никакое отношение.
Аноним 26/03/16 Суб 16:34:09 #373 №698870 
>>698865
Хорошо, не пиши
Аноним 26/03/16 Суб 16:40:07 #374 №698874 
>>698865
> имеет никакое отношение.
Инглиш параллельно учишь?
Аноним 26/03/16 Суб 16:44:00 #375 №698878 
>>698819
Открываешь любой сайт с задачами и решаешь. Только решай их не как олимпиадные, нормально. По максимуму используй stl. Пиши классы. Реши так задач 25-30. Потом придумаешь проект для себя и пили его.
Аноним 26/03/16 Суб 16:45:28 #376 №698881 
>>698823
Калькулятор я уже простенький на винформах накидал, надо будет ему функциональности добавить еще. А вот змейку попробую, только как консоль очищать? system() использовать не рекомендуют, а clrscr() из conio.h у меня ошибку при компиляции выдает.
Аноним 26/03/16 Суб 16:46:29 #377 №698883 
>>698881
ncurses
Аноним 26/03/16 Суб 16:52:28 #378 №698888 
>>698881
А если я хочу написать кросплатформенное что-то, не используя Qt, что делать
Аноним 26/03/16 Суб 17:17:13 #379 №698906 
>>698888
STLPort
Аноним 26/03/16 Суб 17:38:08 #380 №698933 
>>698906
Спасибо.
Аноним 26/03/16 Суб 17:38:08 #381 №698934 
>>698883
Спасибо, вроде выглядит достаточно простой для освоения библиотекой.
Аноним 26/03/16 Суб 17:43:53 #382 №698938 
Ананасы, посоветуйте либу для чтения/записи .zip файлов под мингв. Чтобы можно было сразу скачать, подключить и работать безо всякой ёбли со сборкой.
Аноним 26/03/16 Суб 18:05:57 #383 №698972 
>>698934
Только оно под *nix (и, вроде, в cygwin есть).
Аноним 26/03/16 Суб 18:59:33 #384 №699045 
>>698823
Напиши консольный клиент сосача, который умеет находить список проксей и писать и читать мессаги в тред, ебя мочу в ротешник.

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

А если сделать сабж как мобильное приложение - и вовсе наверное популярностью будет пользоваться.
Аноним 26/03/16 Суб 19:14:46 #385 №699070 
Анончики, а посоветуйте где можно почитать про всякие оптимизационные алгоритмы. lru например или типа того.
Аноним 26/03/16 Суб 19:33:56 #386 №699118 
>>699045
Я шарю в крестах на уровне расчёта факториала на этапе компиляции и понимания зачем нужен виртуальный диструктор. Этих знаний точно должно хватить чтобы писать такое. Но я не умею. Что я упустил? Какую книгу прочитать чтобы научиться?
Аноним 26/03/16 Суб 19:37:26 #387 №699127 
14590102466480.png
>>698938
Из шапки. http://en.cppreference.com/w/cpp/links/libs ещё буст в такое умеет
Аноним 26/03/16 Суб 19:39:55 #388 №699139 
>>699118
Никакую. Практика лучше сраных книг.
Просто пиши.
Аноним 26/03/16 Суб 19:43:16 #389 №699148 
>>699139
А упустил я что? Я ведь понятия не имею с чего начать и как закончить. Может есть где-нибудь блог где чел по шагам подробно расписывал как он какой-нибудь мелкий но полезный проект пилил?
Аноним 26/03/16 Суб 19:46:33 #390 №699158 
>>699148
Если конкретно про это - начни с апи сосача. Там этакая жсонная ебань.
Аноним 26/03/16 Суб 19:49:09 #391 №699164 
>>699158
Нет. Про разработку хочу почитать. Не полуметровые статьи с хабра, а подробные описания.
Аноним 26/03/16 Суб 19:58:21 #392 №699185 
>>699148
>с чего начать
Определить функционал, найти инструмент, спроектировать архитектуру, реализовать, протестировать, повторить
Аноним 26/03/16 Суб 20:01:11 #393 №699191 
>>699185
Во вот это хочу читать. Давай на примере. И так чтобы код ещё мог прочитать который получился. Чтобы автор пояснял за каждый свой выбор. Почему он сделал так, а не иначе.
Аноним 26/03/16 Суб 20:01:49 #394 №699195 
>>699045
>находить список проксей и писать и читать мессаги в тред, ебя мочу в ротешник.
А капча?
Аноним 26/03/16 Суб 20:02:51 #395 №699198 
>>699191
Но зачем? Не хочешь самостоятельно шишек набить что ли?
Аноним 26/03/16 Суб 20:05:41 #396 №699206 
>>699198
Говно выйдет.

>>699195
Анон кстати что-то такое писал. Когда запускал вайп был бешеный. По посту в секунуд.
https://github.com/anon3341/2ch.hk/blob/test/sage/sage.py
Аноним 26/03/16 Суб 20:27:47 #397 №699231 
>>699198
>самостоятельно шишек набить
DUDE WEED LMAO
Аноним 26/03/16 Суб 20:32:17 #398 №699235 
Вот скажите аноны Лафоре Р. "Объектно-ориентированное программирование в С++" годный учебник? Стоит ли с него начинать?
Аноним 26/03/16 Суб 20:39:59 #399 №699251 
>>699235
Да. После страуструпа очень легко читался. Пример с лошадями не понятный т.к. не смазано где он указатели на объекты взял. Хотя в коде написал this так и не пояснив что это. единственный косяк что заметил.
Аноним 26/03/16 Суб 20:45:57 #400 №699256 
>>699195
> А капча?
Когда я делал это вручную, через фраерфокс - капчи не было.
Аноним 26/03/16 Суб 20:53:07 #401 №699265 
>>699070
В книжках про оси обычно неплохо это описывается (в применении к переключению процессов/механизму страниц/etc). Начни с Таненбаума, а потом глянь там в конце библиографию, если не хватит. Инфа сотка, что там найдутся книги или статьи, где конкретно про диспетчеризацию более подробно.
Аноним 26/03/16 Суб 20:56:20 #402 №699267 
>>699164
Специально для твоего случая Г-сподь послал годноту в виде книжки Brown, Wilson - The Architecture of Open Source Applications, в двух частях. Там подробно описано, как строятся настоящие приложения, и, главное, почему они строятся именно так.
Аноним 26/03/16 Суб 20:59:58 #403 №699271 
>>699267
Спасибо.
Аноним 26/03/16 Суб 21:00:05 #404 №699272 
>>699265
Спасибо.
Аноним 26/03/16 Суб 21:03:08 #405 №699274 
>>699206
У всех поначалу выходит говно, это не просто нормально, а даже необходимо, чтобы ты потом мог сравнивать и видеть свой прогресс. Если от своего кода годичной давности тебе хочется блевать, то ты на верном пути. А если ты будешь ждать, пока по волшебству возникнет Страуструп, и своим хуем вобьет тебе в жопу сакральный опыт разработки, то ты так и останешься на уровне лаб. Царской дороги нет, знаешь ли.
Аноним 26/03/16 Суб 21:07:43 #406 №699275 
>>699272
>>698933
>>699271
Блять я придумал как оценить качество треда! Ищем в нём количество благодарностей и вежливостей. Потом ищем в ней количество обзывательств и оскорблений. Ещё надо найти гринтекст. Если текст из него есть в посте на который ответили, то это цитата и игнорим. Иначе это может быть цитата из другого места или оскорбление. Если там есть упоминание мамы или других слов-маяков, то это обзывательство. И ещё можно считать количество удалёных ностов, но сохранённых на архиваче. Тогда можно устроить соревнование между другими тредами или в другой тематике. Это будет здорово. Ну, кто сделает?
Аноним 26/03/16 Суб 21:38:03 #407 №699308 
>>699275
Слишком удавопопугаисто.
Аноним 26/03/16 Суб 21:38:09 #408 №699309 
>>699070
Книга Дракона. Сорцы llvm, gcc.
Аноним 26/03/16 Суб 21:51:48 #409 №699323 
аноны.. есть /dev/video0
как можно с ним работать? где почитать как с ним работать?
Аноним 26/03/16 Суб 22:42:17 #410 №699364 
>>699323
Как с файлом. Всё - файл.
Аноним 26/03/16 Суб 22:49:15 #411 №699375 
>>699267
Анон, это супер. Я кончил.
Аноним 26/03/16 Суб 22:58:22 #412 №699389 
>>699364
ну я работал с /dev/dsp* это я понял что файл, а что в нем? как вытащить битмапу?
Аноним 26/03/16 Суб 23:43:21 #413 №699451 
>>699375
Поделись где взял?
Аноним 27/03/16 Вск 00:00:26 #414 №699485 
>>699451
На рутрекере же. Личуй - по ip тебя вычислю.
Аноним 27/03/16 Вск 00:04:34 #415 №699488 
>>699485
Почему тогда качателей цп так не вычесляют?
Аноним 27/03/16 Вск 00:05:30 #416 №699491 
>>699488
Потому что качать цп не противозаконно.
Аноним 27/03/16 Вск 00:06:51 #417 №699494 
>>699491
А раздавать?
Аноним 27/03/16 Вск 00:28:04 #418 №699511 
>>699275
Я бы вписался в такое. Надо только продумать метрики получше, а то мы же на двачах, тут даже в полезном/сочувственном/мотивирующем посте нет-нет, а маму выебут.
Аноним 27/03/16 Вск 00:31:24 #419 №699516 
>>699511
1. Можно разбивать нити/доски на тематики LDA или HDP.
2. Посмотреть, что за тематики получились.
3. Проранжировать их по шкале/хорошо плохо.
4. ???????????
5. Подсунуть новую доску/нить.
6. PROFFFIIFFTFTIFITI!!111!!IiIFIFITIfkzdfsd!!!!!!1!
Аноним 27/03/16 Вск 00:36:44 #420 №699518 
>>699127
Мало того, что с ней идёт куча лишнего для меня говна, так она просто содержит в себе библиотеку как раз нужную мне которую и так можно найти отдельно.
Нахуй так.
Аноним 27/03/16 Вск 00:39:49 #421 №699522 
>>699516
1) Найти инструмент для анализа данных больше подходящий чем плюсы;
2) Сказать об этом в треде;
3) Проскролить 200 постов о том что ты ДОЛЖИН ЛЮБИТЬ плюсы;
4) Отправится в след за дишниками.
Профит.
Аноним 27/03/16 Вск 00:45:33 #422 №699526 
>>699518
Понятия не имею что это не читая взял с гугла.
http://www.zlib.net/
http://www.libarchive.org/
Аноним 27/03/16 Вск 00:46:39 #423 №699527 
>>699518
Просто libzip сложно?
Аноним 27/03/16 Вск 00:49:46 #424 №699530 
>>699275
По-твоему самый лучший тред - это такой филиал Stack Overflow, где отвечают на тупые вопросы за спасибо? Но SO уже есть и в нем система настроена лучше (дубликаты банят, студентов с домашками банят, хейтеров минусуют). Борды совсем не об этом, на них отдыхают.
Аноним 27/03/16 Вск 00:51:47 #425 №699533 
>>699530
Можно ещё за длинопосты была треду начислять, а некрасивую орфографию снимать.
Аноним 27/03/16 Вск 00:53:50 #426 №699537 
>>699533
За граммотную пунктуацию плюсовать, а красивые речевые обороты - пасскод. Ебучий хабр
Аноним 27/03/16 Вск 00:54:35 #427 №699539 
>>699537
Плюсвать будт рбоот.
Аноним 27/03/16 Вск 00:55:17 #428 №699541 
>>699537
Есть способ проще. Много постов - тред хороший, мало постов - плохой. А люди голосуют ногами. Вот и все.
Аноним 27/03/16 Вск 00:55:52 #429 №699543 
>>699541
значит лучший пхп тред?
Аноним 27/03/16 Вск 00:56:29 #430 №699545 
>>699541
Так ведь он уже реализован.

Всё равно остаётся некий хайп около топовых нитей в выдаче.
Аноним 27/03/16 Вск 01:01:00 #431 №699551 
>>699543
Пхп-тред неплох.
Аноним 27/03/16 Вск 01:35:40 #432 №699566 
>>699527
Просто не хочется ёбли со сборкой, а просто скачать и сразу использовать.
Аноним 27/03/16 Вск 01:40:35 #433 №699569 
>>699323
>>699389
ну черт.. я так и не нагуглил в каком формате в /dev/video0 валяется видопоток. ну спасите аноны!
Аноним 27/03/16 Вск 01:54:56 #434 №699583 
>>699569
Третья ссылка в гугле.
linux /dev/video0 capture video example
Аноним 27/03/16 Вск 02:10:41 #435 №699591 
>>699583
огогог.. етить там кода..
Аноним 27/03/16 Вск 06:47:34 #436 №699618 
>>699566
https://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/
https://sourceforge.net/projects/mingw/files/MinGW/Extension/libarchive/
В общем, вот нашёл себе.
Аноним 27/03/16 Вск 08:58:58 #437 №699633 
Как кодится в России, си-плюс-плюсники? Вон http://keinkeinkein.livejournal.com/83261.html по ссылке пишут, что в России работы нормальной нету.
Аноним 27/03/16 Вск 09:14:37 #438 №699636 
Сколько времени нужно, чтобы надрочиться на алгоритмы?
Аноним 27/03/16 Вск 10:08:26 #439 №699662 
Как заполнить массив рандомными числами?
sageАноним 27/03/16 Вск 10:10:36 #440 №699665 
>>699662
std::generate или std::generatte_n
В качестве генератора суешь генератор случайных чисел.
Аноним 27/03/16 Вск 10:21:14 #441 №699676 
Сука проект не компилится! "Project is not compiled, compile it now?"
Как это исправить?
Аноним 27/03/16 Вск 11:20:41 #442 №699720 
>>699676
Телепаты в отпуске :)
Аноним 27/03/16 Вск 11:31:03 #443 №699725 
>>699636
Год.
Аноним 27/03/16 Вск 11:32:05 #444 №699726 
>>699676
Нажми Yes
Аноним 27/03/16 Вск 11:32:49 #445 №699727 
>>699676
>compile it now?
Yes.
Аноним 27/03/16 Вск 11:34:03 #446 №699728 
>>699726
>>699727
Спасибо всем. Помогло.
Аноним 27/03/16 Вск 11:42:36 #447 №699731 
14590681569820.png
Я хочу, чтобы этот скрин всегда был вторым постом в треде.
Аноним 27/03/16 Вск 11:42:41 #448 №699732 
Можно ли с помощью оператора switch, дать пользователю выбрать, каким методом он может рассортировать массив?
Аноним 27/03/16 Вск 11:43:18 #449 №699734 
>>699732
Да
Аноним 27/03/16 Вск 12:40:55 #450 №699801 
Спасибо за детальную инфу в шапке, очень помогла
Аноним 27/03/16 Вск 13:30:47 #451 №699841 
>>699533
Тредов пять назад анон подводил статистику употребления "тся/ться" по борде. Крестотред был безусловным лидером по грамотности.
Аноним 27/03/16 Вск 13:53:20 #452 №699849 
Вот почитываю я тут книгу из шапки, и что я вижу - пришли лямбды - так значит теперь бинды можно сваливать в мусорку?
Аноним 27/03/16 Вск 13:55:56 #453 №699852 
>>699849
Иногда бинды короче и выразительнее.
Но вообще рекомендуют использовать лямбды, даже если получается длиннее.
К тому же, в C++14 у них няшный capture list запилили.
Аноним 27/03/16 Вск 13:56:33 #454 №699853 
>>699849
В новых проектах - да. Легаси которое написано с ними легче продолжать компилировать старым комапилятором и писать с биндами, чем пытаться присунуть туда лямбды.
Аноним 27/03/16 Вск 14:07:09 #455 №699857 
>>699849
В С++11 были места, где bind был нужен - полиморфные лямбды, capture-by-move и т. п, в С++14, насколько я понимаю, уже все равно.
Аноним 27/03/16 Вск 15:24:31 #456 №699946 
Сап, аноны. Я тут новичок, тащемта не могу в транспонирование матрицы:
Есть глобальная static int матрица, ее нужно транспонировать и тут я застрял. Нужно именно транспонировать оригинальную матрицу, не создавая копий всяких, как это сделать?
Аноним 27/03/16 Вск 15:27:26 #457 №699951 
>>699946
std::swap
Аноним 27/03/16 Вск 15:32:30 #458 №699959 
Есть одна программа на C++. Как в OllyDbg найти точку входа в нее и поставить бряку без спама кнопки F8?
Аноним 27/03/16 Вск 15:44:56 #459 №699981 
>>699946
Просто меняешь местами элементы матрицы.
Аноним 27/03/16 Вск 15:45:12 #460 №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]

Это если квадратная. Для произвольной прямоугольной в любом случае будут копии из-за сдвигов, причем в предельном случае с копией единственного элемента будет охуенно избыточная сложность.
Аноним 27/03/16 Вск 17:44:28 #461 №700237 
>>699982
Матрица не квадратная точна, транспонирование нужно только если n > m
Аноним 27/03/16 Вск 17:46:21 #462 №700242 
>>699734
http://ideone.com/Wg2Ulv
Выдает кучу ошибок, которые мне не совсем понятны. Заного переписывать код?
Аноним 27/03/16 Вск 17:47:29 #463 №700245 
>>700242
Ââåäèòå çíà÷åíèÿ ìàòðèöû
Аноним 27/03/16 Вск 17:49:59 #464 №700250 
>>700242
> switch (Âàø âûáîð)
■╘╧ ▄╘╧?
Аноним 27/03/16 Вск 17:51:36 #465 №700252 
>>700242
У тебя в 27 строке какая-то хуита, почитай как switch работает.
Аноним 27/03/16 Вск 17:53:10 #466 №700260 
>>700245
>>700250
http://ideone.com/whcOMU
Аноним 27/03/16 Вск 17:58:56 #467 №700271 
>>700260
Там же написано в логе что не так.
Аноним 27/03/16 Вск 18:04:06 #468 №700285 
>>700252
>>700271
Заработало, я неправильно cout написал.
Аноним 27/03/16 Вск 18:10:40 #469 №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]
Аноним 27/03/16 Вск 18:11:02 #470 №700304 
>>700303
Блядь, обосрался.
Аноним 27/03/16 Вск 18:17:55 #471 №700318 
>>700303
>Лабы идут на хуй
Аноним 27/03/16 Вск 18:23:18 #472 №700330 
>>700318
как твоя жирная спидозная мамаша
(Автор этого поста был забанен. Помянем.)
Аноним 27/03/16 Вск 18:24:37 #473 №700332 
>>700330
Все идут на хуй
Хейтер сосет члены на пару со своей мамашей
Аноним 27/03/16 Вск 18:38:54 #474 №700350 
>>700303
std::sort(std::begin(a), std::end(a));
Аноним 27/03/16 Вск 19:01:58 #475 №700371 
>>700350
>std::begin(a), std::end(a)
Эхх блять. Щас бы попросал с диапазонами для C++17 отклонить.
Аноним 27/03/16 Вск 19:18:41 #476 №700404 
>>700371
а что там в c++17 сделали?
Аноним 27/03/16 Вск 19:36:09 #477 №700429 
>>700404
Файловую систему, пара директив компилятора для отключения ворнингов, пара мат. функций, паральльные алгоритмы в STL. Ещё вроде попросал с человеческими кортежами а не ублюдства из stl не отклонили.
Аноним 27/03/16 Вск 19:53:30 #478 №700443 
Плюсы скоро загонят меня в психушку со своими тонкостями. Что в этом коде не так?
https://ideone.com/dqZ5ze
Аноним 27/03/16 Вск 19:56:33 #479 №700448 
>>700443
std::cout << a.capacity()
перед каждым emplace и после всех emplace
Аноним 27/03/16 Вск 19:58:02 #480 №700451 
>>700443
Да, конструктор копий запили и всё поймёшь.
Аноним 27/03/16 Вск 20:01:53 #481 №700453 
>>700451
>>700448
Понятно. Спасибо.
Аноним 27/03/16 Вск 20:06:46 #482 №700458 
>>700453
Точно? Объясни тогда.
Аноним 27/03/16 Вск 20:12:23 #483 №700466 
>>700458
Сначала capacity 0.
запрос на добавление объекта
память выделяется (capacity 1)
добавляем новый объект в конец
запрос на добавление объекта
память выделяется (capacity 2)
копируем старый объект (вызывается конструктор копирования)
старые данные чистим (вызывается деструктор)
добавляем новый объект в конец
Так?
Аноним 27/03/16 Вск 20:16:05 #484 №700475 
>>700466
Да.
Аноним 28/03/16 Пнд 04:43:11 #485 №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 битный? Поиск в Интернете дал много информации, но мало практического решения, хелп анон. Блять, я пак с няшной-няшей тебе отдам, если ты поможешь
Аноним 28/03/16 Пнд 09:32:50 #486 №700781 
>>700757
Поставить 32 битный компилятор.
sudo dpkg --add-architecture i386
sudo apt-get install libkompilyator:i386
Аноним 28/03/16 Пнд 09:38:51 #487 №700787 
>>700781
>libkompilyator
Ты совсем писька?
Аноним 28/03/16 Пнд 10:27:08 #488 №700813 
>>700757
Попробуй же найти скомпилиную.
Аноним 28/03/16 Пнд 14:16:32 #489 №700936 
Сап, ебач.
Начинаю прогать на плюсах, какой софт самый годный для проганья?
Аноним 28/03/16 Пнд 14:32:00 #490 №700946 
Почитал про изменение политик лицензирования Qt и понял, что эти ребята теперь не дадут нормально делать софт бесплатно и без смс. Только если ты не будешь распространять свою программу или откроешь пользователям сорсы.
Возвращаться на MFC? Покупать за 49 баксов в месяц нет пути.
Аноним 28/03/16 Пнд 14:33:56 #491 №700949 
>>700946
Лол, а не жопой ли ты читал?
Аноним 28/03/16 Пнд 14:34:36 #492 №700951 DELETED
>>700936
Макбук и раби.
Аноним 28/03/16 Пнд 14:37:28 #493 №700953 
>>700949
почему? с 5.6 только LPGLv3 во всех компонентах, а это и квик контролы в том числе.
Аноним 28/03/16 Пнд 14:40:32 #494 №700956 
>>700953
И каким образом LGPLv3 принуждает тебя открывать сырцы своей проги, а?
Аноним 28/03/16 Пнд 14:44:15 #495 №700957 
>>700946
Для некоммерческого софта достаточно динамической линковки. Коли он коммерческий – или плати, или пиздуй обратно на mfc в 2005.
Аноним 28/03/16 Пнд 14:46:32 #496 №700959 
>>700956
Нет что ли? А что поменялось тогда?
Аноним 28/03/16 Пнд 14:46:37 #497 №700960 
>>700957
Лол, где ты взял такое?
LGPL на то и нужна, чтобы юзать свободные библиотеки в закрытом софте.
Аноним 28/03/16 Пнд 14:49:21 #498 №700963 
>>700959
Хуй знает. По большей части ничего.

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

Открывать саму прогу ты не обязан и никогда не был.
Аноним 28/03/16 Пнд 14:50:10 #499 №700964 
>>700960
Лан, а какого хуя этот петух ты? вообще набухает? Нистатическая линковка, кококо?
Запахло винапи пидором.
Аноним 28/03/16 Пнд 14:52:57 #500 №700968 
>>700957
Так вот же, ты ведь взял это откуда-то. Они какой-то тарифный план для стартапов добавили еще и 30-тидневный пробный период для ознакомления.
Аноним 28/03/16 Пнд 14:57:58 #501 №700971 
>>700968
Блять, это для коммерческой версии!
Тебе надо качать опенсорцную.
Аноним 28/03/16 Пнд 15:05:26 #502 №700975 
>>700971
Еее, теперь ты видишь разницу? Если я вдруг решу продавать даже за один рубль, уже мне нужна коммерческая версия. Это паршиво, согласись.
Аноним 28/03/16 Пнд 15:09:11 #503 №700976 DELETED
>2016
>плюсы
Аноним 28/03/16 Пнд 15:12:19 #504 №700977 
>>700975
Ты че, ебанутый?
>Если я вдруг решу продавать даже за один рубль, уже мне нужна коммерческая версия.
Сука, откуда ты это берешь?
Аноним 28/03/16 Пнд 15:15:44 #505 №700981 DELETED
>>700951
> софт
Макбук
> плюсах
раби
Аноним 28/03/16 Пнд 15:17:39 #506 №700982 DELETED
>>700981
>самый годный
>для проганья
Аноним 28/03/16 Пнд 15:24:38 #507 №700986 
>>700977
Ну, вот же
>Коли он коммерческий – или плати, или пиздуй обратно на mfc
Если коммерческий софт пишу, значит надо коммерческую лицензию, не?
Аноним 28/03/16 Пнд 15:30:59 #508 №700992 
>>700936
Emacs и Arch Linux.

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

>>700976
Пиши конкретней чтоле.
Аноним 28/03/16 Пнд 15:34:38 #509 №700996 
>>700986
> Если коммерческий софт пишу, значит надо коммерческую лицензию, не?
Прикинь? Не.

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

В твоем случае, коммерческая лицензия тебе нахуй не уперлась. Я раньше сетовал на то, что в коммерческой был рендер qml софтварный - из-за его отсутствия в опенсорце приходилось жрать qt quick1.
Но сейчас они кучу коммерческой хуйни в опенсорц перевели.
Аноним 28/03/16 Пнд 15:50:33 #510 №701005 
>>700992
А чем тогда open-source версия отличается в этом? Тем, что библиотеки можно только динамически линковать?
Аноним 28/03/16 Пнд 15:51:52 #511 №701008 
>>701005 -> >>700996
Аноним 28/03/16 Пнд 15:54:31 #512 №701010 
>>700996
>Коммерческую лицензию тебе надо если ты собрался сам Qt менять и не соблюдать LGPL. И если тебе нужны коммерческие плюшки. Например, boot2qt или как он там.
Тогда норм.
Аноним 28/03/16 Пнд 17:19:08 #513 №701085 
Сразу к делу. Как в дебаге вижуал студио посмотреть значение переменной, которая инициализируется в последней строчке области видимости? Брейкпоинт на ней - она ещё не инициализирована, шаг вперёд - уже вышла из скоупа. Есть путь адекватнее добавления холостой строки для того, чтобы на ней стояла каретка дебага?
Аноним 28/03/16 Пнд 17:46:44 #514 №701099 
>>701085
Нету. Один из случаев полезности ассертов.
Аноним 28/03/16 Пнд 17:50:14 #515 №701102 
>>701085
Что-то с кодфлоу не так. Если переменная локальная, то она нахуй не нужна, иначе она доступна вне скоупа.
Аноним 28/03/16 Пнд 18:10:41 #516 №701133 
>>701102
Что, после каждого вызова функции брейкпоинт ставить?
Аноним 28/03/16 Пнд 18:59:01 #517 №701200 
Какой петух засунул в шапку codelite? Эта хуйня даже CMake без плясок с бубном открыть не может.
Аноним 28/03/16 Пнд 19:53:51 #518 №701294 
>>701133
Тебе результат функции нужен? Студийный отладчик и gdb умеют показывать значение return
Аноним 28/03/16 Пнд 20:15:55 #519 №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).

Что за ебаные формулировки? Как понимать "значение смещение, относительное к параметру пути"?
Аноним 28/03/16 Пнд 20:16:17 #520 №701322 
>>701321
>значение смещение
смещения
Аноним 28/03/16 Пнд 20:17:59 #521 №701326 
>>701321
Смещение относительно направления
Ты можешь указать смещение относительно начала, конца и текущей позиции.
Аноним 29/03/16 Втр 00:59:34 #522 №701647 
14592023743960.jpg
Как же хочется перекатика.
Аноним 29/03/16 Втр 01:16:06 #523 №701655 
>>701647
>Как же хочется перекатика.
Ну так делай епта
Аноним 29/03/16 Втр 01:16:52 #524 №701656 
>>701655
Я не ОП.
Аноним 29/03/16 Втр 06:38:29 #525 №701695 
>>696596
То есть приблизились по зашквару и быдланству к пхп
Аноним 29/03/16 Втр 07:06:11 #526 №701697 
>>701695
Ты не понимаешь, у них все быстро из-за популярности технологий и кучи неофитов, мы же тащим за счет неплохого контента, который привлекает не только студентов которые идут на хуй со своими лабами.
Аноним 29/03/16 Втр 08:23:52 #527 №701709 
>>701099
И как в таком случае верно заасертить? другой анон
Аноним 29/03/16 Втр 08:31:29 #528 №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 попробуй. Может это спасет меня?
Аноним 29/03/16 Втр 09:04:10 #529 №701720 
>>701712
Насчет ide: пользуйся CMake и попробуй все ide популярные.
Аноним 29/03/16 Втр 09:15:07 #530 №701725 
Кто-нибудь может пояснить за ассемблерные вставки на C++ в вижуал студио?
Аноним 29/03/16 Втр 09:16:58 #531 №701726 
>>701725
Поясняю, не нужны
Аноним 29/03/16 Втр 09:19:43 #532 №701727 
14592323838760.png
>>701726
Как мне заполнить массив в асм вставке числами от 0 до 99, юморист?
Аноним 29/03/16 Втр 09:22:38 #533 №701728 
>>701727
Ну смотри, выделяешь весь блок и жмёшь бэкспейс, затем пишешь нормальный код на C++
Аноним 29/03/16 Втр 09:25:18 #534 №701729 
>>701728
И своему преподу я как это объясню?
Аноним 29/03/16 Втр 09:44:13 #535 №701735 
>>701729
Скажешь, что он совковый дегенерат, а за ассемблерные вставки в 2016 ссут в ротешник

> Лабы идут нахуй
Аноним 29/03/16 Втр 09:44:24 #536 №701736 
>>701729
лабы идут нахуй ему говоришь и все

>>701720
у меня в репах кодблок эклипс и кьют.
есть еще что-то?
Аноним 29/03/16 Втр 09:46:09 #537 №701737 
>>701735
мне кажется в 2016ом асм вставки в крестах нужны чтобы зажечь светодиод по шине pci-e в куллере видеокарты.
двачюю крч
Аноним 29/03/16 Втр 09:47:28 #538 №701739 
>>701737
Для кулеров видеокарты есть говняшная и чистый ассемблер, кресты там вообще не всрались
Аноним 29/03/16 Втр 09:55:25 #539 №701743 
>>701739
я погляжу как ты на асме будншь многопоточный рендер писать...
кресты это достаточно низкоуровнневый язык чтобы ебнуть массив данных на шинку и порулить ими на внешнем устройстве а не внутри православного сипию/озу.
чистый асм нужен почти нигде. разве что при написании ос драйвера к фс и бла бла. но есть граб => чистый асм только для великов
Аноним 29/03/16 Втр 09:58:26 #540 №701745 
>>701743
> чистый асм нужен почти нигде.
Тем более же. Кресты и говняшная покрывают весь спектр потребностей.
Аноним 29/03/16 Втр 10:00:05 #541 №701749 
>>701745
> говняшная.
что ты под этим имеешь ввиду?
Аноним 29/03/16 Втр 10:10:57 #542 №701768 
>>701749
Си
Аноним 29/03/16 Втр 10:20:55 #543 №701777 
>>701768
открою тайну.. C++ обратносовместим с С
Аноним 29/03/16 Втр 10:26:43 #544 №701782 
>>701777
Да только всё равно 99% нативной хуйни пишут на чистом си.
Аноним 29/03/16 Втр 10:27:30 #545 №701784 
>>701782
нахера тебе классы в драйвере то?
Аноним 29/03/16 Втр 10:30:48 #546 №701787 
>>701784
> нинужна
Аноним 29/03/16 Втр 10:35:24 #547 №701791 
>>701736
NetBeans?
Аноним 29/03/16 Втр 10:36:18 #548 №701793 
>>701787
вероятность того сто ты билдишь не кланг а кланг++ и не замечаешб
Аноним 29/03/16 Втр 11:04:13 #549 №701808 
>>701787
Вот именно, что нинужна, по крайней мере в любом kernel mode драйвере они нахуй не упали, когда нужен переносимый ассемблер, с прямым как профиль твоей мамаши поведением.
Аноним 29/03/16 Втр 11:08:15 #550 №701813 
>>701791
не пробовал.. ща пробну
Аноним 29/03/16 Втр 11:09:34 #551 №701814 
>>701727
А я бампану свой вопрос. Заебали обсуждать ебаный асм, просто помогите и я съебу.
Аноним 29/03/16 Втр 11:15:37 #552 №701820 
>>701727
Берешь такой, значит, пишешь на C++ сначала, а потом ДИЗАССЕМБЛИРУЕШЬ и КОПИПАСТИШЬ всю эту срань типа ты такой ВСТАВКУ НАПИСАЛ САМЫЙ УМНЫЙ В КЛАССЕ ПРЕПОД ПОСТАВИЛ 5 И ПОХЛОПАЛ ПО ПЛЕЧУ
Аноним 29/03/16 Втр 11:37:24 #553 №701828 
>>701712
еще что то подскажите баааамп
Аноним 29/03/16 Втр 12:11:22 #554 №701844 
>>701321
Джотаттис, пару дней назад просматривал потоки, там заебись написано, с примерам. А вообще этот интерфейс со смещениями еще из C идет, поэтому в C++ обычно такие моменты не объясняют.
Аноним 29/03/16 Втр 12:38:58 #555 №701865 
>>701844
>Джотаттис
Сколько вариантов написания его фамилии я видел. И джосатис, и джосьютис, и теперь джотаттис. Давайте выясним правильное написание и будем использовать его в этом треде.
Аноним 29/03/16 Втр 12:40:57 #556 №701869 
>>701865
Ты ещё правильный вариант произношения имени страуструпа предложи обсудить.
Аноним 29/03/16 Втр 12:44:28 #557 №701874 
>>701869
А что ещё делать в бамплимите?
Аноним 29/03/16 Втр 12:44:45 #558 №701875 
>>701865
> правильное написание
Josuttis
Аноним 29/03/16 Втр 12:49:21 #559 №701878 
>>701875
На forvo нет, но нашел это.https://www.howtopronounce.com/josuttis/ С телефона не могу прослушать. Ещё можно на офсайте и вики посмотреть.
Аноним 29/03/16 Втр 13:30:01 #560 №701896 
Есть ли какие-нибудь стандартные методы шифрования в Qt? Не хочется класс писать ручками.
Аноним 29/03/16 Втр 13:45:13 #561 №701912 
>>701874
Обсуждать D.
Аноним 29/03/16 Втр 13:57:02 #562 №701924 
>>701808
Манямирок. Нужен минимальный оверхед, потому и берут си.
Аноним 29/03/16 Втр 14:00:37 #563 №701929 
>>701896
> стандартные методы шифрования
Ишь что удумал, пердолься с опенссл, это тебе не джява бездуховная.
Аноним 29/03/16 Втр 14:02:43 #564 №701931 
>>701929
Сильно геморрно?
Аноним 29/03/16 Втр 14:07:19 #565 №701936 
>>701924
Манямирок – это хуйня, которую ты написал, повторив смысл моего поста.

В самих плюсах по сравнению с си кроме виртуальных функций и ритти оверхеда почти нету.
Аноним 29/03/16 Втр 14:11:51 #566 №701942 
>>701931
http://hayageek.com/rsa-encryption-decryption-openssl-c/

>>701936
Таблетки принял? Оверхед это лишнее потребление памяти/скорости, а ты кукарекаешь что классы не нужны и лучше жрать байтопортянки.
Однако если бы можно было писать йоба-функциональный-высокоуровневый код не теряя в ресурсах, то все бы делали именно так, а за байтоебство ссали на еблет.
Аноним 29/03/16 Втр 14:15:37 #567 №701945 
>>701942
>http://hayageek.com/rsa-encryption-decryption-openssl-c/
Ебаный в рот, лучше XOR хуевину напишу руками.
Аноним 29/03/16 Втр 14:20:23 #568 №701947 
>>701945
Только оберини во что-нибудь а-ля XorCryptoHuinya от YobaCryptoHuinya. Как-нибудь потом реализуешь SslCryptoHuinya от YobaCryptoHuinya.
Аноним 29/03/16 Втр 14:22:28 #569 №701949 
>>701947
Хорошо.
Аноним 29/03/16 Втр 14:37:44 #570 №701960 
>>701942
>Однако если бы можно было писать йоба-функциональный-высокоуровневый код не теряя в ресурсах, то все бы делали именно так, а за байтоебство ссали на еблет.
Если ты бы не был таким ебланом, то ты не писал такой хуйни.
sageАноним 29/03/16 Втр 15:03:53 #571 №701992 
>>701936
неистово арчюю тебя

>>701924
бля ты пиздец как драйвер пишешь?
>#include<boost/dotnet>
>begin кудахтахтах; boost::кукареку; end;
тебя не говорили что си и кресты и что прога на си/крестах будет
1 -- оптимизированнее
2 -- быстрее
3 -- девелоперы gnu ебашат компилятор чтобы он был охуенней твоих "чистых" masm
4 -- байтоебит на си/крестах онли линковщик и то слабее чем ты наговнишь в MASM своём, сажа тебе
Аноним 29/03/16 Втр 17:24:06 #572 №702119 
>>701712
> я смотрю на С++ как на мощный инструмент круче которого нет
Blub paradox as is.
Аноним 29/03/16 Втр 17:35:16 #573 №702135 
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/702133.html
https://2ch.hk/pr/res/702133.html
https://2ch.hk/pr/res/702133.html
Аноним 29/03/16 Втр 23:34:58 #574 №702624 
>>701992
> наговнишь в MASM своём
Ясно, иди таблетки пей, шизофреник
Аноним 30/03/16 Срд 04:09:51 #575 №702777 
>>702624
ты еблан? я не юзаю это гавно
 #576 №69925
 DELETED
>>699451
На рутрекере же. Личуй - по ip тебя вычислю. 699251
Аноним 31/03/16 Чтв 17:02:11 #577 №704107 
>>696401 (OP)
Люблю кресты и лично Страуструпа за хорошие книжки и веселые задания. А ещё у вас в шапке стихи пишут. Хороший тред.
мимопроходилв/б/
comments powered by Disqus

Отзывы и предложения