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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
239 Кб, 623x960
Оффициальный™ традиционный® C++ тред #25 #688646 В конец треда | Веб
Минуя их клоаку, будь на страже:
Тот, кто в познаньи от невежд отвык,
Окрест уж не отыщет места гаже.

"Сап, двачик, посоветуй годных книг";
"Тред не читал, какую выбрать либу?";
"Завел гитхаб. Здесь будет мой дневник"... -

Галдят сыны овец, хотя могли бы
Поднять на шапку праздные глаза.
О боги! Предложи мне кто-то выбор:

Толпе арапов подставлять туза
Иль видеть этих грязных мракобесов -
Я встал бы раком, видят небеса!

Любой осел средь крестухов - профессор,
Но скудна эта скверна на ослов -
Здесь каждый безбородый байтослесарь

Считает, что senior'ом быть готов.


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

TL;DR

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

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

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

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


FAQ

Мотивация

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

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

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

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

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


Литература

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

  • Для нюфань

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


    Автор(ы) Название Год Ссылка
    Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela
    Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u
    Бьерн Страуструп Программирование. Принципы и практика использования C++ 2011 https://goo.gl/nAFUXa

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


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

  • Best practices

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


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

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

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


    Автор(ы) Название Год Ссылка
    Ален Голуб Веревка достаточной длины, чтобы выстрелить себе в ногу 2001 https://goo.gl/fBmuxp
    Джеймс Коплиен Программирование на C++ 2005 https://goo.gl/Y1WGdU
    Андрей Александреску Современное проектирование на C++ 2002 https://goo.gl/e1V5BC

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

  • Справочники

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


    Автор(ы) Название Год Ссылка
    Бьерн Страуструп Язык программирования C++ 2013 https://goo.gl/XkAiOX (на ангельском)
    Бьерн Страуструп Язык программирования C++ 2010 https://goo.gl/iZBDiV <устарело>

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

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

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


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

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

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


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


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

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

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

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


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

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


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

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

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

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

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

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

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

  • boost

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

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

    Литература:


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

  • Qt

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

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

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

    Литература:


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

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

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

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

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


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


sage #2 #688652
Что блядь? А где шапка?
>>688773
#3 #688665
>>688646 (OP)
Хорошие стишки.
#5 #688735
>>688740>>688822
#6 #688740
>>688722
>>688735
ДАБЛ СКАЗАЛ СВОЕ СЛОВО!
>>688822
#7 #688773
>>688652
Шапка не нужна.
#8 #688822
>>688722
>>688735
>>688740
Как переписать, чтобы работало с листом.
>>688826>>688828
#9 #688826
>>688822
binary search для списка это что-то новое. Зачем тебе это нужно?
>>688833
#10 #688828
>>688822
У листа нет рандом итератора, в нем нет смысла искать бинарным поиском. Точнее лист (с небольшими изменениями в структуре) для бинарного поиска называется красно-черное дерево.
>>688833
#11 #688833
>>688828
>>688826
Да я хз. Просто пытаюсь в шаблоны - на работе нечем заняться.
>>688838>>688859
#12 #688838
>>688833
третий дабл подряд.
Можешь взять std::lower_bound. Хотя это особо не имеет смысла. Лучше придумай другую задачу.
#13 #688842
>>688838

>Лучше придумай другую задачу.


Ну шаблонные сортировочки вектора и листа я давно запилил.
>>688843>>688846
#14 #688843
>>688842
А что в них шаблонного?
>>688848
#15 #688845
>>688838
ты там совсем ебанулся со своими даблами?
#16 #688846
>>688842

>сортировочки листа


надеюсь не quicksort
>>688847>>688850
#17 #688847
>>688846
бабблсорт жи
>>688850
#18 #688848
>>688843
Можно передать итераторы либо на кусок вектора, либо на кусок листа.
>>688852
#19 #688850
>>688847
>>688846
Почти все, какие были в вики.
400 Кб, 666x845
#20 #688851
>>688838

>дабл


>дабл


>дабл

#21 #688852
>>688848
И как же, хм, сортировать лист? И главное - нахуя?
У него же время доступа по индексу линейное...
#22 #688855
>>688852
для qsort доступ можно не по индексу делать. только до входа в следующую рекурсию надо указатель на центральный элемент и боковое запоминать.
#23 #688856
>>688852
А если мне что-то в нем найти понадобиться?
Инбифо юзай мап
>>688858
#24 #688858
>>688856
Ну чому сразу мап? Можно и сет.
Хотя это один хуй практически одно и то же.
#25 #688859
>>688833
Мне бы такую работу.
Напиши математическую библиотеку.
>>688861>>688889
#26 #688861
>>688859
Не лучше для графов.
#27 #688864
>>688852
introsort'у не нужен индекс же. На quicksort-этапе он берет в качестве образца первый элемент списка и в любом случае проходит последовательно по всем элементам, сравнивая с ним. На heapsort-этапе вообще все хуярится в кучу в дополнительной памяти, поэтому несущественно, опять же.
#28 #688876
>>688852

>И как же, хм, сортировать лист?


insertion sort нормально.
#29 #688880
>>688852
Обычно merge sort
#30 #688889
>>688859
Лалка, я в копицентре работаю.
>>688890
#31 #688890
>>688889
А блин. Такую работу я не хочу.
>>688893
#32 #688893
>>688890
Я тоже.
#33 #688899
Есть тут те, кто вкатился после 25?
#34 #688903
>>688899
Я пытаюсь вкатываться. Но в одиночку это хуевато выходит.
#35 #688910
>>688903

>в одиночку


А как ещё можно?
>>688916
#36 #688911
>>688899
Сейм >>688903 щит
#37 #688916
>>688910
С ментором
>>688921>>688922
#38 #688921
>>688916
А без хуя в жопе никак?
#39 #688922
>>688916
Какой нахуй ментор. Это всё бред.
У нас тут полный тред менторов. Задавай вопросы и тебе ответят.
#40 #688935
>>688899
Я пытаюсь. Скоро 26 где я просрал свою жизнь?
>>688943
#41 #688938
>>688903
Вкатывайся не в одиночку.
Скорешись с кем то и пишите свой велосипед.
#42 #688943
>>688935
Мне 28 и я вполне четко знаю где я ее просрал, лол.
>>688950
#43 #688946
А почему вы все именно в плюсы вкатываетесь?
#44 #688950
>>688943
И где? И как с крестами дружишь?

>>688946
Плюсы для бородатых дядек админов, для тех, кому за 25.
#45 #688953
У меня идея появилась: давайте обменяемся контактами и будем созваниваться раз в неделю по скайпу и рассказывать друг другу что сделали за эту неделю?
>>688954>>688958
#46 #688954
>>688953
А если у меня скайпа нет и я только начинаю?
>>688962
#47 #688956
>>688946
А куда еще? В делфи? Или в паскаль?
>>688961
#48 #688958
>>688953
Лучше может запилить свою тиму и начать что то пилить?
>>688966
#49 #688961
>>688956
В питон.
>>688963
#50 #688962
>>688954

>А если у меня скайпа нет


Ты хотел сказать что нет микрофона?

>и я только начинаю?


Какая разница?
>>688965
#51 #688963
>>688961
У меня лично был диск "погромирование по русски - 5в1", и никакого питона там не было.
>>688967
#52 #688965
>>688962
Нет, микрофон есть, даже два лол. А вот учётки в скайпе нет и не очень-то хочется. Альтернативу на крестах напишем?
#53 #688966
>>688958
Я просто хочу прочитать N книг, и для этого мне нужна мотивация.
>>688975
#54 #688967
>>688963
Ну щас можно и без дисков. Включил курс на сайте MIT и вникай.
>>688969
#55 #688969
>>688967
Ну был вопрос, кто и почему вкатился в кресты.
Когда я заинтересовался погромированием - никаких интернетов у меня не было.
>>688972>>688977
#56 #688972
>>688969
Да и у кого они были - были по карточкам и повременка.
#57 #688975
>>688966
Но ведь книги говно, главное жи практика.
>>688981
#58 #688977
>>688969
Когда я им заинтересовался у меня был сраный Вектор-06Ц со встроенным бейсиком, магнитофон Маяк и старый телевизор. Так что у тебя еще дохуя выбора было, лол.
#59 #688980
>>688946
Я начинал программировать с варкрафта 3, там был скриптовый язык jass.
По мере развития картостроительства, энтузиасты сделали настройку над джассом называемый cJass с си подобным синтаксисом.
#60 #688981
>>688975
У меня в планах 2 книги (Эккель, он охуенен), потом можно и попрактиковаться.
>>689071
#61 #688982
Так стоп. Вы давно программируете, но решили перекатится или что.
>>688984>>688988
#62 #688984
>>688982
На втором курсе технаря познакомился с Pure C. Очень вкатило. Потом много лет нихуя-не-делания. Сейчас вкатываюсь в кресты.
#63 #688988
>>688982

>Вы давно программируете, но решили перекатится


Что это меняет? Прокрастинацию никто не отменял. Моя идея со скайпом как раз в том, что не важно какой у нас с вами уровень, мы можем заниматься совершенно разными вещами на плюсах, просто будем говорить друг другу что сделали за неделю и все. Так можно попробовать одержать победу над прокрастинацией. Лично мне, сказать: "Я нихуя не сделал, ничего не прочел, смотрел всю неделю аниму" будет не приятно.
>>688992>>688996
#64 #688992
>>688988
Думаю, совместно пилить какую-то хуиту будет эффективнее.
>>688994>>689001
#65 #688993
>>688946
Олимпиадки решать. Теперь еду на респу и лучше всех знаю кресты.
#66 #688994
>>688992
Как ты себе это представляешь? Библиотеки на каждого распределить?
>>689000
#67 #688996
>>688988
Ну а если я скажу: Вот делаю свой небольшой 3д шутер. Хочу там сделать двери и двигающиеся стенки. Ебусь с квейковским бсп.
Что это изменит?
#68 #688999
>>688996
Аноны тебе с кодом помогут.
#69 #689000
>>688994

>Как ты себе это представляешь?


Решить, что пилить, заебашить проект на битбукете и в шкайпике обсуждение, охуительные идеи и реализация.
>>689072
#70 #689001
>>688992
Ты поставил цели на неделю и выполнил их - значит молодец. Что еще нужно?
>>689004
#71 #689004
#72 #689006
>>688996
Вот этот сайт не смотрел? http://fabiensanglard.net интересный разбор кода некоторых шутеров, может пригодиться.
>>689008
#73 #689008
>>689006
То, что мне надо там нету.
Проще тупо исходники квейка самому смотреть.
Я тебе сам могу посоветовать:
https://www.youtube.com/user/philipbuuck/videos
#74 #689011
Как заебашить рендер без opengl?
В какую сторону копать?

Раньше ведь под досом и без него обходились.
>>689013>>689018
#75 #689013
>>689011
Это называется софтварный рендер.
https://www.youtube.com/watch?v=HQYsFshbkYw
#76 #689018
>>689011
На хабре статьи есть про software rendering.
#77 #689020
Короче, вот мой скайп: max.j.t.
Если надумаете, вы знаете что делать.
мимо 688953 кун
>>689021>>689036
#78 #689021
>>689020
Го в майн выживать, бротиш
>>689022
#79 #689022
>>689021
А у меня майн даже с Optifin-ом не тянет.
#80 #689035
Анон, есть такая хуета:
class A
{
//поля

A (A x,...) {};

void xyu(...)
{
...
A
x = new A(...)/конструктор должен запуститься от указателя на данный экземпляра класс - как ето написать блеать?/
}
};
#81 #689036
>>689020
Точнее ник в скайпе такой: "max.j.t.", да после t точка.
#82 #689041
>>689035
сука звездочки проебались:
A (Aзвезда x,...)

Aзвезда = new A(...)
>>689179
#83 #689043
Если вас интересует тематическое общение вместо скайпа можно юзать слак, там скоро звонки запилят.
Если вас интересует борьба с прокрастинацией то вам сюда
https://2ch.hk/se/res/8791.html (М)
#84 #689049
>>689035
Нормально код залей. Нихуя не понятно. Ты хочешь просто указатель передать. Так передавай какие проблемы?
#85 #689050
Ну и чего замолчали?
#86 #689071
>>688981
Эккель это джавист ебаный, пытающийся накормить читателя жабой под видом "философии C++". Духу крестов его книги нихуя не соответствуют, да и сам он, прям скажем, не специализируется конкретно на крестах. Можно рекомендовать это читать только джаваблядкам, желающим ознакомиться с крестами для общего развития.
>>689078
#87 #689072
>>689000
Да ну, такие вещи с аноном никогда не взлетают. Осенью вон пилили борду-убийцу и дальше гуглодока с 3.5 анонами дело не зашло. А разгадка одна - все только пиздеть горазды и командовать, реальная долговременная работа в команде невозможна без начальства.
>>689074
#88 #689074
>>689072
Я думаю - все возможно.
По крайней мере, я б не отказался.
>>689083
#89 #689078
>>689071

>желающим ознакомиться с крестами для общего развития.



Другого и не требуется.
#90 #689083
>>689074
Ну смотри, всегда все идет по одинаковому сценарию. Находятся энтузиасты вроде тебя я и сам такой, начинают что-то пилить. В начале активнейший обсуждач, все интересно и охуенно. Потом начинаются проблемы - Вася проебался, а исправлять другим; мнения анонов по какому-то вопросу принципиально различаются, а высшей инстанции нет; половина людей переключились на что-то другое и испарились из проекта... Ну ты понел. В таких условиях всего джва варианта: либо есть какой-то мощный стимул бабло в конце, анальные кары от начальства, который принудит большинство участников серьезно въебывать, либо кто-то один фактически вытягивает на себе весь проект, и коллективным его уже сложно назвать. Такие дела.
>>689088
#91 #689088
>>689083
Блять, но на западе же эта хуйня работает?

Давеча в дишный ирц-канал отписался с вопросом и охуел - сука сразу куча ответов нормальных и по существу, а тут или на каком-нибудь лоре бы хуями и говном в 3 слоя обложили...
>>689093
#92 #689093
>>689088
Ответить в irc или, скажем, ITT это минутное дело. Ты зашел в тред в подходящем настроении и помог ньюфагу, а иной раз хуями обложишь. А коллективная работа - совсем другой уровень, там энивей надо превозмогать. Превозмогать анон не любит, что у нас, что у них.
>>689095
#93 #689095
>>689093
Но ведь есть и профиты. Фан, опыт, возможность указать, если что то выгорит, эту хуйню в резюме.
>>689100
#94 #689100
>>689095
Ну и что? Существует огромное количество профитов, которые мы игнорируем, потому что они вне зоны комфорта. Сычевик даже тян не может найти, хотя желание тян у большинства гораздо сильнее, чем желание получить фан от разработки.
>>689105
#95 #689101
Как сделать массив в классе?
>>689103>>689107
#96 #689103
>>689101
Массив классом? Так есть же std::array
#97 #689105
>>689100
Всегда было интересно - что значит "найти тян"?
Разве это не рандомное событие?
>>689110
#98 #689107
>>689101

class masiv{
public:
int a[100];
};
>>689109
#99 #689109
>>689107
А почому нельзя сразу определить элементы?
#100 #689110
>>689105
Нет. Можно в массиве найти, подходящую под требование.
>>689111>>689113
#101 #689111
>>689110
Это тот же самый рандом, только при наступившем событии ты дропаешь непонравившуюся тян.
>>689115
#102 #689113
>>689110
В бэ даже программу для этого писал, а какой-то анон мне указывал на ошибки. Сошлись на версии где её создавали с помощью new и вызова конструктора.
>>689125
#103 #689115
>>689111
Ну, можно и с другой стороны посмотреть. Перебираешь массив и в ифах требование выставляешь. Ты ничего не дропаешь, просто ищешь.
>>689118>>689119
#104 #689118
>>689115
Но это невозможно. ИРЛ ты не знаешь тян, пока с ней какое-то время не поконтактируешь.
Невозможно знать инфу о тян - это приватные мемберы.

Так что только рандом -> выясняешь -> дропаешь если не так.
>>689123
#105 #689119
>>689115
И такой вариант в бэ писал. Там целая оценочная функция была где пользователь мог сам параметры задать. Её писали т.к. при поиске по обязательным требованиям цикл мог быть очень долгим и не завершиться вовремя. Ещё какую-то рекурсивную функцию писал которая стек рвала если такой тян нет.
#106 #689123
>>689118
Представь if как фильтр, как вход в здание. Если тня не соответствует требованиям, она просто не попадает в твоё поле зрения.
>>689126>>689127
#107 #689125
>>689113

>new


Шок! Раскрыта загадка века! Тяны уходят из-за брошенных исключений.
>>689129
#108 #689126
>>689123
Но ты блять не знаешь изначально, соответствует она требованиям или нет.
Это как конфета с говном - пока не надкусишь - не узнаешь.
>>689132
#109 #689127
>>689123
Тогда может быть случай когда все тян не подходят.
>>689128>>689130
29 Кб, 325x306
#110 #689128
>>689133
#111 #689129
>>689125
Ещё были какие-то причины не создавать её на стеке. Не помню какие, но они есть!
>>689138
#112 #689130
>>689127
Ну напиши что-то в стиле:
else
("Forever alone")
#113 #689132
>>689126

>конфета с говном


Пиздуй в Хогвартс со своими бобами Берти Боттс, волшебник хуев.
#114 #689133
>>689128
Да нет же. Спасает оценочная функций когда все тян получают оценки и выбираешь лучшую. Но тако подход не сработает если тян очень много.
>>689135
#115 #689135
>>689133
На кой тогда с ифами ебаться? Может сразу функцию запилить?
#116 #689136
Походу моя тян бросила неперехваченное исключение в конструкторе и аварийно завершилась не создавшись.
#117 #689138
>>689129
Подумай какие. Мне кажется, что мы скоро подберёмся к разгадке тайны.
>>689141
#118 #689141
>>689138
Может уязвимость перезаписи стека?
#119 #689142
throw new Tyan("еотова");
>>689144>>689430
#120 #689144
>>689142
Омежка все равно качнет.
#121 #689179
>>689041
Тебе нужен указатель на создаваемый класс внутри конструктора? Там есть и так неявный this
#122 #689224
Недавно узнал про __float128 и мне понравилось. Не пришлось писать длинку. Что ещё весёлого я не знаю про что не пишут в книжках?
>>689225>>689229
#123 #689225
>>689224
И что же ты про него узнал?
И каким образом он связан с длинкой?
>>689226
#124 #689226
>>689225
Ну там числа большие влазят.
>>689227>>689229
#125 #689227
>>689226
Но блять, не целые ведь!
А длинка тут при чем?
#126 #689229
>>689226
>>689224
Дальше читай.
>>689230
#127 #689230
>>689229
Что дальше?
>>689231
#128 #689231
>>689230
Читай...
#129 #689237
Какую функцию передавать функцию сортировки для сравнения?
#130 #689238
>>689237
Компаратор.
>>689241
#131 #689239
>>689237
Лямбду.
>>689241
#132 #689240
>>689237
Функтор.
>>689241
#133 #689241
>>689238
>>689239
>>689240
Есть какой-то стандарт/шаблон?
>>689242
#134 #689242
>>689251
#135 #689251
>>689242
Покажи
>>689252
#136 #689252
>>689251
[1, 3, 9, 7, 3, 8].sort!((x, y) => x < y)
#137 #689407
>>688646 (OP)
Какие проекты, вероятнее всего, среднестатистический некриворукий анон будет делать, если выучит C++ на уровне приличного новичка? Какие проекты чаще всего попадаются? Какие проекты интересные? Какие проекты в 2016 году делаются на Qt? На голом C++? Под какие платформы? Бывалые, опишите, интересно же. На моей прошлой работе был крохотный проект на плюсах с нормальным ООП, но он был скорее огромным таким биндингом для использования другого проекта.
>>689409
#138 #689409
>>689407
Я писал на Qt.
#139 #689430
>>689142
Fuuuuuuuu~~~
Никогда так не делай
12 Кб, 225x225
#140 #689444
>>688646 (OP)
ПОСАДИЛИ МИШКУ НА КОЛ
ОТОРВАЛИ МИШКЕ ЛАПУ
ЧАС ПРОБИЛ И ЖРЕБИЙ БРОШЕН
И НИКТО МНЕ НЕ ПОМОЖЕТ
#141 #689449
Аноны, а какие вы юзаете ide??
нотпад++ поднадоел что-то
>>689450>>689451
#142 #689450
>>689449
Для крестов - Qt Creator
>>689452
#143 #689451
>>689452
#144 #689452
>>689450
ну он интересен но там нельзя свой makefile дальше смотрим
>>689451
дорого и не умеет в кросплатформ ещё варианты

зы там юзаю пока эклипс но эта сучка тяжелая как танк
>>689453>>689454
#145 #689453
>>689452

>ну он интересен но там нельзя свой makefile


Да ну? А зачем тебе "свой makefile"?
>>689455
#146 #689454
>>689452
Юзай коммон версию.
Алсо, не понимаю дрочь на кроссплатформу. Всегда было на все кроме шинды поебать.
>>689457
#147 #689455
>>689453
хочу с эклипса перекат на годную ide сделать.
зачем переписывать под qmake если проще geany с парой скриптов какихньть?
>>689459
#148 #689457
>>689454
не юзал шинду года 4
на моем железе любая синку кидает в процессе установки
>>689460
#149 #689459
>>689455

>зачем переписывать под qmake


qmake - прошлый век. Юзай qbs, он не генерит промежуточный файл, а дергает инструменты напрямую. Реально быстрее собирает.
>>689466
#150 #689460
>>689457
Код блок можешь тогда попробовать. Сам не юзал, но грят норм вдобавок легковесный
>>689461>>689466
#151 #689461
>>689460
Откуда дроч на "легковесность"?
Браузер все равно будет жирнее всего.
>>689462>>689466
#152 #689462
>>689461
Ну очевидно откуда.
>>689466
31 Кб, 689x52
#153 #689466
>>689459
Интересненько, отстал я от qt но не решает проблемы лишнекодописания
>>689460

>Код блок


пик? не юзал но пробну.
>>689461
в этом и беда анон
на оверлокался сжег писюк
продал озу с него, купил олд битую железку
появился таск на спасение моей жизни рендер написать с парой 3д анимаций на апараты 2003-5ых годов рождения
браузер имой любимый эклипс сьедают 210процентов озу
это не удобно капец

>>689462
ну надо знать грань между жиром и легкостью
на крестах даже в qt относительно легкие проги выходят. только мелкие смогли придать крестам веса
#154 #689564
>>689035
A(A* x=this, ....) {}
#155 #689595
Уважаемые крестоносцы, что скажете на счет этого кала?
http://pastebin.com/m1r6nTVZ

Прошу сразу не крыть хуями по поводу ИДЕ, работаю на чем велено.

Нужны любые комментарии, я только учусь, а обсудить сделанное не с кем.
>>689601
#156 #689601
>>689595
Код плохо читаем:
- Не понятна мотивация кода. Напиши, нахуя вообще нужен класс
- Красиво оформи интерфейс класса, чтобы не приходилось его искать.
- Используй smart pointers
>>689606
#157 #689606
>>689601
Он нужен для работы с файлами экселя. Выполняет подключение к файлу, и выборку+обработку некоторого диапазона.

Оформлю.

С умными указателями пока не имел дело, но при работе с классом не хило кушается память, примерно по 3Мб на 1 обработанный файл. Подскажите хотя бы что гуглить, чтобы отвобождать память корректно? Вроде деструктор сделал, вроде даже и вектора чищу clear'ом. Но все равно память жрется стабильно.
>>689621>>689626
#158 #689621
>>689606

>Он нужен для работы с файлами экселя. Выполняет подключение к файлу, и выборку+обработку некоторого диапазона.



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

Память в общем случае можно мониторить и профайлить ее использование например этим: https://github.com/gperftools/gperftools

Навскидку не скажу, что там у тебя течет. Да и не интересно мне в говне копаться. Да, кстати,

>вроде даже и вектора чищу clear'ом


память не освобождает, читай внимательно доки к вектору.
>>689631
#159 #689626
>>689606
При вызове метода, к примеру, XlsHelper::MakeSqrtSum у тебя создается новый экземпляр XlsApp, а указатель на старый (если был) проебывается. Тоесть последовательные вызовы XlsHelper::MakeSqrtSum будут давать утечку. если после каждого вызова XlsHelper::MakeSqrtSum (или подобной функции) ты будешь удалять экземпляр XlsHelper от которого был вызван XlsHelper::MakeSqrtSum то память будет очищаться, деструктор ты действительно создал. Если ты не хочешь использовать умные указатели, то перед каждым вызом new ты должен проверять не находится ли по тому указателю уже готовый (старый) объект и если он есть (указатель не nullptr) то удалять его.
Алсо, возможно я ошибаюсь (код не сильно внимательно просмотрел), но как мне кажется корень твоих проблем в идеологических ошибках. Какой объект из твоей предметной области представляют инстансы твой класса? Никакого. Твой код построен в стиле обычного структурного программирования, на которое ты какого-то хуя навернул ООП - но оно нихуя тебе не дает, твои переменные класса, так как в них нет никакого смысла, фактически работают как глобальные переменные вследствие чего ты и обсираешся. Тебе можно превратить твой класс в неймспейс, удалить глобальные переменные (подразумеваются все переменные-члены твоего класса), соответсвено подправить код - и все утечки волшебным образом исчезнут.
>>689631>>689706
#160 #689631
>>689621
>>689626
Спасибочки.
#161 #689665
В плеймаркете видел приложение Learn C++. Мне вот интересно насколько оно годно, вроде вполне понятно и для начинания вполне заебись.
>>689697
578 Кб, 640x480
#162 #689674
Пишу односвязный список, каждая ячейка - структура, в которой два поля: данные шаблонного типа и указатель на следующую ячейку. Также есть указатели на первый и последний элемент. Надо написать его перепаковку, чтобы из 1-2-3-4-5-6-7-8-9-0 мы получали 1-0-2-9-3-8-4-7-5-6. Для этого в цикле мне нужно обращаться к предпоследнему элементу. Пока придумал только перебирать все элементы в цикле, пока не найдём тот в котором указатель на следующую ячейку указывает на последний элемент, но это пиздец корявый костыль. Можно ли это делать по нормальному?
>>689698
#163 #689697
>>689665
Попробуй лучше написать что-то свое. Реализацию вектора или хэшмэп. Чтобы там rule of 5 и остальные плюшки были. Это тебе даст гораздо больше и за меньшее время.
#164 #689698
>>689674
Второй список с развернутым порядком или рекурсия.
>>689702
#165 #689702
>>689698
А можно про рекурсию подробней?
>>689711
#166 #689706
>>689626
Вот ещё один момент, не дает мне покоя. В прошлый раз, да и во все другие разы, замечал что программки, вроде бы небольшие не хило едят память, но ничего, созданного через new в них нет. ведь я уже создавал проектик на подобие, где не было "ооп", а были только события на кнопках, а массивы из экселья грузились в стандартные компоненты среды, и после каждого просчета естественно все обнулялось. кроме памяти, лол Чому так? Видимо не только через new может выделяться динамическая память? Или я создавал всё в стеке и он может расти до бесконечности?
>>689713>>689715
#167 #689711
>>689702
Вместо создания второго списка создаешь его на стеке - рекурсивно посылаешь элементы в функцию, пока они не закончатся, плюс передаешь голову списка. На нижнем уровне у функции будут одновременно последний и первый элементы, который ты объединяешь в новый список и возвращаешь наверх.
#168 #689713
>>689706
Если ты не вызываешь new, это не означает, что он не вызывается где-то в библиотеках.
>>689716
#169 #689715
>>689706
Ты запускаешь программу. ОС создает процесс в оперативной памяти. Там хранится вся инфа про процесс, стек, инструкции программы и т.д.
#170 #689716
>>689713
Но в библиотеках же все должно быть четко, разве нет? Или их писали такие как я?
>>689718>>689724
#171 #689718
>>689716
Ну, эмбаркадера всегда славилась анальностью своих продуктов. Вообще, это самый главный минус их "плюсов" – дэльфевый рантайм живёт по своим правилам.
#172 #689724
>>689716

>же все должно быть четко


В смысле без выделения памяти? Как ты себе это представляешь? У Qt, например, почти все классы сделаны как pimpl, то есть при создании класса он всегда в куче выделяет память, а в самом экземпляре хранится только указатель.
>>689725
#173 #689725
>>689724
Я имел ввиду, что если библиотечный компонент, то он должен правильно все делать, раз попал в библиотеку. но скорее всего тут все же моя вина. что-то где то не доглядел. и не дописал как надо. как с vector.clear(), который память не освобождает на самом деле. вот же ебатория
#174 #689732
Стоит ли обмазываться ReSharper++?
>>689739
#175 #689737
А у меня тоже вопрос. Стоит ли обмазываться C++ + managed C++ + c#?
#176 #689739
>>689732
Если у тебя 10 (и мб 12) студия - вымазывайся. На следующих релизах студии убивает нахуй всю систему лагами, хз что там такое.
Алсо, visual assistor в 10 раз лучше.
#177 #689741
>>689737
Нет.
>>690097
#178 #689744
>>689737
Только если что-то портируешь под винмобайл.
#179 #689763
>>689737
лучше сразу c# обмазывайся. Больше толку будет
#180 #689767

> Для нюфань


> Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela



бля, я хуею, что за дебилы пишут эти учебники:

> Если первый параметр конструктора -- ссылка на тип класса


> передаче объекта как аргумента параметру не ссылочного типа



помню как в детстве читал подобную муть и мозг просто отказывал.
Бля ну что за авторы-черви без мозгов.
>>689772>>689773
#181 #689772
>>689767
Скоре всего просто перевод хуевый.
>>689781>>689796
#182 #689773
>>689767
Почитай эту тему у страуструпа. Только не увлекайся.
#183 #689781
>>689772 да это я уж хуй знает как так переводить надо умудриться.
А вы это ещё и нюфаням советуете. Ломаете жизни.
>>689787
#184 #689787
>>689781
А что им посоветовать надо-то? С++ за 21 день?
#185 #689796
>>689772
Двачую. На переводчиках часто экономят, и получаются отвратительные высеры типа "Искусство автономного тестирования", лол.
#186 #689799
Ну дак может добавим и оригиналы книг в шапку?
>>689801
#187 #689801
>>689799
Нуфаги обычно не могут в инглиш. А те то не для нуфагов есть в шапке на инглише.
96 Кб, 1126x344
261 Кб, 1090x670
143 Кб, 1098x504
#188 #689807
Посоны, не могу совладать с паттерном "Мост".
Вот мотивация прямо из книги: есть gui-приложение, которое работает на разных платформах. И клиентский код, который должен работать с gui частью, нужно изолировать от непосредственных платформо-специфических деталей.

И значитсо они берут и хуяк: делают pimpl, перенаправляя все все вызовы в WindowImpl. И у меня вопрос: что в этом хорошего, если WindowImpl превратился в god-object, который содержит реализацию всех наследников интерфейса Window? Я не понимаю, блядь!

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

Скажите мне, прав ли я, или в глаза ебусь и не понимаю смысла паттерна?
>>689809>>689823
187 Кб, 1462x1274
#189 #689809
>>689807
Пикрил4
#190 #689823
>>689807
Ну вообще паттерны это не серебряные пули же, у них есть и отрицательные стороны. Мост хорошо применять в случаях, когда, грубо говоря, есть возможность выразить всю функциональность класса через небольшое количество базисных функций. Ну там, скажем, функции отрисовки любых объектов через функцию отрисовки точки, которая обращается к графической библиотеке. Тогда ты выносишь реализацию этого базиса в параллельную иерархию и все заебись, вместо произведения количества библиотек на количество клиентских классов ты получаешь сумму, в этом весь профит. Емнип у банды про это разжевано. Ну вот, а в общем случае не факт, что тебе нужен мост. Бывает, что библиотеки имеют разные интерфейсы, а реализовывать все через их пересечение неоптимально по производительности. Тогда про мост нужно забыть и сделать как-то иначе.
61 Кб, 504x600
#191 #689872
Ребзя. В общем, мне послезавтра идти на работу, где я напиздел, что могу немного в С++. От меня многого не ждут, но тем не менее нужно вкатиться максимально быстро и чуть-чуть глубже чем "Hello World". Помогите ресурсом или советом как можно за сутки достичь того уровня, что я описал.
#192 #689878
>>689872
Опыт-то у тебя какой?
>>689883
131 Кб, 600x629
#193 #689883
>>689878
В джава написал одну прогу ищущую "вилки" у футбольных букмекерах. тут объяснение, что такое вилка http://probukmeker.ru/25-vilka.html Но прога жрала 5 Гб оперативной памяти, так что о её качестве можно промолчать. Очень давно написал пару лаб по С++.
>>689886
#194 #689886
>>689883
Блин. И как ты вкатился? У тебя что супер софтскилс?
>>689889
#195 #689888
>>689872
Скачай исходники к какой нибудь книге и запускай примеры в дебаге.
>>689891
#196 #689889
>>689886
Да, нет, никаких сверхспособностей замечено не было. Вкатился просто: пришел на предприятие, сказал "хочу работать", если ты про это.
>>689890>>689942
#197 #689890
>>689889
Вышка есть?
>>689892
#198 #689891
>>689888
Да, тоже про это подумал, уже ищу. Лучше всего изучать язык изучая готовый код, как мне говорил знакомый-кодер.
72 Кб, 604x604
#199 #689892
>>689890
Конечно.
#200 #689893
>>689891
Исходники всегда бесплатны и их можно официально скачать с сайта издательства.
#201 #689899
>>689872
С шаблонами поиграйся.
#202 #689900
>>689891
Если останется время, читни чутка Рефакторинг Фаулера. Мне знакомый программист-сеньор как-то сказал, что он считает, что каждый программист должен прочитать эту книгу.
#203 #689901
>>689891
Я так инглиш изучал. Читая всё нормально. Фильмы книги всё могу. Пишу и долго думаю как правильно. Я говорить предложениями больше 5 слов вообще не могу.
>>689902
#204 #689902
>>689901
Да ты стихотворец.
#205 #689906
Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.
>>689958
#206 #689913
А что контейнера heap нет? Только какие-то функции для вектора?
>>689916>>689923
#207 #689916
>>689918
#208 #689918
>>689916
Нет. Нужно дерево отрезков и пирамидальную сортировку написать. Всё на куче.
>>689920>>689923
#209 #689920
>>689918
Током ебнуть? Пихай в мап, потом пройдись итератором и охуей.
>>689927
#210 #689923
>>689913
std::priority_queue
>>689918
Дерево отрезков это не совсем куча, из стандартного вроде ничего не подходит.
>>689927
#211 #689927
>>689920
Нет. Это не то. Говорю же нужно вниз и в верх но куче ходить.

>>689923
Спасибо. Слышал что она на куче сделана. Совсем забыл про эту штуку. Только я не умею её пользоваться и не знаю как вверх и вниз по нему ходить.
>>689944
#212 #689942
>>689889
Пиздец
#213 #689944
>>689927

> вверх и вниз по нему ходить


Лигитимного способа нет. Инкапсуляция же. Если тебе нужно ходить то это массив и функции которые ты упоминал раньше. Только если тебе задали написать пирамидальную сортировку то скорее всего мечтают что ты те функции сам напишешь. А для дререва отрезков куча не подходит, идея там похожая но отличия большие. В куче находятся только элементы которые ты туда поместил, а в дереве отрезков помещенные элементы находятся только на самом нижме уровне - все что над ними специально высчитаные служебные элементы. Обычные алгоритмы работы с кучей там не помогут.
>>689952
#214 #689948
Если я слишком тупой для плюсов, то какие есть альтернативы?
inb4:пхп, питон
#215 #689950
>>689948
шарп
#216 #689951
>>689948
джава
#217 #689952
>>689944
Ясно. Спасибо. Свою напишу.
#218 #689958
>>689906

>Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.


Concurrency in action
>>690084
#219 #689966
sage #220 #690084
>>689958

>вкратце


>с примерами


Мда.
#221 #690097
>>689741
неистово арчюю этого

брацы АНОНЫ кто-ньть годнолинкк дайте на выстраивание освещения в рендере с картой нормалей http://habr.ru/p/279143/ типа такого но я тут не понял сути

у меня есть нормаль полигона и нормаль в касательном пространстве.. как переаести её в нормальное пространство без матрицы то?
>>690106>>690203
32 Кб, 900x195
#223 #690109
>>690106
статья типичная. и моего знания вышки и тензоров всяких последнее просто на ну ле не даает что-то понять что на пике за штукт
#224 #690111
тут кто-нибудь реализовывал на крестах алгоритм а*?
>>690113
sage #225 #690113
>>690111
Конечно.
Что конкретно интересует?
>>690117
#226 #690117
>>690113
туплю чет с записью нод в массивы, дружище, скинь как ты реализовал это дело.
>>690120
#227 #690120
>>690117
Я изрядно там наговнокодил, но в принципе работает. Могу скинуть если хочешь. Правда там уровня лабы, я тогда только начинал с c++11 знакомиться, накуралесил со многими вещами
Лучше свой код покажи, вдруг кто-то из антонов поможет найти ошибочку.
>>690122>>690125
#228 #690122
>>690120
Алсо, на днях видел жирный такой репозиторий с алгоритмами поиска путей, на штуку звездочек где-то, сейчас попробую найти еще раз.
#229 #690125
>>690120
да у меня не то, что ошибочка, просто не допирает как это сделать, яж тоже еще тот ньюфаг. сделал вот вектор из объектов класса нод, в котором содержатся координаты и f, а дальше как-то в башке не прет, скинь свой плес.
>>690129
22 Кб, 1150x1042
#230 #690129
>>690125
https://github.com/innermous/AStarPathfinding/blob/master/src/astar.cpp#L130
Работает примерно как на пикче. Вряд ли ты тут что-то поймешь, очень сильно намешано.
>>690161
#231 #690161
>>690129
что такое ptr?
>>690166
#232 #690166
>>690161
pointer
>>690169
#233 #690169
>>690166
объясни плес вот это

Ptr current = *std::min_element(ma_openedList.begin(), ma_openedList.end(),
[&](const Ptr t1, const Ptr t2)
{
return t1->node.f < t2->node.f;
});
>>690176
#234 #690176
>>690169
current - экземпляр класса Ptr. std::min_element возвращает итератор на минимальный элемент в ma_openedList. Функия принимает функтор (лямбда выражение), который сравнивает 2 элемента в списке.
Советую почитать литературу в шапке.
>>690210>>690385
#235 #690192
Я отходил, а мой говнокод даже не обосрали.
Горжусь доской.
>>690206
#236 #690203
>>690097

>как переаести её в нормальное пространство без матрицы то?


Без матрицы - никак. Поэтому и считают два вектора - tangent и bitangent. Вместе с нормалью они как раз и составляют матрицу 3х3.
>>693143
#237 #690206
>>690192
Это потому что никто его даже не читал. Хотя обычно это не мешает обосрать, лол.
>>690213
#238 #690210
>>690176
что такое t1 и t2?
>>690213
#239 #690213
>>690206
К счастью.
>>690210
t1 левый элемент, t2 правый.
>>690232
#240 #690232
>>690213
у тебя лист с доступными узлами это обычный массив? разве можно так? я вот вектор делаю, чтоб туда пушбекать узлы, чтоб не было ограничений никаких на расстояния. с вектором min_element не хочет работать. и последний вопрос, что такое [&]?
>>690235
#241 #690235
#242 #690272
>>689948
assembly
>>690278
#243 #690278
>>690272
а ты жестокий
#244 #690328
>>688646 (OP)
Нихуя вы тут щапку наворотили, молодца, уважаю.
#245 #690380
Очередной вопрос от неосилятора. Вот у нас есть множественное наследование (да, я понимаю, что это плохо). Наследуемый класс у нас будет иметь два vptr на две vtable. А если у на виртуальное наследование? К какой таблице виртуальных функций мы обращаемся?
#246 #690385
>>690176
error C3861: min_element: идентификатор не найден
>>690387
#247 #690387
>>690385
#include <algorithm>
Я же тебе написал, почитай книги в шапке.
>>690808
#248 #690453
>>690380
Множественное наследование это плохо, когда его используют для быстрого грязного объединения различных реализаций, в каком-нибудь адаптере, скажем. А наследование от нескольких ортогональных стратегий с целью base class optimization это вполне себе годная и уважаемая практика. Почитай того же Александреску, там на каждом шагу оно.
>>690560>>690568
#249 #690456
>>690380
При виртуальном наследовании - к таблице "самого производного" класса. Собственно говоря, из-за этого виртуальное наследование и критикуют, тому що результаты не совсем очевидно меняются при добавлении еще одного наследника.
>>690568
#250 #690467
>>690380

>да, я понимаю, что это плохо


CRTP - это максимум удобно. Почти как трейты в скале.
>>690568
9 Кб, 456x642
#251 #690468
Поставил устанавливаться visual studio. Вот в таком виде уже третий час установщик загружает "Дополнительный элемент". Так и должно быть или это зашквар? чувствую, что зашквар
sage #252 #690469
>>690468
Если пекарня старая, может ставиться до талого. У меня на и5 4Гб где то час - полтора ставился.
#253 #690515
>>690468
Нахуй нужна для обучения студия? Кодблокс ставиться за 5 минут. Правда там компилятор отдельно надо ставить, но это тоже быстро.
>>690543>>690819
#254 #690522
Ребят, помогите пжлст.

Дан файл, содержащий текст. Переписать в другой файл только слова, начинающиеся с согласной, а заканчивающиеся
гласной.

Буду пиздец как благодарен, пытался найти помощь на cyberforum - нихуя.
наше такое, но в середине кода ошибку выдает компилятор. http://www.cyberforum.ru/cpp-beginners/thread602355.html
>>690530
#255 #690530
>>690522
#include <stdio.h>
#include <string.h>

На будущее, вбиваешь в гугл название функции, идешь на cpp reference (http://www.cplusplus.com/reference/cstring/strlen/) Я взял хедеры оттуда.
>>690538
#256 #690538
>>690530
Спасибо Большое!
#257 #690543
>>690515
Тогда уж лучше QtCreator с mingw. И ИДЕ удобнее, и компилятор в комплекте.
#258 #690546
>>690468
Ставьте с iso, а не веб-установщиком
#259 #690560
>>690453

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


Щито? И чем же плохо использовать адаптеры?
>>690596
#260 #690568
>>690453
>>690456
>>690467

Спасибо. Проснулся и сразу сделал пример и смотрел в отладчике что будет. Всё стало на свои места.
#261 #690574
Если кто силён в Жабе, расскажите что она умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы.
Знаю, что одно из последних достижений - это сбор статистики вызова методов и их автоматический инлайнинг в рантайме.
Нужно провести исследование и составить заявку в комитет, чтобы в плюсы добавили реальные фичи, а не уродских клонов буст::асио и буст::файлсистэм.
Иначе в скором будущем, после смерти нашей крестопараши, придётся перекатиться в Жабу на значительно меньшую зарплату, т.к. конкуренция там велика.
#262 #690575
Cтоит ли читать "современное проектирование" Александреску?
>>690577>>690582
#263 #690576
>>690574
Жаба с крестами пересекаются только на десктопе. В девятке добавят модульность, значит можно будет делать компактные приложения для десктопа (сейчас жре занимает около 150 метров). В десятке сделают структуры, жаба будет жрать меньше памяти при умелом использовании. Но сильной конкуренции все равно не будет - через год массово появляется webasm, который изначально заточен под плюсы.
>>690638>>690985
#264 #690577
>>690575
Стоит прочитать шапку.
#265 #690580
>>690574

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


Кроссплатформенность и сборку мусора.
>>690584
#266 #690582
>>690575
Это входит в теормин джуна. Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?
>>690593>>690603
#267 #690584
>>690580
Кроссплатформенность и у плюсов есть, причем скомпилировать плюсовый код под другую платформу часто проще, чем ебаться с нативными либами у жабы. Менеджмент памяти у джавы достаточно спорная вещь, чтобы считать его откровенным плюсом. Для десктопа джава откровенно сосет, и будет продолжать это делать в будущем.
>>690586>>690638
#268 #690586
>>690584

>Для десктопа джава откровенно сосет


Не понял, а как же энтерпрайз?
>>690600
#269 #690593
>>690582
Я думаю, тут большинство ее прочло так или иначе. Я понимаю там не осилить стандарт или страуса из-за большого объема, но она-то тоненькая и написана понятно.
>>690597
#270 #690596
>>690560
Ну смотри, это фактически тот же вопрос превосходства композиции над наследованием реализации. Бывают адаптеры, которые наследуют adaptee приватно и target публично, с целью писать поменьше кода. Это не очень хороший вариант во многих случаях, из-за негибкости механизма наследования и вообще хотя иногда так сделать действительно лучше, например, когда тебе зачем-то понадобился двусторонний адаптер, лол. А адаптер, который агрегирует объект адаптируемого класса отлично применим гораздо более часто.
>>690607
#271 #690597
>>690593
Бля, это че, она правда входит в теормин джуна или ты меня тролишь сейчас?
>>690599>>690601
#272 #690598
>>690468
Оно зависло, это обычное дело. Убиваешь процесс и ребутишь, оно должно продолжиться с того же места после перезагрузки.
#273 #690599
>>690597
В таком случае у нас получается джун, который умеет проектировать. И чем тогда от него отличается не джун?
>>690602
#274 #690600
>>690586

>а как же энтерпрайз?


А у них обычно выхода нет, кроме как джаву использовать - если весь стек на джаве, зачем кресты использовать.
#275 #690601
>>690597
Говорю абсолютно серьезно. Другое дело, что "теормин джуна" это не то же самое, что "ньюфажные книги для сдачи семестрового курса", даже джуну в крестах нужно сильно больше знаний, чем в универе дают. Не обязательно городить мозговыебанные конструкции из Александреску в продакшене, но знать их должен любой уважающий себя крестовик.
>>690606
#276 #690602
>>690599
Опытом же.
>>690605
#277 #690603
>>690582

>Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?


Я пролистал, ничего нового не открыл. В 98 году она может и была интересна, сейчас - не очень.
#278 #690605
>>690602
Все хуйня. В процессе работы ты набираешься всяких деталей о построении архитектуры и промышленном программировании(читай: тестирование+распределение задач в команде+VCS). Прочитай GoF, какую-нибудь книжку о TDD и git/vcs + проработай месяц, чтобы освоиться с внутренней кухней и ты уже того же уровня, что и человек, который проработал год и осваивал все на своем опыте.
#279 #690606
>>690601
Сейчас я почувствовал себя петухом с разрушенным манямирком. Давай дальше: что должен знать любой уважающий себя крестовик?
>>690608
#280 #690607
>>690596
Тащемта кода ни разу не меньше, а столько же. Но похуй, я подумал, ты на адаптеры in general наезжаешь.
>>690637
#281 #690608
>>690606
Все средства и идиомы языка. Не так много, вообще-то. Часто даже достаточно знать о наличии их, но не использовать ни разу. Я, например, за 3 года ни разу не юзал виртуальное наследование или аллокаторы. Но я о них знаю и этого хватает.
>>690612
#282 #690612
>>690608
Где нибудь есть список всех средств и идиом?
>>690616
#283 #690616
>>690623
#284 #690623
>>690616
Спасибо.

Пожалуй, впервые за долгое время, куплю себе сегодня алкоголь.
#285 #690637
>>690607

>ни разу не меньше


Я имел в виду, что многие делают это из-за небольшой экономии на method () вместо base_.method () при вызовах адаптируемых методах. Еще иногда из-за того, что нагородили хуйни с защищенными членами и прямым доступом к ним тоже уменьшают количество кода.
#286 #690638
>>690584
>>690576
Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Скайп в любом телевизоре и мобилке есть. Фильмы смотрятся онлайн через браузер в том же телевизоре.
Электронные книги с монитора на десктопе читать тяжело. С планшета удобней. В имеющихся на сегодняшний день планшетно-мобильных платформах рулят жаба/обжси/дотшарп.
Думаю, те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы. 99% памяти занимают текстуры, для которых можно сделать ручную выгрузку, с остальным сборщик мусора справится.

Вот поясните мне хардкору, в какой сфере плюсы реально уделают Жабу, как по эффективности, так и по трудозатратам.

Как бэ остутсвие сети и файловой системы в стандартной библиотеке 2016 года намекает на то, что кресты безнадёжно отстали. Тут ни лямбды, ни вариадики, ни мультитрединг без средств верификации не спасут.
#287 #690646
>>690638
Только вчера думал об этой хуйне.
Теперь думаю о том, что я тупо зря время проебал. Крестопараша мне очень нравится, но в >2016 крайне узкий сегмент ее использования, да и перескочить хуй куда получится годы крестоёбства и написания костыликов ничем не помогут в перекоте на другой язык, не надо тут
>>690662
#288 #690655
>>690638

> плюсы реально уделают


Конечно нигде они не уделают. Если есть жаба то понятно что в плюсах смысла нет. Это заметно даже по тому что в плюсы добавляют интерфейсы для вызова джаба кода, а не наоборот.
#289 #690662
>>690638
>>690646
>>690655
То есть вы бы посоветовали ньюфагам вообще не вкатываться в кресты?
>>690670>>690673
#290 #690670
>>690662
Сначала выбирай область, которой хочешь заниматься, а потом уже технологии.
#291 #690673
>>690662
А где ты увидел советы ньюфагам вкатиться в кресты? Лобого ньюфага будут отговаривать от вката, если он попросит совета.
>>690683
#292 #690683
>>690673
В шапке о крестах написано в позитивном ключе...
>>690692
68 Кб, 427x604
#293 #690684
>>690638

>те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы.


Вот именно, существовал бы. А на чем его напишут? Ну подумай головой, я тебе дам время.
>>690705
#294 #690692
>>690683

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

>>690721
#295 #690696
>>690638

>в какой сфере плюсы реально уделают Жабу, как по эффективности, так и по трудозатратам


Гейдев, эмбеддед вместе с Си, хайлоад.

>намекает на то, что кресты безнадёжно отстали


Намекает на то, что надо использовать boost, которая де-факто стандарт. Ну серьезно, мог бы найти что-нибудь посерьезнее, чтобы доебаться.
#296 #690697
>>690655

>Если есть жаба то понятно что в плюсах смысла нет


Ну вот пишут JetBrains свои IDE на жабе. Пишут отлично, стараются, оптимизируют. Но вот открываешь в CLion какой-нибудь llvm, и все, пизда, зависло нахуй. Сидишь такой на машине с ssd, а оно зависло. Ну йобана, говоришь ты и смотришь в сторону QtCreator, который хоть и кастрированный и крэшится, но не виснет на анализе.

Такие дела.
>>690712
72 Кб, 429x340
#297 #690698
#298 #690705
>>690684
Ну сначала сделают враппер для ДиректаИкса, хуле и там и там интерфейсы. Тогда станет возможно заменить плосовой код конкретной игоры на Жабу.

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

Закон капитализма гласит, что фирма, которая не расширяется - погибает. Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.
>>690711>>690714
#299 #690706
>>690655

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

#300 #690711
>>690705

>Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.



С учетом того, что Google и Apple взялись за написание нормального компилятора C++, да еще и у Microsoft подгорело и они начали гнаться за clang, а также того, что комитет по стандартизации планирует релизить TS чуть ли не каждый год, то еще посмотри кто кого.
>>690756
#301 #690712
>>690697

>кастрированный и крэшится


Подробнее.
>>690781
#302 #690714
>>690705
Гнида ебаная, если бы я сразу понял, что ты троллишь, я бы не отвечал тебе.
#303 #690721
>>690692
Это я не заметил, возможно, имеет смысл переместить этот абзац в начало шапки.
>>690775
#304 #690724
А перекатываться с плюсов некуда. Джава, дотнет? Ой, нахуй.
>>690731
#305 #690731
>>690724

>А перекатываться с плюсов некуда.


На web, например. Но не всем нравится макакинг, если говорить о frontend. А если говорить о backend, то подозреваю с появлением REST-фреймверков на C++, остальные языки будут тихо насасывать по производительности.
>>690737
#306 #690737
>>690731
Python какой-нибудь?
>>690746
#307 #690746
>>690737
Python - Flask/Django
Ruby - Rails
JavaScript - NodeJS
#308 #690753
>>690696
>>690696
В гейдеве уже и так 90% кода это скрипты и триггеры в картах. От плюсов почти ничего не осталось.

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

Си - это прыщи и только прыщи, вместе с торвалсом. Писать драйвера уже давно не нужно, т.к. сетевухи/звуковухи это риалтек и только риалтек. Любое юсб устройство может работать через либу, нетрудно сделать враппер на Жабе.

Хайлоад - скорее хуйлоад, посмотрел запись конфы https://www.youtube.com/watch?v=eTk9Zu6rLTY. Атомики с мемори барьерами дали, средств проверки не дали. Чтобы найти ошибку в очереди, которая из трёх операций CAS состоит, опытный дадька неделю потратил.
Некий студент, пишущий диссертацию якобы написал реализацию конкурентного RB дерева - это блеать 15 страниц псевдокода, и денег он с этого наверняка не поимеет. Кто за этот хуйлоад платить будет, легче Жабу и сотку гигов оперативки использовать.

За незнание буста и нелюбовь к нему надо расстреливать без суда из следствия. Кто будет платить за асинковую лапшу с вонючими портянками которые де-факто boos::asio::sockets::ip::tcp::address::v4? make_context скажешь? не пробовал, но чуется что дебаггер твою сопрограмму даже не увидит.
Нахуй такой стандарт если для обхода папок нужно ездить на велосипедах типа бууст::фаелсистем::рекурсив_директори_итератор_т, особо забавляет это ваше _t в конце, ещё хвостик ему в конце пририсуйте. Это воистину засвидетельствует ваши знания в бусте. Чесслово, рассчитано на идиотов которые не знают что перед именем переменной имя типа идёт.

И вообще, сколько вы будете зарабатывать, если зазубрите весь буст целиком? Все его нюансы и тонкости. Сколько лет у вас на это уйдёт? В Жабе нет такого геморроя.
>>690800
#309 #690756
>>690711

>С учетом того, что Google и Apple


Распил бабла в крупных конторах. Это как в государстве только в частном.
#310 #690760
>>690696
Да в любой. Джава - очень хуевый язык, который предлагает по сравнению с крестами одно: nullpointerexception вместо сегфолта. И все. REPL не завезли, система типов хуевая, библиотеки так себе. Если бы там про питон спросил, или про жс, то там есть четкие ниши, в которых они лучше крестов - быстрое прототипирование и т. п., а в жабе нет нихуя, кроме фобий менеджеров по поводу того, что индусы не сумеют написать на крестах код. И это правда. Но вот от таких проектов и надо держаться подальше. Нравится тебе лепить круд для банка в галере - ну удачи, хули.
#311 #690775
>>690721
Нет. Это фак. Если у тебя вопросы ты читаешь его. Если там нет ответа ты пишешь в тред.
#312 #690781
>>690712
Рефакторинг днищенский, поиск по коду (find usages, например, не позволяет удалять результаты), call hierarchy нет как такового, интеграция с git хуевая(окошко с log тупо показывает текстовый вывод консольного git'а). Это только то, что сразу в голову пришло.

Во время дебага бывает крэшится. Особенно если дебагер - lldb.
#313 #690797
>>690696

>хайлоад


Часто ищу на hh.ru такую работу. Любо там надо 6 лет опыта, либо там не нужен С++, а только желателен т.к. совсем другая сфера. Нормальных вроде только пару штук за несколько месяцев находил. Но так чтобы ещё и зарплата была указанна ни разу. Так где же будет работать только вкатившейся джун?
>>690798
#314 #690798
>>690797
Да нигде, блядь. Зарплаты зависят от бородатости, никому вчерашний студент не нужен нахуй.
#315 #690800
>>690753

>Писать драйвера уже давно не нужно, т.к. сетевухи/звуковухи это риалтек и только риалтек.



Охуительные истории ITT. Месье не смущает тот факт, что в половина кода для linux 4.5 - это драйверы. А это, на минуточку 500к строк кода, блядь!

>В гейдеве уже и так 90% кода это скрипты и триггеры в картах. От плюсов почти ничего не осталось.


А кто же эти скрипты обрабатывает? Не C++ ли код?

>Эмбеддет уже почти десять лет нормально переваривает жабу.


И толку, что java-код запускается на embedded? Я уверен, что GTA 5 тоже можно запустить на Raspberri PI, если постараться. Но толку от этого?

>Кто за этот хуйлоад платить будет, легче Жабу и сотку гигов оперативки использоват


Слишком толсто. Даже комментировать не буду.

>boos::asio::sockets::ip::tcp::address::v4


Ну не позорься, осиль уже namespace aliases.
>>690824
#316 #690808
>>690387
прочитаю я их, и что? все не запомню явно. я вот инторнеткурс усваиваю помалёху, пилю свой рогулайк, решаю проблемы по мере их поступления и так учусь. алгоритм вот что пишет.

algorithm(1734): error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "node" (или приемлемое преобразование отсутствует)
>>690816>>690820
#317 #690811
>>690574
Ещё забыл: нормальная система сборки и менеджмент зависимостей.
#318 #690816
>>690808
Ты какой-то тупой дегенерат.
Твой уровень - Лафоре. Ты же блядь пытаешься с наскоку осилить йобу, не надо так. Пиздуй азы читать про указатели, перегрузку, функторы, полиморфизм, вот это вот всё.
>>690848
#319 #690819
>>690515
Кодблокс неплох, но там даже цвета без геморроя не поменять. Даже Notepad++ с консолькой в этом смысле удобнее если ты любишь тёмную тему
#320 #690820
>>690808
Переопределить значит его надо. Гугли переопределение операторов с++. Или в функции сравнение по другому сравнивай их.
#321 #690824
>>690800

>минуточку 500к строк


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

>Не C++ ли код?


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

>Слишком толсто


Окее, тот же мап на слим локах будет не сильно отставать от недоатомик мапа на касах если таковой вообще сделают труъ лок-фри cо вставкой/удалением/траверсингом... И то, блять, это миф про лок-фри, если мы не засыпаем, то долбимся в цикле, вызывая кас на каждой итерации и увеличивая выбросы СО2 на электростанциях.

>namespace aliases


оукеее, первый экран при открытии файла будут занимать не только хэдеры, но и неемспеес олиосы, у твоей жены длинный указательный палец, если нет, то твои детишки вырастут неконкуретноспособными, скроллить ведь придётся больше чем кодить.
#322 #690836
>>690802
Мне пока это не нужно, в 15 лет не особо интересуюсь алгоритмами. Хотя нужно было бы, учусь дизассемблировать. Читаю сейчас Криса, вот как-то так. Посоветуй какую книгу по алгоритмам, буду читать параллельно.
>>690838
#323 #690838
>>690836
Dive into Python
#324 #690841
int main()
{
int a = 0;
return 0;
}

Вот это ваше a - оно в стеке выделяется?
>>690842
#325 #690842
#326 #690848
>>690816
ЭКСПИРИЕНС!
#327 #690853
>>690638

>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?


Например, тулзы чтобы делать игры. Любые другие программы для работы с картинками/видео/звуком. Жабка текстовые редакторы с трудом тянет, о графике и говорить нечего.

>Думаю, те же 3Д экшоны можно делать на Жабе


Можно, конечно, только будет оче тормозить. Майнкрафт, например, на кресты обратно переписывают. У них ебли с памятью в джаве получилось гораздо больше, чем при ручном управлении (такое, кстати, почти во всех нагруженных программах на джаве).
#328 #690866
>>690638

>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?


Сразу видно нешкольника. CAD, софт для творчества (видеоредакторы, аудиоредакторы, maya), различные IDE и т. п. Хотя откуда тебе это знать, если для тебя мир - это игры и потребление контента. А движок на "жабе" есть, Unity называется, только он на C# (потому что жаба говно даже в своей жабонише), и у Unreal Engine он посасывает.
>>691086
#329 #690867
>>690655

> Это заметно даже по тому что в плюсы добавляют интерфейсы для вызова джаба кода, а не наоборот.


JNI в Жабе был с самого начала.
#330 #690881
Есть ли тут ананчики, которые пишут/писали драйвера под винду? Подскажите годного мануала как писать драйвера для совсем зелёного воробушкаиз знаний только базовые знания плюсов. Всё, что находил нихуя не понятно или делается не в VS.
Писать буду в VS2015, запускать и дебажить на виртуалке
>>690953
#331 #690905
>>690574
Описанная тобой фича джавы -- profile-guided оптимизация. В gcc уже лет 5 назад доступна была.
#332 #690911
>>690638
Тридээкшоны ты вряд ли сделаешь на жабе. Потому что на каждый чих в жабе выделяется память, а в экшонах нужна вся скорость, которая есть, иначе у тебя начинается задержка обработки ввода (input lag) и лаги, когда вдруг сборщик мусора соизволил вмещаться. Я не говорю, что плюсы невозможно переплюнуть, но управление памятью в джаве это пиздец для разработки экшонов
#333 #690953
>>690881
Для начала подумай, что будешь делать, когда венда не пожелает прожевать неподписанный драйвер, и тебе придется делать developer mode.
#334 #690985
>>690576

>webasm


Зачем нужен этот кусок говна, когда уже есть Scala.js?
>>691153
#335 #691086
>>690866

>Unity называется, только он на C#


Он тоже написан на C++, лол. На C# там только интерфейс для сторонних разработчиков. Можно заплатить и получить исходники на C++ и ебашить как надо.
#336 #691153
>>690985
Затем, что будет нативная производительность и маленький размер кода. С сишечкой на вебасм это возможно, а для той же скалы надо будет десяток метров стандартной либы тащить.
>>691641
#337 #691164
>>688646 (OP)
Заметил во многих олимпиадных задачах такой пункт, как "строка может превышать 10^10 символов ", или что-то в этом роде. К чему это?
>>691165
#338 #691165
>>691164
Например, чтобы ты писал o(log(n)) алгоритм, а не надеялся, что o(n^100) с нынешними гигагерцами совладает.
#339 #691167
#340 #691187
Котоны, вопрос. Задал в нуботреде, продублирую тут.
Как проинициализировать QSqlDatabase? Нужен статический экземпляр, но вот хер знает как заставить его таким стать. Всякие
QSqlDatabase db = NULL не катят, тип не тот.
>>691188>>691190
#342 #691190
>>691187
QSqlDatabase db; чем не подходит?
>>691193
8 Кб, 379x262
#343 #691193
>>691190
Скрин, вот такая хуйня. На stackoverflow первый же пример с другой переменной - говорят, мол, инициализировать ннада.

>>691188
я там пролазил поверхностно, но ничего про инициализацию _без_ задания сразу адреса БД не нашел. Сейчас на второй круг повдумчивей попробую тогда, раз ты настаиваешь
>>691195>>691199
#344 #691195
>>691193
>>691188
Запамятовал, сорян.
В доках еще указано что можно взять дефолтное подключение, типа
QSqlDatabase database = QSqlDatabase::database();

Но со static это дает: a function call cannot appear in a constant-expression.

Может еще где обосрался... хз ^
>>691206
#345 #691199
>>691193
А если инициализировать то типа работать будет? Ты проверял? У тебя какие-то подозрительные ошибки, похожие на ошибки линковщика.
>>691203
40 Кб, 600x600
#346 #691202
>>688646 (OP)

>2016


>MANUAL GARBAGE COLLECTION

>>691210>>691240
#347 #691203
>>691199
До этого у меня была эта же переменная без static.
Заводилась через init_db(QString addr) (addr - там из диалога открытия файла адрес передавался).

Сейчас я понял, что обосрался, т.к. мне к БД надо обращаться больше, чем в одном окне, а плодить подключения, я так понял, нецелесобразно и начал искать пути решения. Пока свелся к тому, чтобы бд внутри контроллера держать статическим, а контроллеры таки плодить. Не знаю, насколько это лучше, но, надеюсь сработает. Если я конечно разгребусь с этим всем.
>>691205
#348 #691205
>>691203
Хотя вот прямо сейчас смотрю ветку на форуме где рассказывают какой ТС мудак о том, что глобальные подключения вредны и лучше делать маленькие, но сразу их выпиливать потом.
>>691209
#349 #691206
>>691195
Ну вот чего ты лезешь в qt, когда C++ не знаешь?
static переменные нужно инициализировать вне определения класса. А ты этого не сделал.
Во-вторых, нахрена тебе нужен static? Передавай объект базы данных в конструктор и храни внутри класса сылку на БД.
В-третьих, хуле ты используешь библиотеку и не читаешь доки блчдь??? ПЕРЕД ИСПОЛЬЗОВАНИЕМ ПОЛНОСТЬЮ ПРОЧТИ ДОКИ К КЛАССУ
>>691208>>691211
#350 #691208
>>691206
Я макака и не преследую целей стать программистом. Мне побрязгаться интересно.
Извини, если задел твои чувства, я не специально.
#351 #691209
>>691205
Почему ты решил что тебя не устраивает дефолтное подключение и вообще пытаешся свое сделать?
>>691211
#352 #691210
>>691202
В отличии от GC-петухов у нас есть выбор. GC-поведение легко достигается с помощью shared_ptr. Не хочешь ебаться с памятью - везде ебашь shared. Не нравится полученная производительность - оптимизируй, хуле. Только мы можем стандартными средствами оптимизировать, а шлюхи вроде тебя будут бесконечно настраивать GC и писать костыльный unsafe-код.
>>691342
#353 #691211
>>691209
Всмысле "свое"?
Я просто не знаю, как корректней сделать - подключить базу один раз и использовать это или же делать несколько подключений.
Выше (>>691206) мне вкратце пояснили мои ошибки, буду разбираться на свежую голову.
#354 #691220
>>690574
Java - это крутая HotSpot JVM, фичи шестилетней давности вместо языка, и целый ворох радостей, если у тебя jvm другого вендора.

А как сходишь к жава разработчикам на этаж, а у них до сих пор древний oc4j 10g, который боятся торгать, и шестая джава – то есть уже не такая крутая жвм и говно 12летней давности вместо языка.

Если хочешь байтоёбится на джаве, внимательно посмотри это видео и подумай, а нахуй оно надо - https://www.youtube.com/watch?v=Q-7y1u9kZV0
#356 #691254
Алсо, кто-нибудь видел решение, которое само работает с circular references, чтобы не нужно было бы использовать weak_ptr?
>>691257>>691277
#357 #691257
>>691254
Не приходит в голову эффективного решения. А удобного решения не приходить в голову без рефлексии. Так что если таки надо, то надо делать самому под свою задачу.
>>691282
Бля #358 #691275
InfoWorld: Can you answer the same question about modules and co-routines, which also won't make it in?

Stroustrup: I would have liked to get modules for better protection against changes in some components context (such as protection against macros) and better compiler speed, but that proposal isn't ready for C++17, so it goes into a TS. I think that eventually, modules will become massively important. They address long-standing problems in C and C++. An early version currently ships as part of Microsoft's C++. A different variant, more friendly to macros, is available in some versions of Clang. I am disappointed that stackless co-routines are being put into a TS rather than directly into the standard itself. I think they are ready and important for a few critical use cases (pipelines and generators). An early version currently ships as part of Microsoft C++.

http://www.infoworld.com/article/3044727/application-development/qa-bjarne-stroustrup-previews-c-17.html
#359 #691277
>>691254
Только писать ad-hoc сборщик.
>>691282
#360 #691282
>>691257
>>691277
Наверное проще будет не допускать циклических зависимостей.
>>691285
#361 #691285
>>691282
Смотря где и смотря как. Я сейчас стараюсь использовать unique_ptr'ы и иммутабельность.
>>691387
#362 #691295
Можно ли в Gtk назначить focus_chain для глубоко лежащего виджета, не назначая при этом фокус для всех родителей?
>>691887
#363 #691342
>>691210
Справедливости ради замечу, что функциональность shared_ptr не идентична GC. В случае умных указателей возможна ситуация, когда утекает кусок памяти со взаимными указаниями друг на друга, с которой GC борется путем "универсального суперкласса" или еще как-то.
>>691368
#364 #691368
>>691342
Ну поэтому кроме shared ещё есть weak_ptr и unique_ptr.
Для циклических ссылок и в жяве точно так же используется WeakReference.

Сборщик выигрывает у смартпоинтеров когда есть много объектов с небольшим временем жизни – из-за фрагментации памяти плюсы в таком крде могут хоть у питона соснуть. Но ясен хуй, что на смартпоинтерах такие куски писать никто не будет.
>>691449
#365 #691370
>>691240
Бля. Этот ёбыч судя по "бинчмаркам и сравнинийам с си сиплюсплюс" даже не в курсе, что это не аллокация в жяве супербыстрая, это аллоцированная память не освобождается.
#366 #691375
Аоны, а давайте вместе чего-нибудь запилим.
>>691376
#367 #691376
>>691375
Есть идеи?
>>691377
#368 #691377
>>691376
Шапку?
>>691378
#369 #691378
>>691377
Так нормальная же шапка.
>>691380
#370 #691380
>>691378
Тогда не знаю. А какие программы сейчас на дваче пишут?
>>691385
#371 #691385
>>691380
игру запили
#372 #691387
>>691285
И правильно. Совместное владение, по-хорошему, лучше использовать как можно меньше. Комбинация unique ptr и обычных указателей - тот контекст, в утром unique_ptr объявлен владеет указателем, а тот контекст, который его использует из вне, получает прямой указатель если нужно. Это при условии, что владелец живёт дольше, чем все пользователи.
#373 #691449
>>691368

>Для циклических ссылок и в жяве точно так же используется WeakReference


Очень редко, потому что GC и так умеет работать с циклическими ссылками.
#374 #691467
А что, Дейтел уже не норм?
мимо-новичок
>>691469
#375 #691469
>>691467
Давно тебя здесь не было.
>>691508
#376 #691508
>>691469
Книги из разделов шапки: best practies и проектирование никогда не устареют?
>>691542
#377 #691521

>Компания Crytek анонсировала новый движок CryEngine V


>Среди основных нововведений:


>Поддержка C#;


>...



Кто там кукарекал, что сееплюсплюс незаменим для тредээкшонов?
>>691529>>691530
#378 #691529
>>691521
Это для скриптов же, и чтобы юнитишкольников привлечь.
#379 #691530
>>691521
Так то же язык для скриптов, их на чем хочешь пишут. Небось до этого там какой-то lua (или вообще пистон) использовался.
#380 #691542
>>691508
В плане синтаксиса устаревают, но в подобных темах это не так важно. И вообще, других-то нет.
>>691589
#381 #691589
>>691542
По поводу устаревания синтакиса: верно ли, что нюфане надо знать и старый и новый синтаксис, так как вдруг на работе придется поддерживать проект, который был написан до С++11?
>>691595
#382 #691595
>>691589
Новый не исключает старого, а только дополняет. И там не такие ниебические изменения, которые нельзя за недельку от корки до корки вызуприть и поиспользовать.
>>691634
#383 #691634
>>691595
Кстати, вы на работе переписываете проект на C++11 или оставляете как есть вдруг оно сломается?
>>691649
#384 #691641
>>691153

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


~100кб в гзипе, ебанутый.
#385 #691649
>>691634
Мы ж не ебанутые. Новые фичи начинают использоваться, как только все используемые компиляторы начинают их поддерживать. Тут обычно в VS проблема. То дорого обновлять лицензии, то самая новая студия не стабильна, то самая новая студия еще не умеет во все фичи.

Активно изменяемые модули часто переписываются для использования новых фич. С лямбдами так было.

Единственное, что не используется на кроссплатформе, это стандартная библиотека. С этим до сих пор проблемы. В итоге используется boost.

А вообще ломающих фич не так много, переписывать обычно ничего не надо.
#386 #691678
Как изменить в сонсоли цвет отдельных символов?
SetConsoleTextAttribute меняет цвет всего текста. Мне чо блять изменять назад каждый раз?
#387 #691681
int default = 0;
Такая запись - норма в VS2015. Ну ок.
#388 #691686
>>691649
Ты упомянул студию, значит вы ее используете на работе в какой-то мере. Ради чего вы ее используете? Неужели только из-за продвинутого автодополнения и крутого отладчика как написано в шапке?
>>691764
#389 #691689
>>691678
bemp voprosu
>>691765>>691903
#390 #691762
>>689948
Как ты понял, что тебе плюсы не подходят? на какой теме начал тупить? я тоже сомневаюсь
#391 #691764
>>691686
Емнип у студии самый быстрый рантайм из всех компиляторов под венду. Ну и стабильнее она. Вот я осенью внезапно наткнулся на баг в clang, который проявлялся при использовании unordered_map вместе с многопоточностью. Вроде не страшно, в следующей версии его пофиксили, но для продакшена ждать месяц никак нельзя из-за подобной хуйни.
#392 #691765
>>691689
Стандартным образом - никак. Можно использовать прямое обращение к функциям консоли, но это будет не кроссплатформенно. Еще можешь поискать какую-нибудь библиотеку для продвинутого ввода-вывода.
#393 #691778
Поясните что такое выравнивание. Почему оно по умолчанию 4 байта? И приведите пример ситуации, которая может потребовать изменить его.
>>691779>>691781
#394 #691779
>>691778
Потому что пекарни 32-битные, 32/8=4. Процессор работает сразу с двойными словами в 4 байта, из-за этого могут быть тормоза без выравнивания. Например, чтобы считать байт из выровненной позиции, ты читаешь 4 байта в EAX и дальше забираешь байт из AL. А без выравнивания ты не можешь считать ровно с этой позиции 4 байта, тебе придется считывать с предыдущей выровненной, байт окажется не в AL, а в одном из старших байтов EAX, тебе придется делать сдвиги, ну ты понел. Но если тебе скорость не так важна, а память дорога (на микроконтроллерах, например), то можно выключить выравнивание.
>>691784>>691787
#395 #691781
>>691778
У любого процессора задан размер машинного слова. У 32-битных - 32 бита, у 64 битных - 64 и т.д. Регистры ЦПУ имеют именно такой размер (если не считать сопроцессора). Все операции производятся над данными разбитыми под размер машинного слова. Обращение к памяти тоже происходит по словам. Соответственно, если данные не выровнены по границам машинного слова, то операция чтения или потребует больше времени, или вообще не будет произведена (как у АРМов).
>>691784>>691787
#396 #691783
Кроме этого есть еще кэш, чтение в который происходит блоками по 64 байта, и страницы виртуальной памяти (обычно 4к), которые дают нехилый оверхед, если данные лежат на их границе.
#397 #691784
>>691779
>>691781
А почему класс без полей имеет размер 1 байт и не выравнивается?
#398 #691785
>>691784
Выравнивается. По 1 байту. Однобайтные данные выравниваются по 1 байту, двухбайтные по двум, четырех по четырем. Те что больше машинного слова - по машинному слову.
>>691787>>691788
#399 #691786
>>691784

>имеет размер 1 байт и не выравнивается?


С чего ты взял, что не выравнивается? Например, создай класс на стеке, и посмотри на его адрес.
#400 #691787
>>691785
>>691781
>>691779
Понял. Спасибо. Добра вам, аноны.
#401 #691788
>>691785
Внутри структуры или массива.
#402 #691792
>>691784
Потому что минимальный размер данного в крестах.
>>691793
#403 #691793
>>691792
Про минимальный размер я знаю. Мне было интересно про выравнивание.
#404 #691795
Накидайте список вредных советов. А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.
#405 #691796
А ещё вопрос. У нас есть абстрактный класс. По сути для него vtable не нужна (объект создать не можем). Так вот, будет ли выделятся память для vtable абстрактного класса или компилятор что-то делает для этого?
>>691826
#406 #691808
Поправьте шапку:

Бьерн Страуструп
Программирование. Принципы и практика использования C++
2e издание 2014

https://yadi.sk/i/oJphQyQVmimRG
>>691839
#407 #691812
>>691649
Есть одна очень большая компания, которая упорно использует vs6. И мы вынуждены поддерживать код в sdk для этой версии. Хотя сами сидим на свежих clang и gcc5
>>691821
#408 #691821
>>691812

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



Что думаешь насчет этого? Из-за этого вы и делаете сборки разными компиляторами?
>>691923
#409 #691825
>>691795
1) Виртуальные деструкторы - зло. Ни в коем случае не используй их.
2) К черту методы. Переопределяй операторы. Зачем придумывать названия методам, когда умные люди дали тебе операторы.
3) Умные указатели для идиотов, которые незнают как писать nwe и delte. (Их тоже перегружай, а то вдруг стандартная реализвация изменится, и программа полетит)
4) rvalue? lvalue? Ничего старых добрых сишных указателей не придумали. Передача по указателю - наше все.
Продолжай, анон
#410 #691826
>>691796
Создание объекта не причем. Абстрактный класс может реализовать виртуальный метод с телом. Тогда все равно нужно как-то вызвать его. А это значит что для абстрактного класса должен быть vtable.
>>691827
#411 #691827
>>691826
А для интерфейса?
>>691829>>691831
#412 #691829
>>691827
В интерфейсах тоже есть vtable.
На ангельском:
http://stackoverflow.com/questions/11196329/interface-vtable
#413 #691830
>>691825
Мультинаследование - самый мощный инструмент языка, не пренебрегай им.
>>691832>>691834
#414 #691831
>>691827
Мне кажется ты не понял сути vtable. Он не для создания экзепляров класса нужен, а для поиска нужной реализации виртуального метода в рантайме.
>>691838
#415 #691832
>>691830
Два ромба этому содомиту.
#416 #691834
>>691825
В 1,2,4 есть крупицы истины.
>>691830
А это вообще довольно часто хорошая практика, ИТТ было выше.
#417 #691838
>>691831
Да это я понимаю. Просто без объекта и таблица не нужна. А если в классе есть чисто виртуальный метод то мы и не можем создать объект.

Вообщем в MSVC есть такое. https://msdn.microsoft.com/ru-ru/library/k13k85ky.aspx
Я так понял во время компиляции подставляется declspec(novtable) и vtable не создается
>>691845
#418 #691839
>>691808

>80 мб


Пережать бы.
>>691881
#419 #691841
>>691825
Используй goto вместо while. Его оставили для лучшей оптимизации и компилируется он всего в одну ассемблерную команду jmp поэтому он очень быстрый.
>>691849>>691850
#420 #691845
>>691838
Еще раз - причем тут создание объектов?
Позднее связывание реализуется при помощи vtable. Допустим есть float Shape::area() = 0
И Square наследует Shape и переопределяет Shape::area().
И есть например метод заливки площади определнным цветом - void fill(Shape* ptr)
В методе fill и будет использоваться vtable для определения реализации Shape::area() конкретного класса, в данном случае будет использоваться Square::area()
>>691847>>691853
#421 #691846
>>691649

> Единственное, что не используется на кроссплатформе, это стандартная библиотека. С этим до сих пор проблемы. В итоге используется boost.



Не понял. Ты про то, что стандартная библиотека бедна (ни filesystem, ни networking, etc) или про то, что stl, алгоритмы и прочее по-разному реализовано и ломает код на разных платформах? Поясни крч пжл
#422 #691847
>>691845
С кодом обосрался, но думаю суть должна быть понятна.
498 Кб, 1700x1734
#423 #691849
>>691841
НАПИСАЛ ВСЮ ПРОГРАММУ ОДНОЙ ФУНКЦИЕЙ ИЗ 100К СТРОК С GOTO ВМЕСТО ПОДПРОГРАММ
@
КОД НЕ УМЕСТИЛСЯ В ОДИН СЕГМЕНТ
@
GOTO ТРАНСЛИРУЕТСЯ В LONGJMP ИЗ ТРЕХ КОМАНД
#424 #691850
>>691841
>>691849
Какие-то древние вредные советы.
#425 #691851
>>691846
Повежливее с герром ван Винклем, он только что из 1999-го с коммерческими STL.
#426 #691852
>>691849
Самозащита от сокращения?
#427 #691853
>>691845
Да. Понял к чему ты. Спасибо, что пояснил.
#428 #691855
>>691846

> stl, алгоритмы и прочее по-разному реализовано


100 РЕАЛИЗАЦИЙ
@
СДЕЛАЕМ СВОЮ, ЧТОБ ЛЕГЧЕ БЫЛО ПЕРЕНОСИТЬ
@
101 РЕАЛИЗАЦИЯ
>>691860
#429 #691860
>>691855
Мне кстати очень не хватало раньше бинпоиска. Такого что ищет элемент и возвращает итератор указывающий на него, а если такого элемента нет, то итератор на элемент перед которым должен стоять искомый.
>>691891
#431 #691887
>>691295
Бамп
>>691893
#432 #691889
>>691881
А на англ есть пдф нормальный? ^^
>>692052
#433 #691891
>>691860
std::lower_bound
#434 #691893
>>691887
На лор сходи. Тут что-то если про gtk обсуждают, то в основном Qt :3
>>691894>>692235
#435 #691894
>>691893

>лор


jeuta, опять ты?
#436 #691895
>>691795

>Накидайте список вредных советов.


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

>А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.


В оппосте: Современное проектирование на C++. Таки да, юзай, но C++ тебе не D, и такой код на код-ревью не поймут, так что знай меру.
>>691898
#437 #691898
>>691895

>список вредных советов


>В оппосте


Зачем?
#438 #691899
>>691849
Чому в longjmp, а не far jump?
#439 #691903
>>691678
>>691689
Это ИТТ-тред про цепепе, а не винэйпиай.
#440 #691906
>>691678
С винапи не работал. Кури вот это:
https://en.wikipedia.org/wiki/ANSI_escape_code
>>691911
#441 #691911
>>691906

> Win32-консоль вообще не поддерживает управляющие последовательности ANSI. Программное обеспечение может управлять консолью посредством ioctl[en]-подобных системных вызовов консольных API, чередующимся с текстовым выводом.


Мда. Чому у винды все не как у людей?
#442 #691923
>>691821
Clang под osx, GCC под Linux.
Ловим иногда забавные баги, но не критично. Используем версии на 1-2 ниже.
>>691925>>691926
#443 #691925
>>691923

>Ловим иногда забавные баги


напр?
>>691941
#444 #691926
>>691923

>Clang под osx


Почему не под линкс тоже?
>>691936
#445 #691928
>>691846
Под разные компиляторы разные реализации. У Майкрософт как обычно свои велосипеды везде.
#446 #691936
>>691926
Исторические причины. И клиенты есть на гцц, проще сразу чего использовать чем потом искать.
#447 #691941
>>691925
Была проблема с бустовым ренжем, когда пустой ренж схлопывался в нечего на одной версии гцц, а на другой был пустой объект. Из-за ошибки в коде очень весело падало.
В сланге была проблема с очень закрученным шаблоном полное имя инстанцированного шаблона около 4Ксимволов, 7 гигов оперативки компилятору нужно чтобы раскурииь, пофиксили у себя, потом и сланг сам пофиксился.
>>691945
#448 #691945
>>691941

>полное имя инстанцированного шаблона около 4Ксимволов


Это тоже что и имя переменой или функции? Тогда почему не сделать поменьше? Хотя компилятор и с функциями имена которых 10к символов нормально работает.
>>691947
#449 #691947
>>691945
Это имя инстанцированного шаблона со всеми параметрами. Там такой уровень вложенности, что сопьешься пока найдешь параметр
>>691948
#450 #691948
>>691947
Нихуя не понял. Наверно я просто не дошёл до этой темы.
>>691952>>691967
#451 #691952
>>691948
Мета-программировние оно такое.
Но вся эта магия генерирует очень компактный и быстрый парсер. И очень легко конфигурируется и расширяется
#452 #691967
>>691948
Каждый раз когда ты компилируешь что-то вроде Хуй<Пизда<Джигурда>> компилятору приходится для каждого инстанцированного шаблона создавать новое внутреннее имя. Если злоупотреблять метапрограммированием на темплейтах, эти имена могут быть ОЧЕНЬ длинными.
#453 #692043
>>691825
Всегда используй постфиксный инкремент\декремент.
>>692044
#454 #692044
>>692043
Я так делаю чтобы писать c++ в циклах. Почему компилятор не оптимизирует эту штуку если в ней нет знака равно?
>>692049>>692050
#455 #692049
>>692044
Для встроенных типов оптимизирует, для всяких итераторов это нужно быть очень умным компилятором. Поэтому пиши ++с всегда.
#456 #692050
>>692044
Потому что время жизни возвращаемого объекта только на первый взгляд нулевое. Например, в деструкторе возвращаемого значения может быть перебор галактики, поэтому оптимизация здесь это нарушение семантики кода.
#457 #692052
>>691889
ВЫУЧИЛ АНГЛИЙСКИЙ РАДИ ТОГО, ЧТОБЫ ЧИТАТЬ СТРАУСТРУПА В ОРИГИНАЛЕ
>>692053
#458 #692053
>>692052
Уже полгода ради этого английский учу.
>>692058
#459 #692058
>>692067
#460 #692059
>>691825
1. Называй перменные и функции транслитом mamku_ebal, perdoli.
2. Используй c-type cast operator на классах, но не чаще, чем reinterpret_cast.
3. Помни! Препроцессор лучше шаблнов.
4. Оставляй две пустые строчки между строками кода, но после каждой четырнадцатой оставляй четырнадцать пустых, а после восемьдесят восьмой - восемдесят восем пустых.
#461 #692060
>>691795
Будь современным, иммутабельным и ссылочным - используй const и & в шаблонных параметрах.
>>692077>>692078
#462 #692063
>>691795
Все переменные должны быть глобальными - никогда не знашеь, что может понадобиться.
#463 #692067
>>692058
Нет. По видео лекциям и упражнениям Петрова, аудио лекциям Пимслера, подкастам Хога и книге Мёрфи.
>>692070
#464 #692070
>>692067
Лучше посмотри какой-нибудь британский сериал без сабов.
>>692073
#465 #692073
>>692070
Я нихуя не пойму.
#466 #692074
>>691846
Я хотел сказать, что новые библиотечные фичи не используем. Потому что до сих пор сидим на stlport. Честно скажу, лично я не знаю какие проблемы возникали при использовании разных стандартных библиотек на разных платформах. Но ходят легенды, что раньше возникали, поэтому сидим и ждем новую кроссплатформенную либу. Вроде как libstdc++ к этому стремится, но пока еще не оче.
#467 #692075
>>692074

>libc++


fixed
#468 #692077
>>692060
Настолько тонко, что я уже собрался писать тебе язвительный ответ.
>>692089
#469 #692078
>>692060
Это намек на универсальные ссылки?
>>692082>>692083
#470 #692079
>>692074

>2016


>stlport


What the fuck am I reading?
>>692081
#471 #692081
>>692079
Щито поделать
#472 #692082
>>692078
Это намек на то, что T включает в себя T&, const T& и вообще все что угодно
>>692091
#473 #692083
>>692078
Type traits и SFINAE мимо вас проехали, рачьо?
#474 #692089
>>692077
Это совет для опытных метапрограммистов.
#475 #692091
>>692082
Охуительные истории.
http://ideone.com/ZRXhnP

Манька не знает как выводится тип?
А "auto&" тебе ни о чем не говорит?
>>692100
#476 #692100
>>692091
Фишка в том, что <const Class&> и даже с виду безобидный <const char*> таит в себе неиссякаемый источник приключений. Попробуй как-нибудь на своем шаблонном коде, который ты считаешь bullet proof
>>692105
#477 #692105
>>692100
Например? Все приключения ты находишь, потому что не знаешь правила вывода типа. У меня таких проблем никогда не было.
>>692107
#478 #692107
>>692105
Попробуй написать коллекцию, которая будет корректно работать с ссылками и константными типами в темплейте такое под силу только суперчеловекам из комитета, никогда не пытайся использовать такие типы в сторонних библиотеках.
>>692113
#479 #692113
>>692107
Что не так со ссылками? Что не так с константами?
>>692116>>692118
#480 #692116
>>692113

>константами


Их кстати можно на define заменять. А ссылки на указатели.
#481 #692118
>>692113
С ними все в порядке, пока ты не пытаешься их использовать в параметрах темплейтов. Можно, например, сделать vector<const Myclass&>. И он может быть будет работать. Но заранее не скажешь.
>>692120>>692121
#482 #692120
>>692118
Познания просто уровня /pr/
>>692122
#483 #692121
>>692118
Почитай требования к типу вектора. Там все четко описано. Если твой константный тип выполняет их, все работает.
Короче, иди читай cppreference до просветления.
пока серьёзные дядьки творят мета магию на шаблонах
>>692124
#484 #692122
>>692120
Это обычная уличная магия темплейтов.
#485 #692123
>>692074

> кроссплатформенную это под разные компиляторы?



Сам недавно вынужден был на msvc2015 портировать код, потомучто внезапно в mingw словил дикий баг обработки исключений под шиндошс сервер 2012. Проект на C++11.

У тебя, судя по всему, легаси какой-то?
>>692125
#486 #692124
>>692121
Ты своих коллекций не писал никогда, сразу видно.
>>692128>>692135
#487 #692125
>>692123
не, легаси нет. Компиляторы и boost регулярно обновляем. Просто так исторически сложилось с stlport. Пару раз поднимали вопрос, в ответ - какие-то проблемы, если использовать разные либы. Ну и похуй в общем-то. Только строки по факту юзаем
#488 #692128
>>692124
А ты с выводом типа не дружишь. Лучше Маерса свежего почитай, кажись и проблема будет снята
>>692133
#489 #692133
>>692128

>ты с выводом типа не дружишь


Чтобы дружить с выводом типа, надо для каждого темплейтного класса писать потроха на 2к строк как в STL. А с C++11 уже на 20к.
#490 #692135
>>692124
Достаточно писал.
Еще раз - к элементу вектора предъявляются строгие требования.
must meet the requirements of CopyAssignable and CopyConstructible..
Если твой const T& может в копирование и присваивание - все будет работать.
Вся stl написана по строгим правилам. Все контейнеры, итераторы и алгоритмы определяют требования к типам.
>>692144>>692371
#491 #692140
>>692133

> А с C++11 уже на 20к.


Надо же. Порядок угадал.

$ echo "#include <vector>" | gcc -x c++ -std=c++14 -E - | wc -l
11229
>>692172
#492 #692144
>>692135
Ты же понимаешь, что эти требования применяются ко всем включенным типам. Если ты где-то слажал, и не сделал rule of 5, все рассыпается, и приходится исследовать все <<<<<<<<<<<
#493 #692147
>>692144

>Если ты где-то слажал, и не сделал rule of 5


ну ты понел
>>692157
#494 #692148
>>692144
Поэтому мы любим хаскель и не любим C++.
#495 #692157
>>692147
А чтобы понять, надо исследовать десять экранов выхлопа компилятора.
>>692160
#496 #692160
>>692157
О, умение читать вывод компилятора об ошибках в шаблонах приходит с опытом
>>692164
#497 #692164
>>692144
Кроме rule of 5 надо еще прописать все ::intricate_mostly_unknown_trait и прочую хуйню, и телепатически угадать, что от тебя хотел автор либы в данном конкретном случае.
>>692160

>умение читать вывод компилятора об ошибках в шаблонах приходит с опытом


Опыт говорит: не использовать сторонние либы, не использовать STL и boost, держаться ближе к няшной.
#498 #692172
>>692140
>>692133
Хотя не. 11000 строк это всякие левые хидеры вроде type_traits. Сам вектор где-то с 7900-й строки и почти до конца.

Так что vector в C++14 это не 20к строк, а 3к. (и то, я не уверен, что всё с 7900-й строки до 11000-й это конкретно к вектору относится)
>>692173>>692181
#499 #692173
>>692133
>>692172
Тем более, там 2 вектора: общий шаблон + vector<bool> специализация.

Так что и близко не 20к строк :3
>>692175>>692180
#500 #692175
>>692173
Вектор булов еще не отменили?
>>692176
#501 #692176
>>692175
А с чего его отменять?
34 Кб, 1440x852
#502 #692180
>>692173
Короче, окончательная инфа: вектор начинается на строке 7900 и заканчивается на 8839. (это без специализации под bool). Итого, контейнер в C++14, в противоречие стонам истерички про 20к строк, можно написать менее чем в 1000 строк.
А если учесть, что там дофига пикрелейтед, то реальных строк там 500 и менее.
>>692185>>692193
#503 #692181
>>692172
3к строк на вектор - ну ты подебил сразу.
>>692182>>692184
#504 #692182
>>692181

> подебил


Как у тебя припекло от того, что можно дружить с выводом типов и писать не в 20к строк, а в 500. :3
>>692189>>692191
#505 #692184
>>692181
Это же библиотечная реализация. Это норма.
#506 #692185
>>692180
В MSVC на обычный вектор ушло 1700 на bool - 1100
#507 #692189
>>692182

>не в 20к строк, а в 500


500 строк - это наивная реализация (у меня свой вектор - 400, из которых 250 - обертка над сишной либой). В GCC - около 3000.
>>692193
#508 #692190
Ебать копать, за 3 дня в бамплимит улетаем
>>692214
#509 #692191
>>692182
20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.
>>692195>>692196
#510 #692193
>>692189

> В GCC - около 3000.


Да що ви такое говоrите?
Я тут >>692180 разбирал по частям вектор из gcc. Там менее 1к строк.
>>692199
#511 #692195
>>692191
А зойчем ви-таки хотите rуками виписывать всю бюrокrатию? Ви-таки не знаете, что темплейты сами умеют виписываться?
#512 #692196
>>692191

>692182


>20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.


Ты ошибаешься. Нет там никакой бюрократии относительно const/не const.
Короче, ты не шаришь, как выводится тип. Там ничего сложного нет. Тебе нужно прочитать из нового маерса всего 2 главы: собственно "вывод типа" и move-семантика
#513 #692198
Забавно: первое место, где пришлось применить новый стандарт, - это двач.
#514 #692199
>>692193
У меня stl_vector - 1565 с комментариями.
#515 #692201
>>692199
пгепгоцессог гежет комментагии :(
#516 #692202
>>692199
таки тепегь ясно, откуда там так много пустых стгок
там были комментагии
#517 #692203
>>692199
комментагии не особо стоит считать.
В clang libc++ там вообще rилейтед куски стандагта копипастятся в комментагии пегед геализацией каждого контейнера.
#518 #692214
>>692190
С чем связан лимит в 500 постов?
>>692244>>692289
#519 #692235
>>691893
>>691893
Лор то тут при чём вообще?
>>693152
#520 #692239
Блять! Захожу на сайт из шапки http://www.qt.io/ru/, чтобы скачать Qt Creator, с которым работал год назад и обнаруживаю, что он сука платный. Я не ошибся или моя голова с похмелья не дает мне видеть истину сквозь "Free trial only 30 days"?
#521 #692243
Как удалить элементы из двоичного файла? По какому принципу?
#522 #692244
>>692214
Тоже никогда не мог понять такой хуйни
#523 #692259
#524 #692260
>>692243
>>692243
Нихуя не понимаю, ни одного слова блядь!
>>692261
#525 #692261
>>692260
В двоичном файле записана сплошняком информация, мне нужно удалить отдельные элементы из файла, отвечающие условиям которые вас ебать не должны. Яснее?
>>692306
#526 #692287
>>691881
Style Guide принятый в книге:
http://stroustrup.com/Programming/PPP-style.pdf
>>692409>>692413
#527 #692288
>>692239
Ищи Community version \ edition
#528 #692289
>>692214
>>692214
В древности машины были слабы, а программы требовали большой доли оптимизации...
#530 #692291
>>692239

>вонаби прогер


>не может разобраться с сайтом

#531 #692293
Стянул Qt 5.6, следует ли удалять 5.5.1 ?
#532 #692300
Котаны, накидайте-ка мне доводов в защиту c++98 перед c++11
#533 #692301
>>692300
Раньше было лучше
#534 #692302
>>692300
лямбды — сложна
#535 #692304
>>692300
Эксепшны наше всьо
#536 #692306
#537 #692369
>>692300
98 > 11
>>692370
#538 #692370
#539 #692371
>>692135
сделал std::vector<Wheel&> и std::vector<const Wheel&>

TDM 4.8 выдаёт ошибку
error: forming pointer to reference type 'const {anonymous}::Wheel&'

И вообще, зачем иметь вектор ссылок? Бред же.
>>692373
#540 #692372
>>691825
Всегда возвращай значения вычислений в исключениях. Так ты можешь получить результат выполнения функции из самых глубин стека.
#541 #692373
>>692371
Более того, не компилируется даже
std::vector<const int> v1;
>>692378
#542 #692378
>>692373
Спискоебы соснули
const int yoba[];
>>692380
23 Кб, 543x241
#543 #692380
>>692378
Йоба отклеилась.
#544 #692383
>>692300
темплейты сложны, а когда ещё и с тремя точками так это вообще трындец
#546 #692409
>>692287
Цитата из книги (стр. 60):

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



Лол.
>>692413
#547 #692413
>>692409

>Цитата из книги (стр. 60):


Там >>692287 десять страниц
>>692414
#548 #692414
>>692422
#549 #692422
#550 #693143
>>690203
спасибоо АНОН!!1 дал понять все!
ЧАЮ ТЕБЕ
#551 #693152
>>692235
Linux.org.ru раздел форума development. Там шарят в gtk некоторые.
#552 #693521
Вопрос по Qt.
Как можно уменьшить вес ехе'шника? Есть какие-нибудь хаки? Сразу говорю динамическая линковка идет нахуй.
Что угодно, что сделало бы вес проги меньше чем если юзать статик линковку+кучу флагов+upx. Спасибо.
#553 #693732
>>688646 (OP)
Хочу вкатиться в игрострой. Это лучший для этого язык?
>>693955>>693957
#554 #693955
#555 #693957
>>693732
На крестах пишут движки для создания игр. Сами игры, с 80% вероятностью, скриптуются на каком-нибудь другом языке.
Тред утонул или удален.
Это копия, сохраненная 8 апреля 2016 года.

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

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