М.Двач / Программирование

Двач.hk не отвечает.
Вы видите копию треда, сохраненную 19 апреля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

422 Кб, 645x644

Оффициальный™ традиционный® C++ тред #27 23 Мар, 18:58 #696401 В конец треда | Веб

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

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

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

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

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

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

TL;DR

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

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

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

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

"Как мне сделать Х на чистых крестах без библиотек" идут на хуй

Все идут на хуй

Хейтер сосет члены на пару со своей мамашей

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

FAQ

Мотивация

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

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

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

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

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

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

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

Литература

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

Для нюфань

Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется:

Автор(ы)

Название

Год

Ссылка

Стэнли Липпман, Жози Лажойе и Барбара Му

Язык программирования C++

2014

https://goo.gl/kVaela

Стивен Прата

Язык программирования C++

2012

https://goo.gl/z7kA8u

Бьерн Страуструп

Программирование. Принципы и практика использования C++

2011

https://goo.gl/nAFUXa

Кроме того, есть еще пара старых добрых учебников для ньюфагов. Часть информации в них устарела, но многие считают, что это компенсируется их большей, по сравнению с современными учебниками, понятностью:

Автор(ы)

Название

Год

Ссылка

Герберт Шилдт

C++. Базовый курс

2010

https://goo.gl/qMLAFl

Роберт Лафоре

Объектно-ориентированное программирование в C++

2004

https://goo.gl/QvjR6x

Best practices

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

Автор(ы)

Название

Год

Ссылка

Скотт Мейерс

Эффективное использование C++

2005

https://goo.gl/wsDXGz

Скотт Мейерс

Наиболее эффективное использование C++

1996

https://goo.gl/tHa0tO

Скотт Мейерс

Эффективный и современный C++

2015

https://goo.gl/Im8VYQ

Скотт Мейерс

Эффективное использование STL

2002

https://goo.gl/QtS8Dc

Герб Саттер и Андрей Александреску

Стандарты программирования на языке C++

2005

https://goo.gl/Cpk4YR

Проектирование

Следует пролистать все перед переходом от лаб к написанию настоящего софта.
Последний пункт есть квинтэссенция ГИБКОСТИ, поэтому стоит прочитать его в любом случае, чтобы охуеть от того, как можно делать:

Автор(ы)

Название

Год

Ссылка

Ален Голуб

Веревка достаточной длины, чтобы выстрелить себе в ногу

2001

https://goo.gl/fBmuxp

Джеймс Коплиен

Программирование на C++

2005

https://goo.gl/Y1WGdU

Андрей Александреску

Современное проектирование на C++

2002

https://goo.gl/e1V5BC

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

Справочники

Наиболее детальные описания языка. Удобно использовать как референс, читать от корки до корки не обязательно:

Автор(ы)

Название

Год

Ссылка

Бьерн Страуструп

Язык программирования C++

2013

https://goo.gl/XkAiOX (на ангельском)

Бьерн Страуструп

Язык программирования C++

2010

https://goo.gl/iZBDiV <устарело>

Кроме того, на ангельском доступны стандарты C++11, C++14, а также последняя версия черновика стандарта C++17.

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

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

Автор(ы)

Название

Год

Ссылка

Герб Саттер

Решение сложных задач на C++

2002

https://goo.gl/iWaa6S

Герб Саттер

Новые сложные задачи на C++

2004

https://goo.gl/4nn512

Бьерн Страуструп

Дизайн и эволюция C++

1994

https://goo.gl/FqbPwo (для легкого чтения)

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

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

Автор(ы)

Название

Год

Описание

Ссылка

Энтони Уильямс

Параллельное программирование на C++ в действии

2012

Про использование std::thread
и других фич последних стандартов
для разработки многопоточных приложений

https://goo.gl/qJfBkD

Николаи Джоссатис

C++. Стандартная библиотека

2012

Детальный справочник по STL и
остальным частям стандартной библиотеки

https://goo.gl/PEyiMH

Дэвид Абрахамс и Алексей Гуртовой

Шаблонное метапрограммирование на C++

2009

"Мы встроили в шаблоны C++ функциональный
язык программирования, чтобы ты мог
программировать, пока программируешь"

https://goo.gl/isSt7j

Дэвид Вандевурд и Николаи Джоссатис

Шаблоны C++. Справочник разработчика

2003

После прочтения этой книги тебя не приведут
в ужас даже исходники boost::MPL

https://goo.gl/0M4NpG

Роберт Седжвик

Фундаментальные алгоритмы на C++

2001

Стандартный курс алгоритмов с примерами
на C++. Для его чтения не нужно знать
мертвые языки, в отличие от этого вашего Кнута

https://goo.gl/4jwxSl (части 1-4),
https://goo.gl/yDuQgG (часть 5)

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

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

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

Годный блог, в котором все просто и понятно тян не нужны кококок борщ

Блог с хорошо расписанными фичами новых стандартов

Краткие описания библиотечных функций и контейнеров - на русском или более подробно на ангельском

Блог Герба Саттера (на ангельском)

Блог Скотта Мейерса (на ангельском)

Блог еще одной тянки, много о Qt и оптимизации (на ангельском)

Куча других блогов (на ангельском)

Большой FAQ по C++ (на ангельском)

Видео с CppCon (на ангельском)

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

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

Платформа

Название

Описание

Ссылка

Windows

Microsoft™ Visual Studio®

Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика. По ссылкам справа можно скачать бесплатную редакцию последнего выпуска (2015 Community Edition). Кроме того, существуют редакции с расширенными возможностями (Professional и Enterprise). Они стоят сотни денег, но если ты студент вуза, подписанного на Dreamspark Premium, то ты можешь получить их безвоздмездно (то есть даром). Многим новичкам интерфейс студии кажется чересчур сложным, так что обязательно прочти этот гайд, если у тебя возникают проблемы с компиляцией хэллоуворда

https://goo.gl/qgAAc6 (русская версия) или
https://goo.gl/WIPW9L (ангельская версия)

Все

CodeLite

Простая, легковесная, кроссплатформенная, швабодная IDE. Менее навороченная, чем студия, но среди бесплатных вне конкуренции. Вероятно, это наилучший вариант для новичка с *nix. Под Windows же требует чуть больше ебли с установкой компилятора MinGW/LLVM

http://codelite.org/,
"sudo aptitude install codelite codelite-plugins"
для установки под *nix

Все

CLion

IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию на год по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует

https://www.jetbrains.com/clion

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

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

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

Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio

Более навороченный, но коммерческий аналог

Встроенный в clang статический анализатор

Детектор утечек для Visual Studio. Предельно прост в прикручивании

На порядок более мощная и сложная утилита для *nix, служащая тем же целям

Гугловские утилиты для контроля корректности кода

Гугловский фреймворк для автоматизации тестирования

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

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

boost

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

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

Скачать бесплатно без смс

Краткие аннотации к большинству компонентов

Документация к некоторым компонентам

Документация (на ангельском)

Литература:

Автор(ы)

Название

Год

Ссылка

Ариндам Мукерджи

Learning Boost C++ Libraries

2015

https://goo.gl/b0gPN1 (на ангельском)

Qt

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

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

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

Cкачать бесплатно без смс

Документация к 4.8

Более полная документация к обеим версиям (на ангельском)

Литература:

Автор(ы)

Название

Год

Ссылка

Макс Шлее

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

Предыдущие треды на архиваче

https://arhivach.org/thread/94971/

https://arhivach.org/thread/94972/

https://arhivach.org/thread/99414/

https://arhivach.org/thread/100995/

https://arhivach.org/thread/105148/

https://arhivach.org/thread/109335/

https://arhivach.org/thread/112797/

https://arhivach.org/thread/114519/

https://arhivach.org/thread/117109/

https://arhivach.org/thread/120019/

https://arhivach.org/thread/122683/

https://arhivach.org/thread/124637/

https://arhivach.org/thread/125532/

https://arhivach.org/thread/127327/

https://arhivach.org/thread/128133/

https://arhivach.org/thread/134437/

https://arhivach.org/thread/135285/

https://arhivach.org/thread/139690/

https://arhivach.org/thread/144812/

https://arhivach.org/thread/147540/

https://arhivach.org/thread/149983/

https://arhivach.org/thread/151271/

https://arhivach.org/thread/153304/

https://arhivach.org/thread/156131/

https://arhivach.org/thread/156310/

https://arhivach.org/thread/157411/

Старые ненумерованные треды

https://arhivach.org/thread/45477/

https://arhivach.org/thread/48611/

https://arhivach.org/thread/60085/

https://arhivach.org/thread/66322/

https://arhivach.org/thread/69413/

https://arhivach.org/thread/73221/

https://arhivach.org/thread/77999/

https://arhivach.org/thread/79194/

https://arhivach.org/thread/82038/

https://goo.gl/vvs9GP/

https://goo.gl/ZnBsYt/

Отдельные Qt-треды

https://arhivach.org/thread/15387/

https://arhivach.org/thread/65590/

Ответы>>696406>>696416>>696422>>696450>>696678>>696784>>704107

23 Мар, 19:00 #2 #696406

>>696401 (OP)
Ахаха. Типа крестовый ход.

Ответы>>696420

23 Мар, 19:07 #3 #696411

https://habrahabr.ru/company/infopulse/blog/279927/

Ответы>>696446

23 Мар, 19:15 #4 #696416

>>696401 (OP)
Топовый стих!

23 Мар, 19:24 #5 #696420

>>696406
Ещё круче. Это ДЕТСКИЙ крестовый поход.

23 Мар, 19:27 #6 #696422

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

Ответы>>696424>>696596

23 Мар, 19:29 #7 #696424

>>696422
Где ты 17 увидел?

2799 Кб, 1789x2047

1020 Кб, 1841x893

23 Мар, 19:32 #8 #696427

Поможете с задачкой? Мне бы просто идею понять.

23 Мар, 19:54 #9 #696446

>>696411
https://botondballo.wordpress.com/2016/03/21/trip-report-c-standards-meeting-in-jacksonville-february-2016/

Ответы>>696449>>696539

23 Мар, 19:56 #10 #696448

Ребят, в vs2015 куда делать окошко в котором я мог бы посмотреть сколько у меня ошибок и предупреждений?
Раньше там ещё можно было не показывать предупреждения или ошибки чтобы навигация по ним была проще.

Ответы>>696496

23 Мар, 19:56 #11 #696449

>>696446
Тут расписано что уже вошло в стандарт (список не полный), что не вошло и почему, и что возможно войдёт в июне на встрече в Oulu.

23 Мар, 19:57 #12 #696450

>>696401 (OP)
> обгвидок
Кто такой? Чем знаменит?

Ответы>>696454

23 Мар, 19:59 #13 #696454

>>696450
Пистон

23 Мар, 19:59 #14 #696455

> 19:56:48
> 19:56:52
> 19:57:30
Да вы охуели.

Ответы>>696461

23 Мар, 20:02 #15 #696461

>>696455
For you

23 Мар, 20:27 #16 #696496

>>696448
View -> Error list

Ответы>>696513

76 Кб, 442x331

23 Мар, 20:27 #17 #696499

Ага. Это опять я (ну тот, который из PHP хочет в C++ перекат сделать). Посоны, а поясните за указатели/ссылки? Что это за хуита, как ими пользоваться и зачем они вообще нужны?

Ответы>>696546

23 Мар, 20:37 #18 #696513

>>696496
Сенькс.

23 Мар, 21:11 #19 #696539

>>696446
Нахуя 2Д? Решили догнать и перегнать турбопаскаль?

23 Мар, 21:16 #20 #696546

>>696499
А в книге что про это говорят?

Ответы>>696611

23 Мар, 21:45 #21 #696581

Но вот. Мод хуй. Я почти уловил её прочитать нашу шапку. А ты вмешался и удалил ту шлюху. И кто теперь шапку читать будет?

Ответы>>696583>>696588

23 Мар, 21:51 #22 #696583

>>696581
я прочла и ощутила свою ничтожность )

78 Кб, 836x1024

23 Мар, 21:59 #23 #696588

>>696581
Это зелень, он из соседнего треда пришел.

Ответы>>696846

23 Мар, 22:04 #24 #696596

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

Алсо, возрадуемся, братья. В этом треде мы обогнали жабу и вышли на первое не считая веб-макак место по количеству тредов!

Ответы>>701695

15 Кб, 442x331

23 Мар, 22:12 #25 #696611

>>696546
Говорят, что можно выделить переменную, а потом сделать еще одну переменную, которая будет ссылкой на ячейку памяти той первой переменной. Типа синоним переменной или типа того. Только я все равно нихуя не понял. Если у меня уже есть переменная, с помощью которой можно попасть в ячейку памяти, зачем мне еще одна переменная, которая в ту же ячейку будет указывать?

Ответы>>696615>>696633>>696640

23 Мар, 22:15 #26 #696615

>>696611
Говорят, что кур доят.

23 Мар, 22:19 #27 #696619

Я сделал класс, в нем ссылка на объект этого же класса, как в прошлом треде сказали мне, вот, потом пишу туда через & объект этого класса, потом хочу забрать через *, вроде забираю, пытаюсь из этого объекта взять значение x, а мне выдает не то, что было, а -858993460 . Что такое?

Ответы>>696649>>696772>>696781

23 Мар, 22:28 #28 #696633

>>696611
Емнип, в пыхе надо писать &tvoyamamka, чтобы оперировать самой переменной, а не ее значением. Вот здесь в точности то же самое, указатель это как бы "сама переменная", ее адрес, а не значение.

Ответы>>697486

23 Мар, 22:32 #29 #696640

>>696611
Вот ты читаешь книгу, тебе там пишут: "Существует хуйнянейм. С ней ты можешь делать то-то, то-то, то-то." Дают простенький пример. И ты задаёшся вопросом: "А зачем мне хуйнянейм в этом примере если и без неё обойтись можно?" Вот в место того что-бы считать себя умнее автора учебника, ты должен запомнить, что хуйнянейм существует, запомнить её особенности, и продолжить читать учебник. В последующих главах, материал и примеры усложняются, автор начинает использовать то, о чём было рассказано в предыдущих. И возможно, тогда, ты поймёшь зачем оно нужно.

23 Мар, 22:39 #30 #696649

>>696619
Без кода тебе нихуя не ответят.

Ответы>>696772

23 Мар, 23:02 #31 #696678

>>696401 (OP)
Вопрос по MFC.
Я правильно понял, что формошлёпствовать можно только добавляя элементы в диалоговые окна и меню, а для того, чтобы добавить кнопку в основное окно надо всегда вписывать её руками?

Ответы>>696694

23 Мар, 23:22 #32 #696694

>>696678
> 2017
> MFC

Ответы>>696702>>696783

23 Мар, 23:25 #33 #696697

Как будет быстрее передать переменную в функцию? Через ссылку или указатель?

Ответы>>696698>>696727>>696741

23 Мар, 23:27 #34 #696698

>>696697
Одинаково.

23 Мар, 23:31 #35 #696702

>>696694
Ну а хули, проекты на mfc никто с нуля переписывать не будет.

Ответы>>696720>>696783

23 Мар, 23:58 #36 #696720

>>696702
Вся суть крестопидоров. Нужны только чтобы деньги экономить не перенося проект на эфективные и современные ЯП.

Ответы>>696724>>696732>>696735

24 Мар, 00:03 #37 #696724

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

Ответы>>696725>>696726

24 Мар, 00:03 #38 #696725

>>696724
Haskell

24 Мар, 00:04 #39 #696726

>>696724
Swift

24 Мар, 00:09 #40 #696727

>>696697
Одно и то же.
Ссылка - синтаксический сахар над указателями.

24 Мар, 00:12 #41 #696732

>>696720
Отрок услыхал звон, да не понял, где он.

24 Мар, 00:15 #42 #696735

>>696720
C++ современный. Последний стандарт в 14-м году вышел, вот-вот стандарт 17-го года выйдет.
Про эффективность я уже молчу.

Ответы>>696739

24 Мар, 00:29 #43 #696739

>>696735
>вот-вот стандарт 17-го года выйдет
надо эту хуйню убрать из шапки, чтобы не позориться. такое язык даже стандартом не повернется назвать

24 Мар, 00:43 #44 #696741

>>696697
Зависит от того, может ли у тебя быть null - состояние.
Если нет - по ссылке. Если можно обойтись без указателей - то лучше обойтись без них.

Ответы>>696754

24 Мар, 00:55 #45 #696754

>>696741
И снова платиновые вредные советы. Уже сколько раз говорилось: указатели могут использоваться для передачи in-out параметров, чтобы не перепутать их со ссылочными обычными. Это, блядь, стандартная практика.

Ответы>>696755>>696784

24 Мар, 00:58 #46 #696755

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

Ответы>>696756

24 Мар, 00:58 #47 #696756

>>696755
Да и банально использовать переменную без сраных звездочек и амперсандов куда удобнее.

24 Мар, 02:03 #48 #696772

>>696619
Ну памагити
>>696649
Много копировать, выскажи предположения.

Ответы>>696774

24 Мар, 02:06 #49 #696774

>>696772
Сократи до рабочего минимума и кидай код. Я нихуя не понял из того, что ты сказал.

Ответы>>696789

24 Мар, 02:27 #50 #696781

>>696619
Хуйню делаешьили пишешь. Кидай код.

Ответы>>696789

24 Мар, 02:29 #51 #696783

>>696694
> 17

>>696702
Да вот хуй знает. Почему бы и нет? Зачем тащить неподдерживаемое говно с собой?

24 Мар, 02:32 #52 #696784

>>696754
>>696401 (OP)
Алсо, ОП, ссылочку на какой-нибудь(гугловский) стайлгайд в шапочку.

24 Мар, 02:54 #53 #696789

>>696781
>>696774
Я переделал это все в ссылки и новый вопрос и вот код сразу

class yoba {
public:
yoba &yobject;
};

int main() {

yoba yobishe;

yoba yobatest;
yobatest.yobject = yobishe;

};

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

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

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

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

};

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

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

Ответы>>696797>>697513

24 Мар, 03:06 #54 #696797

>>696789
Пиздос - то есть ты создал ссылкочлен, но не придумал что в нем хранить?

Это как? Что за йоба?

Ответы>>696799

24 Мар, 03:08 #55 #696799

>>696797
Я придумал, другие объекты класса йоба. То есть в объекте класса йоба содержится ссылка на другой объект класса йоба, понимаешь? Но они-то инициализируются после того как я сделаю класс.

Ответы>>696800

24 Мар, 03:10 #56 #696800

>>696799
Никак. В твоем случае подразумевается вариант null-состояния, ссылки в него не умеют.

Твой вариант - указатели, по умолчанию нулевые.

Ответы>>696801>>696802

24 Мар, 03:11 #57 #696801

>>696800
Хотя можешь попробовать по умолчанию сделать ссылки, замкнутые на this. Хуй знает, скомпилится ли.

24 Мар, 03:22 #58 #696802

>>696800
Окк, смотри, делаю указатели, разыменовываю где надо.

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

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

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

error C4700: использована неинициализированная локальная переменная "yobatest"
Как так?

Ответы>>696803

24 Мар, 03:24 #59 #696803

>>696802
Ну йобана, проебал все.

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

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

int main() {

yoba yobishe;
yobishe.test1 = 1;
yobishe.test2 = 2;
yoba yobatest;
звездочкаyobatest.yobject = yobishe;
}

Ответы>>696806>>696903

24 Мар, 03:32 #60 #696806

>>696803
Блять, я нихуя не понял.
Нахуя тебе вообще оператор присваивания перегружать?

24 Мар, 03:53 #61 #696809

тест
[code]
int main()
{
return 0;
//тест
}
[/code]

24 Мар, 08:57 #62 #696846

>>696588
Из какого?

24 Мар, 09:00 #63 #696847

Ананасы, помогайте. Чет мне с этого богомерзкого Qt стало еще пуще припекать, и тперь не из-за всратых тредов его, а из-за GUI, который у него основная пушка.
Так вот в чем дело:

class CLS1: public QObject {
Q_OBJECT

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

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

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

private:
std::shared_ptr<DLG1> _dialog;

}

class DLG1 : public QDialog {
Q_OBJECT

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

}

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

Ответы>>696849

24 Мар, 09:01 #64 #696848

Добавьте в шапку что надо чтобы пойти джуном.

Ответы>>696850

24 Мар, 09:06 #65 #696849

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

И да - за std::sharedptr в Qt проге принято больно бить, там же есть QSharedPointer, ну ебана!

Ответы>>696883

24 Мар, 09:11 #66 #696850

>>696848
Уверен, что хочешь это знать?

Ответы>>696851

24 Мар, 09:14 #67 #696851

>>696850
А какие вообще рамки джун/неджун?

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

24 Мар, 10:35 #68 #696883

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

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

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

24 Мар, 10:39 #69 #696884

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

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

>Да у меня в наследство от прошлого досталась программа, изобилующая std::vector/list ... - это тоже плохо?
Лично я в Qt-коде никогда их не использовал. Вектор/Лист еще похуй, (хотя QList уж точно std::list'у за щеку по удобству накидает), а вот сравнивать std::set и QSet без припадков истерического смеха уже невозможно.

Ответы>>696887>>696941

24 Мар, 10:44 #70 #696887

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

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

24 Мар, 10:46 #71 #696888

>Таки вот и не вышел этот invokemethod, даже когда я в своем CLS1 его определил слотом.
У меня фейспалм. Ты должен его поставить там, где сейчас делаешь emit.
И вызывать kickMe. И делать это в queue-режиме.

Ответы>>696893

24 Мар, 10:54 #72 #696893

>>696888
Я так и сделал и вышло ровно так же, как если бы я вызывал напрямую.

Ответы>>696894

24 Мар, 10:56 #73 #696894

>>696893
Код в студию. Я тебе не верю, где-то ты пиздишь/проебался.
Еще раз - когда сигнал дергает слот, он делает именно invokeMethod.

Ответы>>696896

24 Мар, 10:59 #74 #696896

>>696894
Таки да, пропизделся. На QueuedConnection внимания не обратил, а было DirectConnection.

24 Мар, 11:08 #75 #696903

>>696803
http://ideone.com/hbwCxA
А ссылки указывающие на свой собственный класс оказываются слишком ограничены по функционалу. Ссылка может быть только константной по смыслу, так как наивная реализация оператора присваивания приводит к бесконечному циклу. http://ideone.com/7BOXIa Можно наверное реализовать оператор присваивания через new с размещением, но хуй знает сколько при этом ног может быть отстрелено и нахуй таким заниматься когда есть указатели.

24 Мар, 12:23 #76 #696938

Ананасы, такой вот вопрос.
Пишу менеджер текстур и встал вопрос как лучше сделать:
Сейчас так
Есть мапа в которой ключ это хеш строки имя текстуры, а значение это индекс в векторе.
Ну и сам вектор в котором хранятся текстуры.

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

Ответы>>696944>>696950>>696988>>697032

24 Мар, 12:25 #77 #696941

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

Ты лалка потому что. В STL используется функциональный подход, поэтому для всех операций -, +, |, & есть свои аналоги в алгоритмах. Не то, чтобы это было сильно удобнее чем ООП подход, но неправильно говорить, что в STL контейнеры УРЕЗАННИЕ АХАХА ЛОЛ

Ответы>>696949

24 Мар, 12:28 #78 #696944

>>696938
сделай std::map<std::string, Texture> и не парься.

24 Мар, 12:32 #79 #696949

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

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

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

Ответы>>696977

24 Мар, 12:33 #80 #696950

>>696938
>Может заменить значение на сами текстуры и обойтись без вектора?
Да, есть. А ещё есть смысл заменить map на unordered_map перформанса ради.

83 Кб, 400x300

24 Мар, 13:04 #81 #696971

Когда говно плюс наконец приведут в порядок?

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

Ответы>>696973>>696974>>697071>>697127

24 Мар, 13:07 #82 #696973

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

24 Мар, 13:07 #83 #696974

>>696971
> unsigned float

24 Мар, 13:09 #84 #696977

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

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

Ответы>>696987

24 Мар, 13:30 #85 #696987

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

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

>К тому же, кто мешает написать глобальный оператор?
Из-за такой хуйни кресты и превращаются в говно. Вместо того, чтобы заниматься программой, все пишут велосипеды, и у каждого он свой. Нет строк? Что мешает написать свои строки? И вот и имеет char*, std::string, QString - и без сомнения, список этим не исчерпывается.

Ответы>>697033>>697040>>697203

24 Мар, 13:31 #86 #696988

>>696938
Смотря как ты работаешь с текстурами. Может тебе вообще по именам к ним надо обращаться только при загрузке, когда данные инициализируются. В векторе их имеет смысл хранить только если ты итерацию по ним часто делаешь, и тебе нужна производительность за счет локальности данных. Если нет - то проще выделять память для каждой текстуры отдельно, а в хэшмепе хранить указатели.

24 Мар, 14:34 #87 #697032

>>696938
Не стоит в мапе хранить большие объекты, у мапа большой оверхед на элемент.

Ответы>>697135

24 Мар, 14:37 #88 #697033

>>696987
>QString
Нестандарт.
>char *
Наследие сей, нерекомендуемое к использованию.

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

Ответы>>697075

24 Мар, 14:49 #89 #697040

>>696987
>использование map/reduce
std::transform и std::accumulate в чистом виде.
>отказ от циклов в пользу рекурсии
Хвостовая рекурсия есть. Обычная рекурсия наносит ущерб производительности и не должна быть основным инструментом в крестах.
>отказ от переменных
Функции из одного return'а никто не отменял.
>чистые функции
Хочешь чистые функции - пишешь чистые. Никто насильно тебе побочных эффектов не напихает за щеку.

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

24 Мар, 15:31 #90 #697071

>>696971
Давно unsigned стал qualifier-ом?

Ответы>>697097

32 Кб, 565x365

24 Мар, 15:33 #91 #697073

Подскажите, где достать много хороших программок с подробным комментированием и описанием. Отлично будет, если это написание программы с нуля с планированием и т.п.
Что-нибудь вроде древней рассылки Бобровского http://subscribe.ru/archive/comp.soft.prog.prognull.game/200507/22073836.html , по созданию простой rpg-шки,
или видосов на трубе, типа своего Марио https://www.youtube.com/watch?v=6OHMFwQK44k. Интересуют от игр типа морской бой и выше.

Ответы>>697076

24 Мар, 15:37 #92 #697075

>>697033
> А если кто пишет велосипеды - это его проблемы, а не языка.
Нет, это проблема языка (точнее, его стандартной библиотеки). Она не предоставляет строки, удовлетворяющие всех.

Ответы>>697079

24 Мар, 15:45 #93 #697076

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

24 Мар, 15:47 #94 #697079

>>697075
Это проблема наследия велосипедистов из си, которые ради 0,4 мс на 2000000 итераций пилят свои каштомные строки.

24 Мар, 16:13 #95 #697090

Почему-то этот тред очень медленно грузится в двачбраузере от vortexwolf'a

Котаны, в чем приемущество использования функций atol, atof, atoi и т.п. перед sscanf при парсинге текстовых протоколов? Смотрю - в программах под микропроцессоры везде только так и делается.

Ответы>>697094>>697095>>697202

24 Мар, 16:16 #96 #697094

>>697090
Сканфом можно сразу всю строку распарсить если конечно известна её структура.

Ответы>>697187

24 Мар, 16:19 #97 #697095

>>697090
sscanf использует atol, atof, atoi или что-то подобнее, получается что это лишний вызов, ради большей абстракции.

Ответы>>697187

24 Мар, 16:20 #98 #697097

>>697071

кого это волнует?
в коте я могу написать unsigned short/int govno;
а шаблоне видите ли нет?

Ответы>>697099>>697121>>697143

24 Мар, 16:21 #99 #697099

>>697097
Напиши специализацию шаблона.

Ответы>>697104

33 Кб, 450x297

24 Мар, 16:22 #100 #697102

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

Ответы>>697107

24 Мар, 16:24 #101 #697104

>>697099

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

Ответы>>697107>>697110

24 Мар, 16:36 #102 #697107

>>697104
>зделать нормальный язык из коробки
>предлагает добавить в язык unsigned float, unsigned class и т.п.
просто нахуй иди

>>697102
Не повезло что твоя мать шлюха, вот это действительно не повезло.

Ответы>>697125

24 Мар, 16:58 #103 #697110

>>697104
Отвечу на доступном тебе уровне: ЯП даёт тебе бумагу, а подтирать жопу ты должен сам.

24 Мар, 17:27 #104 #697121

>>697097
>кого это волнует?
Всех не-долбоёбов.

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

>то, что я не хочу тоже было не известно
unsigned это не type qualifier, в отличие от const или volatile

Ответы>>697123

24 Мар, 17:28 #105 #697123

>>697121
>а шаблоне видите ли нет?
unsigned это не type qualifier, в отличие от const или volatile

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

Ответы>>697130

24 Мар, 17:29 #106 #697125

>>697107

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

> unsigned float

кто мешает не компилировать такой шаблон?

24 Мар, 17:30 #107 #697127

>>696971
>unsigned float
У тебя есть отличная возможность сделать через std::enable_if + std::is_unsigned и выпендриться перед коллегами

Ответы>>697132

24 Мар, 17:32 #108 #697130

>>697123

> unsigned это не type qualifier

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

Ответы>>697131

24 Мар, 17:32 #109 #697131

>>697130
>это никого кроме зашоренных фанбоев не волнует.
Пока что unsigned волнует только тебя.

Ответы>>697137

24 Мар, 17:32 #110 #697132

>>697127

намазать говно слоем потолще? вся суть говна плюс

24 Мар, 17:33 #111 #697135

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

24 Мар, 17:34 #112 #697137

>>697131

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

24 Мар, 17:38 #113 #697142

Где вообще такие изъёбства понадобиться могут?

Ответы>>697155

24 Мар, 17:38 #114 #697143

>>697097
> у дурачка сломался мозг из-за типа состоящего из двух слов
Ты не можешь написать "unsigned short/int govno" ты можешь написать или "unsigned short govno" или "unsigned int govno" это два разных типа, имена которых состоят из двух слов.

Ответы>>697145>>697153

24 Мар, 17:39 #115 #697145

>>697143
Да хватит уже его кормить.

24 Мар, 18:02 #116 #697153

>>697143

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

Ответы>>697158

24 Мар, 18:03 #117 #697155

>>697142

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

[code]
template <class T> struct
{
unsigned T value;
};
[/code]

Ответы>>697161>>697165>>697168

24 Мар, 18:06 #118 #697158

>>697153
>так же ты можешь написать unsigned unsigned unsigned int govno;
>и конпелятор схавает.
Написал. Не хавает.

24 Мар, 18:06 #119 #697161

>>697155
unsigned float

Ответы>>697171

24 Мар, 18:11 #120 #697165

>>697155
Но нахуя?

24 Мар, 18:12 #121 #697168

>>697155
>мне нужно и прямо сейчас, чтобы убрать знак
std::make_unsigned<T>

Ответы>>697172>>697177

24 Мар, 18:16 #122 #697171

>>697161

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

Ответы>>697172

24 Мар, 18:17 #123 #697172

>>697171
>>697168

24 Мар, 18:21 #124 #697177

>>697168

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

unsigned T value;

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

typename std::make_unsigned<T>::type value;

Ответы>>697178>>697181

24 Мар, 18:22 #125 #697178

>>697177
Обидься и не пиши на плюсах.

24 Мар, 18:24 #126 #697181

>>697177
А в языках, которые не говно и при этом имеют шаблоны (или их подобие), писать unsigned T value; можно?
Просто любопытно, может знает кто.

Ответы>>697198>>697199

24 Мар, 18:27 #127 #697187

>>697095
>>697094
Можно ли считать sscanf ебанически надежным в плане отбраковки строк, которые не соответствуют шаблону?

Ответы>>697188>>697191

24 Мар, 18:28 #128 #697188

>>697187
Нет.

Ответы>>697191>>697228

24 Мар, 18:29 #129 #697191

>>697187
>sscanf
>>697188
Хотя. Если sscanf — то, наверное, можно.
Это scanf-ом пытаться получать ввод без уверенности в его правильности не стоит.

24 Мар, 18:34 #130 #697195

Есть один класс. Это компонента связности графа. Но не обычная, а такая, что каждая вершина этой компоненты соединена рёбрами со всеми остальными вершинами в этой компоненте. А значит новое ребро добавить нельзя. В классе есть int количество вершин и метод которые возвращает количество ребер. Нужно переопределить операцию +=. Так чтобы можно было объединить оба компонента и он ещё вернул количество ребер которое нужно добавить в компоненту чтобы та получилась завершённой или как такие называются. То есть было бы красиво делать вот так int ans=(a+=b).

Ответы>>697242>>697609

24 Мар, 18:36 #131 #697198

>>697181
В таких языках нет unsigned. Модификаторы Ричи под ЛСД придумал.

Ответы>>697201

24 Мар, 18:38 #132 #697199

>>697181
>и при этом имеют шаблоны
Сколько ещё таких языков?

Ответы>>697201>>697203

24 Мар, 18:39 #133 #697201

>>697198
Логично.

>>697199
Хуй знает, может d или rust какие-нибудь. Я их не тыкал.

24 Мар, 18:39 #134 #697202

>>697090
Сканф умеет возвращать ошибку, ato.. - undefined behaviour.

24 Мар, 18:40 #135 #697203

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

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

Ответы>>697213>>697275>>697525

24 Мар, 18:51 #136 #697213

>>697203
>Ты забыл про wstring и QByteArray
Можно много ещё чего вспомнить, всякие NSSring, CString. Он написал " без сомнения, список этим не исчерпывается."

24 Мар, 19:05 #137 #697228

>>697188
Но почему?

Ответы>>697230

24 Мар, 19:08 #138 #697230

>>697228
Я уже исправил на то, что можно.

24 Мар, 19:21 #139 #697242

>>697195
Вы скучные. Говно какое-то обсуждаете. кроме sscanf но его вы плохо обсуждаете Лучше с этой штукой помогите.

Ответы>>697500

24 Мар, 19:59 #140 #697275

>>697203
>У D толковые шаблоны. Можно там глянуть.
Ни в D ни в Rust нету модификатора unsigned, там беззнаковые типы начинаются с u (uint, ushort в D и u32, u16 и u8 в расте).

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

Хотя в вышеперечисленные языки-то хоть завезли контракты и трейты, а семнадцатый стандарт говорит пирдольтись))))

25 Мар, 00:08 #141 #697466

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

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

Ответы>>697468

25 Мар, 00:13 #142 #697468

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

Ответы>>697474

25 Мар, 00:19 #143 #697474

>>697468
Не лаба, честное пионэрское.

Ответы>>697475

25 Мар, 00:20 #144 #697475

>>697474
По её повелительной формулировке ясно, что это лаба/ДЗ.

Ответы>>697477

25 Мар, 00:21 #145 #697477

>>697475
Нет.

14 Кб, 442x331

25 Мар, 00:36 #146 #697486

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

Ответы>>697487

25 Мар, 00:40 #147 #697487

>>697486
В том числе.

25 Мар, 01:13 #148 #697500

>>697242
> Лучше с этой штукой помогите
Если ты считаешь что "int ans=(a+=b)" (при том что a и b не int) это "красиво" то тебе уже не помочь.

Ответы>>697597

25 Мар, 01:48 #149 #697513

>>696789
Ссылке надо всегда что-то присваивать.

25 Мар, 02:04 #150 #697517

Аноны из индустрии, что это за пидорская хуита D и Rust(никакого стильного названия)? Собсссно вопрос в том, как продакшн смотрит на этих друзей? Какие преимущества/недостатки перед крестом ИРЛ?

Ответы>>697528

25 Мар, 02:18 #151 #697525

>>697203
> Ты забыл про wstring и QByteArray :3
А еще я забыл cv::String

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

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

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

25 Мар, 02:31 #152 #697528

>>697517
По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли.
D - это кресты, сделаные нормально.

А раст смотрел - не впечатлил, синтаксис пиздец наркоманский.

Ответы>>697596

25 Мар, 05:28 #153 #697547

Есть структура с различными полями. Теперь вопрос, возможно ли, чтобы на каждом новом цикле менялись поля у структуры?
Поясняю, есть struct User { string a, string b, string c}, есть некий цикл через for { что-то делается + User.a = smth }. То есть, чтобы уже на следующей итерации было поле не a, а уже b.

Ответы>>697548>>697549>>697743

25 Мар, 05:31 #154 #697548

>>697547
А зачем тебе это нужно? Цель какая? Так как тянет на отборное извращение.

25 Мар, 05:42 #155 #697549

>>697547
В свое оправдание сразу хочу сказать, что с крестами знаком буквально час. В текстовом файле в строчку записана информация: ФИО, дата рождения и еще пара пунктов. Я строку кусочно парсю и хочу сразу же на итерации закидывать в соответствующее поле в структуре.

Ответы>>697551

25 Мар, 05:44 #156 #697551

>>697549
Ты уверен, что ради трех полей тебе надо городить цикл?

Ответы>>697552

25 Мар, 05:47 #157 #697552

>>697551
Если бы точнее, то полей 5. И в файле строк, хар-их пользователей, около 5-6, то есть пользователей нормальное кол-во.

25 Мар, 05:48 #158 #697553

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

Ответы>>697554

13 Кб, 413x38

9 Кб, 192x122

25 Мар, 05:52 #159 #697554

>>697553
Строчку входную парсим по ";" и достаем необходимые поля на каждой итерации и сразу пихаем в поля структуры.

Ответы>>697557>>697558>>697571>>697602

25 Мар, 06:08 #160 #697557

>>697554
boost::split
Это если по скорости не критично.

25 Мар, 06:19 #161 #697558

>>697554
А как даты должны превратиться в int? unix time?

Ответы>>697561

25 Мар, 06:26 #162 #697561

>>697558
А нахуй? Тем более, если там стндартизированно - то это меньшая из проблем.

Ответы>>697562

25 Мар, 06:27 #163 #697562

>>697561
>А нахуй?
Как тебя понимать?

25 Мар, 07:04 #164 #697571

>>697554
Все просто же.
http://pastebin.com/8fDQMDSp

Ответы>>697572

25 Мар, 07:07 #165 #697572

>>697571
>Все просто
>Qt

Ответы>>697573

25 Мар, 07:10 #166 #697573

>>697572
Иии?

Ответы>>697577

25 Мар, 07:39 #167 #697576

25 Мар, 07:42 #168 #697577

>>697573
Хуиии

Ответы>>697578

25 Мар, 07:43 #169 #697578

>>697577
То то же.
Мимоанон спросил как - я показал.

Проблемы?

25 Мар, 08:46 #170 #697583

Почему проект в кодблокс не хочет удаляться? Если точнее, то папка "debug". И не запускается он тоже, пишет "permission denied".

Ответы>>697589>>697948

25 Мар, 09:10 #171 #697589

>>697583
Ш1ИD0W2. Чисти говно блять.
У тебя не закрывается программа/компилятор/дебагер, стандартная спермопроблема.

Ответы>>697591>>697598

25 Мар, 09:22 #172 #697591

>>697589
Как я чистить-то буду? Среди процессов ничего похожего на кодблокс или мингв. Чего-нибудь со словом дебаг тоже не видно.

Ответы>>698102

25 Мар, 09:36 #173 #697596

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

Ответы>>697602>>697630

25 Мар, 09:36 #174 #697597

>>697500
А как красиво? Кажется понял. Нужен конструктор копирования в int.

Ответы>>697606

25 Мар, 09:41 #175 #697598

>>697589
У кодблокса есть такая хуйня. Когда программу на крестик закрываешь, то она может весеть в процессах. Поищи имя программы или ld.exe.

25 Мар, 09:49 #176 #697602

>>697554
http://stackoverflow.com/questions/11719538/how-to-use-stringstream-to-separate-comma-separated-strings
>>697596
Хотел промолчать, но другой анон не смог. Пока мне не покажут, как использовать D классы без сборки мусора (хотя бы через подсчет ссылок) элегантно без костылей, я туда не буду лезть. Меня полностью устраивает RAII в плюсах, и с циклическими ссылками я могу справиться сам.

Ответы>>697614>>697618>>698105

25 Мар, 09:55 #177 #697606

>>697597
Геттер с нормальным понятным именем. А вообще ты хуйню какую-то делаешь. Если ты уже сделал класс который соотвествует компоненте связности которая сама по себе является полным графом, то это следует понимать как инвариант (иначе это обычный класс для хранения подграфов). Твои объекты класса всегда должны быть полными графами, следовательно когда ты выполняешь какое-то действие которое нарушает инвариант ты должен его тут же востановить. Если ты реализуешь operator+= который соеденияет две компоненты связности, то прямо в том же операторе ты должен добавить все недостающие ребра, чтобы сразу после выполнения оператора результатирующий компонент уже был полным графом.

Ответы>>697624

25 Мар, 10:02 #178 #697609

>>697195
В чём смысл? Полный (это так называется) граф задаётся только количеством вершин. Количество рёбер -- просто n(n-1)/2, где n - кол-во вершин.
Объединить компоненты -- получится n1+n2, а рёбер надо добавить n1n2. Нахуя тут такой оверинжинирнг, классы-хуяссы, методы.

Ответы>>697625>>697627

25 Мар, 10:13 #179 #697614

>>697602
Братюнь, но для желателей попердолиться из D никуда не убирали malloc и free.
А для сцылок в стандартной библиотеке есть RefCounted.

Ответы>>697617

25 Мар, 10:17 #180 #697617

>>697614
Ну и если стандартные GC-шные массивы не устраивают - есть std.container.Array, который без GC.

25 Мар, 10:18 #181 #697618

>>697602
https://dlang.org/phobos/std_experimental_allocator.html
Самый красивый метод на данный момент.

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

Хотя нахуй я это пишу, ты же фанатик ебаный у которого плюсы единственный инструмент. Вчера вот на лоре был тред, http://www.linux.org.ru/forum/development/12456605?lastmod=1458888841671 — у сишника попа подгорела. Почитай, ты вот так же со стороны выглядишь.

Ответы>>697626>>697635>>697654>>697708>>698100

25 Мар, 10:33 #182 #697624

>>697606
Я так и делаю, но мне нужно знать сколько рёбер прибавилось. И хочется это делать в одну строчку вместе с +=.

25 Мар, 10:37 #183 #697625

>>697609
Без класса делал. Где-то сделал ошибку и программа иногда работает неправильно. Теперь хочу с классами. С ними понятнее. Перед сложение нужно ещё их в вектор добавить и отсортировать.

25 Мар, 10:52 #184 #697626

>>697618
> в расте нельзя найти элемент в массиве
> у сишника попа подгорела
Проиграл с фанатика.

Ответы>>697632>>697635

25 Мар, 10:53 #185 #697627

>>697609
>надо добавить n1n2
Точно. Не сразу понял. Их же можно одной функцией считать. А я 3 раза количество рёбер перечитываю когда без классов делал. Щас так попробую. Спасибо.

25 Мар, 11:01 #186 #697630

>>697596
Там же маллоком можно пользоваться, если надо.

Ответы>>697633

25 Мар, 11:04 #187 #697632

>>697626
>не умеет читать в 2076 году
>проигрывает

25 Мар, 11:07 #188 #697633

>>697630
> 2016
> язык с malloc
> кресты, сделаные нормально

Ответы>>697634>>697635

25 Мар, 11:10 #189 #697634

>>697633
О чем ты? В крестах тот же маллок, только обернутый оператором new.

Ответы>>697639

25 Мар, 11:11 #190 #697635

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

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

Ответы>>697639

25 Мар, 11:23 #191 #697639

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

Ответы>>697640>>697643

25 Мар, 11:27 #192 #697640

>>697639
Он же целый конструктор вызывает!
>будучи тупым фанатиком тыкать объективным человекам про фанатизм
Суть пирдоликав)))

25 Мар, 11:29 #193 #697643

>>697639
>У оператора new больший функционал чем у malloc
Естественно, он же обертка, расширяющая базовый функционал. Но в D, наверняка, можно сделать еще лучше, ведь туда завезли метапрограммирование.

Ответы>>697650

25 Мар, 11:47 #194 #697650

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

Тупой фанатик все равно на говно истечет.

Ответы>>697651

25 Мар, 11:53 #195 #697651

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

25 Мар, 12:02 #196 #697654

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

Ответы>>697660>>697708

25 Мар, 12:13 #197 #697660

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

Ответы>>697675>>697677

25 Мар, 12:16 #198 #697663

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

Ответы>>697668

25 Мар, 12:21 #199 #697668

>>697663
А у тебя шо, стадное мышление? Язык надо юзать не ради качеств и удобства, а потому что "везде используют"?

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

Ответы>>697673

25 Мар, 12:29 #200 #697673

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

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

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

Ответы>>697692>>697708

25 Мар, 12:32 #201 #697675

>>697660
Памятка ньюфагу, пункт 5. Заходить в тематические треды сраться о языках может только dаун.

Ответы>>697694

25 Мар, 12:33 #202 #697677

>>697660
Пусть сидят в своем D треде и обсуждают D там. Хотя, по-моему, человеку который предлагает как замену плюсов язык с GC вообще не стоило бы заходить в /pr/

Ответы>>697682>>697708

25 Мар, 12:38 #203 #697682

>>697677
>язык с GC

Вроде же пришли к выводу, что GC можно не использовать.
Но все равно: у языка мало преимуществ перед C++, чтобы его нужно было изучать и использовать.

Ответы>>697693>>698113

25 Мар, 12:39 #204 #697683

Алсо через год-два, будут готовы TS с модулями и концептами C++, тогда вообще D умрет из-за нинужности.

Ответы>>697708

25 Мар, 12:55 #205 #697692

>>697673
И много ты написал компиляторов или вебсерверов?
>Весь
Шо, прям весь-весь?

Ответы>>697697

25 Мар, 12:55 #206 #697693

>>697682
> можно не использовать
Исходя только из предоставленых ссылок это довольно смелый вывод. То что ты можешь создать один класс не управляемый GC еще не значит что GC не будет использован рантаймом. Если язык разрабатывался с учетом использования GC то при его отключении часть языка неизбежно отвалится. Откуда мы приходим к тому что язык должен изначально быть спроектирован с учетом опциональности GC. И стандартная библиотека должны быть реализована таким образом чтобы не требовать для своей работы GC. И сторонние библиотеки не должны (опционально) его использовать. Ведь какой смысл создавать неуправляемый GC объект, если при передаче его в какой-то метод сторонней библиотеки она инстанциирует несколько десятков классов управляемых GC. Такое поведение нихуя не похоже на "GC можно не использовать".

Ответы>>697696>>697708

25 Мар, 12:56 #207 #697694

>>697675
Я заходил не за этим.
Кто то попросил пояснить за раст и D - я пояснил, а у какого-то фанатика подгорело.

Ответы>>697707>>698125

25 Мар, 12:57 #208 #697696

>>697693
Скажи, зачем нужно не использовать GC ВООБЩЕ? Любишь анальные извращения?

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

Ответы>>697700>>697713

25 Мар, 12:59 #209 #697697

>>697692
Регулярно отправляю патчи в шланг и qt creator. Где твой бог теперь?

Ответы>>697698>>697703

25 Мар, 13:01 #210 #697698

>>697697
Ссылку дашь на патчи? Посмотреть хочется.

25 Мар, 13:03 #211 #697700

>>697696
> НИНУЖНО
Ясно.

Ответы>>697702

25 Мар, 13:04 #212 #697702

>>697700
Это ты к себе обращаешься, лол?
НИНУЖНО - это ведь твой аргумент.

Ответы>>697713

25 Мар, 13:05 #213 #697703

>>697697
дианон же

Ответы>>697706

25 Мар, 13:07 #214 #697706

>>697703
Дианон чего? У тебя там реальное имя/фамилия в профиле?
И если ты не школьник дениска попов, у йоба-разработчик-компиляторов - чего ты боишься дианона? "Йо посоны, он в шланг патчи шлет - го затравим!" - так чтоле?

Ответы>>697709

25 Мар, 13:07 #215 #697707

>>697694
Вот здесь: "По сравнению с D, это кресты - пидорская хуета для любителей сверхжесткой анальной ебли. D - это кресты, сделаные нормально.", ты ничего не написал, ты сделал эмоциональный dаунский наброс, как и положено dауну и бабе.

Ответы>>697715

25 Мар, 13:08 #216 #697708

>>697654
Лал, если бы ты, животное, умело бы читать - увидел бы что изначально вопрос стоял о крестах, потом просто было сравнение и кто-то протёк говном увидев заветные буковки "gc".

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

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

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

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

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

Итого: животные, плиз. Все люди как люди, а вы как животные истекаете говном на gc не в силах показать где он вам в конкретно вашей области так МИШАЕТ И СВЕРЛИТ.

Ответы>>697712>>697726

25 Мар, 13:08 #217 #697709

>>697706
Самодеанониться на анонимных бордах - это для идиотов уровня илюши. Если тебе нужны имена, пиздуй на хабр.

Ответы>>697715>>697724

25 Мар, 13:10 #218 #697712

>>697708
Съеби уже в D-тред, в который никто не заходит.

Ответы>>697716

25 Мар, 13:10 #219 #697713

>>697696
> зачем нужно
>>697702
>НИНУЖНО - это ведь твой аргумент
Dбил продолжает клоунаду.

25 Мар, 13:12 #220 #697715

>>697709
Я коммичу в буст и ллвм, а ещё я член комитета СтарыхПердуновПлюс (СПП). Пруфов не будет, а то дианон(
>>697707
>как и положено dауну
Братишка, ну зачем так самокретично(
>и бабе
Как что-то плохое сказал, шовинист ((((

Ответы>>697718

25 Мар, 13:12 #221 #697716

>>697712
Знаешь, почему туда никто не заходит?
Потому что на нем люди просто пишут и не ебутся. А не ссаные студенты/школьники с вопросами "как на крестах сделать элементарнаяхуйнянейм". И не возникают вопросы как не выстрелить себе в ногу, или какой из костыльных велосипедов предпочесть.

Ответы>>697727

25 Мар, 13:13 #222 #697718

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

25 Мар, 13:18 #223 #697724

>>697709
Погоди-ка, clay-мудель, ето ти?

25 Мар, 13:19 #224 #697726

>>697708
>Смешно. В 2020 посмотрим как концепты пошлют нахуй ибо сообщество нипамагло(, макросы будут экспортируемы
Это же TS, а не следующий стандарт. Оно потому и TS, что рано для 17 и поздно для 20. А вообще твои кукареки уровня гадающей циганки на вокзале.

Ответы>>697731

25 Мар, 13:19 #225 #697727

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

Ответы>>697733

25 Мар, 13:22 #226 #697731

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

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

25 Мар, 13:23 #227 #697733

>>697727
Ну если господа плюсовики хоть раз за тред написали бы что-то объективное а не издавали вскудахи вроде "ГЦ ЕТА ЗЛО ЗАСТРЕЛИТЬ УБИТЬ ФУУУУ", то может всё стало бы куда лучше.

Ответы>>697742

25 Мар, 13:25 #228 #697735

Пока у местных не остыли пуканы, вброшу высер скаладауна - http://eax.me/c-vs-cpp/

25 Мар, 13:29 #229 #697742

>>697733
> ГЦ ЕТА ЗЛО
Кто пишет что GC это зло? Зло - остутсвие выбора. В плюсах можно использовать полностью ручное управление, можно простой refcounting на смартпоинтерах, можно накатить GC (boehm garbage collector, например). У C++ специфическая сфера применения, и для этой сферы само собой разумеется что у программиста должен быть выбор. И предлагать как замену крестам язык с нулевым выбором, потому что властелин решил не использовать GC смысла нет, ну это глупо.

Ответы>>697744>>697748

25 Мар, 13:29 #230 #697743

>>697547
Можно в массиве указатели на поля класса хранить.

25 Мар, 13:31 #231 #697744

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

Ответы>>697747

25 Мар, 13:34 #232 #697747

>>697744
В крестах, если ты не используешь GC то он не используется нигде. Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами, а рантайм и библиотеки делают что хотят. Это не похоже на дохуя выбор.

Ответы>>697749>>697757

25 Мар, 13:35 #233 #697748

>>697742
Да не бывает выбора, язык или изначально дизайнится для работы без GC (C, C++, Rust), или изначально дизайнится для работы с GC (C#, D, Go), и эти два типа языков друг с другом не пересекаются.

Ответы>>697750>>697752>>697757

25 Мар, 13:36 #234 #697749

>>697747
В библиотеке есть RefCount и Unique.
В библиотеке есть аллокаторы.

А ГЦ можно управлять. И вообще:
import core.memory;
GC.disable();

Ответы>>697756

25 Мар, 13:37 #235 #697750

>>697748
Но к языкам без GC можно подключить GC и получить язык с GC.

Ответы>>697762

25 Мар, 13:38 #236 #697752

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

Ответы>>697753

25 Мар, 13:39 #237 #697753

>>697752
Двачую. Разве в русте не ГЦ был изначально, который на сцылки в относительно последний момент заменили?

Ответы>>697769

25 Мар, 13:40 #238 #697755

D is a systems programming language with support for garbage collection. Usually it is not necessary to free memory explicitly. Just allocate as needed, and the garbage collector will periodically return all unused memory to the pool of available memory.

D also provides the mechanisms to write code where the garbage collector is not involved. More information is provided below.

Ответы>>698132

25 Мар, 13:42 #239 #697756

>>697749
> GC.disable();
> вызвал библиотечную функцию
> приложение занимает 32 гига памяти

Ответы>>697761

25 Мар, 13:44 #240 #697757

>>697748
>дизайнится для работы без GC
Раст изначально был языком со сборщиком, просто сейчас его выпилили нахуй "до лучших времён и редизайна" они просто поняли, что сишная аудитория gc не воспринимает ни в каком виде, даже если он только поможет им в их задачах.
>>697747
>Из представленых ссылок по D следует только то что ты можешь вручную управлять только своими классами
Если у тебя есть серьёзное ограничения к требованиям по требуемой мощности выполнения/скорости и gc не подходит - тебе и на плюсах придётся переписывать/писать самому любую нетривиальную задачу, либо использовать си библиотеки вылизанные до байтика а не крестовые велосипеды от любителей вымазать всю память *stream-ами.

Ответы>>697762

25 Мар, 13:47 #241 #697761

>>697756
>вызвал gc.collect и насладился.
А в сишечке/++ при твоих условиях пришлось пердолится 2 недели, в ожидании когда же ошибка снова произойдёт и сервер вайпнется нахуй.

25 Мар, 13:49 #242 #697762

>>697750
Тогда ты получишь просто хуевый язык с GC. Самая большая проблема с GC в том, что он "отравляет" код, если твой код течет, то он течет, и далее переиспользовать его уже в проекте "без GC" ты не можешь. Т.е. у тебя возникает код "YobaLanguage который не течет" и "YobaLanguage который течет". И все, язык распался на два диалекта. И 90% библиотечного кода будет течь, потому что программисты народ по умолчанию ленивый.
>>697757
>они просто поняли, что сишная аудитория gc не воспринимает ни в каком виде, даже если он только поможет им в их задачах.
Ты один-в-один purebasic-кун, который то, что его хуесосят, обясняет тем, что вокруг его одни дебилы. Ну да, вся сишная аудитория - дебилы, один ты такой умный, умеешь сборщиком мусора пользоваться. А раз мы все тут такие дебилы, можешь съебешь в свой тред?

Ответы>>697765

25 Мар, 13:53 #243 #697765

>>697762
>Ты один-в-один purebasic-кун
Ты на него со своим искажённым восприятием куда больше похож.
Я никому не говорил что кто-то долбоёб, я сказал что кое-кто немножко говноед и мазохист, но к умственным способностям это не относится как и условия на которых мозила начала спонсировать раст :3.

Ответы>>697767

25 Мар, 13:54 #244 #697767

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

Ответы>>697772

25 Мар, 13:55 #245 #697768

Блядь, у вас тут какой-то параллельный мир с ошибками в C++. За 4 года я могу по пальцам одной руки посчитать, когда появлялись проблемы с циклическими или битыми ссылками. Про память, которая течет, вообще молчу - ни разу не видел этого, потому что пользовался умными указателями. Санитайзеры используются на тестах всегда, так что нефиг загонять про "ты просто не замечаешь".

Ответы>>698139

25 Мар, 13:56 #246 #697769

>>697753
Пример раста как раз показателен. Сначала хотели сделать йоба-язык который и то умеет, и то умеет, и здесь, и этак (что в общем-то всегда бывает среди авторов языков), а к версии 1.0 выяснилось, что gc controlled указатели нахуй не нужны, стд-либа-то задизайнена на работу без GC.

Ответы>>697772

25 Мар, 14:04 #247 #697772

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

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

>>697769
Историю изменения до 1.0 сходи глянь. Она так задизайнена потому что 3 года назад они отказались от сборки и с тех пор пидорасили всё что попадалось под горячую руку два года подряд.

Ответы>>697775>>697779>>697783>>697786

25 Мар, 14:08 #248 #697775

>>697772
Начиная с DMD 2.067 мусорщик можно вообще выключить нахер.
Посмотрел я, что зависит от него - и в принципе все ясно, по сути - new, встроенные массивы и ассоциативные массивы и делегаты.

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

Ответы>>697792

25 Мар, 14:14 #249 #697779

>>697772
Все эти разговоры хуйня, когда нет наглядных сравнений производительности больших проектов с и без gc. А поскольку никто не будет специально одинаково писать большой проект с gc и без него, то появляется такая благодатная почва для специальных олимпиад.

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

Лично для меня вопрос эффективности GC уже снят давно. Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода

Ответы>>697781>>697784>>697792

25 Мар, 14:17 #250 #697781

>>697779
CLion ещё и может гораздо больше, чем QtCreator, так себе сравнение. Почему просто не сравнить андроид с гейфоном?

Ответы>>697785

25 Мар, 14:17 #251 #697783

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

Ответы>>697792

25 Мар, 14:19 #252 #697784

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

Но сравнения с нативным кодом с GC нет, так что иди нахуй заранее.

25 Мар, 14:20 #253 #697785

>>697781
Все его возможности основаны на изменении уже построенной языковой модели. А я предлагал сравнивать этапы анализа кода. Вещи они там делают одинаковые.

25 Мар, 14:20 #254 #697786

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

Do not use the array append ( ~= ) operator, or use the .length property to enlarge an array that has already been allocated. These rely on GC to free the old array if it has to be reallocated, since there may be aliasing to it somewhere else in the program.
Do not use builtin associative arrays. The only way to free these is by GC.
Most of Phobos and, I believe, Tango, were designed with the assumption that garbage collection is present. Functions in these libraries may leak memory horribly if used w/o GC.
Do not use D2 closures with GC disabled. (Not that you would anyway, for a game.)

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

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

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

25 Мар, 14:28 #255 #697792

>>697775
>И непонятно с последним - как юзать делегаты без GC-то?
Заменять тип на alias и писать всё побочками, либо залезть в анус и выделять память маллоком, перемещать её memmove и вызывать как (*hui)().
>>697779
>Возьмем CLion и QtCreator.
1. Второй делает сасай по работе с кодом и не только, причём раз 10;
2. Сравнивать жяву с нативным языком конечно гениально. Особенно в задачах вроде парсинга, когда она не может обойти массив без проверок и тд., так что там ботлнек далеко не в gc (он может произойти только если настроить clion на несколько гб оперативки, которая будет сканироваться вчено).
>Я неоднократно видел такие сравнения, которые всегда заканчиваются в пользу native-кода
А я неоднократно видел баги и няшности вроде фрагментации кучи, особенно с распространением смартпоинтеров. Бывает, чо.
>>697783
>С хуя ли перед крестохейтером должен кто-то распинаться в С++-треде?
Наверно потому что я не хейтер внезапно действующий плюсовик, а пытаюсь получить ответ.
>Ты ебаный рак
Лан даун)
>Поэтому есть два варианта, или язык становится неюзабельным говном:
Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.

Ответы>>697796>>697818

25 Мар, 14:32 #256 #697796

>>697792
>Наверно потому что я не хейтер внезапно действующий плюсовик, а пытаюсь получить ответ.
А ты думаешь мало хейтеров, получающих деньги за кресты? Это самая днищенская порода людей: кресты они ненавидят, но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят. В итоге вместо роста скилла происходит отравление окружающей действительности миазмами своего лузерства.
>Про то, что это можно разделить в отдельные бинарники и тд мы не слышали, ну ладно, ты, даун всё равно читать не умеешь.
Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?

Ответы>>697799

25 Мар, 14:37 #257 #697799

>>697796
>Так так, ну-ка поподробнее. И как ты между этими бинарниками будешь общаться, через RPC что ли?
Загружу как динамическую библиотеку или запущу с нужными параметрами или воспользуюсь одним из 9000 способов межпроцессного взаимодействия вроде пайпов или общей памяти. Всё лучше и быстрее пишется, чем пихать 2 разных диалекта языка в один анус и сидеть с отладчиком на простате.
>кресты они ненавидят
Умозаключение о ненависти после того, как я сказал что есть что-то лучше? Ещё один господин-манямирок.
>но профессиональный скилл слишком низкий, чтобы зарабатывать деньги тем, что они любят
Эх. Прозвучало ахуенно, но тупо.

Ответы>>697817

25 Мар, 14:48 #258 #697817

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

Ответы>>697824>>697842>>697879

25 Мар, 14:50 #259 #697818

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

>1. Второй делает сасай по работе с кодом и не только, причём раз 10;
>2. Сравнивать жяву с нативным языком конечно гениально.
Как я уже писал выше:
- возможности работы с кодом на этапе парса ничего не решают.
- принеси сравнение нативного gc-языка с просто нативным и тогда поговорим. Ах да, никто же не написал крупного проекта на нативном gc-языке.
Забыл, прости.

Ответы>>697879

25 Мар, 14:53 #260 #697824

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

Ответы>>697829

25 Мар, 14:57 #261 #697829

>>697824
http://stackoverflow.com/questions/21094052/how-can-i-create-a-stdfunction-with-a-custom-allocator

Ответы>>697845

25 Мар, 15:01 #262 #697842

>>697817
> включая std::function, например
Говно твоя std::function
В ди можно ПРОСТО писать вложенные функции, а не создавать over9000 нечитаемого синтаксического шума.

Ответы>>697843

25 Мар, 15:03 #263 #697843

>>697842
И это функции будут ПРОСТО течь.

Ответы>>697848>>697854

25 Мар, 15:05 #264 #697845

>>697829
Проще свою std::function написать, чем с аллокаторами ебаться.

Ответы>>697853

25 Мар, 15:05 #265 #697848

>>697843
С чего бы это? Это же не текущие кресты с его любимым "segmentation fault"

25 Мар, 15:07 #266 #697853

>>697845
Что за хуйню я читаю?

Ответы>>697858

25 Мар, 15:07 #267 #697854

>>697843
Схуяли они будут течь, если GC циклические ссылки убивать умеет? Течь будут крестовые лямбы, если поймают смартпойнтеры друг на друга.

Ответы>>697855

25 Мар, 15:08 #268 #697855

>>697854
С того. Ты в контекст диалога вообще можешь? Пиздец идиоты.

Ответы>>697861

25 Мар, 15:08 #269 #697858

>>697853
std::function - это обертка вокруг лямбда-выражений. Можно легко написать свою реализацию, которая будет работать с памятью, как тебе хочется.

Ответы>>697862

25 Мар, 15:09 #270 #697861

>>697855
>Ты в контекст диалога вообще можешь?
Я другой ананас, который тред-не-читай-сразу-отвечай.

Ответы>>697867

25 Мар, 15:10 #271 #697862

>>697858
Лалка, а поддержку обычных функций ты тоже хочешь писать? Ну удачи, чо. Я написать обертку на std::function, чтобы удобно передавать аллокаторы и не буду ебать себе мозг.

Ответы>>697866

25 Мар, 15:11 #272 #697866

>>697862
Там в 200 строчек все делается.

Ответы>>697870

25 Мар, 15:12 #273 #697867

>нахуя мне D, когда у меня есть C++, в котором любая (любая) фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов (включая std::function, например), и, допустим, один из милларда управляемых языков с толстым рантаймом и батарейками - от пайтона до Java?
>А В D У НАС НЕ НУЖЕН STD::FUNCTION У НАС ВСЕ КРАСИВЕНЬКО
>Но ведь течь же будет без GC
>ИДИОТ ЭТО КРЕСТЫ ТЕКУТ А В D ЕСТЬ GC

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

>>697861
Ввиду того, что вас таких двое, я считаю это не случайным совпадением, а статистикой.

Ответы>>697876

25 Мар, 15:12 #274 #697868

int foo, goo;
foo = new int;
foo = 1;
goo = new int;
goo = 3;
foo = goo + 3;
foo = goo;
goo = 5;
foo = goo + foo;// я насчитал 11
cout << foo; // а выдаёт 10

Что за хуйня, анон? Как выходит, что в foo оказывается 5, а не 6?

Ответы>>697872>>697873>>697875

25 Мар, 15:13 #275 #697870

>>697866
Ты че, ебанутый? Зачем дублировать уже написанную функциональность? Ну не хочешь аллокатор каждый раз передавать, напиши wrapper

Ответы>>697877>>697882

25 Мар, 15:14 #276 #697872

>>697868
Оно не компилируется

Ответы>>697874

25 Мар, 15:14 #277 #697873

>>697868
на ideone залей

25 Мар, 15:14 #278 #697874

>>697872
Наверняка у него кучу звездочек сожрало.

25 Мар, 15:16 #279 #697875

>>697868
Проебался с разметкой, сорри
[code]
int foo, goo;
foo = new int;
foo = 1;
goo = new int;
goo = 3;
foo = goo + 3;// 6
cout << foo;
foo = goo;
goo = 5; // 5
cout << goo;
cout << foo;
foo = goo + foo;// 11
cout << foo;// 10!
[/code]

И вот на всякий случай - http://ideone.com/c4xrBM

Ответы>>697937

25 Мар, 15:16 #280 #697876

>>697867
Заменить на счетчик ссылок - и не будет течь, схуяле?

25 Мар, 15:18 #281 #697877

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

Ответы>>697880>>697881

25 Мар, 15:18 #282 #697879

>>697817
>И оно здесь тебе ничем не поможет.
И почему же?
>фича языка и элемент стандартной библиотеки работает без GC без всяких компромиссов
А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли. Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.
>от пайтона до Java
Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.
>>697817
>Себя ты крестовиком не считаешь, ты оппонируешь крестовикам.
Нет, я просто не фанатик как ты. Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры. Сказали что синтаксис лучше - говорят сами себе ГЦ и срут кровью. Слышат попытки дискутировать как человеки а не животные - срут кровью на предложившего, он не из их стаи, хотя говорит на их языке.
>Потому что ты сам - dаун
Самое топовое оскорбление, чем больше повторяешь - тем смишнее. Четыре десятка айкью видимо, простора для размышления не дают.
>>697818
>возможности работы с кодом на этапе парса ничего не решают.
Зато решает что на яве банально объекты толще и всё работает через вм, лол.
Когда в qtcreator завезут хотя бы анализ кода на лету (который в лионе не хуже чем в студии, которая кстати почти не лагает) напиши это ещё разок что лион кококо лагаит, а не сравнивай хуй с пальцем.
>Проблема высосана из пальца.
Ну ты иди, создай массив с умными указателями. Позавидуешь скорости питона. И тебя никакой jemalloc в такой ситуации не спасёт.

Ответы>>697889>>697911>>697965

25 Мар, 15:18 #283 #697880

>>697877
Препод запретил?

25 Мар, 15:18 #284 #697881

>>697877
Юзай буст, лалка

25 Мар, 15:19 #285 #697882

>>697870
Олсо, ты заебешься писать аллокатор для чисто стековой лямбды.

25 Мар, 15:27 #286 #697889

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

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

Ответы>>697899>>697910

25 Мар, 15:36 #287 #697899

>>697889
>И? Что произойдет-то?
Почитай что такое фрагментация памяти. И подумай что будет когда хотя бы треть из них удалится.
>Если объектов так много
То что будет когда у каждого СВОЙ счётчик?
>Ты тупая мразь, я сказал, что сравнение некорректно, еще до того, как ты начал свое кукареку.
Сам сравнил и сам обосрался, ок, вопросов нету.
>Повторю для тебя-жопочтетца еще раз: неси сравнение GC-native с native и тогда побеседуем.
Вопрос: как их сравнивать, если одинаковые стратегии работы с памятью использовать некорректно?

Ответы>>697907>>697916

25 Мар, 15:44 #288 #697907

>>697899
>Почитай что такое фрагментация памяти.
Лол, ты сам-то читал? О фрагментации надо заботиться, когда у тебя объекты больше страницы.

Ответы>>697922

25 Мар, 15:47 #289 #697910

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

25 Мар, 15:49 #290 #697911

>>697879
>И почему же?
Я написал в предыдущем предложении того же поста.
>А ещё это морально устаревший язык, в котором вместо изменений только добавляют костыли.
Ты главное повторяй это почаще. Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.
>Хочешь плюсы без легасиговна 40 летней выдержки - бери и пиши на D.
Я лучше Scala возьму, на ней хоть работа есть, а общего с С++ примерно столько же. Ну или C# с await/async и linq.
>Нет, я просто не фанатик как ты.
Это я что ли пришел в D-тред и стал нахваливать С++? В чем заключается мой фанатизм? Я отлично знаю достоинства и недостатки С++, и так же знаю, что отсутствие GC - это его killer feature, а никак не наоборот.
>Ты кстати идеально подошёл бы под эту картину, как и 4/5 всех плюсовиков - ничего УБИРПИРФОРМАНСНОГО не пишут, но срут кровью от двух букв одной аббревиатуры.
На С++ я пишу только уберперформанс (мой софт один из самых быстрых в мире на рынке), но с чего ты взял, что я пишу только на С++? Я много на чем пишу, выбирая язык под задачу, у D задач нет, для языка с GC он очень отстал от жизни, без GC он превращается даже не в С++, а в plain C.

Ответы>>697947

25 Мар, 15:50 #291 #697916

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

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

Ответы>>697947

25 Мар, 15:56 #292 #697922

>>697907
>О фрагментации надо заботиться, когда у тебя объекты больше страницы.
Точнее, когда будет много страниц, которые только немного заполнены. А если пустые промежутки в фрагментированной виртуальной памяти будут давать пустые страницы, то реальный расход памяти будет сопоставим с логическим. Новый блок памяти будет просто выделен в другой части адресного пространства. Слава б-гу, что адресное пространство 64-битное

Ответы>>697930

25 Мар, 16:02 #293 #697930

>>697922
Да нет, просто у аллокатора внутре и так пулы под размеры объектов по степеням двойки. Пока ты туда укладываешься, фрагментации нет.

Ответы>>697934

25 Мар, 16:07 #294 #697934

>>697930
Тогда причем здесь страницы? Это само по себе выполняет дефрагментирующую функцию

Ответы>>697939

25 Мар, 16:08 #295 #697937

>>697875
там где foo = goo должно быть @foo = @goo (@ - звезда), чтобы было 11

25 Мар, 16:10 #296 #697939

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

Ответы>>697945

25 Мар, 16:17 #297 #697945

>>697939
Я не пойму, при чем страницы. Пул это просто большой кусок памяти. Если объект не влезает, можно увеличить пул. Но страницы-то здесь причем? Они как и раньше служат для поддержки многоуровневой памяти. И как свойство - некоторые проблемы фрагментации виртуальной памяти могут быть устранены.

Ответы>>697955

25 Мар, 16:18 #298 #697947

>>697911
>Я написал в предыдущем предложении того же поста.
Хуйню написал.
>Гляжишь, и работа появится, и D-тред дойдет до бамплимита 26 раз.
А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.
>на ней хоть работа есть
1 контора на всё СНГ? Особенно много работы на ней будет после того, как её спонсор отмежевался от неё и направился н жяву.
>а общего с С++ примерно столько же
Сколько? Нихуя? Ехал воид имплицит через имплицит?
Ты на самый главный вопрос не ответил:
>Если не хочешь тащить с собой 300мб вм, получасового прогрева и убивать нахуй производительность/оперативку.
>Алсо, я бы посмотрел как ты интерфейсить между друг другом их будешь, особенно когда нужно сделать вызов из плюсов в жяву, а не наоборот.
>На С++ я пишу только уберперформанс
Пропруфай чтоле. Хоть направление скажи.
>отсутствие GC - это его killer feature
>без GC он превращается даже не в С++, а в plain C.
Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней. Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.
>>697916
>А ты отвечаешь, что все хуйня, GC очень редко делает программу медленнее и все такое.
Учебник по русскому языку там -> google.com
>где найти такую программу на native с GC, которая будет работать хотя бы сопоставимо с обычным native языком?
Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта. Иди скорость компиляции dmd посравнивай там с любым плюсовым компилятором, лол.

Ответы>>697965>>697991>>698026

25 Мар, 16:18 #299 #697948

>>697583
Сервис Application Experience включи.

25 Мар, 16:26 #300 #697955

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

25 Мар, 16:34 #301 #697965

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

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

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

Ответы>>697979>>697983

25 Мар, 16:42 #302 #697979

>>697965
>Ну да, жаль только что оптимизатора не завезли.
Сторонние компиляторы с этим прекрасно справляются будто он тебе чем-то поможет где-то кроме какого нибудь рендера.
>И либ.
У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.
>И из-за GC нельзя писать системы реального времени
У местных GC головного мозга, и каждая задача должна работать в риалтайме, оно понятно. Только все такие системы пишутся на си, ой.
>>697965
> Нахуй этот D нужен когда есть Rust? Он в отличае от D действительно движение в перед.
Движение вперёд в плане "не дать макаке выебать байтики неаккуратно". Это замена сишечке, слишком низкоуровенно чтобы ставить в одну шеренгу с D.
>Да, ты прав, перл и делфи люди используют, некорректное сравнение
Легаси, как и плюсы. Как в коде, так и в голове.
>Ну это же наглый пиздеж, не стыдно тебе?
Ну ты пропруфай обратное, обоссы мудака.

Ответы>>697983

25 Мар, 16:44 #303 #697983

>>697965
>Ну да, жаль только что оптимизатора не завезли.
>>697979
>У вас буст компилятор уронил. Ой, то есть, в кэш процессора нагенерированное им говно не пролезло.
Сюда надо ещё доклад швитого отца Александерску о том, как с ничестивым инлайнингом боролся покуда кодило-то не намокло.

25 Мар, 16:50 #304 #697988

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

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

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

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

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

class SetComparator {

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

SetComparator(ComparatorType type) {
_type = type;
}

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

private:
ComparatorType _type;
};

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

void main() {

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

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

Hasher hasher;

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

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

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

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

Ответы>>697992>>697997

25 Мар, 16:51 #305 #697991

>>697947
>Любой микросервис на Gовне, хз что ещё тебе сказать из реального софта.
>микросервис
>микро
>реальный софт
Ох лол. Может еще сортировочку посоветуешь сравнивать?

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

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

Ответы>>697999

25 Мар, 16:51 #306 #697992

>>697988
Сука, юзай

Ответы>>697994

25 Мар, 16:51 #307 #697994

>>697992
Пастебин!

Ответы>>698001

25 Мар, 16:55 #308 #697997

>>697988
> std::ostream_iterator<Comparable>(std::cout)
фикс

25 Мар, 16:56 #309 #697999

>>697991
>Вывод: не создано ни одного крупного проекта на нативном языке в GC. А GC-бляди все наяривают на свои gc-языки без ниши. Найс.
Докер на говне ещё. Чё-то никто не жалуется, только ты вскудахтываешь будто пнули под жёпу.

Ну что, пора чистить говно вилкой легаси.

Ответы>>698014

25 Мар, 16:57 #310 #698001

>>697994
http://pastebin.com/B2iRsSTH
кок

175 Кб, 500x480

25 Мар, 17:05 #311 #698014

>>697999
>Docker
>Набор консольных утилит-оберток над cgroups и namespaces
>Размер репы 86Mb
>Крупный проект

Можешь попытаться еще раз

Ответы>>698017

25 Мар, 17:08 #312 #698017

>>698014
Прости, признаю поражение. Мой список с твоим списком говнолегаси не сравнится, я проиграл.

Ответы>>698022

25 Мар, 17:11 #313 #698022

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

Ответы>>698023

25 Мар, 17:13 #314 #698023

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

Ответы>>698028

25 Мар, 17:22 #315 #698026

>>697947
>Хуйню написал.
Просто с каждый постом мне все меньше охота тебе что-то разжевывать. Ну если ты не понимаешь, что такое динамическая библиотека, что мне, лекцию тебе читать?
>А ещё на TIOBE в топе висят языки вроде дэльфи, перла и бэйсика, очень показательно показательно.
Делфи-треда в /pr/ нет, а С++ - есть, потому что это актуальный и очень полезный язык, изучение которого окупится сторицей. У D же есть пара фанбоев, которым настолько скучно, что они тралят С++-тред.
>1 контора на всё СНГ?
Она хотя бы есть, в отличие от работодателей на D. Хотя не знаю, зачем тебе так рынок СНГ принципиален.
>Сколько? Нихуя?
Exactly. Как и у D.
>Пропруфай чтоле. Хоть направление скажи.
Я на анонимной борде, избавь меня от этого мерянья хуйцами своего авторитета. Я предположений от твоей личности не делаю, твоя дурь видна из твоих постов, но ты почему-то о моей - делаешь, и любые твои промахи показывают больше о тебе, чем обо мне.
Последнее, что я написал (вчера) - это GPU-контейнер, который умеет swap'иться в CPU память при переполнении GPU, по определенной стратегии. Это уберперформанс, и D здесь не пришей к пизде рукав.
>Самое весёлое в том, что весь самый быстрый код на плюсах это няшная обёрнутая классами, а самый производительный и фундаментальный софт пишется на ней.
Типичный баттхерт неосилятора, который я слышу уже много лет. К реальности не имеет никакого отношения, просто передается неосиляторами из уст в уста.
>Плюсы были неплохи лет 20 назад, когда альтернативы не было, сейчас они слишком высокоуровенны и слишком низкоуровенны одновременно благодаря неспешности старых пердунов.
Ну вот опять же, вместо того, чтобы слушать мужиков с опытом программирования больше, чем тебе лет, ты уверен, что ты самый умный и понимаешь в программировании хоть что-то. И ты еще смеешь кого-то фанатиками называть.

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

17 Кб, 330x263

25 Мар, 17:31 #316 #698028

>>698023
>Photoshop
>Autocad
>GCC
>llvm
>Chromium, Firefox, Edge, Opera
>KDE
>все AAA игровые движки
>MS Office
>.NET и множество других компиляторов.
>большинство EDA software

Ответы>>698030>>698046>>698047>>698075

25 Мар, 17:34 #317 #698030

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

25 Мар, 17:47 #318 #698040

Ананасы, такой вопрос.
Есть некий класс, для которого перегружен оператор <<. Вот его определение:

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

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

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

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

operator uint32 () { return Method2Name( ); }

Какой оператор перегружается в этой строке? То есть, в каких случаях вызовется Method2Name?

Ответы>>698053>>698055

25 Мар, 17:50 #319 #698046

>>698028
https://github.com/search?p=1&q=language:C+++size:>=400000&ref=searchresults&type=Repositories&utf8=✓

25 Мар, 17:52 #320 #698047

>>698028
>KDE
>Photoshop
>MS Office
Блядь, не поливай плюсы говном.

Ответы>>698062

25 Мар, 17:55 #321 #698053

>>698040
Функтор, гугли function call operator overload

25 Мар, 17:56 #322 #698055

>>698040
Перегрузка cast оператора. Будет вызываться в этих случаях:
uint32 mamka = foo;
int mamka = foo;
bool mamka = foo;
double mamka = foo;(sic!)
Т.е. везде где нужен либо uint32, либо где возможно неявное преобразование из этого типа.

Ответы>>698090

25 Мар, 17:58 #323 #698062

>>698047
Ну если про kde еще можно поговорить(хотя на самом деле топовая opensource оконная система),
то все остальные - лидеры в своей сфере.

25 Мар, 18:13 #324 #698075

>>698028
>KDE
Ты же на сборщик мусора вроде ругался, не?

142 Кб, 1920x1080

25 Мар, 18:16 #325 #698082

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

Ответы>>698324

25 Мар, 18:20 #326 #698090

>>698055
Спасибо! сук пздц это мне гемора добавило только что

25 Мар, 18:36 #327 #698100

>>697618
Нет, я просто не могу осилить D, пытаюсь временами и нравится. Но потом натыкаюсь на какую-то мелкую проблему и бросаю. Опять же, от библиотек сторонних глаза разбегаются. Хочу следующий проект на D начать. Аллокаторы вроде то ли дописывают еще, то ли только дописали. Спасибо, гляну более пристально. Молодые вы... Вам всё легко.

25 Мар, 18:43 #328 #698102

>>697591
Выключи комплютер, отойди, подойди, включи, удали.

25 Мар, 18:45 #329 #698105

>>697602
Лол, что!??! Сборщик мусора? Нахуя?

25 Мар, 18:50 #330 #698109

То самое чувство, когда на анона говорящего про лучший синтаксис накидываются со словом "GC" всем тредом. Ахуенное зрелище.

25 Мар, 18:51 #331 #698113

>>697682
Что по компиляторам? Есть вроде стандартный dmd и надстройка над clang'ом. Что с перфомансом на личном опыте?

Ответы>>698116>>698120

25 Мар, 18:53 #332 #698116

>>698113
Да вы заебали. Пиздуйте в D-тред.

25 Мар, 18:54 #333 #698120

>>698113
Мой велосипед из треда олимпиадных задач, как ни странно, быстрее работал под dmd.

dmd лучше умеет в стандарты, но ldc и gdc переносимее - конпелял на планшете с убунтой (dmd нету, ldc писало какую-то хрень, gdc заработало)

25 Мар, 18:56 #334 #698125

>>697694
Спасибо, пояснили. Вы, анончики, выяснили, что главным отличием является GC, но противоречиво вышло. Алсо, что с внутренними механизмами ООП между C++/D?

Ответы>>698126>>698129

25 Мар, 18:58 #335 #698126

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

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

Ответы>>698128

25 Мар, 19:01 #336 #698128

>>698126
Хотя, похоже то же самое. Объявляешь функцию через extern (c++) - и юзаешь ее.

25 Мар, 19:03 #337 #698129

>>698125
Короче, сам вот почитай
https://dlang.org/spec/cpp_interface.html

Как дергать кресты из D, и наоборот.

25 Мар, 19:04 #338 #698132

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

Ответы>>698142>>698147

25 Мар, 19:09 #339 #698139

>>697768
Двачую этого. Не используя явную аллокацию(new, placement-new), все проблемы внезапно проходят. Если же очень нужно перфоманса ради радотать с памятью руками, то создаёшь отдельный объект/оборачиваешь стандартными поинтерами. Никаких вроблем и GC не нужен.

Ответы>>698144

25 Мар, 19:10 #340 #698142

>>698132
https://dlang.org/spec/garbage.html
Тут почитай

25 Мар, 19:12 #341 #698144

>>698139
Более того, это единственный правильный путь. Тягать new/delete не в конструкторе означает то, что код будет течь при исключениях. Просто у каждого неосилятора в программе сплошные циклические графы всего со всем, да еще и в многопоточной среде с shared state.

25 Мар, 19:20 #342 #698147

>>698132
https://en.wikipedia.org/wiki/Boehm_garbage_collector
>The collector uses a mark-sweep algorithm.

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

25 Мар, 19:51 #343 #698179

Эта ваша boost::asio Header-Only?

Ответы>>698184

25 Мар, 20:07 #344 #698184

>>698179
Да, если будешь билдить без зависимостей в boost::system (вроде каким-то дефайном отключается).

А вообще, бросай это говно.

Ответы>>698195>>698537

25 Мар, 20:23 #345 #698195

>>698184
Ты не знаешь как в get запросе этот ебучий unicode передается?

Ответы>>698236

25 Мар, 21:50 #346 #698236

>>698195
Боже, серьёзно, если тебе нужна библиотека http клиента даже не смотри в сторону asio. Это оверархитектурнутое говно - для клиентской части слишком низкоуровенно, для серверной - медленно и перегруженно.

Ответы>>698300

25 Мар, 23:15 #347 #698300

>>698236
А что можно использовать? Я там нагуглил пару вроде простеньких библиотек, но они сходу не скомпилились так как сраная винда, еще и под mingw, так что я их дропнул. У меня маленькая утилитка для личного пользования, она дергает гугл транслейт. Я изначально сделал на винсокетах чтобы по-быстрому. Все было нормально, пока я не решил с этим ебучим юникодом связаться. Но, в принципе, я уже разобрался, там юникод в utf8 перегоняется и через percent encoding отдается.

Ответы>>698356>>698546

25 Мар, 23:53 #348 #698324

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

Ответы>>698335

26 Мар, 00:02 #349 #698335

>>698324
У вас GARBAG COLLECTOR протёк.

Ответы>>698466

26 Мар, 00:22 #350 #698356

>>698300
vibe.d

68 Кб, 736x736

26 Мар, 06:33 #351 #698466

>>698335
SEGMENTATION FAULT

26 Мар, 11:14 #352 #698537

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

Ответы>>698538>>698546

26 Мар, 11:16 #353 #698538

>>698537
>стандарт стандарт
т.е. наистандартнейший стандарт

26 Мар, 11:24 #354 #698546

>>698537
Такой ты кек.
>стандарт по факту
Разве что в конторках с C++98, где без его костылей никуда.
>а потом разделывают на мясо неугодных
Есть пытка повеселее - посадить этих неверных читать код на бусте, особенно со всеми старыми высерами вроде boost::lambda.
>>698300
Casablanca очень приятная, и имеет более высокоуровенный API, посмотри в её сторону.

Ответы>>698637

26 Мар, 13:02 #355 #698637

>>698546
>Casablanca
тэк о разве касабланка не тянет за собой буст и его сраный асио в том числе?

Ответы>>698650

26 Мар, 13:08 #356 #698650

>>698637
Вне шинды тащит. Целую хидер-онли библиотеку тащит, лел.
Если нужно написать клиентскую часть она всё равно в 10 раз лучше чистого асио.

26 Мар, 14:00 #357 #698713

Стреляю в ногу, пасаны:
http://pastebin.com/jiqEyQCN

Ответы>>698721

26 Мар, 14:08 #358 #698721

>>698713
>int = 0;
Не попал

Ответы>>698748

26 Мар, 14:44 #359 #698748

>>698721
точно, коряво скопировал из своего кода

Ответы>>698753

26 Мар, 14:53 #360 #698753

>>698748
http://pastebin.com/Y7ZJsGYf
Щинок блядь, стрелять не научился ещё.

Ответы>>698783

26 Мар, 15:16 #361 #698783

>>698753
Люблю развернутый код, один хуй нормальный компилятор это говно вот так бы и оптимизировал.

26 Мар, 15:45 #362 #698819

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

Ответы>>698823>>698878

26 Мар, 15:48 #363 #698823

>>698819
Напиши калькулятор, змейку на псевдографике. Все зависит от того зачем ты их учишь.

Ответы>>698865>>698881>>699045

26 Мар, 16:29 #364 #698865

>>698823
>калькулятор, змейку на псевдографике
К C++ это имеет никакое отношение.

Ответы>>698870>>698874

26 Мар, 16:34 #365 #698870

>>698865
Хорошо, не пиши

26 Мар, 16:40 #366 #698874

>>698865
> имеет никакое отношение.
Инглиш параллельно учишь?

26 Мар, 16:44 #367 #698878

>>698819
Открываешь любой сайт с задачами и решаешь. Только решай их не как олимпиадные, нормально. По максимуму используй stl. Пиши классы. Реши так задач 25-30. Потом придумаешь проект для себя и пили его.

26 Мар, 16:45 #368 #698881

>>698823
Калькулятор я уже простенький на винформах накидал, надо будет ему функциональности добавить еще. А вот змейку попробую, только как консоль очищать? system() использовать не рекомендуют, а clrscr() из conio.h у меня ошибку при компиляции выдает.

Ответы>>698883>>698888

26 Мар, 16:46 #369 #698883

>>698881
ncurses

Ответы>>698934

26 Мар, 16:52 #370 #698888

>>698881
А если я хочу написать кросплатформенное что-то, не используя Qt, что делать

Ответы>>698906

26 Мар, 17:17 #371 #698906

>>698888
STLPort

Ответы>>698933

26 Мар, 17:38 #372 #698933

>>698906
Спасибо.

Ответы>>699275

26 Мар, 17:38 #373 #698934

>>698883
Спасибо, вроде выглядит достаточно простой для освоения библиотекой.

Ответы>>698972

26 Мар, 17:43 #374 #698938

Ананасы, посоветуйте либу для чтения/записи .zip файлов под мингв. Чтобы можно было сразу скачать, подключить и работать безо всякой ёбли со сборкой.

Ответы>>699127

26 Мар, 18:05 #375 #698972

>>698934
Только оно под *nix (и, вроде, в cygwin есть).

26 Мар, 18:59 #376 #699045

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

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

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

Ответы>>699118>>699195

26 Мар, 19:14 #377 #699070

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

Ответы>>699265>>699309

26 Мар, 19:33 #378 #699118

>>699045
Я шарю в крестах на уровне расчёта факториала на этапе компиляции и понимания зачем нужен виртуальный диструктор. Этих знаний точно должно хватить чтобы писать такое. Но я не умею. Что я упустил? Какую книгу прочитать чтобы научиться?

Ответы>>699139

6 Кб, 335x63

26 Мар, 19:37 #379 #699127

>>698938
Из шапки. http://en.cppreference.com/w/cpp/links/libs ещё буст в такое умеет

Ответы>>699518

26 Мар, 19:39 #380 #699139

>>699118
Никакую. Практика лучше сраных книг.
Просто пиши.

Ответы>>699148

26 Мар, 19:43 #381 #699148

>>699139
А упустил я что? Я ведь понятия не имею с чего начать и как закончить. Может есть где-нибудь блог где чел по шагам подробно расписывал как он какой-нибудь мелкий но полезный проект пилил?

Ответы>>699158>>699185

26 Мар, 19:46 #382 #699158

>>699148
Если конкретно про это - начни с апи сосача. Там этакая жсонная ебань.

Ответы>>699164

26 Мар, 19:49 #383 #699164

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

Ответы>>699267

26 Мар, 19:58 #384 #699185

>>699148
>с чего начать
Определить функционал, найти инструмент, спроектировать архитектуру, реализовать, протестировать, повторить

Ответы>>699191

26 Мар, 20:01 #385 #699191

>>699185
Во вот это хочу читать. Давай на примере. И так чтобы код ещё мог прочитать который получился. Чтобы автор пояснял за каждый свой выбор. Почему он сделал так, а не иначе.

Ответы>>699198

26 Мар, 20:01 #386 #699195

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

Ответы>>699206>>699256

26 Мар, 20:02 #387 #699198

>>699191
Но зачем? Не хочешь самостоятельно шишек набить что ли?

Ответы>>699206>>699231

26 Мар, 20:05 #388 #699206

>>699198
Говно выйдет.

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

Ответы>>699274

26 Мар, 20:27 #389 #699231

>>699198
>самостоятельно шишек набить
DUDE WEED LMAO

26 Мар, 20:32 #390 #699235

Вот скажите аноны Лафоре Р. "Объектно-ориентированное программирование в С++" годный учебник? Стоит ли с него начинать?

Ответы>>699251

26 Мар, 20:39 #391 #699251

>>699235
Да. После страуструпа очень легко читался. Пример с лошадями не понятный т.к. не смазано где он указатели на объекты взял. Хотя в коде написал this так и не пояснив что это. единственный косяк что заметил.

26 Мар, 20:45 #392 #699256

>>699195
> А капча?
Когда я делал это вручную, через фраерфокс - капчи не было.

26 Мар, 20:53 #393 #699265

>>699070
В книжках про оси обычно неплохо это описывается (в применении к переключению процессов/механизму страниц/etc). Начни с Таненбаума, а потом глянь там в конце библиографию, если не хватит. Инфа сотка, что там найдутся книги или статьи, где конкретно про диспетчеризацию более подробно.

Ответы>>699272

26 Мар, 20:56 #394 #699267

>>699164
Специально для твоего случая Г-сподь послал годноту в виде книжки Brown, Wilson - The Architecture of Open Source Applications, в двух частях. Там подробно описано, как строятся настоящие приложения, и, главное, почему они строятся именно так.

Ответы>>699271>>699375

26 Мар, 20:59 #395 #699271

>>699267
Спасибо.

Ответы>>699275

26 Мар, 21:00 #396 #699272

>>699265
Спасибо.

Ответы>>699275

26 Мар, 21:03 #397 #699274

>>699206
У всех поначалу выходит говно, это не просто нормально, а даже необходимо, чтобы ты потом мог сравнивать и видеть свой прогресс. Если от своего кода годичной давности тебе хочется блевать, то ты на верном пути. А если ты будешь ждать, пока по волшебству возникнет Страуструп, и своим хуем вобьет тебе в жопу сакральный опыт разработки, то ты так и останешься на уровне лаб. Царской дороги нет, знаешь ли.

26 Мар, 21:07 #398 #699275

>>699272
>>698933
>>699271
Блять я придумал как оценить качество треда! Ищем в нём количество благодарностей и вежливостей. Потом ищем в ней количество обзывательств и оскорблений. Ещё надо найти гринтекст. Если текст из него есть в посте на который ответили, то это цитата и игнорим. Иначе это может быть цитата из другого места или оскорбление. Если там есть упоминание мамы или других слов-маяков, то это обзывательство. И ещё можно считать количество удалёных ностов, но сохранённых на архиваче. Тогда можно устроить соревнование между другими тредами или в другой тематике. Это будет здорово. Ну, кто сделает?

Ответы>>699308>>699511>>699530

26 Мар, 21:38 #399 #699308

>>699275
Слишком удавопопугаисто.

26 Мар, 21:38 #400 #699309

>>699070
Книга Дракона. Сорцы llvm, gcc.

26 Мар, 21:51 #401 #699323

аноны.. есть /dev/video0
как можно с ним работать? где почитать как с ним работать?

Ответы>>699364>>699569

26 Мар, 22:42 #402 #699364

>>699323
Как с файлом. Всё - файл.

Ответы>>699389

26 Мар, 22:49 #403 #699375

>>699267
Анон, это супер. Я кончил.

Ответы>>699451

26 Мар, 22:58 #404 #699389

>>699364
ну я работал с /dev/dsp* это я понял что файл, а что в нем? как вытащить битмапу?

Ответы>>699569

26 Мар, 23:43 #405 #699451

>>699375
Поделись где взял?

Ответы>>699485

27 Мар, 00:00 #406 #699485

>>699451
На рутрекере же. Личуй - по ip тебя вычислю.

Ответы>>699488

27 Мар, 00:04 #407 #699488

>>699485
Почему тогда качателей цп так не вычесляют?

Ответы>>699491

27 Мар, 00:05 #408 #699491

>>699488
Потому что качать цп не противозаконно.

Ответы>>699494

27 Мар, 00:06 #409 #699494

>>699491
А раздавать?

27 Мар, 00:28 #410 #699511

>>699275
Я бы вписался в такое. Надо только продумать метрики получше, а то мы же на двачах, тут даже в полезном/сочувственном/мотивирующем посте нет-нет, а маму выебут.

Ответы>>699516

27 Мар, 00:31 #411 #699516

>>699511
1. Можно разбивать нити/доски на тематики LDA или HDP.
2. Посмотреть, что за тематики получились.
3. Проранжировать их по шкале/хорошо плохо.
4. ???????????
5. Подсунуть новую доску/нить.
6. PROFFFIIFFTFTIFITI!!111!!IiIFIFITIfkzdfsd!!!!!!1!

Ответы>>699522

27 Мар, 00:36 #412 #699518

>>699127
Мало того, что с ней идёт куча лишнего для меня говна, так она просто содержит в себе библиотеку как раз нужную мне которую и так можно найти отдельно.
Нахуй так.

Ответы>>699526>>699527

27 Мар, 00:39 #413 #699522

>>699516
1) Найти инструмент для анализа данных больше подходящий чем плюсы;
2) Сказать об этом в треде;
3) Проскролить 200 постов о том что ты ДОЛЖИН ЛЮБИТЬ плюсы;
4) Отправится в след за дишниками.
Профит.

27 Мар, 00:45 #414 #699526

>>699518
Понятия не имею что это не читая взял с гугла.
http://www.zlib.net/
http://www.libarchive.org/

27 Мар, 00:46 #415 #699527

>>699518
Просто libzip сложно?

Ответы>>699566

27 Мар, 00:49 #416 #699530

>>699275
По-твоему самый лучший тред - это такой филиал Stack Overflow, где отвечают на тупые вопросы за спасибо? Но SO уже есть и в нем система настроена лучше (дубликаты банят, студентов с домашками банят, хейтеров минусуют). Борды совсем не об этом, на них отдыхают.

Ответы>>699533

27 Мар, 00:51 #417 #699533

>>699530
Можно ещё за длинопосты была треду начислять, а некрасивую орфографию снимать.

Ответы>>699537>>699841

27 Мар, 00:53 #418 #699537

>>699533
За граммотную пунктуацию плюсовать, а красивые речевые обороты - пасскод. Ебучий хабр

Ответы>>699539>>699541

27 Мар, 00:54 #419 #699539

>>699537
Плюсвать будт рбоот.

27 Мар, 00:55 #420 #699541

>>699537
Есть способ проще. Много постов - тред хороший, мало постов - плохой. А люди голосуют ногами. Вот и все.

Ответы>>699543>>699545

27 Мар, 00:55 #421 #699543

>>699541
значит лучший пхп тред?

Ответы>>699551

27 Мар, 00:56 #422 #699545

>>699541
Так ведь он уже реализован.

Всё равно остаётся некий хайп около топовых нитей в выдаче.

27 Мар, 01:01 #423 #699551

>>699543
Пхп-тред неплох.

27 Мар, 01:35 #424 #699566

>>699527
Просто не хочется ёбли со сборкой, а просто скачать и сразу использовать.

Ответы>>699618

27 Мар, 01:40 #425 #699569

>>699323
>>699389
ну черт.. я так и не нагуглил в каком формате в /dev/video0 валяется видопоток. ну спасите аноны!

Ответы>>699583

27 Мар, 01:54 #426 #699583

>>699569
Третья ссылка в гугле.
linux /dev/video0 capture video example

Ответы>>699591

27 Мар, 02:10 #427 #699591

>>699583
огогог.. етить там кода..

27 Мар, 06:47 #428 #699618

>>699566
https://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/
https://sourceforge.net/projects/mingw/files/MinGW/Extension/libarchive/
В общем, вот нашёл себе.

27 Мар, 08:58 #429 #699633

Как кодится в России, си-плюс-плюсники? Вон http://keinkeinkein.livejournal.com/83261.html по ссылке пишут, что в России работы нормальной нету.

27 Мар, 09:14 #430 #699636

Сколько времени нужно, чтобы надрочиться на алгоритмы?

Ответы>>699725

27 Мар, 10:08 #431 #699662

Как заполнить массив рандомными числами?

Ответы>>699665

sage 27 Мар, 10:10 #432 #699665

>>699662
std::generate или std::generatte_n
В качестве генератора суешь генератор случайных чисел.

27 Мар, 10:21 #433 #699676

Сука проект не компилится! "Project is not compiled, compile it now?"
Как это исправить?

Ответы>>699720>>699726>>699727

27 Мар, 11:20 #434 #699720

>>699676
Телепаты в отпуске :)

27 Мар, 11:31 #435 #699725

>>699636
Год.

27 Мар, 11:32 #436 #699726

>>699676
Нажми Yes

Ответы>>699728

27 Мар, 11:32 #437 #699727

>>699676
>compile it now?
Yes.

Ответы>>699728

27 Мар, 11:34 #438 #699728

>>699726
>>699727
Спасибо всем. Помогло.

39 Кб, 686x356

27 Мар, 11:42 #439 #699731

Я хочу, чтобы этот скрин всегда был вторым постом в треде.

27 Мар, 11:42 #440 #699732

Можно ли с помощью оператора switch, дать пользователю выбрать, каким методом он может рассортировать массив?

Ответы>>699734

27 Мар, 11:43 #441 #699734

>>699732
Да

Ответы>>700242

27 Мар, 12:40 #442 #699801

Спасибо за детальную инфу в шапке, очень помогла

27 Мар, 13:30 #443 #699841

>>699533
Тредов пять назад анон подводил статистику употребления "тся/ться" по борде. Крестотред был безусловным лидером по грамотности.

27 Мар, 13:53 #444 #699849

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

Ответы>>699852>>699853>>699857

27 Мар, 13:55 #445 #699852

>>699849
Иногда бинды короче и выразительнее.
Но вообще рекомендуют использовать лямбды, даже если получается длиннее.
К тому же, в C++14 у них няшный capture list запилили.

27 Мар, 13:56 #446 #699853

>>699849
В новых проектах - да. Легаси которое написано с ними легче продолжать компилировать старым комапилятором и писать с биндами, чем пытаться присунуть туда лямбды.

27 Мар, 14:07 #447 #699857

>>699849
В С++11 были места, где bind был нужен - полиморфные лямбды, capture-by-move и т. п, в С++14, насколько я понимаю, уже все равно.

27 Мар, 15:24 #448 #699946

Сап, аноны. Я тут новичок, тащемта не могу в транспонирование матрицы:
Есть глобальная static int матрица, ее нужно транспонировать и тут я застрял. Нужно именно транспонировать оригинальную матрицу, не создавая копий всяких, как это сделать?

Ответы>>699951>>699981>>699982

27 Мар, 15:27 #449 #699951

>>699946
std::swap

27 Мар, 15:32 #450 #699959

Есть одна программа на C++. Как в OllyDbg найти точку входа в нее и поставить бряку без спама кнопки F8?

27 Мар, 15:44 #451 #699981

>>699946
Просто меняешь местами элементы матрицы.

27 Мар, 15:45 #452 #699982

>>699946
[code lang="cpp"]for (auto i = 0; i < size; ++i) for (auto j = i+1; j<size; ++j) swap (matrix [isize + j], matrix [jsize + i]);[/code]

Это если квадратная. Для произвольной прямоугольной в любом случае будут копии из-за сдвигов, причем в предельном случае с копией единственного элемента будет охуенно избыточная сложность.

Ответы>>700237

27 Мар, 17:44 #453 #700237

>>699982
Матрица не квадратная точна, транспонирование нужно только если n > m

27 Мар, 17:46 #454 #700242

>>699734
http://ideone.com/Wg2Ulv
Выдает кучу ошибок, которые мне не совсем понятны. Заного переписывать код?

Ответы>>700245>>700250>>700252

27 Мар, 17:47 #455 #700245

>>700242
Ââåäèòå çíà÷åíèÿ ìàòðèöû

Ответы>>700260

27 Мар, 17:49 #456 #700250

>>700242
> switch (Âàø âûáîð)
■╘╧ ▄╘╧?

Ответы>>700260

27 Мар, 17:51 #457 #700252

>>700242
У тебя в 27 строке какая-то хуита, почитай как switch работает.

Ответы>>700285

27 Мар, 17:53 #458 #700260

>>700245
>>700250
http://ideone.com/whcOMU

Ответы>>700271

27 Мар, 17:58 #459 #700271

>>700260
Там же написано в логе что не так.

Ответы>>700285

27 Мар, 18:04 #460 #700285

>>700252
>>700271
Заработало, я неправильно cout написал.

27 Мар, 18:10 #461 #700303

Теперь возникла другая проблема, он не правильно сортирует массив.
[code]for(int i=1;i<n;i++)
for(int j=i;j>0 && a[j-1]>a[j];j--)
swap(a[j-1],a[j]); [code]

Ответы>>700304>>700318>>700350

27 Мар, 18:11 #462 #700304

>>700303
Блядь, обосрался.

27 Мар, 18:17 #463 #700318

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

Ответы>>700330

27 Мар, 18:23 #464 #700330

>>700318
как твоя жирная спидозная мамаша

Ответы>>700332

27 Мар, 18:24 #465 #700332

>>700330
Все идут на хуй
Хейтер сосет члены на пару со своей мамашей

27 Мар, 18:38 #466 #700350

>>700303
std::sort(std::begin(a), std::end(a));

Ответы>>700371

27 Мар, 19:01 #467 #700371

>>700350
>std::begin(a), std::end(a)
Эхх блять. Щас бы попросал с диапазонами для C++17 отклонить.

Ответы>>700404

27 Мар, 19:18 #468 #700404

>>700371
а что там в c++17 сделали?

Ответы>>700429

27 Мар, 19:36 #469 #700429

>>700404
Файловую систему, пара директив компилятора для отключения ворнингов, пара мат. функций, паральльные алгоритмы в STL. Ещё вроде попросал с человеческими кортежами а не ублюдства из stl не отклонили.

27 Мар, 19:53 #470 #700443

Плюсы скоро загонят меня в психушку со своими тонкостями. Что в этом коде не так?
https://ideone.com/dqZ5ze

Ответы>>700448>>700451

27 Мар, 19:56 #471 #700448

>>700443
std::cout << a.capacity()
перед каждым emplace и после всех emplace

Ответы>>700453

27 Мар, 19:58 #472 #700451

>>700443
Да, конструктор копий запили и всё поймёшь.

Ответы>>700453

27 Мар, 20:01 #473 #700453

>>700451
>>700448
Понятно. Спасибо.

Ответы>>700458

27 Мар, 20:06 #474 #700458

>>700453
Точно? Объясни тогда.

Ответы>>700466

27 Мар, 20:12 #475 #700466

>>700458
Сначала capacity 0.
запрос на добавление объекта
память выделяется (capacity 1)
добавляем новый объект в конец
запрос на добавление объекта
память выделяется (capacity 2)
копируем старый объект (вызывается конструктор копирования)
старые данные чистим (вызывается деструктор)
добавляем новый объект в конец
Так?

Ответы>>700475

27 Мар, 20:16 #476 #700475

>>700466
Да.

28 Мар, 04:43 #477 #700757

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

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

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

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

Суть ошибки в том, что библиотеку нужно компилировать 32 битным компилятором, а не 64, который стоит у меня. Так вот, как мне скомпилировать эту библиотеку на Ubuntu с учетом того, что у меня система 64 и Qt стоит тоже 64 битный? Поиск в Интернете дал много информации, но мало практического решения, хелп анон. Блять, я пак с няшной-няшей тебе отдам, если ты поможешь

Ответы>>700781>>700813

28 Мар, 09:32 #478 #700781

>>700757
Поставить 32 битный компилятор.
sudo dpkg --add-architecture i386
sudo apt-get install libkompilyator:i386

Ответы>>700787

28 Мар, 09:38 #479 #700787

>>700781
>libkompilyator
Ты совсем писька?

28 Мар, 10:27 #480 #700813

>>700757
Попробуй же найти скомпилиную.

28 Мар, 14:16 #481 #700936

Сап, ебач.
Начинаю прогать на плюсах, какой софт самый годный для проганья?

Ответы>>700992

28 Мар, 14:32 #482 #700946

Почитал про изменение политик лицензирования Qt и понял, что эти ребята теперь не дадут нормально делать софт бесплатно и без смс. Только если ты не будешь распространять свою программу или откроешь пользователям сорсы.
Возвращаться на MFC? Покупать за 49 баксов в месяц нет пути.

Ответы>>700949>>700957

28 Мар, 14:33 #483 #700949

>>700946
Лол, а не жопой ли ты читал?

Ответы>>700953

28 Мар, 14:37 #484 #700953

>>700949
почему? с 5.6 только LPGLv3 во всех компонентах, а это и квик контролы в том числе.

Ответы>>700956

28 Мар, 14:40 #485 #700956

>>700953
И каким образом LGPLv3 принуждает тебя открывать сырцы своей проги, а?

Ответы>>700959

28 Мар, 14:44 #486 #700957

>>700946
Для некоммерческого софта достаточно динамической линковки. Коли он коммерческий – или плати, или пиздуй обратно на mfc в 2005.

Ответы>>700960>>700968

28 Мар, 14:46 #487 #700959

>>700956
Нет что ли? А что поменялось тогда?

Ответы>>700963

28 Мар, 14:46 #488 #700960

>>700957
Лол, где ты взял такое?
LGPL на то и нужна, чтобы юзать свободные библиотеки в закрытом софте.

Ответы>>700964

28 Мар, 14:49 #489 #700963

>>700959
Хуй знает. По большей части ничего.

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

Открывать саму прогу ты не обязан и никогда не был.

28 Мар, 14:50 #490 #700964

>>700960
Лан, а какого хуя этот петух ты? вообще набухает? Нистатическая линковка, кококо?
Запахло винапи пидором.

28 Мар, 14:52 #491 #700968

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

Ответы>>700971

28 Мар, 14:57 #492 #700971

>>700968
Блять, это для коммерческой версии!
Тебе надо качать опенсорцную.

Ответы>>700975

28 Мар, 15:05 #493 #700975

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

Ответы>>700977

28 Мар, 15:12 #494 #700977

>>700975
Ты че, ебанутый?
>Если я вдруг решу продавать даже за один рубль, уже мне нужна коммерческая версия.
Сука, откуда ты это берешь?

Ответы>>700986

28 Мар, 15:24 #495 #700986

>>700977
Ну, вот же
>Коли он коммерческий – или плати, или пиздуй обратно на mfc
Если коммерческий софт пишу, значит надо коммерческую лицензию, не?

Ответы>>700992>>700996

28 Мар, 15:30 #496 #700992

>>700936
Emacs и Arch Linux.

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

>>700976
Пиши конкретней чтоле.

Ответы>>701005

28 Мар, 15:34 #497 #700996

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

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

В твоем случае, коммерческая лицензия тебе нахуй не уперлась. Я раньше сетовал на то, что в коммерческой был рендер qml софтварный - из-за его отсутствия в опенсорце приходилось жрать qt quick1.
Но сейчас они кучу коммерческой хуйни в опенсорц перевели.

Ответы>>701008>>701010

28 Мар, 15:50 #498 #701005

>>700992
А чем тогда open-source версия отличается в этом? Тем, что библиотеки можно только динамически линковать?

Ответы>>701008

28 Мар, 15:51 #499 #701008

>>701005 -> >>700996

28 Мар, 15:54 #500 #701010

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

28 Мар, 17:19 #501 #701085

Сразу к делу. Как в дебаге вижуал студио посмотреть значение переменной, которая инициализируется в последней строчке области видимости? Брейкпоинт на ней - она ещё не инициализирована, шаг вперёд - уже вышла из скоупа. Есть путь адекватнее добавления холостой строки для того, чтобы на ней стояла каретка дебага?

Ответы>>701099>>701102

28 Мар, 17:46 #502 #701099

>>701085
Нету. Один из случаев полезности ассертов.

Ответы>>701709

28 Мар, 17:50 #503 #701102

>>701085
Что-то с кодфлоу не так. Если переменная локальная, то она нахуй не нужна, иначе она доступна вне скоупа.

Ответы>>701133

28 Мар, 18:10 #504 #701133

>>701102
Что, после каждого вызова функции брейкпоинт ставить?

Ответы>>701294

28 Мар, 18:59 #505 #701200

Какой петух засунул в шапку codelite? Эта хуйня даже CMake без плясок с бубном открыть не может.

28 Мар, 19:53 #506 #701294

>>701133
Тебе результат функции нужен? Студийный отладчик и gdb умеют показывать значение return

28 Мар, 20:15 #507 #701321

В какой книге лучше всего описана работа с файловыми потоками? Например, мне нужно разобраться, как работает seekg(0, std::ios::end), а на cppreference я вижу только это:

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

>off
>Offset value, relative to the way parameter.
>streamoff is an offset type (generally, a signed integral type).

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

Ответы>>701322>>701326>>701844

28 Мар, 20:16 #508 #701322

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

28 Мар, 20:17 #509 #701326

>>701321
Смещение относительно направления
Ты можешь указать смещение относительно начала, конца и текущей позиции.

35 Кб, 600x596

29 Мар, 00:59 #510 #701647

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

Ответы>>701655

29 Мар, 01:16 #511 #701655

>>701647
>Как же хочется перекатика.
Ну так делай епта

Ответы>>701656

29 Мар, 01:16 #512 #701656

>>701655
Я не ОП.

29 Мар, 06:38 #513 #701695

>>696596
То есть приблизились по зашквару и быдланству к пхп

Ответы>>701697

29 Мар, 07:06 #514 #701697

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

29 Мар, 08:23 #515 #701709

>>701099
И как в таком случае верно заасертить? другой анон

29 Мар, 08:31 #516 #701712

Сап аноны.
есть пара вопросов..
1) я смотрю на С++ как на мощный инструмент круче которого нет. И наверное связываю свое будующее с ним мимо прыщевод/20лвл/гуманитаростудент/технарь в душе/кун
но помимо написания программ по курсу С++ за 21*10^3 дней я понимаю что нужно сеч в алгоритмах от стабилизации потоков до алгоритмизации чистых иксов в 4ре строки из которых 2 это
>int main()
>return -1; // мать его eror

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

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

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

зы: с голоду ппц умираю.. умею по сути только писать код по разжеванному в пиздец тз. за плечами 15к строк только. + я не плохой прыщееб на уровне rm -rf / не вводи, а dd if=/dev/zero of=/dev/ada0 попробуй. Может это спасет меня?

Ответы>>701720>>701828>>702119

29 Мар, 09:04 #517 #701720

>>701712
Насчет ide: пользуйся CMake и попробуй все ide популярные.

Ответы>>701736

29 Мар, 09:15 #518 #701725

Кто-нибудь может пояснить за ассемблерные вставки на C++ в вижуал студио?

Ответы>>701726

29 Мар, 09:16 #519 #701726

>>701725
Поясняю, не нужны

Ответы>>701727

10 Кб, 404x410

29 Мар, 09:19 #520 #701727

>>701726
Как мне заполнить массив в асм вставке числами от 0 до 99, юморист?

Ответы>>701728>>701814>>701820

29 Мар, 09:22 #521 #701728

>>701727
Ну смотри, выделяешь весь блок и жмёшь бэкспейс, затем пишешь нормальный код на C++

Ответы>>701729

29 Мар, 09:25 #522 #701729

>>701728
И своему преподу я как это объясню?

Ответы>>701735>>701736

29 Мар, 09:44 #523 #701735

>>701729
Скажешь, что он совковый дегенерат, а за ассемблерные вставки в 2016 ссут в ротешник

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

Ответы>>701737

29 Мар, 09:44 #524 #701736

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

>>701720
у меня в репах кодблок эклипс и кьют.
есть еще что-то?

Ответы>>701791

29 Мар, 09:46 #525 #701737

>>701735
мне кажется в 2016ом асм вставки в крестах нужны чтобы зажечь светодиод по шине pci-e в куллере видеокарты.
двачюю крч

Ответы>>701739

29 Мар, 09:47 #526 #701739

>>701737
Для кулеров видеокарты есть говняшная и чистый ассемблер, кресты там вообще не всрались

Ответы>>701743

29 Мар, 09:55 #527 #701743

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

Ответы>>701745

29 Мар, 09:58 #528 #701745

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

Ответы>>701749

29 Мар, 10:00 #529 #701749

>>701745
> говняшная.
что ты под этим имеешь ввиду?

Ответы>>701768

29 Мар, 10:10 #530 #701768

>>701749
Си

Ответы>>701777

29 Мар, 10:20 #531 #701777

>>701768
открою тайну.. C++ обратносовместим с С

Ответы>>701782

29 Мар, 10:26 #532 #701782

>>701777
Да только всё равно 99% нативной хуйни пишут на чистом си.

Ответы>>701784

29 Мар, 10:27 #533 #701784

>>701782
нахера тебе классы в драйвере то?

Ответы>>701787

29 Мар, 10:30 #534 #701787

>>701784
> нинужна

Ответы>>701793>>701808

29 Мар, 10:35 #535 #701791

>>701736
NetBeans?

Ответы>>701813

29 Мар, 10:36 #536 #701793

>>701787
вероятность того сто ты билдишь не кланг а кланг++ и не замечаешб

29 Мар, 11:04 #537 #701808

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

Ответы>>701924

29 Мар, 11:08 #538 #701813

>>701791
не пробовал.. ща пробну

29 Мар, 11:09 #539 #701814

>>701727
А я бампану свой вопрос. Заебали обсуждать ебаный асм, просто помогите и я съебу.

29 Мар, 11:15 #540 #701820

>>701727
Берешь такой, значит, пишешь на C++ сначала, а потом ДИЗАССЕМБЛИРУЕШЬ и КОПИПАСТИШЬ всю эту срань типа ты такой ВСТАВКУ НАПИСАЛ САМЫЙ УМНЫЙ В КЛАССЕ ПРЕПОД ПОСТАВИЛ 5 И ПОХЛОПАЛ ПО ПЛЕЧУ

29 Мар, 11:37 #541 #701828

>>701712
еще что то подскажите баааамп

29 Мар, 12:11 #542 #701844

>>701321
Джотаттис, пару дней назад просматривал потоки, там заебись написано, с примерам. А вообще этот интерфейс со смещениями еще из C идет, поэтому в C++ обычно такие моменты не объясняют.

Ответы>>701865

29 Мар, 12:38 #543 #701865

>>701844
>Джотаттис
Сколько вариантов написания его фамилии я видел. И джосатис, и джосьютис, и теперь джотаттис. Давайте выясним правильное написание и будем использовать его в этом треде.

Ответы>>701869>>701875

29 Мар, 12:40 #544 #701869

>>701865
Ты ещё правильный вариант произношения имени страуструпа предложи обсудить.

Ответы>>701874

29 Мар, 12:44 #545 #701874

>>701869
А что ещё делать в бамплимите?

Ответы>>701912

29 Мар, 12:44 #546 #701875

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

Ответы>>701878

29 Мар, 12:49 #547 #701878

>>701875
На forvo нет, но нашел это.https://www.howtopronounce.com/josuttis/ С телефона не могу прослушать. Ещё можно на офсайте и вики посмотреть.

29 Мар, 13:30 #548 #701896

Есть ли какие-нибудь стандартные методы шифрования в Qt? Не хочется класс писать ручками.

Ответы>>701929

29 Мар, 13:45 #549 #701912

>>701874
Обсуждать D.

29 Мар, 13:57 #550 #701924

>>701808
Манямирок. Нужен минимальный оверхед, потому и берут си.

Ответы>>701936>>701992

29 Мар, 14:00 #551 #701929

>>701896
> стандартные методы шифрования
Ишь что удумал, пердолься с опенссл, это тебе не джява бездуховная.

Ответы>>701931

29 Мар, 14:02 #552 #701931

>>701929
Сильно геморрно?

Ответы>>701942

29 Мар, 14:07 #553 #701936

>>701924
Манямирок – это хуйня, которую ты написал, повторив смысл моего поста.

В самих плюсах по сравнению с си кроме виртуальных функций и ритти оверхеда почти нету.

Ответы>>701942>>701992

29 Мар, 14:11 #554 #701942

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

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

Ответы>>701945>>701960

29 Мар, 14:15 #555 #701945

>>701942
>http://hayageek.com/rsa-encryption-decryption-openssl-c/
Ебаный в рот, лучше XOR хуевину напишу руками.

Ответы>>701947

29 Мар, 14:20 #556 #701947

>>701945
Только оберини во что-нибудь а-ля XorCryptoHuinya от YobaCryptoHuinya. Как-нибудь потом реализуешь SslCryptoHuinya от YobaCryptoHuinya.

Ответы>>701949

29 Мар, 14:22 #557 #701949

>>701947
Хорошо.

29 Мар, 14:37 #558 #701960

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

sage 29 Мар, 15:03 #559 #701992

>>701936
неистово арчюю тебя

>>701924
бля ты пиздец как драйвер пишешь?
>#include<boost/dotnet>
>begin кудахтахтах; boost::кукареку; end;
тебя не говорили что си и кресты и что прога на си/крестах будет
1 -- оптимизированнее
2 -- быстрее
3 -- девелоперы gnu ебашат компилятор чтобы он был охуенней твоих "чистых" masm
4 -- байтоебит на си/крестах онли линковщик и то слабее чем ты наговнишь в MASM своём, сажа тебе

Ответы>>702624

29 Мар, 17:24 #560 #702119

>>701712
> я смотрю на С++ как на мощный инструмент круче которого нет
Blub paradox as is.

29 Мар, 17:35 #561 #702135

НОВЫЙ ТРЕД
https://2ch.hk/pr/res/702133.html (М)
https://2ch.hk/pr/res/702133.html (М)
https://2ch.hk/pr/res/702133.html (М)

29 Мар, 23:34 #562 #702624

>>701992
> наговнишь в MASM своём
Ясно, иди таблетки пей, шизофреник

Ответы>>702777

30 Мар, 04:09 #563 #702777

>>702624
ты еблан? я не юзаю это гавно

31 Мар, 17:02 #564 #704107

>>696401 (OP)
Люблю кресты и лично Страуструпа за хорошие книжки и веселые задания. А ещё у вас в шапке стихи пишут. Хороший тред.
мимопроходилв/б/

Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 19 апреля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion