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

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

 Аноним 15/03/16 Втр 12:36:28 #1 №688646 
14580345884760.jpg
Минуя их клоаку, будь на страже:
Тот, кто в познаньи от невежд отвык,
Окрест уж не отыщет места гаже.

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

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

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

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

Считает, что 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Аноним 15/03/16 Втр 12:43:12 #2 №688652 
Что блядь? А где шапка?
Аноним 15/03/16 Втр 13:08:16 #3 №688665 
>>688646 (OP)
Хорошие стишки.
Аноним 15/03/16 Втр 14:06:57 #4 №688722 
>>688646 (OP)
http://ideone.com/jioXqx
Аноним 15/03/16 Втр 14:23:20 #5 №688735 
>>688722
М?
Аноним 15/03/16 Втр 14:32:05 #6 №688740 
>>688722
>>688735
ДАБЛ СКАЗАЛ СВОЕ СЛОВО!
Аноним 15/03/16 Втр 14:58:20 #7 №688773 
>>688652
Шапка не нужна.
Аноним 15/03/16 Втр 15:42:36 #8 №688822 
>>688722
>>688735
>>688740
Как переписать, чтобы работало с листом.
Аноним 15/03/16 Втр 15:45:58 #9 №688826 
>>688822
binary search для списка это что-то новое. Зачем тебе это нужно?
Аноним 15/03/16 Втр 15:48:11 #10 №688828 
>>688822
У листа нет рандом итератора, в нем нет смысла искать бинарным поиском. Точнее лист (с небольшими изменениями в структуре) для бинарного поиска называется красно-черное дерево.
Аноним 15/03/16 Втр 15:55:33 #11 №688833 
>>688828
>>688826
Да я хз. Просто пытаюсь в шаблоны - на работе нечем заняться.
Аноним 15/03/16 Втр 15:59:49 #12 №688838 
>>688833
третий дабл подряд.
Можешь взять std::lower_bound. Хотя это особо не имеет смысла. Лучше придумай другую задачу.
Аноним 15/03/16 Втр 16:02:52 #13 №688842 
>>688838
>Лучше придумай другую задачу.
Ну шаблонные сортировочки вектора и листа я давно запилил.
Аноним 15/03/16 Втр 16:03:31 #14 №688843 
>>688842
А что в них шаблонного?
Аноним 15/03/16 Втр 16:04:08 #15 №688845 
>>688838
ты там совсем ебанулся со своими даблами?
Аноним 15/03/16 Втр 16:04:15 #16 №688846 
>>688842
>сортировочки листа
надеюсь не quicksort
Аноним 15/03/16 Втр 16:04:46 #17 №688847 
>>688846
бабблсорт жи
Аноним 15/03/16 Втр 16:05:10 #18 №688848 
>>688843
Можно передать итераторы либо на кусок вектора, либо на кусок листа.
Аноним 15/03/16 Втр 16:06:07 #19 №688850 
>>688847
>>688846
Почти все, какие были в вики.
Аноним 15/03/16 Втр 16:06:30 #20 №688851 
14580471909140.png
>>688838
>дабл
>дабл
>дабл
Аноним 15/03/16 Втр 16:06:36 #21 №688852 
>>688848
И как же, хм, сортировать лист? И главное - нахуя?
У него же время доступа по индексу линейное...
Аноним 15/03/16 Втр 16:09:59 #22 №688855 
>>688852
для qsort доступ можно не по индексу делать. только до входа в следующую рекурсию надо указатель на центральный элемент и боковое запоминать.
Аноним 15/03/16 Втр 16:10:02 #23 №688856 
>>688852
А если мне что-то в нем найти понадобиться?
Инбифо юзай мап
Аноним 15/03/16 Втр 16:12:02 #24 №688858 
>>688856
Ну чому сразу мап? Можно и сет.
Хотя это один хуй практически одно и то же.
Аноним 15/03/16 Втр 16:12:10 #25 №688859 
>>688833
Мне бы такую работу.
Напиши математическую библиотеку.
Аноним 15/03/16 Втр 16:13:02 #26 №688861 
>>688859
Не лучше для графов.
Аноним 15/03/16 Втр 16:14:14 #27 №688864 
>>688852
introsort'у не нужен индекс же. На quicksort-этапе он берет в качестве образца первый элемент списка и в любом случае проходит последовательно по всем элементам, сравнивая с ним. На heapsort-этапе вообще все хуярится в кучу в дополнительной памяти, поэтому несущественно, опять же.
Аноним 15/03/16 Втр 16:36:21 #28 №688876 
>>688852
>И как же, хм, сортировать лист?
insertion sort нормально.
Аноним 15/03/16 Втр 16:38:43 #29 №688880 
>>688852
Обычно merge sort
Аноним 15/03/16 Втр 16:49:11 #30 №688889 
>>688859
Лалка, я в копицентре работаю.
Аноним 15/03/16 Втр 16:50:33 #31 №688890 
>>688889
А блин. Такую работу я не хочу.
Аноним 15/03/16 Втр 16:53:29 #32 №688893 
>>688890
Я тоже.
Аноним 15/03/16 Втр 17:17:11 #33 №688899 
Есть тут те, кто вкатился после 25?
Аноним 15/03/16 Втр 17:32:57 #34 №688903 
>>688899
Я пытаюсь вкатываться. Но в одиночку это хуевато выходит.
Аноним 15/03/16 Втр 17:39:46 #35 №688910 
>>688903
>в одиночку
А как ещё можно?
Аноним 15/03/16 Втр 17:39:51 #36 №688911 
>>688899
Сейм >>688903 щит
Аноним 15/03/16 Втр 17:42:45 #37 №688916 
>>688910
С ментором
Аноним 15/03/16 Втр 17:44:08 #38 №688921 
>>688916
А без хуя в жопе никак?
Аноним 15/03/16 Втр 17:44:32 #39 №688922 
>>688916
Какой нахуй ментор. Это всё бред.
У нас тут полный тред менторов. Задавай вопросы и тебе ответят.
Аноним 15/03/16 Втр 17:49:14 #40 №688935 
>>688899
Я пытаюсь. Скоро 26 где я просрал свою жизнь?
Аноним 15/03/16 Втр 17:50:21 #41 №688938 
>>688903
Вкатывайся не в одиночку.
Скорешись с кем то и пишите свой велосипед.
Аноним 15/03/16 Втр 17:55:33 #42 №688943 
>>688935
Мне 28 и я вполне четко знаю где я ее просрал, лол.
Аноним 15/03/16 Втр 17:56:36 #43 №688946 
А почему вы все именно в плюсы вкатываетесь?
Аноним 15/03/16 Втр 17:58:57 #44 №688950 
>>688943
И где? И как с крестами дружишь?

>>688946
Плюсы для бородатых дядек админов, для тех, кому за 25.
Аноним 15/03/16 Втр 17:59:56 #45 №688953 
У меня идея появилась: давайте обменяемся контактами и будем созваниваться раз в неделю по скайпу и рассказывать друг другу что сделали за эту неделю?

Аноним 15/03/16 Втр 18:01:05 #46 №688954 
>>688953
А если у меня скайпа нет и я только начинаю?
Аноним 15/03/16 Втр 18:01:47 #47 №688956 
>>688946
А куда еще? В делфи? Или в паскаль?
Аноним 15/03/16 Втр 18:02:26 #48 №688958 
>>688953
Лучше может запилить свою тиму и начать что то пилить?
Аноним 15/03/16 Втр 18:03:02 #49 №688961 
>>688956
В питон.
Аноним 15/03/16 Втр 18:03:25 #50 №688962 
>>688954
>А если у меня скайпа нет
Ты хотел сказать что нет микрофона?

>и я только начинаю?
Какая разница?
Аноним 15/03/16 Втр 18:03:50 #51 №688963 
>>688961
У меня лично был диск "погромирование по русски - 5в1", и никакого питона там не было.
Аноним 15/03/16 Втр 18:04:34 #52 №688965 
>>688962
Нет, микрофон есть, даже два лол. А вот учётки в скайпе нет и не очень-то хочется. Альтернативу на крестах напишем?
Аноним 15/03/16 Втр 18:04:37 #53 №688966 
>>688958
Я просто хочу прочитать N книг, и для этого мне нужна мотивация.
Аноним 15/03/16 Втр 18:04:47 #54 №688967 
>>688963
Ну щас можно и без дисков. Включил курс на сайте MIT и вникай.
Аноним 15/03/16 Втр 18:05:36 #55 №688969 
>>688967
Ну был вопрос, кто и почему вкатился в кресты.
Когда я заинтересовался погромированием - никаких интернетов у меня не было.
Аноним 15/03/16 Втр 18:06:08 #56 №688972 
>>688969
Да и у кого они были - были по карточкам и повременка.
Аноним 15/03/16 Втр 18:07:02 #57 №688975 
>>688966
Но ведь книги говно, главное жи практика.
Аноним 15/03/16 Втр 18:07:17 #58 №688977 
>>688969
Когда я им заинтересовался у меня был сраный Вектор-06Ц со встроенным бейсиком, магнитофон Маяк и старый телевизор. Так что у тебя еще дохуя выбора было, лол.
Аноним 15/03/16 Втр 18:09:51 #59 №688980 
>>688946
Я начинал программировать с варкрафта 3, там был скриптовый язык jass.
По мере развития картостроительства, энтузиасты сделали настройку над джассом называемый cJass с си подобным синтаксисом.
Аноним 15/03/16 Втр 18:10:01 #60 №688981 
>>688975
У меня в планах 2 книги (Эккель, он охуенен), потом можно и попрактиковаться.

Аноним 15/03/16 Втр 18:10:31 #61 №688982 
Так стоп. Вы давно программируете, но решили перекатится или что.
Аноним 15/03/16 Втр 18:12:04 #62 №688984 
>>688982
На втором курсе технаря познакомился с Pure C. Очень вкатило. Потом много лет нихуя-не-делания. Сейчас вкатываюсь в кресты.
Аноним 15/03/16 Втр 18:15:35 #63 №688988 
>>688982
>Вы давно программируете, но решили перекатится
Что это меняет? Прокрастинацию никто не отменял. Моя идея со скайпом как раз в том, что не важно какой у нас с вами уровень, мы можем заниматься совершенно разными вещами на плюсах, просто будем говорить друг другу что сделали за неделю и все. Так можно попробовать одержать победу над прокрастинацией. Лично мне, сказать: "Я нихуя не сделал, ничего не прочел, смотрел всю неделю аниму" будет не приятно.
Аноним 15/03/16 Втр 18:16:48 #64 №688992 
>>688988
Думаю, совместно пилить какую-то хуиту будет эффективнее.
Аноним 15/03/16 Втр 18:17:05 #65 №688993 
>>688946
Олимпиадки решать. Теперь еду на респу и лучше всех знаю кресты.
Аноним 15/03/16 Втр 18:17:17 #66 №688994 
>>688992
Как ты себе это представляешь? Библиотеки на каждого распределить?
Аноним 15/03/16 Втр 18:17:29 #67 №688996 
>>688988
Ну а если я скажу: Вот делаю свой небольшой 3д шутер. Хочу там сделать двери и двигающиеся стенки. Ебусь с квейковским бсп.
Что это изменит?
Аноним 15/03/16 Втр 18:18:12 #68 №688999 
>>688996
Аноны тебе с кодом помогут.
Аноним 15/03/16 Втр 18:18:34 #69 №689000 
>>688994
>Как ты себе это представляешь?
Решить, что пилить, заебашить проект на битбукете и в шкайпике обсуждение, охуительные идеи и реализация.
Аноним 15/03/16 Втр 18:18:50 #70 №689001 
>>688992
Ты поставил цели на неделю и выполнил их - значит молодец. Что еще нужно?
Аноним 15/03/16 Втр 18:19:51 #71 №689004 
>>689001 -> >>688996
Аноним 15/03/16 Втр 18:20:26 #72 №689006 
>>688996
Вот этот сайт не смотрел? http://fabiensanglard.net интересный разбор кода некоторых шутеров, может пригодиться.
Аноним 15/03/16 Втр 18:21:48 #73 №689008 
>>689006
То, что мне надо там нету.
Проще тупо исходники квейка самому смотреть.
Я тебе сам могу посоветовать:
https://www.youtube.com/user/philipbuuck/videos
Аноним 15/03/16 Втр 18:23:14 #74 №689011 
Как заебашить рендер без opengl?
В какую сторону копать?

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

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

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

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

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

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

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

Так что только рандом -> выясняешь -> дропаешь если не так.
Аноним 15/03/16 Втр 19:48:54 #105 №689119 
>>689115
И такой вариант в бэ писал. Там целая оценочная функция была где пользователь мог сам параметры задать. Её писали т.к. при поиске по обязательным требованиям цикл мог быть очень долгим и не завершиться вовремя. Ещё какую-то рекурсивную функцию писал которая стек рвала если такой тян нет.
Аноним 15/03/16 Втр 19:52:16 #106 №689123 
>>689118
Представь if как фильтр, как вход в здание. Если тня не соответствует требованиям, она просто не попадает в твоё поле зрения.
Аноним 15/03/16 Втр 19:53:29 #107 №689125 
>>689113
>new
Шок! Раскрыта загадка века! Тяны уходят из-за брошенных исключений.
Аноним 15/03/16 Втр 19:53:40 #108 №689126 
>>689123
Но ты блять не знаешь изначально, соответствует она требованиям или нет.
Это как конфета с говном - пока не надкусишь - не узнаешь.
Аноним 15/03/16 Втр 19:53:59 #109 №689127 
>>689123
Тогда может быть случай когда все тян не подходят.
Аноним 15/03/16 Втр 19:54:35 #110 №689128 
14580608755130.png
>>689127
Аноним 15/03/16 Втр 19:54:47 #111 №689129 
>>689125
Ещё были какие-то причины не создавать её на стеке. Не помню какие, но они есть!
Аноним 15/03/16 Втр 19:55:10 #112 №689130 
>>689127
Ну напиши что-то в стиле:
else
("Forever alone")
Аноним 15/03/16 Втр 19:55:40 #113 №689132 
>>689126
>конфета с говном
Пиздуй в Хогвартс со своими бобами Берти Боттс, волшебник хуев.
Аноним 15/03/16 Втр 19:56:22 #114 №689133 
>>689128
Да нет же. Спасает оценочная функций когда все тян получают оценки и выбираешь лучшую. Но тако подход не сработает если тян очень много.
Аноним 15/03/16 Втр 19:58:18 #115 №689135 
>>689133
На кой тогда с ифами ебаться? Может сразу функцию запилить?
Аноним 15/03/16 Втр 19:58:41 #116 №689136 
Походу моя тян бросила неперехваченное исключение в конструкторе и аварийно завершилась не создавшись.
Аноним 15/03/16 Втр 19:59:08 #117 №689138 
>>689129
Подумай какие. Мне кажется, что мы скоро подберёмся к разгадке тайны.
Аноним 15/03/16 Втр 20:00:32 #118 №689141 
>>689138
Может уязвимость перезаписи стека?
Аноним 15/03/16 Втр 20:00:35 #119 №689142 
throw new Tyan("еотова");
Аноним 15/03/16 Втр 20:01:17 #120 №689144 
>>689142
Омежка все равно качнет.
Аноним 15/03/16 Втр 20:38:03 #121 №689179 
>>689041
Тебе нужен указатель на создаваемый класс внутри конструктора? Там есть и так неявный this
Аноним 15/03/16 Втр 21:35:48 #122 №689224 
Недавно узнал про __float128 и мне понравилось. Не пришлось писать длинку. Что ещё весёлого я не знаю про что не пишут в книжках?
Аноним 15/03/16 Втр 21:36:53 #123 №689225 
>>689224
И что же ты про него узнал?
И каким образом он связан с длинкой?
Аноним 15/03/16 Втр 21:38:21 #124 №689226 
>>689225
Ну там числа большие влазят.
Аноним 15/03/16 Втр 21:39:34 #125 №689227 
>>689226
Но блять, не целые ведь!
А длинка тут при чем?
Аноним 15/03/16 Втр 21:40:51 #126 №689229 
>>689226
>>689224
Дальше читай.
Аноним 15/03/16 Втр 21:41:30 #127 №689230 
>>689229
Что дальше?
Аноним 15/03/16 Втр 21:42:56 #128 №689231 
>>689230
Читай...
Аноним 15/03/16 Втр 21:51:40 #129 №689237 
Какую функцию передавать функцию сортировки для сравнения?
Аноним 15/03/16 Втр 21:52:27 #130 №689238 
>>689237
Компаратор.
Аноним 15/03/16 Втр 21:52:47 #131 №689239 
>>689237
Лямбду.
Аноним 15/03/16 Втр 21:53:08 #132 №689240 
>>689237
Функтор.
Аноним 15/03/16 Втр 21:54:31 #133 №689241 
>>689238
>>689239
>>689240
Есть какой-то стандарт/шаблон?
Аноним 15/03/16 Втр 21:55:14 #134 №689242 
>>689241
Да.
Аноним 15/03/16 Втр 22:02:17 #135 №689251 
>>689242
Покажи
Аноним 15/03/16 Втр 22:03:52 #136 №689252 
>>689251
[1, 3, 9, 7, 3, 8].sort!((x, y) => x < y)
Аноним 16/03/16 Срд 00:41:29 #137 №689407 
>>688646 (OP)
Какие проекты, вероятнее всего, среднестатистический некриворукий анон будет делать, если выучит C++ на уровне приличного новичка? Какие проекты чаще всего попадаются? Какие проекты интересные? Какие проекты в 2016 году делаются на Qt? На голом C++? Под какие платформы? Бывалые, опишите, интересно же. На моей прошлой работе был крохотный проект на плюсах с нормальным ООП, но он был скорее огромным таким биндингом для использования другого проекта.
Аноним 16/03/16 Срд 00:41:59 #138 №689409 
>>689407
Я писал на Qt.
Аноним 16/03/16 Срд 01:17:18 #139 №689430 
>>689142
Fuuuuuuuu~~~
Никогда так не делай
Аноним 16/03/16 Срд 01:40:58 #140 №689444 
14580816588190.png
>>688646 (OP)
ПОСАДИЛИ МИШКУ НА КОЛ
ОТОРВАЛИ МИШКЕ ЛАПУ
ЧАС ПРОБИЛ И ЖРЕБИЙ БРОШЕН
И НИКТО МНЕ НЕ ПОМОЖЕТ
Аноним 16/03/16 Срд 01:46:39 #141 №689449 
Аноны, а какие вы юзаете ide??
нотпад++ поднадоел что-то
Аноним 16/03/16 Срд 01:47:24 #142 №689450 
>>689449
Для крестов - Qt Creator
Аноним 16/03/16 Срд 01:47:47 #143 №689451 
>>689449
VS
Аноним 16/03/16 Срд 01:49:20 #144 №689452 
>>689450
ну он интересен но там нельзя свой makefile дальше смотрим
>>689451
дорого и не умеет в кросплатформ ещё варианты

зы там юзаю пока эклипс но эта сучка тяжелая как танк
Аноним 16/03/16 Срд 01:50:25 #145 №689453 
>>689452
>ну он интересен но там нельзя свой makefile
Да ну? А зачем тебе "свой makefile"?
Аноним 16/03/16 Срд 01:51:41 #146 №689454 
>>689452
Юзай коммон версию.
Алсо, не понимаю дрочь на кроссплатформу. Всегда было на все кроме шинды поебать.
Аноним 16/03/16 Срд 01:51:42 #147 №689455 
>>689453
хочу с эклипса перекат на годную ide сделать.
зачем переписывать под qmake если проще geany с парой скриптов какихньть?
Аноним 16/03/16 Срд 01:53:07 #148 №689457 
>>689454
не юзал шинду года 4
на моем железе любая синку кидает в процессе установки
Аноним 16/03/16 Срд 01:54:01 #149 №689459 
>>689455
>зачем переписывать под qmake
qmake - прошлый век. Юзай qbs, он не генерит промежуточный файл, а дергает инструменты напрямую. Реально быстрее собирает.
Аноним 16/03/16 Срд 01:54:21 #150 №689460 
>>689457
Код блок можешь тогда попробовать. Сам не юзал, но грят норм вдобавок легковесный
Аноним 16/03/16 Срд 01:55:18 #151 №689461 
>>689460
Откуда дроч на "легковесность"?
Браузер все равно будет жирнее всего.
Аноним 16/03/16 Срд 01:56:47 #152 №689462 
>>689461
Ну очевидно откуда.
Аноним 16/03/16 Срд 02:08:05 #153 №689466 
14580832858940.png
>>689459
Интересненько, отстал я от qt но не решает проблемы лишнекодописания
>>689460
>Код блок
пик? не юзал но пробну.
>>689461
в этом и беда анон
на оверлокался сжег писюк
продал озу с него, купил олд битую железку
появился таск на спасение моей жизни рендер написать с парой 3д анимаций на апараты 2003-5ых годов рождения
браузер имой любимый эклипс сьедают 210процентов озу
это не удобно капец

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

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

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

Оформлю.

С умными указателями пока не имел дело, но при работе с классом не хило кушается память, примерно по 3Мб на 1 обработанный файл. Подскажите хотя бы что гуглить, чтобы отвобождать память корректно? Вроде деструктор сделал, вроде даже и вектора чищу clear'ом. Но все равно память жрется стабильно.
Аноним 16/03/16 Срд 12:16:53 #158 №689621 
>>689606
>Он нужен для работы с файлами экселя. Выполняет подключение к файлу, и выборку+обработку некоторого диапазона.

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

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

Навскидку не скажу, что там у тебя течет. Да и не интересно мне в говне копаться. Да, кстати,
>вроде даже и вектора чищу clear'ом
память не освобождает, читай внимательно доки к вектору.
Аноним 16/03/16 Срд 12:21:31 #159 №689626 
>>689606
При вызове метода, к примеру, XlsHelper::MakeSqrtSum у тебя создается новый экземпляр XlsApp, а указатель на старый (если был) проебывается. Тоесть последовательные вызовы XlsHelper::MakeSqrtSum будут давать утечку. если после каждого вызова XlsHelper::MakeSqrtSum (или подобной функции) ты будешь удалять экземпляр XlsHelper от которого был вызван XlsHelper::MakeSqrtSum то память будет очищаться, деструктор ты действительно создал. Если ты не хочешь использовать умные указатели, то перед каждым вызом new ты должен проверять не находится ли по тому указателю уже готовый (старый) объект и если он есть (указатель не nullptr) то удалять его.
Алсо, возможно я ошибаюсь (код не сильно внимательно просмотрел), но как мне кажется корень твоих проблем в идеологических ошибках. Какой объект из твоей предметной области представляют инстансы твой класса? Никакого. Твой код построен в стиле обычного структурного программирования, на которое ты какого-то хуя навернул ООП - но оно нихуя тебе не дает, твои переменные класса, так как в них нет никакого смысла, фактически работают как глобальные переменные вследствие чего ты и обсираешся. Тебе можно превратить твой класс в неймспейс, удалить глобальные переменные (подразумеваются все переменные-члены твоего класса), соответсвено подправить код - и все утечки волшебным образом исчезнут.
Аноним 16/03/16 Срд 12:35:34 #160 №689631 
>>689621
>>689626
Спасибочки.
Аноним 16/03/16 Срд 13:21:18 #161 №689665 
В плеймаркете видел приложение Learn C++. Мне вот интересно насколько оно годно, вроде вполне понятно и для начинания вполне заебись.
Аноним 16/03/16 Срд 13:38:46 #162 №689674 
14581247262060.png
Пишу односвязный список, каждая ячейка - структура, в которой два поля: данные шаблонного типа и указатель на следующую ячейку. Также есть указатели на первый и последний элемент. Надо написать его перепаковку, чтобы из 1-2-3-4-5-6-7-8-9-0 мы получали 1-0-2-9-3-8-4-7-5-6. Для этого в цикле мне нужно обращаться к предпоследнему элементу. Пока придумал только перебирать все элементы в цикле, пока не найдём тот в котором указатель на следующую ячейку указывает на последний элемент, но это пиздец корявый костыль. Можно ли это делать по нормальному?
Аноним 16/03/16 Срд 14:08:17 #163 №689697 
>>689665
Попробуй лучше написать что-то свое. Реализацию вектора или хэшмэп. Чтобы там rule of 5 и остальные плюшки были. Это тебе даст гораздо больше и за меньшее время.
Аноним 16/03/16 Срд 14:10:08 #164 №689698 
>>689674
Второй список с развернутым порядком или рекурсия.
Аноним 16/03/16 Срд 14:15:18 #165 №689702 
>>689698
А можно про рекурсию подробней?
Аноним 16/03/16 Срд 14:20:02 #166 №689706 
>>689626
Вот ещё один момент, не дает мне покоя. В прошлый раз, да и во все другие разы, замечал что программки, вроде бы небольшие не хило едят память, но ничего, созданного через new в них нет. ведь я уже создавал проектик на подобие, где не было "ооп", а были только события на кнопках, а массивы из экселья грузились в стандартные компоненты среды, и после каждого просчета естественно все обнулялось. кроме памяти, лол Чому так? Видимо не только через new может выделяться динамическая память? Или я создавал всё в стеке и он может расти до бесконечности?
Аноним 16/03/16 Срд 14:24:00 #167 №689711 
>>689702
Вместо создания второго списка создаешь его на стеке - рекурсивно посылаешь элементы в функцию, пока они не закончатся, плюс передаешь голову списка. На нижнем уровне у функции будут одновременно последний и первый элементы, который ты объединяешь в новый список и возвращаешь наверх.
Аноним 16/03/16 Срд 14:24:56 #168 №689713 
>>689706
Если ты не вызываешь new, это не означает, что он не вызывается где-то в библиотеках.
Аноним 16/03/16 Срд 14:28:00 #169 №689715 
>>689706
Ты запускаешь программу. ОС создает процесс в оперативной памяти. Там хранится вся инфа про процесс, стек, инструкции программы и т.д.
Аноним 16/03/16 Срд 14:29:10 #170 №689716 
>>689713
Но в библиотеках же все должно быть четко, разве нет? Или их писали такие как я?
Аноним 16/03/16 Срд 14:30:27 #171 №689718 
>>689716
Ну, эмбаркадера всегда славилась анальностью своих продуктов. Вообще, это самый главный минус их "плюсов" – дэльфевый рантайм живёт по своим правилам.
Аноним 16/03/16 Срд 14:39:56 #172 №689724 
>>689716
>же все должно быть четко
В смысле без выделения памяти? Как ты себе это представляешь? У Qt, например, почти все классы сделаны как pimpl, то есть при создании класса он всегда в куче выделяет память, а в самом экземпляре хранится только указатель.
Аноним 16/03/16 Срд 14:43:56 #173 №689725 
>>689724
Я имел ввиду, что если библиотечный компонент, то он должен правильно все делать, раз попал в библиотеку. но скорее всего тут все же моя вина. что-то где то не доглядел. и не дописал как надо. как с vector.clear(), который память не освобождает на самом деле. вот же ебатория
Аноним 16/03/16 Срд 14:55:21 #174 №689732 
Стоит ли обмазываться ReSharper++?
Аноним 16/03/16 Срд 15:00:45 #175 №689737 
А у меня тоже вопрос. Стоит ли обмазываться C++ + managed C++ + c#?
Аноним 16/03/16 Срд 15:02:26 #176 №689739 
>>689732
Если у тебя 10 (и мб 12) студия - вымазывайся. На следующих релизах студии убивает нахуй всю систему лагами, хз что там такое.
Алсо, visual assistor в 10 раз лучше.
Аноним 16/03/16 Срд 15:02:42 #177 №689741 
>>689737
Нет.
Аноним 16/03/16 Срд 15:05:08 #178 №689744 
>>689737
Только если что-то портируешь под винмобайл.
Аноним 16/03/16 Срд 15:34:38 #179 №689763 
>>689737
лучше сразу c# обмазывайся. Больше толку будет
Аноним 16/03/16 Срд 15:49:30 #180 №689767 
> Для нюфань
> Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela

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

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

помню как в детстве читал подобную муть и мозг просто отказывал.
Бля ну что за авторы-черви без мозгов.
Аноним 16/03/16 Срд 15:51:36 #181 №689772 
>>689767
Скоре всего просто перевод хуевый.
Аноним 16/03/16 Срд 15:51:36 #182 №689773 
>>689767
Почитай эту тему у страуструпа. Только не увлекайся.
Аноним 16/03/16 Срд 16:00:33 #183 №689781 
>>689772 да это я уж хуй знает как так переводить надо умудриться.
А вы это ещё и нюфаням советуете. Ломаете жизни.
Аноним 16/03/16 Срд 16:08:51 #184 №689787 
>>689781
А что им посоветовать надо-то? С++ за 21 день?
Аноним 16/03/16 Срд 16:23:31 #185 №689796 
>>689772
Двачую. На переводчиках часто экономят, и получаются отвратительные высеры типа "Искусство автономного тестирования", лол.
Аноним 16/03/16 Срд 16:26:14 #186 №689799 
Ну дак может добавим и оригиналы книг в шапку?
Аноним 16/03/16 Срд 16:31:16 #187 №689801 
>>689799
Нуфаги обычно не могут в инглиш. А те то не для нуфагов есть в шапке на инглише.
Аноним 16/03/16 Срд 16:37:28 #188 №689807 
14581354483230.png
14581354483251.png
14581354483312.png
Посоны, не могу совладать с паттерном "Мост".
Вот мотивация прямо из книги: есть gui-приложение, которое работает на разных платформах. И клиентский код, который должен работать с gui частью, нужно изолировать от непосредственных платформо-специфических деталей.

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

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

Скажите мне, прав ли я, или в глаза ебусь и не понимаю смысла паттерна?

Аноним 16/03/16 Срд 16:37:58 #189 №689809 
14581354789950.png
>>689807
Пикрил4
Аноним 16/03/16 Срд 16:56:02 #190 №689823 
>>689807
Ну вообще паттерны это не серебряные пули же, у них есть и отрицательные стороны. Мост хорошо применять в случаях, когда, грубо говоря, есть возможность выразить всю функциональность класса через небольшое количество базисных функций. Ну там, скажем, функции отрисовки любых объектов через функцию отрисовки точки, которая обращается к графической библиотеке. Тогда ты выносишь реализацию этого базиса в параллельную иерархию и все заебись, вместо произведения количества библиотек на количество клиентских классов ты получаешь сумму, в этом весь профит. Емнип у банды про это разжевано. Ну вот, а в общем случае не факт, что тебе нужен мост. Бывает, что библиотеки имеют разные интерфейсы, а реализовывать все через их пересечение неоптимально по производительности. Тогда про мост нужно забыть и сделать как-то иначе.
Аноним 16/03/16 Срд 17:51:16 #191 №689872 
14581398771020.jpg
Ребзя. В общем, мне послезавтра идти на работу, где я напиздел, что могу немного в С++. От меня многого не ждут, но тем не менее нужно вкатиться максимально быстро и чуть-чуть глубже чем "Hello World". Помогите ресурсом или советом как можно за сутки достичь того уровня, что я описал.
Аноним 16/03/16 Срд 17:52:40 #192 №689878 
>>689872
Опыт-то у тебя какой?
Аноним 16/03/16 Срд 17:56:56 #193 №689883 
14581402170430.jpg
>>689878
В джава написал одну прогу ищущую "вилки" у футбольных букмекерах. тут объяснение, что такое вилка http://probukmeker.ru/25-vilka.html Но прога жрала 5 Гб оперативной памяти, так что о её качестве можно промолчать. Очень давно написал пару лаб по С++.
Аноним 16/03/16 Срд 17:58:29 #194 №689886 
>>689883
Блин. И как ты вкатился? У тебя что супер софтскилс?
Аноним 16/03/16 Срд 18:03:35 #195 №689888 
>>689872
Скачай исходники к какой нибудь книге и запускай примеры в дебаге.
Аноним 16/03/16 Срд 18:06:31 #196 №689889 
>>689886
Да, нет, никаких сверхспособностей замечено не было. Вкатился просто: пришел на предприятие, сказал "хочу работать", если ты про это.
Аноним 16/03/16 Срд 18:07:48 #197 №689890 
>>689889
Вышка есть?
Аноним 16/03/16 Срд 18:08:15 #198 №689891 
>>689888
Да, тоже про это подумал, уже ищу. Лучше всего изучать язык изучая готовый код, как мне говорил знакомый-кодер.
Аноним 16/03/16 Срд 18:09:10 #199 №689892 
14581409506620.jpg
>>689890
Конечно.
Аноним 16/03/16 Срд 18:09:34 #200 №689893 
>>689891
Исходники всегда бесплатны и их можно официально скачать с сайта издательства.
Аноним 16/03/16 Срд 18:17:01 #201 №689899 
>>689872
С шаблонами поиграйся.
Аноним 16/03/16 Срд 18:19:55 #202 №689900 
>>689891
Если останется время, читни чутка Рефакторинг Фаулера. Мне знакомый программист-сеньор как-то сказал, что он считает, что каждый программист должен прочитать эту книгу.
Аноним 16/03/16 Срд 18:20:37 #203 №689901 
>>689891
Я так инглиш изучал. Читая всё нормально. Фильмы книги всё могу. Пишу и долго думаю как правильно. Я говорить предложениями больше 5 слов вообще не могу.
Аноним 16/03/16 Срд 18:22:32 #204 №689902 
>>689901
Да ты стихотворец.
Аноним 16/03/16 Срд 18:24:33 #205 №689906 
Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.
Аноним 16/03/16 Срд 18:37:08 #206 №689913 
А что контейнера heap нет? Только какие-то функции для вектора?
Аноним 16/03/16 Срд 18:41:29 #207 №689916 
>>689913
map?
Аноним 16/03/16 Срд 18:42:52 #208 №689918 
>>689916
Нет. Нужно дерево отрезков и пирамидальную сортировку написать. Всё на куче.
Аноним 16/03/16 Срд 18:45:43 #209 №689920 
>>689918
Током ебнуть? Пихай в мап, потом пройдись итератором и охуей.
Аноним 16/03/16 Срд 18:48:07 #210 №689923 
>>689913
std::priority_queue
>>689918
Дерево отрезков это не совсем куча, из стандартного вроде ничего не подходит.
Аноним 16/03/16 Срд 18:51:22 #211 №689927 
>>689920
Нет. Это не то. Говорю же нужно вниз и в верх но куче ходить.

>>689923
Спасибо. Слышал что она на куче сделана. Совсем забыл про эту штуку. Только я не умею её пользоваться и не знаю как вверх и вниз по нему ходить.
Аноним 16/03/16 Срд 19:02:28 #212 №689942 
>>689889
Пиздец
Аноним 16/03/16 Срд 19:02:40 #213 №689944 
>>689927
> вверх и вниз по нему ходить
Лигитимного способа нет. Инкапсуляция же. Если тебе нужно ходить то это массив и функции которые ты упоминал раньше. Только если тебе задали написать пирамидальную сортировку то скорее всего мечтают что ты те функции сам напишешь. А для дререва отрезков куча не подходит, идея там похожая но отличия большие. В куче находятся только элементы которые ты туда поместил, а в дереве отрезков помещенные элементы находятся только на самом нижме уровне - все что над ними специально высчитаные служебные элементы. Обычные алгоритмы работы с кучей там не помогут.
Аноним 16/03/16 Срд 19:05:27 #214 №689948 
Если я слишком тупой для плюсов, то какие есть альтернативы?
inb4:пхп, питон
Аноним 16/03/16 Срд 19:06:26 #215 №689950 
>>689948
шарп
Аноним 16/03/16 Срд 19:06:58 #216 №689951 
>>689948
джава
Аноним 16/03/16 Срд 19:07:23 #217 №689952 
>>689944
Ясно. Спасибо. Свою напишу.
Аноним 16/03/16 Срд 19:11:51 #218 №689958 
>>689906
>Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.
Concurrency in action
Аноним 16/03/16 Срд 19:20:16 #219 №689966 
>>689948
Си
sageАноним 16/03/16 Срд 21:05:35 #220 №690084 
>>689958
>вкратце
>с примерами
Мда.
Аноним 16/03/16 Срд 21:24:42 #221 №690097 
>>689741
неистово арчюю этого

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

у меня есть нормаль полигона и нормаль в касательном пространстве.. как переаести её в нормальное пространство без матрицы то?
Аноним 16/03/16 Срд 21:28:33 #222 №690106 
>>690097
http://learnopengl.com/#!Advanced-Lighting/Normal-Mapping
Сойдет?
Аноним 16/03/16 Срд 21:32:39 #223 №690109 
14581531597180.png
>>690106
статья типичная. и моего знания вышки и тензоров всяких последнее просто на ну ле не даает что-то понять что на пике за штукт
Аноним 16/03/16 Срд 21:33:15 #224 №690111 
тут кто-нибудь реализовывал на крестах алгоритм а*?
sageАноним 16/03/16 Срд 21:33:31 #225 №690113 
>>690111
Конечно.
Что конкретно интересует?
Аноним 16/03/16 Срд 21:37:58 #226 №690117 
>>690113
туплю чет с записью нод в массивы, дружище, скинь как ты реализовал это дело.
Аноним 16/03/16 Срд 21:40:02 #227 №690120 
>>690117
Я изрядно там наговнокодил, но в принципе работает. Могу скинуть если хочешь. Правда там уровня лабы, я тогда только начинал с c++11 знакомиться, накуралесил со многими вещами
Лучше свой код покажи, вдруг кто-то из антонов поможет найти ошибочку.
Аноним 16/03/16 Срд 21:42:03 #228 №690122 
>>690120
Алсо, на днях видел жирный такой репозиторий с алгоритмами поиска путей, на штуку звездочек где-то, сейчас попробую найти еще раз.
Аноним 16/03/16 Срд 21:42:27 #229 №690125 
>>690120
да у меня не то, что ошибочка, просто не допирает как это сделать, яж тоже еще тот ньюфаг. сделал вот вектор из объектов класса нод, в котором содержатся координаты и f, а дальше как-то в башке не прет, скинь свой плес.
Аноним 16/03/16 Срд 21:45:19 #230 №690129 
14581539195840.png
>>690125
https://github.com/innermous/AStarPathfinding/blob/master/src/astar.cpp#L130
Работает примерно как на пикче. Вряд ли ты тут что-то поймешь, очень сильно намешано.
Аноним 16/03/16 Срд 22:12:55 #231 №690161 
>>690129
что такое ptr?
Аноним 16/03/16 Срд 22:16:08 #232 №690166 
>>690161
pointer
Аноним 16/03/16 Срд 22:19:15 #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;
});
Аноним 16/03/16 Срд 22:24:28 #234 №690176 
>>690169
current - экземпляр класса Ptr. std::min_element возвращает итератор на минимальный элемент в ma_openedList. Функия принимает функтор (лямбда выражение), который сравнивает 2 элемента в списке.
Советую почитать литературу в шапке.
Аноним 16/03/16 Срд 22:40:51 #235 №690192 
Я отходил, а мой говнокод даже не обосрали.
Горжусь доской.
Аноним 16/03/16 Срд 22:50:54 #236 №690203 
>>690097
>как переаести её в нормальное пространство без матрицы то?
Без матрицы - никак. Поэтому и считают два вектора - tangent и bitangent. Вместе с нормалью они как раз и составляют матрицу 3х3.
Аноним 16/03/16 Срд 22:51:43 #237 №690206 
>>690192
Это потому что никто его даже не читал. Хотя обычно это не мешает обосрать, лол.
Аноним 16/03/16 Срд 22:56:11 #238 №690210 
>>690176
что такое t1 и t2?
Аноним 16/03/16 Срд 23:00:02 #239 №690213 
>>690206
К счастью.
>>690210
t1 левый элемент, t2 правый.
Аноним 16/03/16 Срд 23:18:23 #240 №690232 
>>690213
у тебя лист с доступными узлами это обычный массив? разве можно так? я вот вектор делаю, чтоб туда пушбекать узлы, чтоб не было ограничений никаких на расстояния. с вектором min_element не хочет работать. и последний вопрос, что такое [&]?
Аноним 16/03/16 Срд 23:19:27 #241 №690235 
>>690232
http://en.cppreference.com/w/cpp/language/lambda

Сtrl+F "Lambda capture"
Аноним 16/03/16 Срд 23:36:36 #242 №690272 
>>689948
assembly
Аноним 16/03/16 Срд 23:38:32 #243 №690278 
>>690272
а ты жестокий
Аноним 17/03/16 Чтв 00:28:45 #244 №690328 
>>688646 (OP)
Нихуя вы тут щапку наворотили, молодца, уважаю.
Аноним 17/03/16 Чтв 01:43:43 #245 №690380 
Очередной вопрос от неосилятора. Вот у нас есть множественное наследование (да, я понимаю, что это плохо). Наследуемый класс у нас будет иметь два vptr на две vtable. А если у на виртуальное наследование? К какой таблице виртуальных функций мы обращаемся?
Аноним 17/03/16 Чтв 01:47:01 #246 №690385 
>>690176
error C3861: min_element: идентификатор не найден
Аноним 17/03/16 Чтв 01:48:57 #247 №690387 
>>690385
#include <algorithm>
Я же тебе написал, почитай книги в шапке.
Аноним 17/03/16 Чтв 07:19:49 #248 №690453 
>>690380
Множественное наследование это плохо, когда его используют для быстрого грязного объединения различных реализаций, в каком-нибудь адаптере, скажем. А наследование от нескольких ортогональных стратегий с целью base class optimization это вполне себе годная и уважаемая практика. Почитай того же Александреску, там на каждом шагу оно.
Аноним 17/03/16 Чтв 07:23:49 #249 №690456 
>>690380
При виртуальном наследовании - к таблице "самого производного" класса. Собственно говоря, из-за этого виртуальное наследование и критикуют, тому що результаты не совсем очевидно меняются при добавлении еще одного наследника.
Аноним 17/03/16 Чтв 08:32:52 #250 №690467 
>>690380
>да, я понимаю, что это плохо
CRTP - это максимум удобно. Почти как трейты в скале.
Аноним 17/03/16 Чтв 08:34:43 #251 №690468 
14581928833360.png
Поставил устанавливаться visual studio. Вот в таком виде уже третий час установщик загружает "Дополнительный элемент". Так и должно быть или это зашквар? чувствую, что зашквар
sageАноним 17/03/16 Чтв 08:36:51 #252 №690469 
>>690468
Если пекарня старая, может ставиться до талого. У меня на и5 4Гб где то час - полтора ставился.
Аноним 17/03/16 Чтв 10:18:09 #253 №690515 
>>690468
Нахуй нужна для обучения студия? Кодблокс ставиться за 5 минут. Правда там компилятор отдельно надо ставить, но это тоже быстро.
Аноним 17/03/16 Чтв 10:26:17 #254 №690522 
Ребят, помогите пжлст.

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

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

На будущее, вбиваешь в гугл название функции, идешь на cpp reference (http://www.cplusplus.com/reference/cstring/strlen/) Я взял хедеры оттуда.
Аноним 17/03/16 Чтв 10:40:00 #256 №690538 
>>690530
Спасибо Большое!
Аноним 17/03/16 Чтв 10:45:20 #257 №690543 
>>690515
Тогда уж лучше QtCreator с mingw. И ИДЕ удобнее, и компилятор в комплекте.
Аноним 17/03/16 Чтв 10:53:11 #258 №690546 
>>690468
Ставьте с iso, а не веб-установщиком
Аноним 17/03/16 Чтв 11:10:29 #259 №690560 
>>690453
>Множественное наследование это плохо, когда его используют для быстрого грязного объединения различных реализаций, в каком-нибудь адаптере, скажем
Щито? И чем же плохо использовать адаптеры?
Аноним 17/03/16 Чтв 11:36:29 #260 №690568 
>>690453
>>690456
>>690467

Спасибо. Проснулся и сразу сделал пример и смотрел в отладчике что будет. Всё стало на свои места.
Аноним 17/03/16 Чтв 11:52:13 #261 №690574 
Если кто силён в Жабе, расскажите что она умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы.
Знаю, что одно из последних достижений - это сбор статистики вызова методов и их автоматический инлайнинг в рантайме.
Нужно провести исследование и составить заявку в комитет, чтобы в плюсы добавили реальные фичи, а не уродских клонов буст::асио и буст::файлсистэм.
Иначе в скором будущем, после смерти нашей крестопараши, придётся перекатиться в Жабу на значительно меньшую зарплату, т.к. конкуренция там велика.
Аноним 17/03/16 Чтв 12:01:18 #262 №690575 
Cтоит ли читать "современное проектирование" Александреску?
Аноним 17/03/16 Чтв 12:01:30 #263 №690576 
>>690574
Жаба с крестами пересекаются только на десктопе. В девятке добавят модульность, значит можно будет делать компактные приложения для десктопа (сейчас жре занимает около 150 метров). В десятке сделают структуры, жаба будет жрать меньше памяти при умелом использовании. Но сильной конкуренции все равно не будет - через год массово появляется webasm, который изначально заточен под плюсы.
Аноним 17/03/16 Чтв 12:13:11 #264 №690577 
>>690575
Стоит прочитать шапку.
Аноним 17/03/16 Чтв 12:16:28 #265 №690580 
>>690574
> асскажите что она умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы
Кроссплатформенность и сборку мусора.
Аноним 17/03/16 Чтв 12:20:19 #266 №690582 
>>690575
Это входит в теормин джуна. Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?
Аноним 17/03/16 Чтв 12:23:40 #267 №690584 
>>690580
Кроссплатформенность и у плюсов есть, причем скомпилировать плюсовый код под другую платформу часто проще, чем ебаться с нативными либами у жабы. Менеджмент памяти у джавы достаточно спорная вещь, чтобы считать его откровенным плюсом. Для десктопа джава откровенно сосет, и будет продолжать это делать в будущем.
Аноним 17/03/16 Чтв 12:27:15 #268 №690586 
>>690584
>Для десктопа джава откровенно сосет
Не понял, а как же энтерпрайз?
Аноним 17/03/16 Чтв 12:35:28 #269 №690593 
>>690582
Я думаю, тут большинство ее прочло так или иначе. Я понимаю там не осилить стандарт или страуса из-за большого объема, но она-то тоненькая и написана понятно.
Аноним 17/03/16 Чтв 12:41:11 #270 №690596 
>>690560
Ну смотри, это фактически тот же вопрос превосходства композиции над наследованием реализации. Бывают адаптеры, которые наследуют adaptee приватно и target публично, с целью писать поменьше кода. Это не очень хороший вариант во многих случаях, из-за негибкости механизма наследования и вообще хотя иногда так сделать действительно лучше, например, когда тебе зачем-то понадобился двусторонний адаптер, лол. А адаптер, который агрегирует объект адаптируемого класса отлично применим гораздо более часто.
Аноним 17/03/16 Чтв 12:42:26 #271 №690597 
>>690593
Бля, это че, она правда входит в теормин джуна или ты меня тролишь сейчас?
Аноним 17/03/16 Чтв 12:43:13 #272 №690598 
>>690468
Оно зависло, это обычное дело. Убиваешь процесс и ребутишь, оно должно продолжиться с того же места после перезагрузки.
Аноним 17/03/16 Чтв 12:45:29 #273 №690599 
>>690597
В таком случае у нас получается джун, который умеет проектировать. И чем тогда от него отличается не джун?
Аноним 17/03/16 Чтв 12:45:42 #274 №690600 
>>690586
>а как же энтерпрайз?
А у них обычно выхода нет, кроме как джаву использовать - если весь стек на джаве, зачем кресты использовать.
Аноним 17/03/16 Чтв 12:46:16 #275 №690601 
>>690597
Говорю абсолютно серьезно. Другое дело, что "теормин джуна" это не то же самое, что "ньюфажные книги для сдачи семестрового курса", даже джуну в крестах нужно сильно больше знаний, чем в универе дают. Не обязательно городить мозговыебанные конструкции из Александреску в продакшене, но знать их должен любой уважающий себя крестовик.
Аноним 17/03/16 Чтв 12:47:18 #276 №690602 
>>690599
Опытом же.
Аноним 17/03/16 Чтв 12:48:27 #277 №690603 
>>690582
>Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?
Я пролистал, ничего нового не открыл. В 98 году она может и была интересна, сейчас - не очень.
Аноним 17/03/16 Чтв 12:53:05 #278 №690605 
>>690602
Все хуйня. В процессе работы ты набираешься всяких деталей о построении архитектуры и промышленном программировании(читай: тестирование+распределение задач в команде+VCS). Прочитай GoF, какую-нибудь книжку о TDD и git/vcs + проработай месяц, чтобы освоиться с внутренней кухней и ты уже того же уровня, что и человек, который проработал год и осваивал все на своем опыте.
Аноним 17/03/16 Чтв 12:55:06 #279 №690606 
>>690601
Сейчас я почувствовал себя петухом с разрушенным манямирком. Давай дальше: что должен знать любой уважающий себя крестовик?
Аноним 17/03/16 Чтв 12:55:20 #280 №690607 
>>690596
Тащемта кода ни разу не меньше, а столько же. Но похуй, я подумал, ты на адаптеры in general наезжаешь.
Аноним 17/03/16 Чтв 12:58:39 #281 №690608 
>>690606
Все средства и идиомы языка. Не так много, вообще-то. Часто даже достаточно знать о наличии их, но не использовать ни разу. Я, например, за 3 года ни разу не юзал виртуальное наследование или аллокаторы. Но я о них знаю и этого хватает.
Аноним 17/03/16 Чтв 13:03:46 #282 №690612 
>>690608
Где нибудь есть список всех средств и идиом?
Аноним 17/03/16 Чтв 13:13:14 #283 №690616 
>>690612
Средства языка:
http://en.cppreference.com/w/

Идиомы:
https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms
Аноним 17/03/16 Чтв 13:26:36 #284 №690623 
>>690616
Спасибо.

Пожалуй, впервые за долгое время, куплю себе сегодня алкоголь.
Аноним 17/03/16 Чтв 13:46:58 #285 №690637 
>>690607
>ни разу не меньше
Я имел в виду, что многие делают это из-за небольшой экономии на method () вместо base_.method () при вызовах адаптируемых методах. Еще иногда из-за того, что нагородили хуйни с защищенными членами и прямым доступом к ним тоже уменьшают количество кода.
Аноним 17/03/16 Чтв 13:48:22 #286 №690638 
>>690584
>>690576
Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Скайп в любом телевизоре и мобилке есть. Фильмы смотрятся онлайн через браузер в том же телевизоре.
Электронные книги с монитора на десктопе читать тяжело. С планшета удобней. В имеющихся на сегодняшний день планшетно-мобильных платформах рулят жаба/обжси/дотшарп.
Думаю, те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы. 99% памяти занимают текстуры, для которых можно сделать ручную выгрузку, с остальным сборщик мусора справится.

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

Как бэ остутсвие сети и файловой системы в стандартной библиотеке 2016 года намекает на то, что кресты безнадёжно отстали. Тут ни лямбды, ни вариадики, ни мультитрединг без средств верификации не спасут.
Аноним 17/03/16 Чтв 13:53:19 #287 №690646 
>>690638
Только вчера думал об этой хуйне.
Теперь думаю о том, что я тупо зря время проебал. Крестопараша мне очень нравится, но в >2016 крайне узкий сегмент ее использования, да и перескочить хуй куда получится годы крестоёбства и написания костыликов ничем не помогут в перекоте на другой язык, не надо тут
Аноним 17/03/16 Чтв 14:10:15 #288 №690655 
>>690638
> плюсы реально уделают
Конечно нигде они не уделают. Если есть жаба то понятно что в плюсах смысла нет. Это заметно даже по тому что в плюсы добавляют интерфейсы для вызова джаба кода, а не наоборот.
Аноним 17/03/16 Чтв 14:17:50 #289 №690662 
>>690638
>>690646
>>690655
То есть вы бы посоветовали ньюфагам вообще не вкатываться в кресты?
Аноним 17/03/16 Чтв 14:25:22 #290 №690670 
>>690662
Сначала выбирай область, которой хочешь заниматься, а потом уже технологии.
Аноним 17/03/16 Чтв 14:25:55 #291 №690673 
>>690662
А где ты увидел советы ньюфагам вкатиться в кресты? Лобого ньюфага будут отговаривать от вката, если он попросит совета.
Аноним 17/03/16 Чтв 14:42:16 #292 №690683 
>>690673
В шапке о крестах написано в позитивном ключе...
Аноним 17/03/16 Чтв 14:44:13 #293 №690684 
14582150533650.jpg
>>690638
>те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы.
Вот именно, существовал бы. А на чем его напишут? Ну подумай головой, я тебе дам время.
Аноним 17/03/16 Чтв 14:53:15 #294 №690692 
>>690683
>Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам
Аноним 17/03/16 Чтв 14:56:25 #295 №690696 
>>690638
>в какой сфере плюсы реально уделают Жабу, как по эффективности, так и по трудозатратам
Гейдев, эмбеддед вместе с Си, хайлоад.
>намекает на то, что кресты безнадёжно отстали
Намекает на то, что надо использовать boost, которая де-факто стандарт. Ну серьезно, мог бы найти что-нибудь посерьезнее, чтобы доебаться.
Аноним 17/03/16 Чтв 14:56:57 #296 №690697 
>>690655
>Если есть жаба то понятно что в плюсах смысла нет
Ну вот пишут JetBrains свои IDE на жабе. Пишут отлично, стараются, оптимизируют. Но вот открываешь в CLion какой-нибудь llvm, и все, пизда, зависло нахуй. Сидишь такой на машине с ssd, а оно зависло. Ну йобана, говоришь ты и смотришь в сторону QtCreator, который хоть и кастрированный и крэшится, но не виснет на анализе.

Такие дела.
Аноним 17/03/16 Чтв 14:57:17 #297 №690698 
14582158370270.png
>>690655
Аноним 17/03/16 Чтв 15:00:15 #298 №690705 
>>690684
Ну сначала сделают враппер для ДиректаИкса, хуле и там и там интерфейсы. Тогда станет возможно заменить плосовой код конкретной игоры на Жабу.

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

Закон капитализма гласит, что фирма, которая не расширяется - погибает. Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.
Аноним 17/03/16 Чтв 15:00:38 #299 №690706 
>>690655
>Если есть консоли то понятно что в пекарнях смысла нет. Это заметно даже по тому что в пекарни добавляют эмуляторы консолей, а не наоборот.
Аноним 17/03/16 Чтв 15:04:36 #300 №690711 
>>690705
>Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.

С учетом того, что Google и Apple взялись за написание нормального компилятора C++, да еще и у Microsoft подгорело и они начали гнаться за clang, а также того, что комитет по стандартизации планирует релизить TS чуть ли не каждый год, то еще посмотри кто кого.
Аноним 17/03/16 Чтв 15:05:03 #301 №690712 
>>690697
>кастрированный и крэшится
Подробнее.
Аноним 17/03/16 Чтв 15:05:14 #302 №690714 
>>690705
Гнида ебаная, если бы я сразу понял, что ты троллишь, я бы не отвечал тебе.
Аноним 17/03/16 Чтв 15:08:20 #303 №690721 
>>690692
Это я не заметил, возможно, имеет смысл переместить этот абзац в начало шапки.
Аноним 17/03/16 Чтв 15:10:42 #304 №690724 
А перекатываться с плюсов некуда. Джава, дотнет? Ой, нахуй.
Аноним 17/03/16 Чтв 15:15:44 #305 №690731 
>>690724
>А перекатываться с плюсов некуда.
На web, например. Но не всем нравится макакинг, если говорить о frontend. А если говорить о backend, то подозреваю с появлением REST-фреймверков на C++, остальные языки будут тихо насасывать по производительности.
Аноним 17/03/16 Чтв 15:19:28 #306 №690737 
>>690731
Python какой-нибудь?
Аноним 17/03/16 Чтв 15:29:38 #307 №690746 
>>690737
Python - Flask/Django
Ruby - Rails
JavaScript - NodeJS
Аноним 17/03/16 Чтв 15:34:28 #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 в конце, ещё хвостик ему в конце пририсуйте. Это воистину засвидетельствует ваши знания в бусте. Чесслово, рассчитано на идиотов которые не знают что перед именем переменной имя типа идёт.

И вообще, сколько вы будете зарабатывать, если зазубрите весь буст целиком? Все его нюансы и тонкости. Сколько лет у вас на это уйдёт? В Жабе нет такого геморроя.
Аноним 17/03/16 Чтв 15:36:19 #309 №690756 
>>690711
>С учетом того, что Google и Apple
Распил бабла в крупных конторах. Это как в государстве только в частном.
Аноним 17/03/16 Чтв 15:46:31 #310 №690760 
>>690696
Да в любой. Джава - очень хуевый язык, который предлагает по сравнению с крестами одно: nullpointerexception вместо сегфолта. И все. REPL не завезли, система типов хуевая, библиотеки так себе. Если бы там про питон спросил, или про жс, то там есть четкие ниши, в которых они лучше крестов - быстрое прототипирование и т. п., а в жабе нет нихуя, кроме фобий менеджеров по поводу того, что индусы не сумеют написать на крестах код. И это правда. Но вот от таких проектов и надо держаться подальше. Нравится тебе лепить круд для банка в галере - ну удачи, хули.
Аноним 17/03/16 Чтв 15:51:09 #311 №690763 DELETED
>>690753
>пок-пок-пок
Так чего сказать-то хотел, любезный?
Аноним 17/03/16 Чтв 16:00:22 #312 №690775 
>>690721
Нет. Это фак. Если у тебя вопросы ты читаешь его. Если там нет ответа ты пишешь в тред.
Аноним 17/03/16 Чтв 16:02:56 #313 №690781 
>>690712
Рефакторинг днищенский, поиск по коду (find usages, например, не позволяет удалять результаты), call hierarchy нет как такового, интеграция с git хуевая(окошко с log тупо показывает текстовый вывод консольного git'а). Это только то, что сразу в голову пришло.

Во время дебага бывает крэшится. Особенно если дебагер - lldb.
Аноним 17/03/16 Чтв 16:12:23 #314 №690793 DELETED
>>690753
Мда. Чет грустна!
Аноним 17/03/16 Чтв 16:12:59 #315 №690797 
>>690696
>хайлоад
Часто ищу на hh.ru такую работу. Любо там надо 6 лет опыта, либо там не нужен С++, а только желателен т.к. совсем другая сфера. Нормальных вроде только пару штук за несколько месяцев находил. Но так чтобы ещё и зарплата была указанна ни разу. Так где же будет работать только вкатившейся джун?
Аноним 17/03/16 Чтв 16:13:57 #316 №690798 
>>690797
Да нигде, блядь. Зарплаты зависят от бородатости, никому вчерашний студент не нужен нахуй.
Аноним 17/03/16 Чтв 16:18:12 #317 №690800 
>>690753
>Писать драйвера уже давно не нужно, т.к. сетевухи/звуковухи это риалтек и только риалтек.

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

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

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

>Кто за этот хуйлоад платить будет, легче Жабу и сотку гигов оперативки использоват
Слишком толсто. Даже комментировать не буду.

>boos::asio::sockets::ip::tcp::address::v4
Ну не позорься, осиль уже namespace aliases.


Аноним 17/03/16 Чтв 16:19:06 #318 №690802 DELETED
>>690763
Хочу сказать, что ты червь, который даже однопоточное АВЛ дерево не осилит.
кококо-кудахтахтах
Аноним 17/03/16 Чтв 16:24:07 #319 №690805 DELETED
>>690800
>Охуительные истории ITT. Месье не смущает тот факт, что в половина кода для linux 4.5 - это драйверы. А это, на минуточку 500к строк кода, блядь!
Я кстати так и не нашёл драйвер для моей стевой карты для дэбиана. Пришлось минт ставить.
Аноним 17/03/16 Чтв 16:30:54 #320 №690808 
>>690387
прочитаю я их, и что? все не запомню явно. я вот инторнеткурс усваиваю помалёху, пилю свой рогулайк, решаю проблемы по мере их поступления и так учусь. алгоритм вот что пишет.

algorithm(1734): error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "node" (или приемлемое преобразование отсутствует)
Аноним 17/03/16 Чтв 16:32:33 #321 №690811 
>>690574
Ещё забыл: нормальная система сборки и менеджмент зависимостей.
Аноним 17/03/16 Чтв 16:38:47 #322 №690816 
>>690808
Ты какой-то тупой дегенерат.
Твой уровень - Лафоре. Ты же блядь пытаешься с наскоку осилить йобу, не надо так. Пиздуй азы читать про указатели, перегрузку, функторы, полиморфизм, вот это вот всё.
Аноним 17/03/16 Чтв 16:42:13 #323 №690819 
>>690515
Кодблокс неплох, но там даже цвета без геморроя не поменять. Даже Notepad++ с консолькой в этом смысле удобнее если ты любишь тёмную тему
Аноним 17/03/16 Чтв 16:42:13 #324 №690820 
>>690808
Переопределить значит его надо. Гугли переопределение операторов с++. Или в функции сравнение по другому сравнивай их.
Аноним 17/03/16 Чтв 16:50:04 #325 №690824 
>>690800
>минуточку 500к строк
Подумать только, пятьсот тысяч строк кода. Только вот четыреста тысяч из них - это для железок, которые сняты с производства ещё в прошлом тысячелетии. И что там с дровишками для видюх, игр для прыщей нет и не будет.

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

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

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

(Автор этого поста был забанен. Помянем.)
Аноним 17/03/16 Чтв 16:55:25 #326 №690828 DELETED
>>690824
>И что там с дровишками для видюх, игр для прыщей нет и не будет.
Все нормально с играми.
мимо прыщевод
Аноним 17/03/16 Чтв 16:58:34 #327 №690830 DELETED
>>690828
Я из-за того что нет игр включаю комп с виндой. Игра работает только пол часа и комп вырывается из-за перегрева.
Аноним 17/03/16 Чтв 16:59:35 #328 №690831 DELETED
>>690824
>ахахахах мам приготовь мне супчика я ща тут крестухов затролю и приду покушать
Аноним 17/03/16 Чтв 17:11:32 #329 №690836 
>>690802
Мне пока это не нужно, в 15 лет не особо интересуюсь алгоритмами. Хотя нужно было бы, учусь дизассемблировать. Читаю сейчас Криса, вот как-то так. Посоветуй какую книгу по алгоритмам, буду читать параллельно.
Аноним 17/03/16 Чтв 17:14:49 #330 №690838 
>>690836
Dive into Python
Аноним 17/03/16 Чтв 17:19:49 #331 №690841 
int main()
{
int a = 0;
return 0;
}

Вот это ваше a - оно в стеке выделяется?
Аноним 17/03/16 Чтв 17:21:02 #332 №690842 
>>690841
Да.
Аноним 17/03/16 Чтв 17:29:55 #333 №690848 
>>690816
ЭКСПИРИЕНС!
Аноним 17/03/16 Чтв 17:35:37 #334 №690853 
>>690638
>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Например, тулзы чтобы делать игры. Любые другие программы для работы с картинками/видео/звуком. Жабка текстовые редакторы с трудом тянет, о графике и говорить нечего.
>Думаю, те же 3Д экшоны можно делать на Жабе
Можно, конечно, только будет оче тормозить. Майнкрафт, например, на кресты обратно переписывают. У них ебли с памятью в джаве получилось гораздо больше, чем при ручном управлении (такое, кстати, почти во всех нагруженных программах на джаве).
Аноним 17/03/16 Чтв 18:02:17 #335 №690866 
>>690638
>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Сразу видно нешкольника. CAD, софт для творчества (видеоредакторы, аудиоредакторы, maya), различные IDE и т. п. Хотя откуда тебе это знать, если для тебя мир - это игры и потребление контента. А движок на "жабе" есть, Unity называется, только он на C# (потому что жаба говно даже в своей жабонише), и у Unreal Engine он посасывает.
Аноним 17/03/16 Чтв 18:08:49 #336 №690867 
>>690655
> Это заметно даже по тому что в плюсы добавляют интерфейсы для вызова джаба кода, а не наоборот.
JNI в Жабе был с самого начала.
Аноним 17/03/16 Чтв 18:33:35 #337 №690881 
Есть ли тут ананчики, которые пишут/писали драйвера под винду? Подскажите годного мануала как писать драйвера для совсем зелёного воробушкаиз знаний только базовые знания плюсов. Всё, что находил нихуя не понятно или делается не в VS.
Писать буду в VS2015, запускать и дебажить на виртуалке
Аноним 17/03/16 Чтв 19:11:30 #338 №690905 
>>690574
Описанная тобой фича джавы -- profile-guided оптимизация. В gcc уже лет 5 назад доступна была.
Аноним 17/03/16 Чтв 19:20:09 #339 №690911 
>>690638
Тридээкшоны ты вряд ли сделаешь на жабе. Потому что на каждый чих в жабе выделяется память, а в экшонах нужна вся скорость, которая есть, иначе у тебя начинается задержка обработки ввода (input lag) и лаги, когда вдруг сборщик мусора соизволил вмещаться. Я не говорю, что плюсы невозможно переплюнуть, но управление памятью в джаве это пиздец для разработки экшонов
Аноним 17/03/16 Чтв 20:20:56 #340 №690953 
>>690881
Для начала подумай, что будешь делать, когда венда не пожелает прожевать неподписанный драйвер, и тебе придется делать developer mode.
Аноним 17/03/16 Чтв 20:55:36 #341 №690985 
>>690576
>webasm
Зачем нужен этот кусок говна, когда уже есть Scala.js?
Аноним 17/03/16 Чтв 21:54:09 #342 №691086 
>>690866
>Unity называется, только он на C#
Он тоже написан на C++, лол. На C# там только интерфейс для сторонних разработчиков. Можно заплатить и получить исходники на C++ и ебашить как надо.
Аноним 17/03/16 Чтв 22:56:24 #343 №691153 
>>690985
Затем, что будет нативная производительность и маленький размер кода. С сишечкой на вебасм это возможно, а для той же скалы надо будет десяток метров стандартной либы тащить.
Аноним 17/03/16 Чтв 23:13:06 #344 №691164 
>>688646 (OP)
Заметил во многих олимпиадных задачах такой пункт, как "строка может превышать 10^10 символов ", или что-то в этом роде. К чему это?
Аноним 17/03/16 Чтв 23:16:22 #345 №691165 
>>691164
Например, чтобы ты писал o(log(n)) алгоритм, а не надеялся, что o(n^100) с нынешними гигагерцами совладает.
Аноним 17/03/16 Чтв 23:16:58 #346 №691167 
>>688646 (OP)
1
Аноним 17/03/16 Чтв 23:38:11 #347 №691187 
Котоны, вопрос. Задал в нуботреде, продублирую тут.
Как проинициализировать QSqlDatabase? Нужен статический экземпляр, но вот хер знает как заставить его таким стать. Всякие
QSqlDatabase db = NULL не катят, тип не тот.
Аноним 17/03/16 Чтв 23:41:10 #348 №691188 
>>691187
http://doc.qt.io/qt-5/qsqldatabase.html
Аноним 17/03/16 Чтв 23:41:46 #349 №691190 
>>691187
QSqlDatabase db; чем не подходит?
Аноним 17/03/16 Чтв 23:44:43 #350 №691193 
14582474840430.png
>>691190
Скрин, вот такая хуйня. На stackoverflow первый же пример с другой переменной - говорят, мол, инициализировать ннада.

>>691188
я там пролазил поверхностно, но ничего про инициализацию _без_ задания сразу адреса БД не нашел. Сейчас на второй круг повдумчивей попробую тогда, раз ты настаиваешь
Аноним 17/03/16 Чтв 23:47:02 #351 №691195 
>>691193
>>691188
Запамятовал, сорян.
В доках еще указано что можно взять дефолтное подключение, типа
QSqlDatabase database = QSqlDatabase::database();


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

Может еще где обосрался... хз ^
Аноним 17/03/16 Чтв 23:51:24 #352 №691199 
>>691193
А если инициализировать то типа работать будет? Ты проверял? У тебя какие-то подозрительные ошибки, похожие на ошибки линковщика.
Аноним 17/03/16 Чтв 23:54:12 #353 №691202 
>>688646 (OP)
>2016
>MANUAL GARBAGE COLLECTION
Аноним 17/03/16 Чтв 23:56:20 #354 №691203 
>>691199
До этого у меня была эта же переменная без static.
Заводилась через init_db(QString addr) (addr - там из диалога открытия файла адрес передавался).

Сейчас я понял, что обосрался, т.к. мне к БД надо обращаться больше, чем в одном окне, а плодить подключения, я так понял, нецелесобразно и начал искать пути решения. Пока свелся к тому, чтобы бд внутри контроллера держать статическим, а контроллеры таки плодить. Не знаю, насколько это лучше, но, надеюсь сработает. Если я конечно разгребусь с этим всем.
Аноним 18/03/16 Птн 00:01:21 #355 №691205 
>>691203
Хотя вот прямо сейчас смотрю ветку на форуме где рассказывают какой ТС мудак о том, что глобальные подключения вредны и лучше делать маленькие, но сразу их выпиливать потом.
Аноним 18/03/16 Птн 00:01:26 #356 №691206 
>>691195
Ну вот чего ты лезешь в qt, когда C++ не знаешь?
static переменные нужно инициализировать вне определения класса. А ты этого не сделал.
Во-вторых, нахрена тебе нужен static? Передавай объект базы данных в конструктор и храни внутри класса сылку на БД.
В-третьих, хуле ты используешь библиотеку и не читаешь доки блчдь??? ПЕРЕД ИСПОЛЬЗОВАНИЕМ ПОЛНОСТЬЮ ПРОЧТИ ДОКИ К КЛАССУ
Аноним 18/03/16 Птн 00:02:17 #357 №691208 
>>691206
Я макака и не преследую целей стать программистом. Мне побрязгаться интересно.
Извини, если задел твои чувства, я не специально.
Аноним 18/03/16 Птн 00:04:05 #358 №691209 
>>691205
Почему ты решил что тебя не устраивает дефолтное подключение и вообще пытаешся свое сделать?
Аноним 18/03/16 Птн 00:05:54 #359 №691210 
>>691202
В отличии от GC-петухов у нас есть выбор. GC-поведение легко достигается с помощью shared_ptr. Не хочешь ебаться с памятью - везде ебашь shared. Не нравится полученная производительность - оптимизируй, хуле. Только мы можем стандартными средствами оптимизировать, а шлюхи вроде тебя будут бесконечно настраивать GC и писать костыльный unsafe-код.
Аноним 18/03/16 Птн 00:06:16 #360 №691211 
>>691209
Всмысле "свое"?
Я просто не знаю, как корректней сделать - подключить базу один раз и использовать это или же делать несколько подключений.
Выше (>>691206) мне вкратце пояснили мои ошибки, буду разбираться на свежую голову.
Аноним 18/03/16 Птн 00:18:50 #361 №691220 
>>690574
Java - это крутая HotSpot JVM, фичи шестилетней давности вместо языка, и целый ворох радостей, если у тебя jvm другого вендора.

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

Если хочешь байтоёбится на джаве, внимательно посмотри это видео и подумай, а нахуй оно надо - https://www.youtube.com/watch?v=Q-7y1u9kZV0
Аноним 18/03/16 Птн 00:21:01 #362 №691222 DELETED
>>691210
Ну просто ЛОЛЛИРОВАЛ с тебя, маня.
Стандартными средствами - это ебля с памятью? А хуле не сразу через MOV AX, CX, уж это-то стандартнее некуда.
Аноним 18/03/16 Птн 00:28:07 #363 №691231 DELETED
Весеннее обострение что ли, какого хуя за день уже третий пидор с манями лезет в С++-тред развести холивар? Делать больше нехуй? Кресты существуют, чтобы у тебя, неосилятора, был батхерт, и ты заливал им крестотред. На этом съеби.
Аноним 18/03/16 Птн 00:28:11 #364 №691232 DELETED
>>691210
>Хейтер сосёт хуи...
Не надо отвечать полуёбкам всяким
Аноним 18/03/16 Птн 00:41:20 #365 №691240 
>>691202 -> https://youtu.be/Q-7y1u9kZV0?t=30m34s
Аноним 18/03/16 Птн 01:04:12 #366 №691254 
Алсо, кто-нибудь видел решение, которое само работает с circular references, чтобы не нужно было бы использовать weak_ptr?
Аноним 18/03/16 Птн 01:16:46 #367 №691257 
>>691254
Не приходит в голову эффективного решения. А удобного решения не приходить в голову без рефлексии. Так что если таки надо, то надо делать самому под свою задачу.
Бля Аноним 18/03/16 Птн 01:47:46 #368 №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
Аноним 18/03/16 Птн 01:52:42 #369 №691277 
>>691254
Только писать ad-hoc сборщик.
Аноним 18/03/16 Птн 02:00:11 #370 №691282 
>>691257
>>691277
Наверное проще будет не допускать циклических зависимостей.
Аноним 18/03/16 Птн 02:07:07 #371 №691285 
>>691282
Смотря где и смотря как. Я сейчас стараюсь использовать unique_ptr'ы и иммутабельность.
Аноним 18/03/16 Птн 02:56:43 #372 №691295 
Можно ли в Gtk назначить focus_chain для глубоко лежащего виджета, не назначая при этом фокус для всех родителей?
Аноним 18/03/16 Птн 07:12:40 #373 №691342 
>>691210
Справедливости ради замечу, что функциональность shared_ptr не идентична GC. В случае умных указателей возможна ситуация, когда утекает кусок памяти со взаимными указаниями друг на друга, с которой GC борется путем "универсального суперкласса" или еще как-то.
Аноним 18/03/16 Птн 08:41:20 #374 №691368 
>>691342
Ну поэтому кроме shared ещё есть weak_ptr и unique_ptr.
Для циклических ссылок и в жяве точно так же используется WeakReference.

Сборщик выигрывает у смартпоинтеров когда есть много объектов с небольшим временем жизни – из-за фрагментации памяти плюсы в таком крде могут хоть у питона соснуть. Но ясен хуй, что на смартпоинтерах такие куски писать никто не будет.
Аноним 18/03/16 Птн 08:46:22 #375 №691370 
>>691240
Бля. Этот ёбыч судя по "бинчмаркам и сравнинийам с си сиплюсплюс" даже не в курсе, что это не аллокация в жяве супербыстрая, это аллоцированная память не освобождается.
Аноним 18/03/16 Птн 09:01:58 #376 №691375 
Аоны, а давайте вместе чего-нибудь запилим.
Аноним 18/03/16 Птн 09:04:24 #377 №691376 
>>691375
Есть идеи?
Аноним 18/03/16 Птн 09:04:50 #378 №691377 
>>691376
Шапку?
Аноним 18/03/16 Птн 09:07:22 #379 №691378 
>>691377
Так нормальная же шапка.
Аноним 18/03/16 Птн 09:09:48 #380 №691380 
>>691378
Тогда не знаю. А какие программы сейчас на дваче пишут?
Аноним 18/03/16 Птн 09:15:21 #381 №691385 
>>691380
игру запили
Аноним 18/03/16 Птн 09:16:20 #382 №691387 
>>691285
И правильно. Совместное владение, по-хорошему, лучше использовать как можно меньше. Комбинация unique ptr и обычных указателей - тот контекст, в утром unique_ptr объявлен владеет указателем, а тот контекст, который его использует из вне, получает прямой указатель если нужно. Это при условии, что владелец живёт дольше, чем все пользователи.
Аноним 18/03/16 Птн 11:12:04 #383 №691449 
>>691368
>Для циклических ссылок и в жяве точно так же используется WeakReference
Очень редко, потому что GC и так умеет работать с циклическими ссылками.
Аноним 18/03/16 Птн 11:38:11 #384 №691467 
А что, Дейтел уже не норм?
мимо-новичок
Аноним 18/03/16 Птн 11:40:45 #385 №691469 
>>691467
Давно тебя здесь не было.
Аноним 18/03/16 Птн 12:49:50 #386 №691508 
>>691469
Книги из разделов шапки: best practies и проектирование никогда не устареют?
Аноним 18/03/16 Птн 12:59:24 #387 №691521 
>Компания Crytek анонсировала новый движок CryEngine V
>Среди основных нововведений:
>Поддержка C#;
>...

Кто там кукарекал, что сееплюсплюс незаменим для тредээкшонов?
Аноним 18/03/16 Птн 13:03:46 #388 №691529 
>>691521
Это для скриптов же, и чтобы юнитишкольников привлечь.
Аноним 18/03/16 Птн 13:03:52 #389 №691530 
>>691521
Так то же язык для скриптов, их на чем хочешь пишут. Небось до этого там какой-то lua (или вообще пистон) использовался.
Аноним 18/03/16 Птн 13:11:44 #390 №691542 
>>691508
В плане синтаксиса устаревают, но в подобных темах это не так важно. И вообще, других-то нет.
Аноним 18/03/16 Птн 13:44:29 #391 №691589 
>>691542
По поводу устаревания синтакиса: верно ли, что нюфане надо знать и старый и новый синтаксис, так как вдруг на работе придется поддерживать проект, который был написан до С++11?
Аноним 18/03/16 Птн 13:48:59 #392 №691595 
>>691589
Новый не исключает старого, а только дополняет. И там не такие ниебические изменения, которые нельзя за недельку от корки до корки вызуприть и поиспользовать.
Аноним 18/03/16 Птн 14:12:54 #393 №691634 
>>691595
Кстати, вы на работе переписываете проект на C++11 или оставляете как есть вдруг оно сломается?
Аноним 18/03/16 Птн 14:22:06 #394 №691641 
>>691153
>надо будет десяток метров стандартной либы тащить
~100кб в гзипе, ебанутый.
Аноним 18/03/16 Птн 14:29:54 #395 №691649 
>>691634
Мы ж не ебанутые. Новые фичи начинают использоваться, как только все используемые компиляторы начинают их поддерживать. Тут обычно в VS проблема. То дорого обновлять лицензии, то самая новая студия не стабильна, то самая новая студия еще не умеет во все фичи.

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

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

А вообще ломающих фич не так много, переписывать обычно ничего не надо.

Аноним 18/03/16 Птн 15:04:29 #396 №691678 
Как изменить в сонсоли цвет отдельных символов?
SetConsoleTextAttribute меняет цвет всего текста. Мне чо блять изменять назад каждый раз?
Аноним 18/03/16 Птн 15:06:56 #397 №691681 
int default = 0;
Такая запись - норма в VS2015. Ну ок.
Аноним 18/03/16 Птн 15:12:43 #398 №691686 
>>691649
Ты упомянул студию, значит вы ее используете на работе в какой-то мере. Ради чего вы ее используете? Неужели только из-за продвинутого автодополнения и крутого отладчика как написано в шапке?
Аноним 18/03/16 Птн 15:14:52 #399 №691689 
>>691678
bemp voprosu
Аноним 18/03/16 Птн 16:50:33 #400 №691762 
>>689948
Как ты понял, что тебе плюсы не подходят? на какой теме начал тупить? я тоже сомневаюсь
Аноним 18/03/16 Птн 17:00:07 #401 №691764 
>>691686
Емнип у студии самый быстрый рантайм из всех компиляторов под венду. Ну и стабильнее она. Вот я осенью внезапно наткнулся на баг в clang, который проявлялся при использовании unordered_map вместе с многопоточностью. Вроде не страшно, в следующей версии его пофиксили, но для продакшена ждать месяц никак нельзя из-за подобной хуйни.
Аноним 18/03/16 Птн 17:02:12 #402 №691765 
>>691689
Стандартным образом - никак. Можно использовать прямое обращение к функциям консоли, но это будет не кроссплатформенно. Еще можешь поискать какую-нибудь библиотеку для продвинутого ввода-вывода.
Аноним 18/03/16 Птн 17:36:33 #403 №691778 
Поясните что такое выравнивание. Почему оно по умолчанию 4 байта? И приведите пример ситуации, которая может потребовать изменить его.
Аноним 18/03/16 Птн 17:45:38 #404 №691779 
>>691778
Потому что пекарни 32-битные, 32/8=4. Процессор работает сразу с двойными словами в 4 байта, из-за этого могут быть тормоза без выравнивания. Например, чтобы считать байт из выровненной позиции, ты читаешь 4 байта в EAX и дальше забираешь байт из AL. А без выравнивания ты не можешь считать ровно с этой позиции 4 байта, тебе придется считывать с предыдущей выровненной, байт окажется не в AL, а в одном из старших байтов EAX, тебе придется делать сдвиги, ну ты понел. Но если тебе скорость не так важна, а память дорога (на микроконтроллерах, например), то можно выключить выравнивание.
Аноним 18/03/16 Птн 17:50:11 #405 №691781 
>>691778
У любого процессора задан размер машинного слова. У 32-битных - 32 бита, у 64 битных - 64 и т.д. Регистры ЦПУ имеют именно такой размер (если не считать сопроцессора). Все операции производятся над данными разбитыми под размер машинного слова. Обращение к памяти тоже происходит по словам. Соответственно, если данные не выровнены по границам машинного слова, то операция чтения или потребует больше времени, или вообще не будет произведена (как у АРМов).
Аноним 18/03/16 Птн 17:53:17 #406 №691783 
Кроме этого есть еще кэш, чтение в который происходит блоками по 64 байта, и страницы виртуальной памяти (обычно 4к), которые дают нехилый оверхед, если данные лежат на их границе.
Аноним 18/03/16 Птн 17:53:40 #407 №691784 
>>691779
>>691781
А почему класс без полей имеет размер 1 байт и не выравнивается?
Аноним 18/03/16 Птн 17:55:57 #408 №691785 
>>691784
Выравнивается. По 1 байту. Однобайтные данные выравниваются по 1 байту, двухбайтные по двум, четырех по четырем. Те что больше машинного слова - по машинному слову.
Аноним 18/03/16 Птн 17:56:54 #409 №691786 
>>691784
>имеет размер 1 байт и не выравнивается?
С чего ты взял, что не выравнивается? Например, создай класс на стеке, и посмотри на его адрес.
Аноним 18/03/16 Птн 17:56:58 #410 №691787 
>>691785
>>691781
>>691779
Понял. Спасибо. Добра вам, аноны.
Аноним 18/03/16 Птн 17:57:34 #411 №691788 
>>691785
Внутри структуры или массива.
Аноним 18/03/16 Птн 18:04:55 #412 №691792 
>>691784
Потому что минимальный размер данного в крестах.
Аноним 18/03/16 Птн 18:05:52 #413 №691793 
>>691792
Про минимальный размер я знаю. Мне было интересно про выравнивание.
Аноним 18/03/16 Птн 18:12:02 #414 №691795 
Накидайте список вредных советов. А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.
Аноним 18/03/16 Птн 18:12:28 #415 №691796 
А ещё вопрос. У нас есть абстрактный класс. По сути для него vtable не нужна (объект создать не можем). Так вот, будет ли выделятся память для vtable абстрактного класса или компилятор что-то делает для этого?
Аноним 18/03/16 Птн 18:29:13 #416 №691808 
Поправьте шапку:

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

https://yadi.sk/i/oJphQyQVmimRG
Аноним 18/03/16 Птн 18:32:44 #417 №691812 
>>691649
Есть одна очень большая компания, которая упорно использует vs6. И мы вынуждены поддерживать код в sdk для этой версии. Хотя сами сидим на свежих clang и gcc5
Аноним 18/03/16 Птн 18:44:26 #418 №691821 
>>691812
>Вот я осенью внезапно наткнулся на баг в clang, который проявлялся при использовании unordered_map вместе с многопоточностью. Вроде не страшно, в следующей версии его пофиксили, но для продакшена ждать месяц никак нельзя из-за подобной хуйни.

Что думаешь насчет этого? Из-за этого вы и делаете сборки разными компиляторами?
Аноним 18/03/16 Птн 19:03:14 #419 №691825 
>>691795
1) Виртуальные деструкторы - зло. Ни в коем случае не используй их.
2) К черту методы. Переопределяй операторы. Зачем придумывать названия методам, когда умные люди дали тебе операторы.
3) Умные указатели для идиотов, которые незнают как писать nwe и delte. (Их тоже перегружай, а то вдруг стандартная реализвация изменится, и программа полетит)
4) rvalue? lvalue? Ничего старых добрых сишных указателей не придумали. Передача по указателю - наше все.
Продолжай, анон
Аноним 18/03/16 Птн 19:06:07 #420 №691826 
>>691796
Создание объекта не причем. Абстрактный класс может реализовать виртуальный метод с телом. Тогда все равно нужно как-то вызвать его. А это значит что для абстрактного класса должен быть vtable.
Аноним 18/03/16 Птн 19:07:07 #421 №691827 
>>691826
А для интерфейса?
Аноним 18/03/16 Птн 19:09:27 #422 №691829 
>>691827
В интерфейсах тоже есть vtable.
На ангельском:
http://stackoverflow.com/questions/11196329/interface-vtable
Аноним 18/03/16 Птн 19:10:43 #423 №691830 
>>691825
Мультинаследование - самый мощный инструмент языка, не пренебрегай им.
Аноним 18/03/16 Птн 19:11:17 #424 №691831 
>>691827
Мне кажется ты не понял сути vtable. Он не для создания экзепляров класса нужен, а для поиска нужной реализации виртуального метода в рантайме.
Аноним 18/03/16 Птн 19:11:45 #425 №691832 
>>691830
Два ромба этому содомиту.
Аноним 18/03/16 Птн 19:14:41 #426 №691834 
>>691825
В 1,2,4 есть крупицы истины.
>>691830
А это вообще довольно часто хорошая практика, ИТТ было выше.
Аноним 18/03/16 Птн 19:19:17 #427 №691838 
>>691831
Да это я понимаю. Просто без объекта и таблица не нужна. А если в классе есть чисто виртуальный метод то мы и не можем создать объект.

Вообщем в MSVC есть такое. https://msdn.microsoft.com/ru-ru/library/k13k85ky.aspx
Я так понял во время компиляции подставляется declspec(novtable) и vtable не создается
Аноним 18/03/16 Птн 19:21:33 #428 №691839 
>>691808
>80 мб
Пережать бы.
Аноним 18/03/16 Птн 19:23:44 #429 №691841 
>>691825
Используй goto вместо while. Его оставили для лучшей оптимизации и компилируется он всего в одну ассемблерную команду jmp поэтому он очень быстрый.
Аноним 18/03/16 Птн 19:28:34 #430 №691845 
>>691838
Еще раз - причем тут создание объектов?
Позднее связывание реализуется при помощи vtable. Допустим есть float Shape::area() = 0
И Square наследует Shape и переопределяет Shape::area().
И есть например метод заливки площади определнным цветом - void fill(Shape* ptr)
В методе fill и будет использоваться vtable для определения реализации Shape::area() конкретного класса, в данном случае будет использоваться Square::area()
Аноним 18/03/16 Птн 19:29:02 #431 №691846 
>>691649
> Единственное, что не используется на кроссплатформе, это стандартная библиотека. С этим до сих пор проблемы. В итоге используется boost.

Не понял. Ты про то, что стандартная библиотека бедна (ни filesystem, ни networking, etc) или про то, что stl, алгоритмы и прочее по-разному реализовано и ломает код на разных платформах? Поясни крч пжл
Аноним 18/03/16 Птн 19:29:19 #432 №691847 
>>691845
С кодом обосрался, но думаю суть должна быть понятна.
Аноним 18/03/16 Птн 19:30:57 #433 №691849 
14583186575250.jpg
>>691841
НАПИСАЛ ВСЮ ПРОГРАММУ ОДНОЙ ФУНКЦИЕЙ ИЗ 100К СТРОК С GOTO ВМЕСТО ПОДПРОГРАММ
@
КОД НЕ УМЕСТИЛСЯ В ОДИН СЕГМЕНТ
@
GOTO ТРАНСЛИРУЕТСЯ В LONGJMP ИЗ ТРЕХ КОМАНД
Аноним 18/03/16 Птн 19:33:04 #434 №691850 
>>691841
>>691849
Какие-то древние вредные советы.
Аноним 18/03/16 Птн 19:33:09 #435 №691851 
>>691846
Повежливее с герром ван Винклем, он только что из 1999-го с коммерческими STL.
Аноним 18/03/16 Птн 19:34:01 #436 №691852 
>>691849
Самозащита от сокращения?
Аноним 18/03/16 Птн 19:34:20 #437 №691853 
>>691845
Да. Понял к чему ты. Спасибо, что пояснил.
Аноним 18/03/16 Птн 19:35:20 #438 №691855 
>>691846
> stl, алгоритмы и прочее по-разному реализовано
100 РЕАЛИЗАЦИЙ
@
СДЕЛАЕМ СВОЮ, ЧТОБ ЛЕГЧЕ БЫЛО ПЕРЕНОСИТЬ
@
101 РЕАЛИЗАЦИЯ
Аноним 18/03/16 Птн 19:39:18 #439 №691860 
>>691855
Мне кстати очень не хватало раньше бинпоиска. Такого что ищет элемент и возвращает итератор указывающий на него, а если такого элемента нет, то итератор на элемент перед которым должен стоять искомый.
Аноним 18/03/16 Птн 20:00:33 #440 №691881 
>>691839
21 мб
https://yadi.sk/i/Yd6KKpLBqJSUr
Аноним 18/03/16 Птн 20:05:08 #441 №691887 
>>691295
Бамп
Аноним 18/03/16 Птн 20:07:04 #442 №691889 
>>691881
А на англ есть пдф нормальный? ^^
Аноним 18/03/16 Птн 20:07:31 #443 №691891 
>>691860
std::lower_bound
Аноним 18/03/16 Птн 20:08:57 #444 №691893 
>>691887
На лор сходи. Тут что-то если про gtk обсуждают, то в основном Qt :3
Аноним 18/03/16 Птн 20:10:25 #445 №691894 
>>691893
>лор
jeuta, опять ты?
Аноним 18/03/16 Птн 20:10:42 #446 №691895 
>>691795
>Накидайте список вредных советов.
Лямбды для мудаков, юзай шаблонные функторы и мультинаследование по максимуму.
А также пиши код с упором возможности запуска на бабушкином телевизоре и папином ноутбуке простой переборкой.
>А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.
В оппосте: Современное проектирование на C++. Таки да, юзай, но C++ тебе не D, и такой код на код-ревью не поймут, так что знай меру.
Аноним 18/03/16 Птн 20:12:28 #447 №691898 
>>691895
>список вредных советов
>В оппосте
Зачем?
Аноним 18/03/16 Птн 20:12:40 #448 №691899 
>>691849
Чому в longjmp, а не far jump?
Аноним 18/03/16 Птн 20:14:35 #449 №691903 
>>691678
>>691689
Это ИТТ-тред про цепепе, а не винэйпиай.
Аноним 18/03/16 Птн 20:19:19 #450 №691906 
>>691678
С винапи не работал. Кури вот это:
https://en.wikipedia.org/wiki/ANSI_escape_code
Аноним 18/03/16 Птн 20:25:29 #451 №691911 
>>691906
> Win32-консоль вообще не поддерживает управляющие последовательности ANSI. Программное обеспечение может управлять консолью посредством ioctl[en]-подобных системных вызовов консольных API, чередующимся с текстовым выводом.
Мда. Чому у винды все не как у людей?
Аноним 18/03/16 Птн 20:36:56 #452 №691923 
>>691821
Clang под osx, GCC под Linux.
Ловим иногда забавные баги, но не критично. Используем версии на 1-2 ниже.
Аноним 18/03/16 Птн 20:37:46 #453 №691925 
>>691923
>Ловим иногда забавные баги
напр?
Аноним 18/03/16 Птн 20:37:52 #454 №691926 
>>691923
>Clang под osx
Почему не под линкс тоже?
Аноним 18/03/16 Птн 20:39:10 #455 №691928 
>>691846
Под разные компиляторы разные реализации. У Майкрософт как обычно свои велосипеды везде.
Аноним 18/03/16 Птн 20:41:19 #456 №691936 
>>691926
Исторические причины. И клиенты есть на гцц, проще сразу чего использовать чем потом искать.
Аноним 18/03/16 Птн 20:44:56 #457 №691941 
>>691925
Была проблема с бустовым ренжем, когда пустой ренж схлопывался в нечего на одной версии гцц, а на другой был пустой объект. Из-за ошибки в коде очень весело падало.
В сланге была проблема с очень закрученным шаблоном полное имя инстанцированного шаблона около 4Ксимволов, 7 гигов оперативки компилятору нужно чтобы раскурииь, пофиксили у себя, потом и сланг сам пофиксился.
Аноним 18/03/16 Птн 20:47:29 #458 №691945 
>>691941
>полное имя инстанцированного шаблона около 4Ксимволов
Это тоже что и имя переменой или функции? Тогда почему не сделать поменьше? Хотя компилятор и с функциями имена которых 10к символов нормально работает.
Аноним 18/03/16 Птн 20:49:11 #459 №691947 
>>691945
Это имя инстанцированного шаблона со всеми параметрами. Там такой уровень вложенности, что сопьешься пока найдешь параметр
Аноним 18/03/16 Птн 20:50:27 #460 №691948 
>>691947
Нихуя не понял. Наверно я просто не дошёл до этой темы.
Аноним 18/03/16 Птн 20:54:19 #461 №691952 
>>691948
Мета-программировние оно такое.
Но вся эта магия генерирует очень компактный и быстрый парсер. И очень легко конфигурируется и расширяется
Аноним 18/03/16 Птн 21:17:51 #462 №691967 
>>691948
Каждый раз когда ты компилируешь что-то вроде Хуй<Пизда<Джигурда>> компилятору приходится для каждого инстанцированного шаблона создавать новое внутреннее имя. Если злоупотреблять метапрограммированием на темплейтах, эти имена могут быть ОЧЕНЬ длинными.
Аноним 18/03/16 Птн 22:20:06 #463 №692043 
>>691825
Всегда используй постфиксный инкремент\декремент.
Аноним 18/03/16 Птн 22:22:02 #464 №692044 
>>692043
Я так делаю чтобы писать c++ в циклах. Почему компилятор не оптимизирует эту штуку если в ней нет знака равно?
Аноним 18/03/16 Птн 22:30:54 #465 №692049 
>>692044
Для встроенных типов оптимизирует, для всяких итераторов это нужно быть очень умным компилятором. Поэтому пиши ++с всегда.
Аноним 18/03/16 Птн 22:30:58 #466 №692050 
>>692044
Потому что время жизни возвращаемого объекта только на первый взгляд нулевое. Например, в деструкторе возвращаемого значения может быть перебор галактики, поэтому оптимизация здесь это нарушение семантики кода.
Аноним 18/03/16 Птн 22:33:02 #467 №692052 
>>691889
ВЫУЧИЛ АНГЛИЙСКИЙ РАДИ ТОГО, ЧТОБЫ ЧИТАТЬ СТРАУСТРУПА В ОРИГИНАЛЕ
Аноним 18/03/16 Птн 22:33:39 #468 №692053 
>>692052
Уже полгода ради этого английский учу.
Аноним 18/03/16 Птн 22:40:34 #469 №692058 
>>692053
По этой книге? http://www.alleng.ru/d/engl/engl17.htm
Аноним 18/03/16 Птн 22:41:03 #470 №692059 
>>691825
1. Называй перменные и функции транслитом mamku_ebal, perdoli.
2. Используй c-type cast operator на классах, но не чаще, чем reinterpret_cast.
3. Помни! Препроцессор лучше шаблнов.
4. Оставляй две пустые строчки между строками кода, но после каждой четырнадцатой оставляй четырнадцать пустых, а после восемьдесят восьмой - восемдесят восем пустых.
Аноним 18/03/16 Птн 22:44:54 #471 №692060 
>>691795
Будь современным, иммутабельным и ссылочным - используй const и & в шаблонных параметрах.
Аноним 18/03/16 Птн 22:49:01 #472 №692063 
>>691795
Все переменные должны быть глобальными - никогда не знашеь, что может понадобиться.
Аноним 18/03/16 Птн 23:02:55 #473 №692067 
>>692058
Нет. По видео лекциям и упражнениям Петрова, аудио лекциям Пимслера, подкастам Хога и книге Мёрфи.
Аноним 18/03/16 Птн 23:05:04 #474 №692070 
>>692067
Лучше посмотри какой-нибудь британский сериал без сабов.
Аноним 18/03/16 Птн 23:07:42 #475 №692073 
>>692070
Я нихуя не пойму.
Аноним 18/03/16 Птн 23:08:20 #476 №692074 
>>691846
Я хотел сказать, что новые библиотечные фичи не используем. Потому что до сих пор сидим на stlport. Честно скажу, лично я не знаю какие проблемы возникали при использовании разных стандартных библиотек на разных платформах. Но ходят легенды, что раньше возникали, поэтому сидим и ждем новую кроссплатформенную либу. Вроде как libstdc++ к этому стремится, но пока еще не оче.
Аноним 18/03/16 Птн 23:09:08 #477 №692075 
>>692074
>libc++
fixed
Аноним 18/03/16 Птн 23:13:42 #478 №692077 
>>692060
Настолько тонко, что я уже собрался писать тебе язвительный ответ.
Аноним 18/03/16 Птн 23:14:57 #479 №692078 
>>692060
Это намек на универсальные ссылки?
Аноним 18/03/16 Птн 23:17:15 #480 №692079 
>>692074
>2016
>stlport
What the fuck am I reading?
Аноним 18/03/16 Птн 23:19:15 #481 №692081 
>>692079
Щито поделать
Аноним 18/03/16 Птн 23:19:19 #482 №692082 
>>692078
Это намек на то, что T включает в себя T&, const T& и вообще все что угодно
Аноним 18/03/16 Птн 23:20:45 #483 №692083 
>>692078
Type traits и SFINAE мимо вас проехали, рачьо?
Аноним 18/03/16 Птн 23:29:46 #484 №692089 
>>692077
Это совет для опытных метапрограммистов.
Аноним 18/03/16 Птн 23:30:32 #485 №692091 
>>692082
Охуительные истории.
http://ideone.com/ZRXhnP

Манька не знает как выводится тип?
А "auto&" тебе ни о чем не говорит?
Аноним 18/03/16 Птн 23:38:01 #486 №692100 
>>692091
Фишка в том, что <const Class&> и даже с виду безобидный <const char*> таит в себе неиссякаемый источник приключений. Попробуй как-нибудь на своем шаблонном коде, который ты считаешь bullet proof
Аноним 18/03/16 Птн 23:41:25 #487 №692105 
>>692100
Например? Все приключения ты находишь, потому что не знаешь правила вывода типа. У меня таких проблем никогда не было.
Аноним 18/03/16 Птн 23:45:54 #488 №692107 
>>692105
Попробуй написать коллекцию, которая будет корректно работать с ссылками и константными типами в темплейте такое под силу только суперчеловекам из комитета, никогда не пытайся использовать такие типы в сторонних библиотеках.
Аноним 18/03/16 Птн 23:50:12 #489 №692113 
>>692107
Что не так со ссылками? Что не так с константами?
Аноним 18/03/16 Птн 23:51:59 #490 №692116 
>>692113
>константами
Их кстати можно на define заменять. А ссылки на указатели.
Аноним 18/03/16 Птн 23:54:40 #491 №692118 
>>692113
С ними все в порядке, пока ты не пытаешься их использовать в параметрах темплейтов. Можно, например, сделать vector<const Myclass&>. И он может быть будет работать. Но заранее не скажешь.
Аноним 19/03/16 Суб 00:02:08 #492 №692120 
>>692118
Познания просто уровня /pr/
Аноним 19/03/16 Суб 00:03:18 #493 №692121 
>>692118
Почитай требования к типу вектора. Там все четко описано. Если твой константный тип выполняет их, все работает.
Короче, иди читай cppreference до просветления.
пока серьёзные дядьки творят мета магию на шаблонах
Аноним 19/03/16 Суб 00:03:49 #494 №692122 
>>692120
Это обычная уличная магия темплейтов.
Аноним 19/03/16 Суб 00:03:55 #495 №692123 
>>692074
> кроссплатформенную это под разные компиляторы?

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

У тебя, судя по всему, легаси какой-то?
Аноним 19/03/16 Суб 00:05:47 #496 №692124 
>>692121
Ты своих коллекций не писал никогда, сразу видно.
Аноним 19/03/16 Суб 00:07:29 #497 №692125 
>>692123
не, легаси нет. Компиляторы и boost регулярно обновляем. Просто так исторически сложилось с stlport. Пару раз поднимали вопрос, в ответ - какие-то проблемы, если использовать разные либы. Ну и похуй в общем-то. Только строки по факту юзаем
Аноним 19/03/16 Суб 00:09:36 #498 №692128 
>>692124
А ты с выводом типа не дружишь. Лучше Маерса свежего почитай, кажись и проблема будет снята
Аноним 19/03/16 Суб 00:16:22 #499 №692133 
>>692128
>ты с выводом типа не дружишь
Чтобы дружить с выводом типа, надо для каждого темплейтного класса писать потроха на 2к строк как в STL. А с C++11 уже на 20к.
Аноним 19/03/16 Суб 00:18:47 #500 №692135 
>>692124
Достаточно писал.
Еще раз - к элементу вектора предъявляются строгие требования.
must meet the requirements of CopyAssignable and CopyConstructible..
Если твой const T& может в копирование и присваивание - все будет работать.
Вся stl написана по строгим правилам. Все контейнеры, итераторы и алгоритмы определяют требования к типам.
Аноним 19/03/16 Суб 00:23:49 #501 №692140 
>>692133
> А с C++11 уже на 20к.
Надо же. Порядок угадал.

$ echo "#include <vector>" | gcc -x c++ -std=c++14 -E - | wc -l
11229
Аноним 19/03/16 Суб 00:27:13 #502 №692144 
>>692135
Ты же понимаешь, что эти требования применяются ко всем включенным типам. Если ты где-то слажал, и не сделал rule of 5, все рассыпается, и приходится исследовать все <<<<<<<<<<<
Аноним 19/03/16 Суб 00:28:18 #503 №692147 
>>692144
>Если ты где-то слажал, и не сделал rule of 5
ну ты понел
Аноним 19/03/16 Суб 00:28:26 #504 №692148 
>>692144
Поэтому мы любим хаскель и не любим C++.
Аноним 19/03/16 Суб 00:49:24 #505 №692157 
>>692147
А чтобы понять, надо исследовать десять экранов выхлопа компилятора.
Аноним 19/03/16 Суб 00:53:11 #506 №692160 
>>692157
О, умение читать вывод компилятора об ошибках в шаблонах приходит с опытом
Аноним 19/03/16 Суб 00:57:33 #507 №692164 
>>692144
Кроме rule of 5 надо еще прописать все ::intricate_mostly_unknown_trait и прочую хуйню, и телепатически угадать, что от тебя хотел автор либы в данном конкретном случае.
>>692160
>умение читать вывод компилятора об ошибках в шаблонах приходит с опытом
Опыт говорит: не использовать сторонние либы, не использовать STL и boost, держаться ближе к няшной.
Аноним 19/03/16 Суб 01:31:41 #508 №692172 
>>692140
>>692133
Хотя не. 11000 строк это всякие левые хидеры вроде type_traits. Сам вектор где-то с 7900-й строки и почти до конца.

Так что vector в C++14 это не 20к строк, а 3к. (и то, я не уверен, что всё с 7900-й строки до 11000-й это конкретно к вектору относится)
Аноним 19/03/16 Суб 01:33:27 #509 №692173 
>>692133
>>692172
Тем более, там 2 вектора: общий шаблон + vector<bool> специализация.

Так что и близко не 20к строк :3
Аноним 19/03/16 Суб 01:38:57 #510 №692175 
>>692173
Вектор булов еще не отменили?
Аноним 19/03/16 Суб 01:40:00 #511 №692176 
>>692175
А с чего его отменять?
Аноним 19/03/16 Суб 01:57:34 #512 №692180 
14583418549700.png
>>692173
Короче, окончательная инфа: вектор начинается на строке 7900 и заканчивается на 8839. (это без специализации под bool). Итого, контейнер в C++14, в противоречие стонам истерички про 20к строк, можно написать менее чем в 1000 строк.
А если учесть, что там дофига пикрелейтед, то реальных строк там 500 и менее.
Аноним 19/03/16 Суб 02:08:53 #513 №692181 
>>692172
3к строк на вектор - ну ты подебил сразу.
Аноним 19/03/16 Суб 02:12:03 #514 №692182 
>>692181
> подебил
Как у тебя припекло от того, что можно дружить с выводом типов и писать не в 20к строк, а в 500. :3
Аноним 19/03/16 Суб 02:13:10 #515 №692184 
>>692181
Это же библиотечная реализация. Это норма.
Аноним 19/03/16 Суб 02:15:00 #516 №692185 
>>692180
В MSVC на обычный вектор ушло 1700 на bool - 1100
Аноним 19/03/16 Суб 02:18:20 #517 №692189 
>>692182
>не в 20к строк, а в 500
500 строк - это наивная реализация (у меня свой вектор - 400, из которых 250 - обертка над сишной либой). В GCC - около 3000.
Аноним 19/03/16 Суб 02:18:50 #518 №692190 
Ебать копать, за 3 дня в бамплимит улетаем
Аноним 19/03/16 Суб 02:20:06 #519 №692191 
>>692182
20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.
Аноним 19/03/16 Суб 02:20:45 #520 №692193 
>>692189
> В GCC - около 3000.
Да що ви такое говоrите?
Я тут >>692180 разбирал по частям вектор из gcc. Там менее 1к строк.
Аноним 19/03/16 Суб 02:22:33 #521 №692195 
>>692191
А зойчем ви-таки хотите rуками виписывать всю бюrокrатию? Ви-таки не знаете, что темплейты сами умеют виписываться?
Аноним 19/03/16 Суб 02:23:45 #522 №692196 
>>692191
>692182
>20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.
Ты ошибаешься. Нет там никакой бюрократии относительно const/не const.
Короче, ты не шаришь, как выводится тип. Там ничего сложного нет. Тебе нужно прочитать из нового маерса всего 2 главы: собственно "вывод типа" и move-семантика
Аноним 19/03/16 Суб 02:25:34 #523 №692198 
Забавно: первое место, где пришлось применить новый стандарт, - это двач.
Аноним 19/03/16 Суб 02:26:57 #524 №692199 
>>692193
У меня stl_vector - 1565 с комментариями.
Аноним 19/03/16 Суб 02:28:17 #525 №692201 
>>692199
пгепгоцессог гежет комментагии :(
Аноним 19/03/16 Суб 02:29:35 #526 №692202 
>>692199
таки тепегь ясно, откуда там так много пустых стгок
там были комментагии
Аноним 19/03/16 Суб 02:34:00 #527 №692203 
>>692199
комментагии не особо стоит считать.
В clang libc++ там вообще rилейтед куски стандагта копипастятся в комментагии пегед геализацией каждого контейнера.
Аноним 19/03/16 Суб 03:19:03 #528 №692214 
>>692190
С чем связан лимит в 500 постов?
Аноним 19/03/16 Суб 06:06:40 #529 №692235 
>>691893
>>691893
Лор то тут при чём вообще?
Аноним 19/03/16 Суб 06:44:20 #530 №692239 
Блять! Захожу на сайт из шапки http://www.qt.io/ru/, чтобы скачать Qt Creator, с которым работал год назад и обнаруживаю, что он сука платный. Я не ошибся или моя голова с похмелья не дает мне видеть истину сквозь "Free trial only 30 days"?
Аноним 19/03/16 Суб 08:37:32 #531 №692243 
Как удалить элементы из двоичного файла? По какому принципу?
Аноним 19/03/16 Суб 08:37:58 #532 №692244 
>>692214
Тоже никогда не мог понять такой хуйни
Аноним 19/03/16 Суб 09:45:14 #533 №692259 
>>692243
help
Аноним 19/03/16 Суб 09:47:03 #534 №692260 
>>692243
>>692243
Нихуя не понимаю, ни одного слова блядь!
Аноним 19/03/16 Суб 09:50:51 #535 №692261 
>>692260
В двоичном файле записана сплошняком информация, мне нужно удалить отдельные элементы из файла, отвечающие условиям которые вас ебать не должны. Яснее?
Аноним 19/03/16 Суб 11:42:17 #536 №692287 
>>691881
Style Guide принятый в книге:
http://stroustrup.com/Programming/PPP-style.pdf
Аноним 19/03/16 Суб 11:49:09 #537 №692288 
>>692239
Ищи Community version \ edition
Аноним 19/03/16 Суб 11:49:28 #538 №692289 
>>692214
>>692214
В древности машины были слабы, а программы требовали большой доли оптимизации...
Аноним 19/03/16 Суб 11:49:31 #539 №692290 
>>692239
http://www.qt.io/ru/download-open-source/
Аноним 19/03/16 Суб 11:50:09 #540 №692291 
>>692239
>вонаби прогер
>не может разобраться с сайтом
Аноним 19/03/16 Суб 11:56:22 #541 №692293 
Стянул Qt 5.6, следует ли удалять 5.5.1 ?
Аноним 19/03/16 Суб 12:16:29 #542 №692300 
Котаны, накидайте-ка мне доводов в защиту c++98 перед c++11
Аноним 19/03/16 Суб 12:17:05 #543 №692301 
>>692300
Раньше было лучше
Аноним 19/03/16 Суб 12:18:43 #544 №692302 
>>692300
лямбды — сложна
Аноним 19/03/16 Суб 12:20:03 #545 №692304 
>>692300
Эксепшны наше всьо
Аноним 19/03/16 Суб 12:31:47 #546 №692306 
>>692243
>>692261
Аноним 19/03/16 Суб 14:09:03 #547 №692369 
>>692300
98 > 11
Аноним 19/03/16 Суб 14:09:49 #548 №692370 
>>692369
true
Аноним 19/03/16 Суб 14:10:36 #549 №692371 
>>692135
сделал std::vector<Wheel&> и std::vector<const Wheel&>

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

И вообще, зачем иметь вектор ссылок? Бред же.
Аноним 19/03/16 Суб 14:10:50 #550 №692372 
>>691825
Всегда возвращай значения вычислений в исключениях. Так ты можешь получить результат выполнения функции из самых глубин стека.
Аноним 19/03/16 Суб 14:13:32 #551 №692373 
>>692371
Более того, не компилируется даже
std::vector<const int> v1;
Аноним 19/03/16 Суб 14:19:03 #552 №692378 
>>692373
Спискоебы соснули
const int yoba[];
Аноним 19/03/16 Суб 14:19:48 #553 №692380 
>>692378
Йоба отклеилась.
Аноним 19/03/16 Суб 14:37:11 #554 №692383 
14583863889080.jpg
>>692300
темплейты сложны, а когда ещё и с тремя точками так это вообще трындец
Аноним 19/03/16 Суб 15:16:45 #555 №692404 
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/692400.html
https://2ch.hk/pr/res/692400.html
https://2ch.hk/pr/res/692400.html
Аноним 19/03/16 Суб 15:21:35 #556 №692409 
>>692287
Цитата из книги (стр. 60):

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

Лол.
Аноним 19/03/16 Суб 15:25:50 #557 №692413 
>>692409
>Цитата из книги (стр. 60):
Там >>692287 десять страниц
Аноним 19/03/16 Суб 15:27:28 #558 №692414 
>>692413
>>691881

Аноним 19/03/16 Суб 15:35:06 #559 №692422 
>>692414
Ок
Аноним 18/03/16 Птн 20:10:42 #560 №6 DELETED
>>691795
>Накидайте список вредных советов.
Лямбды для мудаков, юзай шаблонные функторы и мультинаследование по максимуму.
А также пиши код с упором возможности запуска на бабушкином телевизоре и папином ноутбуке простой переборкой.
>А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.
В оппосте: Современное проектирование на C++. Таки да, юзай, но C++ тебе не D, и такой код на код-ревью не поймут, так что знай меру.
Аноним 20/03/16 Вск 07:43:03 #561 №693143 
14583418549700.png
14583863889080.jpg
>>690203
спасибоо АНОН!!1 дал понять все!
ЧАЮ ТЕБЕ
Аноним 20/03/16 Вск 09:59:30 #562 №693152 
>>692235
Linux.org.ru раздел форума development. Там шарят в gtk некоторые.
Аноним 20/03/16 Вск 19:24:12 #563 №693521 
Вопрос по Qt.
Как можно уменьшить вес ехе'шника? Есть какие-нибудь хаки? Сразу говорю динамическая линковка идет нахуй.
Что угодно, что сделало бы вес проги меньше чем если юзать статик линковку+кучу флагов+upx. Спасибо.
Аноним 20/03/16 Вск 23:40:26 #564 №693732 
>>688646 (OP)
Хочу вкатиться в игрострой. Это лучший для этого язык?
Аноним 21/03/16 Пнд 11:23:10 #565 №693955 
>>693732
Да.
Аноним 21/03/16 Пнд 11:24:17 #566 №693957 
>>693732
На крестах пишут движки для создания игр. Сами игры, с 80% вероятностью, скриптуются на каком-нибудь другом языке.
 #567 №691202}  DELETED
>>688646 (OP)
>2016
>MANUAL GARBAGE COLLECTION
comments powered by Disqus

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