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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
618 Кб, 960x708
Оффициальный™ традиционный® C++ тред #39 #804519 В конец треда | Веб
Собран проект.
Поседевшие пальцы
Собирают пердак.


Старший брат: >>801836 (OP)
Предыдущий: >>798022 (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++ 2016 https://yadi.sk/i/Yd6KKpLBqJSUr
    Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela
    Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u

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


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

  • Best practices

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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


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

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

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

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


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

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


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

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

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

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

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

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

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

  • boost

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

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

    Литература:


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

  • Qt

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

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

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

    Литература:


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

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

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

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

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


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


#2 #804556
Крестухи, зацените аллокатор http://pastebin.com/kk2gS9WL
#3 #804557
>>804556
Да, подходит только для вектора.
#4 #804560
3D PIG DUSGUSTING соснули у 2D-БОГИНЬ.

Алсо, второй нах и фтройке.
#5 #804586
>>804556
Какая мотивация-то? Если хочешь ускорить, то хуярь сразу шаблонные пулы без фрагментации, или там ленивые прокси, скажем, а здесь я не вполне понимаю, в чем профит.
>>804594
#6 #804594
>>804586

>Какая мотивация-то?


напрямую юзать mmap

> пулы без фрагментации


Тащемта тут без фрагментации (в каком-то смысле)
>>804601
#7 #804601
>>804594
allocate должен кидать bad_alloc при неудаче, а у тебя он не проверит код ошибки и будет пиздец, не? Алсо, там есть еще несколько подобных требований к аллокаторам, посмотри вот тут, например
http://en.cppreference.com/w/cpp/concept/Allocator

>тут без фрагментации


Не, я не про то. Одно из популярных решений состоит в том, чтобы запрашивать сразу страницами память для каждого отдельного типа, делить ее на равные куски и создавать на ней только объекты этого типа. Получается своеобразный пул, в котором нет фрагментации, из-за ровного размещения. Когда много объектов и мало типов (а не наоборот), то это существенно ускоряет работу.
>>804605>>804903
#8 #804605
>>804601

>allocate должен кидать bad_alloc при неудаче, а у тебя он не проверит код ошибки и будет пиздец, не?


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

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


Если отмотаешь до конца страницы, там есть minimal example. Я его и реализовывал.

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


Ну кагбэ вектор так и делает, запрашивает contiguous кусок памяти под N объектов и потом конструирует их там.
#9 #804606
>>804519 (OP)
Где шапку проебали?
>>804607
#10 #804607
>>804606
Моча же запиливает шапку.
>>804609
#11 #804609
>>804607
Я не в курсе, я просто ньюфаг
#12 #804611
>>804519 (OP)
пик - норм, с каждым разом все больше проигрываю
стих - можно и поменьше

мимо-стихоебохейтер
#13 #804612
>>804556
Правда, я ещё не знаю, как он себя поведёт при копировании вектора. Что там с аллокаторами делается?
#14 #804622
Посоветуйте отладчик C++14 под люникс.
#15 #804626
#16 #804627
>>804622
у тебя типа выбора дохуя?
lldb, gdb
>>804630
#17 #804629
#18 #804630
>>804627
Говно или дерьмо? Хммм... Что же выбрать? Наверное, все же дерьмо... Хотя нет! Дерьмо я выбирал в прошлый раз, так что сегодня пусть будет говно!
>>804631
#19 #804631
>>804630
gdb - довольно нестабильный бывает.
Я бы предпочел lldb
15 Кб, 660x378
25 Кб, 886x418
45 Кб, 704x656
#20 #804642
>>804622
Иногда мне снится, что я снова на втором курсе, отлаживаю крестолабу на потрепанном несколькими поколениями студентов компьютере из машзала, с Debian, gcc, gdb и autotools. Я лихорадочно печатаю одну консольную команду за другой, длинноволосый и дурнопахнущий преподаватель в футболке с логотипом GNU осыпает меня проклятиями... Выведя очередную стену неформатированного текста, gdb вылетает в kernel panic, и я просыпаюсь в холодном поту. Потом я подхожу к компьютеру, открываю проект в студии и плачу от счастья.
#21 #804643
>>804642
ПРоблевался с последнего скриншота.
#22 #804644
>>804642
А потом ты начинаешь собирать руками проект на шинде с незавендоренными зависимостями и выкидываешь компуктер нахуй в окошко.
>>804648
#23 #804645
>>804642
на первом пике .net, лелка
>>804647
#24 #804647
>>804645
Я знаю, но в крестовом проекте все идентично выглядит, кроме названий.
#25 #804648
>>804644

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


Тяжело тебе пришлось, братюнь. Соболезную.
#26 #804669
Что лучше читать для уже немного знающего, но почти все подзабившего именно в крестах, за 5 лет макакинга?
Заранее спасибо.
>>804673
#27 #804673
>>804669
Tour Страуструпа + Effective modern C++ Майерса
>>804674
#28 #804674
>>804673
Спасибо. Добра.
#29 #804687
>>804642

>Потом я подхожу к компьютеру, открываю проект в студии и плачу от счасть


Сейчас бы сюда цитату Криса Касперски об отладке в спермомирке и смешных сперморабах, которые впадают в растерянность без уютных окошек с кнопкотыком.
>>804699
#30 #804699
>>804687
Хорошо, когда есть консоль (а в студии она есть, не сомневайся). Плохо, когда есть только консоль, смекаешь? Ты можешь возразить, что вот как возьмешь пистон, да как напишешь визуализаторы лучше чем в студии... Только пока ты их пишешь, я буду спокойно работать с удобным инструментарием. Поэтому, кстати, большая часть швабодных утилит смахивает на proof of concept - за пару вечеров хуй напишешь что-то сравнимое по удобству, а на большее мало кого хватает без финансовых вливаний.
>>804727
#31 #804722
>>804642
Такое возможно сделать в ИДЕ под линукс?

И еще вопрос: какого хуя шапка не обновляется, а с каждым новым тредом копипастится одна и та же инфа (может стих поменяют только)? И это элита /pr? ОП уебок блять.
>>804724>>804726
#32 #804724
>>804722
А не он даже стих не удосужился придумать.
>>804734
#33 #804726
>>804722

> какого хуя шапка не обновляется


Что там обновлять? Новый стандарт выйдет — обновим.
>>804732
#34 #804727
>>804699
А вот и знаток свободного ПО подьехал!
Ну-ка Firefox похож на PoC, эксперт диванный?
>>804728
#35 #804728
>>804727
Эксперт диванный, в ты в курсе, сколько сотен миллионов долларов влито в firefox гуглами и яхами?
#36 #804732
>>804726
Привет парни.
Поставил Eclipse. При наборе "#include <" не отображается список хедеров; при наборе "std::" не отображаются члены неймспейса.
Я слышал, что Eclipse щироко распространен среди профессиональных сиплюсплюсников, а значит эта функциональность явно должна там быть реализованной.
Так как собственно настроить этот автокомплит?
>>804851
#37 #804734
>>804724
Это, блядь, хайку.
>>804735
#38 #804735
>>804734
И теперь пердит, что это "хайку"
sage #39 #804741
А stl-то и правда кривой. Местами.
>>804745>>805297
#40 #804745
>>804741
Ну пиздец, все перекатываемся на хаскелл.
>>804746
sage #41 #804746
>>804745
Не бомби, няша. C++ развивался эволюционно. А эволюция всегда рождает костыли.

Смотрю сейчас talk Александреску про аллокаторы. Оказывается, их запилили только для того, чтобы работать с NEAR- и FAR-указателями на 16-битных интелях. Ради тайпдефа allocator::pointer_type, который был разным у NEAR- и FAR-указателей.

А потом это вошло в стандарт.
>>804748
#42 #804748
>>804746
Дай ссылочку, будь ласка.
>>804750
#43 #804749
И как вы смеете, крестухи, что-то кудахтать про обратную совместимость, если у вас триграфы в новом стандарте запретили? Не какую-то редкоиспользуемую фичу, а триграфы, КАРЛ!
>>804751
sage #45 #804751
>>804749

> мам, смотри, я смешно шучу



Олсо,

> КАРЛ


Уёбывай на свою пикабупарашу и сюда не суйся.
#46 #804756
>>804750
Спасибо!
#47 #804769
Аноны, поясните за rvalue и lvalue ссылки и вообще на move семантику. Сколько читал про это, нихуя так и не понял.
>>804792>>804805
#48 #804792
>>804769
Значит задумайся о карьере грузчики, или хотя бы питониста.

Что именно не понял-то? Наводящие вопросы задавай, никто не будет целую статью в сотый раз тебе писать.
>>806690
#49 #804805
>>804769
rvalue ты не можешь указать значение
lvalue можешь
>>804900
#50 #804851
>>804732
Пути поиска инклудов настрой.
>>804980
#51 #804900
>>804805
Тащемта, для rvalue можно указать значение, если ты, например, передаешь его в функцию по ссылке, и это хороший тон - менять состояние объекта на другое, валидное до того, как он удалится.
#52 #804903
>>804601

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


Стоковый маллок так и делает для небольших объектов. Только там оверхед на мьютекс.
18 Кб, 416x476
#53 #804949
Я сделал по книге страуструпа простенький камень-ножницы-бумага: https://ideone.com/TSQFAk
Но такой вопрос, почему если я жму ctrl + z (насколько я знаю это прервать), то у меня начинает бесконечно выводить пикрил, но только если я 1 раз отвечу нормально.
>>805183>>805601
#54 #804980
>>804851
Какой путь к этим настройкам?

Там же этих настроек дофига. Так же пробовал CodeLite, там точно такая же проблема с автокомплитом.
>>804988>>805114
362 Кб, 2084x1050
#55 #804988
>>804980
Мне кажется, что если ты не можешь найти информацию об этом самостоятельно, тебе стоит поюзать что-то коробочное вроде qtcreator'а.
>>805083
#56 #805083
>>804988
Подключил /usr/include, нихуя не изменилось.

В qt creator хоть есть автокомплит по умолчанию, и тебе не надо тратить хуеву тучу времени на настройку автокомплитa, который по умолчанию должен быть настроен.

О чем думали эти долбаебы, когда писали эти гавно ИДЕ типа CodeLite и Eclipse? Сложно прописать стандартный путь к хедерам в линукс-версии (хотя и это не работает).
>>805103
#57 #805103
>>805083

>/usr/include


Мде. Ты бы хоть узнал, где лежат хедеры, критик бля. У меня, например, лежат в /usr/include/c++/4.2.1

Eclipse умеет детектить toolchain, кстати. Скорее всего у тебя просто не установлен компилятор и/или стандартная либа.
А даже если бы не умел, для на больших проектах четких посонов это не парит - все равно придется прописывать свой.
>>805161
#58 #805114
>>804980
Наставят блевотных красноглазых высеров, а потом бугуртят.

Нет IDE кроме MSVC.
>>805141
#59 #805141
>>805114
Мне твоя MSVC до пизды, когда я пишу под macOS или linux. К тому же необходимость покупать resharper-c++ какбэ напоминает о реальной полезности студии.
>>805500>>806928
#60 #805152
как вкатиться в 14 стандарт?
>>805154
#61 #805154
>>805152
мейерса читай
#62 #805161
>>805103
Действительно, надо было подключить другую папку, но это все равно не работает.
А в CodeLite всё и так в настройках прописано, но все равно нихуя не работает.
g++ и весь gcc тулчейн установлены
sage #63 #805183
>>804949
Жми Ctrl+C
>>805190
#64 #805190
>>805183
SIGINT в винде - Ctrl+Z
>>805198
sage #65 #805198
>>805190
Попизди мне тут. ctrl+z в винде это EOF (в отличие от ctrl+d в *NIX), а sigint и там, и там это ctrl+c
>>805202
#66 #805202
>>805198
Проверил. Ты прав.
#67 #805297
>>804741
молодец, сделал открытие. возьми пирожок с полки
27 Кб, 1200x630
#68 #805461
Есть у кого опыт создания приложений под винду на QT с использованием QT Quick?
Внезапно в релиз версии приложения невероятно медленно отрисовывается интерфейс.
3-5 FPS, при этом в Debug версии никаких проблем.
>>805475>>813460
#69 #805475
>>805461

>Есть у кого опыт создания приложений под винду на QT с использованием QT Quick?


>Внезапно в релиз версии приложения невероятно медленно отрисовывается интерфейс.


>3-5 FPS, при этом в Debug версии никаких проблем.


Профайлер для кого придумали?
#70 #805500
>>805141

>необходимость покупать resharper-c++


Это стало блажью приблизительно с выходом 13 студии. Нет, если ты утенок и не хочешь расставаться с любимой погремушкой, то вперед, но не надо пиздеть о необходимости - мотивации его ставить практически не осталось, 2/3 фич есть из коробки, остальные в легковесных и бесплатных аддинах.
#71 #805601
>>804949

>страуструп


читаю его сейчас
этот пидор уже заебал со своими функциями, которые он сам придумывает
я уже не знаю, это синтаксис плюсов или его функция для книги
пидор
>>805760
#72 #805760
>>805601
почти все стандартные функции крестов находятся в нэймспэйсах.
>>805860
#73 #805860
>>805760
Сишные продублированы в глобальном.
>>805892
#74 #805892
>>805860
Вообще-то наоборот.
>>805961
#75 #805938
Была задача: отформатировать текст двумя способами.
Быстро набросал вот такой код:
http://pastebin.com/vzSXSvQq
Почему первый код работал минут 10, а второй закончил все за 5 секунд? Вектор использовал чисто ради интереса (на самом деле я просто нуб).
>>805965>>805984
#76 #805961
>>805892
Что наоборот? Крестовые функции только в std, сишные (printf, strcmp, malloc etc) - в зависимости от используемого хэдера. В .h нет неймспейсов, а в c есть.
#77 #805965
>>805938
Это может банально от текста зависеть, если там разные символы удаляются и вставляются в разном количестве. Кроме того, хоть insert и erase оба в общем случае вызывают тяжелое копирование всего хвоста вектора, insert дополнительно может вызвать переаллокацию, а erase - никогда. С учетом того, что копирование последовательных символов обычно заоптимизировано до невозможности, у тебя на втором коде, вероятно, много времени уходит на переаллокации. Но вообще это надо смотреть с профайлером, конечно, так сразу мало что можно сказать.
>>805967>>805978
#78 #805967
>>805965
*на первом коде
Быстрофикс.
#79 #805978
>>805965
Спасибо. В первом коде условие сработало где-то 200 раз, во втором 4560 раз. Первый работал 10 минут, второй 5 секунд. Я в замешательстве. Возможно, причуды компилятора.
sage #80 #805984
>>805938
код - нечитаемое говно. Разбей красиво на функции
>>805990
#81 #805990
>>805984
15 строк в первом, 32 во втором. Что разбивать?
>>805991
sage #82 #805991
>>805990
А должно быть не больше 10. Еще всякое говно с магическими цифрами убери
>>806002
1 Кб, 180x80
#83 #806002
>>805991
Где магические цифры? Перечисли, пожалуйста. Я, вроде, комментарии оставил.

>не больше 10


Я в учебниках видел и по 50.
>>806006
#84 #806006
>>806002
Считается хорошим тоном, если код функции помешается на один экран.
Ну или она выполняет одно осмысленно законченное действие.
Так же любые числа желательно заменять на константы, с более понятными именами.
>>806009>>806011
sage #85 #806009
>>806006

>Считается хорошим тоном, если код функции помешается на один экран.



Более того, еще лучше будет, если ты смотришь на функцию и СРАЗУ ПОНИМАЕШЬ, что там происходит.
>>806016
#86 #806011
>>806006
Про константы с именами я запомню. Код помещается. Он же маленький, ну.
sage #87 #806013
Проигрываю с экспертных диванов в этом ITT-треде. Реального кода в жизни не видели, но знают, что магические константы это огромное зло, думают, что смогут понять любую функцию, помещающуюся на экран и проч.
>>806015>>806027
#88 #806015
>>806013
Но там нет никаких магический констант :(
http://www.columbia.edu/kermit/ascii.html
#89 #806016
>>806009
То бишь функции должны называться а-ля:
getCurrentColor();
>>806017>>806022
sage #90 #806017
>>806016
Нет, get_current_color();
>>806019
#91 #806019
>>806017
Нет, мне первый вариант больше нравится
>>811951
sage #92 #806022
sage #93 #806027
>>806013
Проигрываю с тебя, потому что в хорошем реальном коде действительно нет магических констант и методов на 30 экранов.

В хуевом - конечно есть. Но такое говно поддерживать и расширять нереально.
>>806029
sage #94 #806029
>>806027
Диван, плиз.
>>806031
sage #95 #806031
>>806029
Диван, плиз.
#96 #806466
Крестач не нашел треда по кути.
Посоветуй что почитать про кути.
Сам ява примат.
>>806475
#98 #806495
>>804519 (OP)
Расскажите о работе на плюсах в России (прежде всего интересует ДС и ДС2). Я студентота IT-направления, имею опыт написания учебных проектов на C/C++/Java/C#. Пора наконец выбрать, в каком направлении развиваться (хотя бы определиться с языком). Склоняюсь к плюсам, но знакомые говорят, что на плюсах с каждым годом работы все меньше, и советуют учить джаву. Что бы вы посоветовали? Слать их нахуй и учить плюсы? Или, может, действительно, вкатываться в плюсы новичку нет смысла, и перспективнее учить что-либо другое?
#99 #806501
>>806495
Джава растет, да. Так что иди учить джаву пока.
>>806507
#100 #806507
>>806501
Толсто
>>806511
#101 #806511
>>806507

>Толсто


Она реально растет, лолка. На 2-3 процента в год. А c++ падает на 1-2 процента. И C падает тоже.
#102 #806580
Писал приложение на wx, суть в том, что оно должно было каждое определенное время обновлять .bmp пикчу. Для этого каждый ивент OnPaint я отрисовывалэтот битмап, а при необходимости сделать отрисовку без ивента использовал Refresh().
Проблема в том, что во-первых, это все сопровождалось ДИЧАЙШЕЙ нагрузкой на цпу, а во-вторых, постоянно происходило мигание этой пикчи с белым экраном.
Как это нужно качественно реализовывать?
>>813462
#103 #806690
>>804792
Как их отличать? Вот это непонятно.

Если вот у меня есть класс
class Point
{
int x, y
};

и функция, которая создаёт объект Point, могу ли я вернуть этот созданный объект как rvalue?

Point&& make_point(int x, int y) {
return Point(x, y);
}

Так можно? Ведь если я правильно понял, Point(x, y) это ведь rvalue?
>>806726>>806828
#104 #806697
Посоветуйте дефолтную литературу по разработке сетевых приложений. Чтоб прям прочитал, написал и ты уже про.
#105 #806726
>>806690
Все что из функции возвращается - уже rvalue. Можешь && не писать.
>>806767
#106 #806767
>>806726
Так, хорошо. Тогда вот ещё: видел я примеры, где преимущество rvalue показывалось на примере swap, которая выглядела как

template<class T>
void swap(T& a, T& b)
{
T tmp(std::move(a));
a = std::move(b);
b = std::move(tmp);
}

Но ведь если я передам в такую функцию два уже созданных объекта, то они же будут lvalue, так ведь? И смысл тогда во всем этом? Что у меня так будет три копирования, что эдак. Или нет?

Хотя нет, при создании tmp будет вызван конструктор перемещения, и если в классе есть указатели, то их можно не копировать. Но в двух последних строчках b и tmp всё равно будут lvalue, смысл к ним move применят? Где я не прав?
>>806804
#107 #806804
>>806767
А, понял. operator= мне перегрузить никто ведь не мешает.
И если у меня есть указатели, я перегружаю его как
operator=(SomeClass &&r),
перемещаю эти указатели и радуюсь жизни.

Я всё правильно понял?
>>806963
sage #108 #806828
>>806690
Ты не различаешь тип объекта и его value category. Это две отдельные вещи.
7 Кб, 126x210
#109 #806904
Как происходит открытие портов на пк?
Насколько я знаю, настройка сего происходет на 192.168.0.1. Также есть определенные тулзы, позволяющие делать это не заходя в браузер.
Когда я писал клиент-серверы, при первом запуске происходил запрос от фаервола на разрешение, возможно это и было "открытием" порта? Возможно ли открывать порты скрытно, с правами администратора или с правами сервиса?
#110 #806927
Аноны, не могу понять сути ООП, что читать, смотреть для понимания? Зачем вообще нужны классы блядь, не легче написать пару функций? Подскажите прошу.
>>806948
sage #111 #806928
>>805141
Ты, судя по всему, ни подо что не пишешь, раз спрашиваешь хуйню
>>806957
#112 #806948
>>806927
легче, но когда работаешь с проектом в несколько тысяч строк ооп заметно упрощает твою жизнь.
>>806961
sage #113 #806957
>>806928
Вниманиеблядь закукарекала. Сагу сними, илита.
Я вообще нихуя не спрашивал.
#114 #806961
>>806948
окей. тогда другой вопрос, как понять, что нужно писать именно класс и использовать всякие блядские виртуальные деструкторы, явные конструкторы, перегрузку операторов и т.п.? это приходит с опытом? я просто сейчас разбираюсь с Qt и при написании своей проги думаю: Писать тут класс или просто написать функцию. Простите за мою тупость, ну чтож поделать, надеюсь аноны помогут мне выбраться из этой блядской ямы непонимания.
>>806965>>806972
#115 #806963
>>806804
Все так. Можешь еще посмотреть, как std::move устроен.
#116 #806965
>>806961
попиши немного на С в процедурном стиле и тогда ты на своем опыте поймешь предназначение всех этих средств ООП.
>>806971
#117 #806971
>>806965
ладно, хорошо, спасибо. со временем и опытом думаю придет понимание.
#118 #806972
>>806961
посмотри на вектор из std, например. Это тоже класс и у него есть интерфейс( публичные методы/переменные, которые доступны пользователю) и имплементация(приватные методы и переменные, необходимые для функционирования объекта). Плюсы в таком разделений в том, что:
1. пользователю НЕ НУЖНО коывряться в имплементации, чтобы что-то получить.
2. Можно поменять имплементацию (использовать другой алгоритм, другой контейнер) и при этом интерфейс останется таким же. То есть разработчику не придется менять интерфейс каждый раз.
3. Ошибок намного меньше, так как пользователь не имеет доступа к важным для функционирования членам класса.
4. НАСЛЕДОВАНИЕ! Qt, например, очень завязан на этой концепции.
>>807009
#119 #806994
ну и более практичный пример:
Я хочу сделать ежедневник. В каждом дне - по несколько записей и так на протяжений 50 лет. Я сделаю отдельный хэдер и в нем определю 3 класса:
1.Date, в котором находится массив из 50 объектов Year.
2.Year, в котором находится массив из 12 объектов Month.
3.Month, в котором находится вектор из N объектов Day и переменная day_count. N расчитывается в конструкторе и day_count приравнивается к нему.
3.Day, в котором находится вектор записей(QString).

В Date я определяю operator[](int y), который возвращает y элемент из массива с Year.
В Year я определяю operator[](int m), который возвращает m элемент из массива с Month.
В Month я определяю operator[](int d), который возвращает d элемент из вектора с Day.
В Day я определяю метод getEntry(int index), который возвращает index элемент из вектора с записями.

В итоге:
В коде я могу написать Date date; date[y][m][d].getEntry(index); и получить соответствующую запись. Только вот в ней нихуя не будет хДДДД, так что надо еще определить setEntry(QString entry), потом написать эксепшионы, потому что operator[] не делает range check, потом сука дописать к твоему конструктору в Month дефолтный, потому что он нужен для array, а потом еще определить operator=, да и == тоже, и деструктор написать, а потом тебе внезапно нужны размеры каждого из массивов и ты имплементишь getCount, а в твоей голове появляется мысль-"а не сделать мне массивы публичными", но ты эту мысль должен откинуть, потому что НЕ ООП, и вообще, тебе надо имплементить at().
>>807090
#120 #807009
>>806972
хороший пример, спасибо:)
#121 #807085
>>806495
Модные языки приходят и уходят. Кресты остаются. ИМХО.
#122 #807090
>>806994
Нахуя столько классов, если разделение на годы и месяцы важно только при отображении? Для внутреннего представления достаточно класса Day, или вообще отдельных записей, привязанных к unix time, например. Тогда не будет ебли со сменой часовых поясов, чуваками, живущими дольше 50 лет, и подобной хуйней.
#123 #807092
>>806495
Важна предметная область, а не язык. Для С++ - особенно. Со знанием джавы и без опыта гораздо проще устроится. На С++ будут требовать опыт в нужной области.
Ононим #124 #807111
Ребята. В общем двачуйте мне. С матаном у меня еле тройка была. Забежал немного по гейм деву . 3д графоний с матрицами и векторами чую не потяну. Помогите что делать?
вообще хочу я в Digital SIgnal Programming, но...почитав основы для вывода звука с помощью какой то XAudio библиотеки и HEX вообще тонн текста...
В общем окончательно стал понимать что IT из меня только эникейщийк.
Че делать как быть?
#125 #807115
>>807111
максимум что умею на данный момент - хелло ворлд с закрывающимся окошком по нажатию на энтер
#126 #807121
>>807111
Вкатывайся в веб.
#127 #807128
>>807111
Мобильная разработка, фронтенд, бэкенд, сисадминство, бизнес приложения. Возможности безграничны! А ты перечислил тяжелые для вката области, которые не получится хуякс хуякс и в продакшен. Выбери что-то попроще и потихоньку обрастая нужными для вката куда ты хочешь навыками. Матан например можно и выучить на базовом уровне.
>>807133>>807136
#128 #807133
>>807128
Можно юзать SMFL\что-нибудь_похожее и радоваваться жизни.
>>807135
#129 #807135
>>807133
А чего за фронт энд? А что на счет бетатестинга? хотя не - бетатестинг мы и так за бесплатно делаем, т.к. много игруль каких норм работают с патча 1.6 ....
>>807145
#130 #807136
>>807128
фронт энд - разработка интерфейса, но для веба? ну та же верстка не? Вот она у меня и была, после того как на HTML И CSS заделал страницу с тремя рамками, гиперссылками и окном, тоже понял что это уровень hello worlda.
>>807139
#131 #807139
>>807136
Верстка - это верстальщики, а я про создание клиентских приложений, js, angular, вот это все, интерактивные странички, сейчас вообще все больше логики держат на клиенте, асинхронные запросы опять же.
#132 #807145
>>807135
Там можно и на SFML фронтенд сделать, при некотором желании.
Ну или на Qt.
#133 #807327
Как можно фрилансить на C++? И какие сервисы джуниору для поиска работы использовать? freelancer.ru - хуйня
>>807358
#134 #807338
>>804519 (OP)

>C++


>фрилансить


>джуниору



это такая тонкота?
>>807360
#136 #807360
>>807338
Это фингербокс.
#137 #807542
Как в QLayout-e свапать виджеты?
>>807580>>807668
#138 #807580
>>807542
Два разных сделать проблематично?
>>807583
#139 #807583
>>807580
шо? я заполняю его виджетами с динамическим контентом, по которому они должны сортироваться.
>>807587
#140 #807587
>>807583
Меняй содержимое, так быстрее будет
Насколько я знаю, самый быстрый способ - сделать много лейаутов (в твоем случае делать каждый раз новый)
Может эксперты знают другое решение
>>807625
#141 #807625
>>807587
Программач, я ведь знаю тут собрана самая мозговитая прослойка двача. Мне нужна помощь в решении следующего алгоритма.
Задачка не из легких. Уже два дня потею, вот вот вроде выведу норм алгоритм,но нифига. Я уже и рекурсией, и мат. формулы искал.
Ближе к делу.

Необходимо подсчитать число разбиений (N) на слагаемые, для вводимого нами числа (Sum), при том, что у нас есть список доступных слагаемых (Arr).

Пример: мы вводим число 7, и задаем слагаемые - [1,2,5]. Из этих условий следует, что Sum = 7; Arr = [1,2,5], а количество разбиений N нам нужно вычислить:
1) {5,2};
2) {5,1,1};
3) {2,2,2,1};
4) {2,2,1,1,1};
5) {2,1,1,1,1,1};
6) {1,1,1,1,1,1,1};
В нашем случае N = 6;
Важный момент - слагаемые могут повторяться, но их последовательность не важна, то есть разбиения типа {5,2} и {2,5} тождественны между собой и должны учитываться как одно решение

Ребят, помогите плз. Упарывание всяких там формул Эйлера и т.д. не помогло в силу отсутствия решения для конкретно подобного случая
>>807629
#142 #807629
>>807625
Динамическое программирование гугли
Виджеты тут блядь каким боком?
>>807634
#143 #807634
>>807629
Виджеты?
#144 #807668
>>807542
Расставляй виджеты вручную, для простых случаев это удобно или напиши свой лейаут.
#145 #807679
Зачем юзать ф-ции modf, чтобы разбить вещественное число на целую и дробную часть?

Почему нельзя просто

fract = (float)(val - int(val));
i = val - fract;

Быстрее же. Я видимо чего-то недопонял. Пример из -12.354 требуется получить -12 и -0.354
>>807825
69 Кб, 615x380
#146 #807796
>>804519 (OP)
Есть ли в мире C++ сертификация вроде джавовской Oracle Certified Associate?
#147 #807811
>>807796
Нет.
#148 #807825
>>807679

> fract = (float)(val - int(val));


> i = val - fract;


ну вот как раз на твоём примере (отрицательные значения) касты могут сломаться
>>807830
#149 #807830
>>807825
Специально отрицательный проверил.
#150 #807857
>>807796
Хахаха блядь. У нас стандарта-то нормального нет, какая нахуй сертификация.
>>809911
#151 #807868
Анон, помоги, столкнулся с неведомой хуйней. Вот этот код не работает: https://ideone.com/Eq8U8o

Причем не выводится даже строка "before loop". Но если закомментировать так: https://ideone.com/LRarix , то "before loop" выводится. Как так объявление и заполнение вектора повлияло на поток выполнения, что даже до отладочной печати не дошло?
#152 #807881
>>807868
QVector типа QString и строковые литералы типа const char * могут быть не совсем совместимы, хотя я могу ошибаться.
>>807882>>807892
#153 #807882
>>807881
Замена на vec << QString("xxx") << QString("yyy") << QString("zzz"); не помогла.
31 Кб, 544x176
#154 #807883
>>807868
У меня все выводится.
76 Кб, 764x592
35 Кб, 618x434
#155 #807885
Если тебе это поможет
>>807894
#156 #807886
>>807796

> вроде OCA


Это где будут спрашивать что покажет статический счётчик после строчки Huita a = 5, а код из примеров будет наполовину написан диграфами, а остальной · триграфами, ибо легаси?
#157 #807892
>>807868
Я запустил и оно работает.
>>807881-анон
#158 #807894
>>807885
Почему это помогло? Проект, собранный как гуйня, до этого позволял писать в консоль.
67 Кб, 1216x518
#159 #807922
В Qt списки в самом деле так уебищно реализованы? В чем тогда преимущество скорости вставки, если надо раздвигать массив указателей для вставки нового элемента, тогда как в настоящих списках вставка производится настройкой двух указателей?
>>808060>>813466
#160 #807991
Спрошу еще раз,
Как происходит отрисовка на окнах? Почему при перезаливе картинки на окно и использования refresh() / update() происходит мерцание с промежуточным белым экраном? Как грамотнообновлять графическое содержимое окон?
>>808153
#161 #808060
>>807922

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


Для типовых случаев разница будет невелика. Массив раздвигается быстро, потому что линейно лежит в памяти, что удобно кешу.
1 Кб, 640x400
#162 #808113
Как сделать свой QProgressBar? Наследуюсь от него, в explicit конструкторе добавляю один параметр, а компилятор пишет undefined reference to `vtable for CustomProgressBar'.
Мне нужен прогрес бар заполненный 2 цветами в разных местах и чтоб прогресс показывался в виде треугольника сверху этого бара.
>>808121
#163 #808121
>>808113
Объявление класса и реализация в отдельных файлах?
>>808125
#164 #808125
>>808147
#165 #808147
>>808125
Код где?
>>808185
#166 #808153
>>807991
фреймбуфер слишком часто обновляется из приложения и поскольку код,который выводит фреймбуфер на видеокарту, работает параллельно, то ты видишь промежуточное состояние фреймбуфера.
>>808678
#168 #808288
Анон, наверняка ты пошлёшь меня с этим вопросом к Мейерсу, но он какую-то дичь пишет, так что выслушай меня:
Я - школяр. Закончил школку, неплохо сдал егэ, но мне пофиг, вкатываюсь на матфак, ибо знаю, что IT-образование у нас полная дичь, а матфак в нашем мухосранском ГУ не такой геморрный, и времени на самообразование у меня будет достаточно, но и матан там неплохо преподают.

Собственно, я уже примерно полгода как застрял на уровне книг "для начинающих". Я разобрался с классами, более или менее понимаю суть указателей и ссылок, немного могу в STL. И всё. Куда двигаться дальше? Сейчас я изучаю потихоньку SFML, ибо хочу вкатиться в геймдев, но понимаю, что на 2д играх далеко не уйдёшь. Пробовал вкатываться в трёхмерную графику, но там всё слишком уж сложно для меня, поэтому пока сижу на 2д.

Так вот, в чём суть. Что мне изучать дальше? Пытаться осилить книги "для продолжающих"? Или забить на них, и дальше изучать мультимедийные библиотеки, разбираясь с возникающими вопросами по мере их появления?
Не знаю, что мне выбрать из этого, ибо боюсь, что слишком много времени потрачу на основы и не успею к концу учёбы поднять необходимые навыки, чтобы запилить что-нибудь достойное показа на каком-нибудь геймдев конкурсе или для получения работы, и буду поддерживать старые программы за копейки, или наоборот, слишком, устремлюсь вперёд в одном направлении, и буду писать говнокод из-за отсутствия необходимых навыков.
#169 #808337
>>808288

>буду писать говнокод из-за отсутствия необходимых навыков.


Ты его в любом случае будешь писать, это не то чего что стоит опасаться начинающему.

Единственный способ поднять уровень в такой ситуации — пилить проект.
>>808430
#170 #808391
Заценил поддержку юникода в stl. Ебаный стыд, блядь.
>>808418>>813468
101 Кб, 736x736
#171 #808418
>>808391
И чем же она тебе не понравилась?
>>808425
175 Кб, 500x480
#172 #808425
>>808418
Полным ее отсутствием
>>813547
#173 #808430
>>808337
Поясни примеры проектов, тыкни мордой в пример проектов, доступных более-менее начинающим, пожалуйста.
мимонуб
>>808753
#174 #808447
>>808288

>хочу вкатиться в геймдев


Держи литературу на лето http://mrelusive.com/books/books.html
>>808451
#175 #808451
>>808447
Благодарю, анон. Выглядит старовато, ну да фиг с ним.
#176 #808477
Пацаны, ебать пиздатую шапку отгрохали! А это только на /pr такие финтифлюшки можно делать? Блииин! Как же круто!!! Я тут вот вообще зачем. Поступил я значит на ИТ-специальность. Насколько я знаю, начинают студентов учить как раз на крестах. Стоит мне что-то вкуривать заранее, чтобы выебываться? Или таких как я там будет половина потока?
>>808481
#177 #808481
>>808477
учиву шарп или питон. кресты это боль и уныние.
>>808482>>808485
#178 #808482
>>808481
учи*
#179 #808485
>>808481
https://www.youtube.com/playlist?list=PLfAlku7WMht6janxhS4D7XqajI7Knq1sS
Это годная бабенция для начала? Мне ее в нюхак-реде посоветовали.
#180 #808496
Какого хуя я должен указывать локаль, когда хочу обратиться к isUpper и др. во время обработки UTF8?

Эта хрень везде по-разному называется: в винде там вообще UTF16, а на линуксе "ru_RU.UTF-8".

Я понимаю еще, когда нужно брать символы для форматирования денег и времени/даты. Но причем здесь проверки для символов UTF-8?
>>808497
#181 #808497
>>808496
Ничего не понятно.
>>808500
#182 #808500
>>808497
Речь идет о такой хуите. Вот нахуй здесь локаль нужна, а?
http://en.cppreference.com/w/cpp/locale/isupper
>>808506
#183 #808506
>>808500
Да, локали — это странная часть C++, я уже писал, вроде в прошлом треде.
#184 #808564
std::istream по стандарту можно инстанцировать только с char и wchar_t. char32_t идет нахуй.

Enjoy your UTF-8 files.
#185 #808565
Эгегей, ембджчики есть кто под арм пишет? Проблемы с передачей double в ... va_args выуживает мусор. Думал может стек не выравнен или еще какая беда. Оказывается почему то только 32 бита вытаскивает. Извернулся вот так
volatile uint32_t d1 = va_arg(args, uint32_t);
volatile uint32_t d2 = va_arg(args, uint32_t);
volatile uint64_t d = ((uint64_t)d2<<32) | (uint64_t)d1;
double dd = (double)&d;

но это ж не дело. С 64 битными целами то же поведение - 32 бита только читает, нужно два раза читать. Может флаг в опциях какой? cortex m4 c fp
#186 #808566
Где вообще посоветуете такие вопросы спрашивать? Отдельным тредом может быть?
#187 #808584
Можно на пол ставки на удалёнку джуном устроится? Что нужно знать и сколько будут платить?
>>808614
#188 #808614
>>808584
Удаленка? На C++? Джуном? Ты серьезно?
>>808637
#189 #808615
>>808288
Вообще для игр очень популярен движок Unity. Но там нужно вроде C# юзать. Попробуй игры под Android писать например. Выучишь Java, а критические секции сможешь писать на плюсах (NDK)
>>808618>>808619
#190 #808618
>>808615
Хуйню несёшь.
>>808744
#191 #808619
>>808615
Unity популярен для домашних поделок мамкиных геймдизайнеров, а я хочу вкатиться именно в геймдев. Понимаешь? Не клепать модельки, а отрисовывать их. Не делать недо-скрипты для управления. Я не хочу делать игру на движке, я хочу пилить сами движки. Поэтому я пытаюсь вкатиться в плюсы.

Да и к тому же, если бы я именно учился бы делать игры, то пошёл бы в UE4. Ибо там C++ и офигенный визуальный язык или что там такое.
>>808661>>809687
#192 #808637
>>808614
Да. Может лабы для студентов писать?
>>808745
#193 #808661
>>808288
>>808619
Лучше сиди дальше на 2д и изучай сам язык.
Попутно вкатывайся в линейную алгебру и геометрию. Без них будет не просто.
#194 #808677
Посоны, есть задача: есть текст, нужно найти, сколько раз встречается каждое слово в нем. Меня интересует, насколько быстро может работать такой код. Я добился такой производительности обработки - 200МБ текста за 4.5 секунды. Т.е. 44МБ/с. Текст в формате utf-8, юзаю конкаренси.

Это норм или НЕОЧЕ?
>>808679>>809055
#195 #808678
>>808153
И как тогда поступать? Можно сначала создать новый фреймбуфер, а потом скинуть куда-то указатель на него?
#196 #808679
>>808677

> utf-8, юзаю конкаренси


Это как?
>>808740
13 Кб, 512x512
#197 #808725
Есть кто работал с Qt Widgets?
Как в разметке формы сделать так, чтобы виджет занимал всё доступное пространство родительского виджета?
В гугле искал - не нашел работающего решения.
Ведь наверняка это как-то делается без костылей.
>>808738>>813470
#198 #808738
>>808725
Size policy Expanding у НАСЛЕДНИКА
#199 #808739
>>808738
ну и убрать margin у родителя, если есть.
>>808748
#200 #808740
>>808679

>Это как?



Делю весь файл на 8(или другое кол-во потоков) частей, обрабатываю их параллельно, результат собираю воедино. Сократил время работы в два раза с таким подходом.
>>809092
#201 #808744
>>808618
Дай обоснование, даун
#202 #808745
>>808637
Если острой нужды в деньгах нет, то смысл. Лучше пилить свой проект тогда уж и выложить на гитхаб. Про опен сорс молчу вообще.
#203 #808748
>>808738
>>808739
О, спасибо! Попробую.
Не пробовал собирать статическую версию qtserialport?
#204 #808753
>>808430
минибамп
>>808755
#205 #808755
>>808753
игры блядь, дебил
>>808756
#206 #808756
>>808755
lumines, например.
#208 #808852
>>808842
сделать лейоут виджетов?
>>808871>>808899
9 Кб, 249x156
#209 #808871
>>808852
Как это делается?
>>808899
#210 #808872
>>808842
лол бля так ты без лейаутов сидишь. гугли или на ютубе ищи туториалы.
>>808899
20 Кб, 416x338
18 Кб, 663x505
#211 #808899
>>808872
>>808852
>>808871
Ага, заябись. Как бы теперь сделать автоматический ресайз?
https://gist.github.com/anonymous/2138d087e289a056096636b80f8d4a19
>>808920>>808974
#212 #808920
>>808899
QResizeEvent?
#213 #808974
>>808899
всмысле автоматический? он и так автоматический должен ресайзиться.
>>808979
#214 #808979
>>808974
Скриншоты говорят об обратном.
>>808992
#215 #808992
>>808979
Лэйаут не там сделал может?
>>808999>>809000
#216 #808999
>>808992
Где не там?
https://gist.github.com/anonymous/2138d087e289a056096636b80f8d4a19
Я немного охуеваю с этих Qt, казалось бы простая вещь делается не очевидно.
>>809000
#217 #809000
>>808992
>>808999
Алсо, воткнул tabWidget в качестве central widget.
Пока пойдет и так.
#218 #809055
>>808677
Ты не описал все условия: в памяти у тебя текст или на диске, например. 44 МБ/с больше похоже на чтение с диска.
sage #219 #809092
>>808740
Твоя задача в идеале скейлится линейно. Другое дело, что там можно в скорость памяти/борьбу за кеш упереться. Если 8 потоков сократили время в 2 раза, то это очень странно. Либо слишком много потоков, либо у тебя тупо чтение с диска идёт.
#220 #809163
class Counter {
public:
Counter() : count(0) {}
unsigned int getCount() { return count; }
Counter operator++()
{
++count;
Counter temp;
temp.count = count; //<-----------------
return temp;
}

private:
unsigned int count;
};

Почему у меня есть доступ к private полю объекта temp?
>>809178
#221 #809178
>>809163
Может потому что это твой класс?
#222 #809220
Котаны подскажите пожалуйста как в экосистеме c++ реализовано подключение библиотек из githab под виндой? Пока я использовал кресты только для какой нибудь jni/opencv никаких проблем не было, так как в джаве есть maven/gradle и 99.9% что любая либа или даже фреймворк взлетит и будет подключена к проекту и время на подключение равно времени копирования из githab или maven central строки с зависимостью и вставлянию её в конфигурации системы сборки.

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

Текущая конфигурация - win 10-64(так исторически сложилось), clion. Допустим я нахожу либу, где система сборки иная - SCons. Щито мне делать? Качать очередную систему сборки, компилить, подключать библиотеку, юзать?
#223 #809240
>>809220

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


никакой
>>809249>>809616
#224 #809243
>>809220

>Качать очередную систему сборки, компилить, подключать библиотеку, юзать?


Да. А вообще лучше сразу завендорить эту зависимость (руками конечно же).
>>809249
#225 #809249
>>809243
>>809240
Благодарствую
#226 #809616
>>809240

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


> никакой


Какие же всё таки плюсы ахуенные!!
>>809703
#227 #809687
>>808619

>Я не хочу делать игру на движке, я хочу пилить сами движки


Тогда собирай команду, хуле. Но только лет через 3-5, когда наберешься достаточно опыта в собственно программировании.
>>810319
#228 #809703
>>809616
А то! Хошь - на cmake опиши загрузку и установку зависимостей.
#229 #809704
>>809220

> win 10-64(так исторически сложилось), clion


А была бы vs, использовал бы Nuget
#230 #809732
Чому в шапке нет "Concurrency in action"?
5 Кб, 562x176
Редактор кода на Qt #231 #809794
Хелп, анон. Если вкратце, я разрабатываю редактор кода (с подсветкой синтаксиса html, css, php, js и подсказками к этим языкам) на qt.

Возник такой вопрос, по поводу подсказок при вводе.
Мне нужно каким-то образом хранить тысячи ключевых слов и функций и потом, при каждом изменении пользователем кода в текстовом поле, находить подходящие и выводить в подсказку. По началу я думал просто занести все ключевые слова и функции в файл и потом его перебирать, например пользователь набирает "cla" - программа ищет в этом файле все, что начинается с этого и выводит в подсказку. Но это выглядит не очень оптимизировано, т. к. в php тысячи функций и их находить в одном файле, при каждом изменении кода - я подозреваю будет медленно.

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

Пикрелейтед - то, что я хочу получить в итоге.
>>809888>>813472
#232 #809832
Бля, наканецта понел что за promise. Когда кто-то возвращает promise это не он тебе что-та абищает, а ты ему туда должен палажить значение.
#233 #809888
>>809794

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


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

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


Авторы бд всё придумали за тебя уже хуй знает сколько лет назад, загугли бинарные деревья поиска.
>>810195
#234 #809911
>>807857

>У нас



Обосрался
#235 #810167
Подскажите, как можно неаризовать систему сигналов. Ну, допустим, у меня есть объект. У него возможно есть метод. Если он у него есть, то он вызывается.
object.SendSignal("foo");
>>810208
#236 #810195
>>809888

>Держать в памяти >бинарные деревья поиска


Ты имеешь в виду при запуске программы все эти тысячи функций загружать в контейнеры set/map/qset/qmap, а потом при помощи регулярных выражений выбирать все что начинается с того, что ввел юзер и выводить в подсказку, тогда скорость мгновенная будет? Или есть варианты лучше?
>>810201
#237 #810201
>>810195
Иди читай "Алгоритмы" Кормена от корки до корки, когда закончишь - возвращайся.
>>810209
#238 #810208
>>810167
Чем тебя виртуальные функции не устраивают?
#239 #810209
>>810201
У меня, к сожалению нет овердохуя часов на чтение левых книг. Сейчас итак читаю несколько. Я спрашивал, что конкретно лучше юзать для этой задачи - хранения и поиска большого обьема текста - базы данных sql, или контейнеры Qt/STL, или файлы.
>>810288
#240 #810226

>У меня, к сожалению нет овердохуя часов на чтение левых книг


У меня тоже нет, но я же читаю
>>810231
#241 #810231
>>810226
да я сейчас просто и так несколько книг параллельно читаю, еще одну не осилю одновременно. Просто хочу конкретно понять и читать уже непосредственно про то, что юзать для этих задач
268 Кб, 1385x749
#242 #810263
Сап. Использую array из stl, не могу получить к нему доступ в main.

http://pastebin.com/6aa2GVyK

HALP
#243 #810288
>>810209
Естественно контейнеры. Читать файл при каждом вводе на несколько порядков дольше (оперативная память нужна именно чтобы так не делать). Из контейнеров выбери такой, где поиск за логарифм, типа set (который реализован как раз на дереве)
>>810291
#244 #810291
>>810288
А qmap как по производительности? Мне он кажется более удобным.. Он ведь тоже на красно-черном дереве реализован.
>>810295
#245 #810295
>>810291
Иди и сделай бенчмарк поиска там и там, какие проблемы?
Алсо, в Qt все контейнеры куда более удобные и адекватно реализованные (не то что стандартные стльные, "стондарт ни горонтирует, разработчик хуй кладёт").

Вообще, у тебя есть куча кода для изучения – исходники того же КультяпКреатора.
37 Кб, 842x427
#246 #810314
Анон, хочу написать машрутиризатор своими руками.
Ладно, шучу. Кейс примерно такой (смотри картинку)
Итак, есть, например, 3 воркера, которые посылают запросы на условный target сервер (зеленый круг). Запрос идет в формате обычного restAPI, то есть
[https://example.com/user=1&option=2]
[https://example.com/user=2&option=3]
[https://example.com/user=2&option=4]
1. Запрос выполняется исключительно по защищенному соединению.
2. Ответ в JSON формате.
3. API не передает никаких индификаторов тго, кто запрос послал, поэтому возвращенный ответ по телу идентифицировать нельзя.

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

1. Worker генерирует запрос в формате выше
2. Передает его в Proxy Controller
2.1. Proxy controller присваивает отдельный прокси
2.2. Выполняет запрос.
2.3. Получает ответ.
3. Передает ответ одному из Worker'ов, например, через Load Balancer.

Теперь собственно вопрос - куда гуглить? Есть ли какие-нибудь библиотеки, которые позволяют это сделать менее болезненно? Какие варианты вообще существуют.
#247 #810319
>>809687
А зачем. Где нужны новые движки? Просто ради опыта или как профессия? Кажется достаточно узко и невостребовано.
>>810325
#248 #810325
>>810319
Ради конкуренции, которая двигает уровень в первую очередь.

Так же если написать что-то стоящее – можно и продаться за хорошие деньги.
>>810336
#249 #810336
>>810325
Ну вот например физика. Столько есть годных вариантов, которые до зрелого уровня напильником годами доводили. Неужели кто-то будет свою физику с нуля пилить. Кучу шишек набьешь, в итоге изобретешь велосипед, по-моему.
>>810346
#250 #810346
>>810336
Физический движок не обязательно писать. А вот реализовать концепцию которая есть в паре закрытых продуктов (как мультитрединг в движке naughty dog например) – всегда полезно.
>>810353
#251 #810353
>>810346

>мультитрединг


>паре закрытых продуктов


как там в 2005?
>>810360
#252 #810360
>>810353
Нормально. А ты как, много нормально распаралеленных движков видел? Или испозующих хотя бы 2 ядра?
#253 #810571
Смотрите, крестухам в 17-й стандарт .then() для std::future завезут: http://en.cppreference.com/w/cpp/experimental/future/then

Не прошло и 6 лет, как крестухи поняли, что std::future это монада.
>>810582
#254 #810582
>>810571
никогда не пользовал хуеты из с++ большей чем просто си с классами. что я делаю не так? смотрел в код C# дрочеров со всякими предикатами и linq хуинq асинк поебень и тд и тд. это вообще выглядит как другой язык. ЗАЧЕМ ВСЕ ЭТО? нужно просто си. с классами.
>>810588
#255 #810588
>>810582
Для твоих хеллоуворлдов хватает и C с классами.
>>810589
#256 #810589
>>810588
на хелловолрдах линукс написан. но за чистый си не ратую. нужны классы.
>>810772
#257 #810772
>>810589

>на хелловолрдах линукс написан


да-да, хеллоуворлдщик. ни мьютексов там нет, ни conditional variables, ни отложенных заданий
#258 #810775
Бля, codelite какой-то странный. Интерфейс - кусок дерьма.

Чем пользуются сдешние хацкеры? Слышал про vim/emacs, но я так понял, что этого мало...

Если я ёбну codelite, можете назвать годный набор джентельмена, без всякого лишнего дерьма? Тот минимум, который должен быть у каждого уважающего себя кодера?

linux-кун
>>810776
#259 #810776
>>810775
Креатор, без вариантов
>>810778
#260 #810778
>>810776
Ты про Qt?
>>810781
#261 #810781
>>810783
#262 #810783
>>810781
А ты что юзаешь?
>>811224
#263 #810796
>>808288
Школьник плес, хватит ересь нести. Хочешь гд, пиздуешь в /gd.

> немного могу в STL


Исходники читал или как? Посмотрел что умеет вектор? Знаешь как происходит выделение памяти в том или ином контейнере?

> Я разобрался с классами


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

> суть указателей и ссылок


Уверен, что ты понимаешь на уровне. УКАЗАТЕЛЬ ИНИЦИАЛИЗИРУЕТСЯ АДРЕСОМ ПЕРЕМЕННОЙ или чет тип такого. Если я задам тебе вопрос, что такое утечка памяти, то ты обосрешься.

В этом проблема детей типа тебя и вам подобных. Прочитал про типы данных/ссылки/указатели/основы ООП вы уже думаете что все, потолок. Хотя даже вопрос, что такое this, зачем ставить const в методе или как перегрузить оператор поставит тебя в тупик.
Офк ты не можешь в template metaprogramming, не знаешь новых стандартов, не можешь написать свой аллокатор(ты даже не знаешь что это такое скорее всего), алгоритмы, ub, потоки, красно-черные деревья, паттерны, структуры данных(ты даже не поймешь отличие вектора от листа). И все что я перечислил, это можно сказать только начало твоего увлекательного пути к совершенствованию байтоебства и еще меньшему пониманию ООП и с++.
Если просто, то делай свои проекты, не важно что. Главное кодить как можно больше. Не надо боятся говнокода, на твоем уровне ты все равно ничего не поймешь.

Про юнити ты нес хуету. Движки делают супер кодеры, ты таким никогда не станешь. Поэтому сможешь только быть макакой. Но не волнуйся, скоро ты поймешь, что в с++ для тебя нет места, т.к. ты самонадеянный уебок, без скиллов, но думающий что он все может.
мимо изучаю с++ 2 недели
#264 #810800
>>810796
Бля, чувак, да ты охуенен.

А я никак места не могу себе найти, чтоб сесть и почитать того же Бишопа или Липмана. Разве что на улице изучаю "Конкретную математику" 3 года гумманитарного вуза дают о себе знать, так что нужно приводить свой мозг в порядок, а то он зависает на сложных задачах

Вот завтра домой поеду - мб там обстановка получше.

А у тебя всё получится - я уверен. Интересно будет пересечься с тобой в будущем. Желаю удачи
#265 #810807
>>810796

>Исходники читал или как?


Да, эти http://libcxx.llvm.org/

> Посмотрел что умеет вектор?


Что именно я должен был там посмотреть?

> Знаешь как происходит выделение памяти в том или ином контейнере?


allocator::rebind и прочее уродство

> Узнал что значит паблик, приват, протектед поля или что такое виртуальные функции


Зачем разбираться, я это сразу знал.

> знаешь название парадигм


Метапрограммирование.

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


Говноеды, сэр.

> А ты у нас индиго, за годик и уже сток всего умеешь.


Да, сейчас дочитываю Concurrencry in action. Месяца не прошло с того, как начал учить цепепе.

> Хотя даже вопрос, что такое this


Интересно, что ты сам ответишь, лол.

> Офк ты не можешь в template metaprogramming


На базовом уровне (enable_if и т.п.) могу, а бОльшее не нужно помнить. Главное, знать, где подсмотреть.

> не можешь написать свой аллокатор


Аллокаторы не нужны, PMR рулит.

> красно-черные деревья


Сам-то ты хуй по памяти напишешь.

> ub


Сам-то ты undefined от unspecified не отличишь.

мимо уженешкольник-абитуриент
#265 #810807
>>810796

>Исходники читал или как?


Да, эти http://libcxx.llvm.org/

> Посмотрел что умеет вектор?


Что именно я должен был там посмотреть?

> Знаешь как происходит выделение памяти в том или ином контейнере?


allocator::rebind и прочее уродство

> Узнал что значит паблик, приват, протектед поля или что такое виртуальные функции


Зачем разбираться, я это сразу знал.

> знаешь название парадигм


Метапрограммирование.

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


Говноеды, сэр.

> А ты у нас индиго, за годик и уже сток всего умеешь.


Да, сейчас дочитываю Concurrencry in action. Месяца не прошло с того, как начал учить цепепе.

> Хотя даже вопрос, что такое this


Интересно, что ты сам ответишь, лол.

> Офк ты не можешь в template metaprogramming


На базовом уровне (enable_if и т.п.) могу, а бОльшее не нужно помнить. Главное, знать, где подсмотреть.

> не можешь написать свой аллокатор


Аллокаторы не нужны, PMR рулит.

> красно-черные деревья


Сам-то ты хуй по памяти напишешь.

> ub


Сам-то ты undefined от unspecified не отличишь.

мимо уженешкольник-абитуриент
#266 #810810
>>810807

>я это сразу знал.



Ору с залётыша /b
#267 #810813
>>810807

>Concurrencry


concurency

self-fix
#268 #810833
>>810807
Половина твоих ответов на уровне ТЫ САМ ТО ХОТЬ ЗНАЕШЬ, А?. Хотя я спрашивал базовые вещи 90% того что я спрашивал есть в Страуструпе. Ты говоришь аллокаторы не нужны, что ООП это просто и вообще хуйня. Я ору с тебя просто. Ты даже про указатель this не знаешь.
Бля, ты не знаешь че такое this, но знаешь ООП ))). И при этом, ты можешь в шаблонное метапрограммирование. Ох вей.

> знаешь название парадигм


Я имел ввиду ООП парадигмы. А то что ты назвал можно включать в подъязык с++, я имею ввиду. Си, ООП, STL, с++ с шаблонами Так говорил Мейерс, офк ты лучше чем он.

> Говноеды, сэр.


Нет смысла комментировать даже.

> На базовом уровне (enable_if и т.п.) могу, а бОльшее не нужно помнить. Главное, знать, где подсмотреть.


На уровене хеллоуворлд, я так же хаскел знаю.

> Аллокаторы не нужны, PMR рулит.


Бля. Ну подрастешь поймешь.

> Да, эти http://libcxx.llvm.org/


БЛЯ, Я ТАК ОРУ С ТЕБЯ. У тебя есть компилятор, а ты с сайтика чет смотришь. Ну очевидно, что твои слова правда.

Алсо, львиную долю мною написанного ты пропустил. Поэтому можно сделать вывод, что ты даже про перегрузки, утечки памяти ток слышал, но не видел и не понимаешь.
Думаю особого смысла нет что-то говорить тебе. ЗНАЮЩЕМУ ПОНИМАЮЩЕМУ ВСЕ ПАРАДИГМЫ С++, ВКЛЮЧАЯ ШАБЛОННОЕ МЕТАПРОГРАММИРОВАНИЕ, ООП И ПРОЧИЕ, НО НЕ МОГУЩЕМУ В this->.
Как бы я показал тебе твой потолок. КНИЖКА С БАЗОВЫМ СИНТАКСИСОМ.
#269 #810865
Как в Qt сделать что-то наподобии андроидского меню с пикрелейтеда? Делать кастомный виджет и переопределять paintEvent?
>>810866>>810885
0 Кб, 48x48
#270 #810866
>>810865
отклеился
#271 #810874
>>810807
Толсто. Concurrency in action за месяц на не освоишь, даже если нонстоп по 10 часов в день ебашить будешь. Memory ordering - оно такое.

Либо ты толстишь, либо ты толстишь, потому что будь ты таким умным, не задавал бы вопросов про "шта мне учить дальше". А так, вниманиеблядь незаметна, конечно. Съеби.
>>810895
#272 #810885
>>810865
Взять QML, где это всё есть из коробки.
>>810905
#273 #810895
>>810874

> Concurrency in action за месяц на не освоишь


В среднем ~50 страниц в день. При этом никаких "10 часов" и "ебашить". Вперемешку со скроллингом двачей и прочими делами.
>>810898
#274 #810898
>>810895
Почитать и освоить – разные вещи, не находишь?
>>810807

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


Я что-то илюшу вспомнил и прослезился :,(
>>810963
#275 #810905
>>810885
а в виджетах то как?
>>810910
#276 #810910
>>810905
Долго и упорно совать хуй в неположенные места в надежде что заработает.
>>810914
#277 #810914
>>810910
cccccccукаа
3079 Кб, 1366x768
#278 #810921
Тогда вопрос: в QML можно реализовать progress bar, который работает по времени? То есть я ему отправляю в конструктор 2 QTime объекта (начальное и конечное время), а он сам будет расчитывать сколько степов ему нужно сделать в минуту, чтобы к конечному времени оказаться в конечной позиции.
Пикрелейтед - вышеописанное, но на виджетах.
>>810923
#279 #810923
>>810921
Можно конечно. Вопрос только в том, что ты уже дохуя реализовал на виджетах и переезжать на QML несколько непродуктивно.
>>810940
#280 #810940
>>810923
для себя делаю, так что время есть. да и заебался я баги ловить, нужно переписывать все равно.
#281 #810963
>>810898
Ну так я не читаю дальше, пока не пойму текущего.
#282 #811038
>>810833

>Половина твоих ответов на уровне ТЫ САМ ТО ХОТЬ ЗНАЕШЬ, А


Ну дак потому что ты не знаешь нихуя, а до меня доебался.

> Ты говоришь аллокаторы не нужны


Конечно. Я тут недавно скидывал ссылку на видео, где Александреску рассказывает про происхождение аллокаторов: это был костыль для памяти с сегментацией, во времена DOS. В стандарт аллокаторы вошли по инерции.

Т.е., конечно, настраиваемые выделятели памяти нужны, но в том виде в каком они есть в C++ — не нужны.

Благо, в 17-м стандарте уже будут pmr (про которых ты нихуя не знаешь).

> Ты даже про указатель this не знаешь.


Потому и спросил, что ты сам ответишь, т.к. знал, что ты обосрёшься и назовёшь this указателем. Ну, раз это указатель, то:
1. Как я могу взять адрес этого указателя?
2. Как я могу присвоить ему что-нибудь?

> ООП это просто и вообще хуйня


А что, не так, что ли? ООП это не лемма Йоннеды, это банальщина.

> Бля. Ну подрастешь поймешь.


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

> На уровене хеллоуворлд, я так же хаскел знаю.


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

> У тебя есть компилятор, а ты с сайтика чет смотришь.


Даун, ты отличаешь компилятор от стандартной библиотеки?
А ссылку я дал чтобы указать, какая у меня стоит реализация stdlib.

> Алсо, львиную долю мною написанного ты пропустил.


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

Всё, я ушёл пилить убийцу крузиса.
#282 #811038
>>810833

>Половина твоих ответов на уровне ТЫ САМ ТО ХОТЬ ЗНАЕШЬ, А


Ну дак потому что ты не знаешь нихуя, а до меня доебался.

> Ты говоришь аллокаторы не нужны


Конечно. Я тут недавно скидывал ссылку на видео, где Александреску рассказывает про происхождение аллокаторов: это был костыль для памяти с сегментацией, во времена DOS. В стандарт аллокаторы вошли по инерции.

Т.е., конечно, настраиваемые выделятели памяти нужны, но в том виде в каком они есть в C++ — не нужны.

Благо, в 17-м стандарте уже будут pmr (про которых ты нихуя не знаешь).

> Ты даже про указатель this не знаешь.


Потому и спросил, что ты сам ответишь, т.к. знал, что ты обосрёшься и назовёшь this указателем. Ну, раз это указатель, то:
1. Как я могу взять адрес этого указателя?
2. Как я могу присвоить ему что-нибудь?

> ООП это просто и вообще хуйня


А что, не так, что ли? ООП это не лемма Йоннеды, это банальщина.

> Бля. Ну подрастешь поймешь.


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

> На уровене хеллоуворлд, я так же хаскел знаю.


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

> У тебя есть компилятор, а ты с сайтика чет смотришь.


Даун, ты отличаешь компилятор от стандартной библиотеки?
А ссылку я дал чтобы указать, какая у меня стоит реализация stdlib.

> Алсо, львиную долю мною написанного ты пропустил.


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

Всё, я ушёл пилить убийцу крузиса.
>>811103>>813124
1691 Кб, 1920x1080
#283 #811079
Как в несколько строк конвертировать float в string, так, что бы при любом количестве целых разрядов, сохранилось ровно 2 знака после целого числа?

Овер 100 страниц в гугле скандируют сишный велосипед. На sprintf студия отвечает error C4996: 'sprintf': This function or variable may be unsafe.

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

http://ideone.com/aakY6F может кто помочь? Мне кажется тут не хватает всего одной строки, но какой найти не могу.

Нахуя нужно: выводить в графический интерфейс разные значения вместе с другими форматированными строками.
#284 #811084
>>811079
Помню, в сишке ты можешь задать определённое количество цифр после запятой в printf. Мб тут тоже в самом операторе нужно?
#285 #811086
>>811079

>Овер 100 страниц в гугле скандируют сишный велосипед.


Откуда столько долбоёбов, употребляющих слова, не зная их смысла? Через пост в цепепе-треде "костыль" или "велосипед". И везде не в тему.

Идиот, "велосипед" — это когда ты сам реализуешь что-то, что мог взять готовое.
>>811697
#286 #811090
>>811079

> На sprintf студия отвечает error C4996: 'sprintf': This function or variable may be unsafe.


Во-первых, есть, как ты, идиот, выражаешься, "велосипед" под названием snprintf.
Во вторых, какое тебе дело до кукареков студии? пусть кукарекает, что с неё взять.

Ах, да. Сейчас тебе насоветуют флагов в stream запихать. Желаю тебе хорошей производительности, со стримами-то.
>>811102
#287 #811102
>>811079
Плохо искал как-то.
http://ideone.com/WJ4qNu
>>811090

>Желаю тебе хорошей производительности, со стримами-то.


И чем же она пострадает?
>>811191
20 Кб, 791x140
#288 #811103
>>811038

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


Как ты завертелся на сковородке. "Выделятель памяти" - это и есть аллокатор. То, что со временем у них поменялся интерфейс, не делает их не аллокаторами. Школьник и есть школьник, спартак - чемпион, а аллокаторы не нужны, PMR рулит. Лишь бы спиздануть какой-то тупой лозунг. И тире длинное на дваче не забыть - ведь как же иначе. Ты животное тупое.
>>811109
#289 #811109
>>811103

>Как ты завертелся на сковородке.


Тупое говно, я в первом посте написал, что pmr нужно. Кстати, смотрю, ты, тормоз, наконец узнал о них. Оказывается, ты не настолько туп.

>"Выделятель памяти" - это и есть аллокатор.


Не маневрируй, тупое говно, ты не в /po/. Аллокатор это то кривое нечто, что есть сейчас в стандарте под названием std::allocator.

> Школьник и есть школьник


Я так понял, у тебя совсем аргументы кончились, если ты так открыто перешёл на личности.
>>811110>>811116
#290 #811110
>>811109
Илюш, успокойся.
#291 #811116
>>811109
Ты написал, цитирую: "Аллокаторы не нужны, PMR рулит.". Т.е. аллокаторы не нужны аллокаторы нужны. Зачем ты это написал? Просто чтобы выебнуться. Потому что ты тупой школьник.

>Не маневрируй, тупое говно, ты не в /po/. Аллокатор это то кривое нечто, что есть сейчас в стандарте под названием std::allocator.


А у тебя что? ВЫДЕЛЯТЕЛЬ ПАМЯТИ. Не подскажешь, как это по-английски будет? Уж не memory allocator ли?

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


Аргументы по поводу чего? Это был мой первый пост ИТТ. Пафос моего поста в том, что ты тупое животное, а с животным и обсуждать нечего.
>>811147
#292 #811138
Вот еще сайт для тех кому нужно практиковать
http://acm.timus.ru/problemset.aspx
#293 #811147
>>811116

> Т.е. аллокаторы не нужны аллокаторы нужны.


Это только твоя интерпретация, идиот.

> А у тебя что? ВЫДЕЛЯТЕЛЬ ПАМЯТИ.


Этим я подчёркиваю, что всё, что нужно делать — это выделять память. Если ты, даун, когда-нибудь доберёшься до std::allocator, то увидишь... хотя нет, не увидишь, ты слишком тормозен, а это скоро будет deprecated, а потом удалено. Тогда так: если бы ты хоть раз смотрел на std::alocator, то заметил бы несколько идиотских вещей, вроде функций construct и destroy. Каким боком конструкция и деструкция к выделению памяти — ХЗ.
Поэтому выделятели памяти нужны, а аллокатор — нет.

> Зачем ты это написал? Просто чтобы выебнуться.


Ты — типичное быдло. Если кто-то знает что-то, что не знаешь ты — значит он "выёбывается". Если твой потолок это знать, зачем нужны модификаторы доступа, то всё, что дальше этого — это выебоны. Пиздец.

> Аргументы по поводу чего?


Вот я о том и говорю — что у тебя нет ни по какому поводу аргументов. Только "да ты шкальник!111"
>>811233
#294 #811183
Можно не кормить эту все-знаю-ни-одной-строчки-не-написал-вниманиеблядь? Уже надоело эти высеры читать. Причем с обоих сторон.
#295 #811191
>>811102

> И чем же она пострадает?


Он, видимо, про std::ios_base::sync_with_stdio не слышал.
>>811192>>811705
#296 #811192
>>811191
Видел его отключение в бенчмарках уровня "посчитать количество слов" и последующий профит на 0,2 с, на практике слабо представляю проблемы с перформансом это этого.
>>811199
#297 #811199
>>811192
В олимпиадном программировании такое в ходу. Но вообще да, особой пользы в практических задачах почти никогда нет.
#298 #811223
>>810833
Ты ущербный какой-то бро. Хули ты до него доебался? При чем доебался сходу >>810796

Школьник, еба, игнорируй пидораса, нахуй ты с ним спорить полез.
>>811238
#299 #811224
>>810783
monodevelop с плагином mono-D
Для крестов же - креатор без вариантов
#300 #811233
>>811147

>Это только твоя интерпретация, идиот.


Нет, твоя. Вот ты пишешь:

>Поэтому выделятели памяти нужны, а аллокатор — нет.


Т.е. поэтому аллокаторы нужны, а аллокатор - нет.
Ты в курсе вообще, как слово allocator с английского переводится? Или то, что аллокаторы есть в любом языке, а не только в С++. Тебе похуй, потому что все, что тебе нужно было сделать, это громогласно заявить на фразу "ты попробуй напиши аллокатор" - аллокаторы не нужны, потому что школьник-нигилист предпочитает громко спиздануть любую хуйню лишь бы громко, и показывало, какой он нитакойкакфсе. Нормальный человек бы написал, что "интерфейс std::allocator в скором времени будет deprecated". Только из этого не будет следовать ничего, кастомные аллокаторы как писали, так и будут писать. В моем последнем проекте аллокатор для CUDA и OpenCL, например, вообще имеет нестандартный интерфейс для нестандартного контейнера, который умеет свопаться при определенных условиях. И что, это не аллокатор по-твоему. А, это ВЫДЕЛЯТЕЛЬ ПАМЯТИ. Бляя, сук, как же я проигрываю с этой хуйни. Я уже написал, что аллокаторы не нужны, поэтому, чтобы не соснуть, я придумаю ВЫДЕЛЯТЕЛЬ ПАМЯТИ. Пощади, молю.
#301 #811238
>>811223
Я ток два поста настрочил. Больше не буду. Я понял что с ним смысла говорить нет. Человек не понимает своих знаний на общем фоне.
#302 #811239
Хуясе тут срач
>>811243>>811248
#303 #811243
>>811239
пфф разве это срач? вот в мои 2009-ые........
>>811255
#304 #811248
>>811239
Да было б из зачего. Там какой-то нервный на анона (типа школьника) сходу жестко наехал, хотя тот просто вопросы задал. Видно какую-то струнку зацепилу у ущербного...
#305 #811255
>>811243
А моча не трет тут? Я из саентача залетный, там моча трет споры про определение N. Просто некоторые аноны не понимают как запрограммировать инуитивную метаиндукцию с помощью которой разрывается логическая петля в аксиомах Пеано. Но за это банят.
>>811260
#306 #811260
>>811255

>Я из саентача залетный


Оно и видно - дебил выдающийся, даже на местном фоне.
#307 #811286
Аноны, а что надо знать, чтоб джуном работать взяли?
>>811289
#308 #811289
>>811286
Ничего.
>>811294>>811303
#309 #811294
>>811289

>забудьте все чему вас учили

>>811303
#310 #811303
>>811289
Что-то как-то с трудом верится.

>>811294
Это вообще не сложно. В вузе все на отъебись преподавалось.
>>811309
#311 #811306
>>810833
А придумали что-то принципиально новое, отличное от адаптеров к си-шным alloc-am?
Какие требования должны быть к аллокатору?
>>811310>>811354
#312 #811309
>>811303

>Что-то как-то с трудом верится.


Потому что ты глуп.
Это плюс для джуна, а если ты еще и обаятелен - то считай себя принятым.
>>811315
#313 #811310
>>811313>>811316
#314 #811313
>>811310
Можно пример?
>>811321
#315 #811315
>>811309
То есть можно забить на чтение всяких книжек?
>>811321
#316 #811316
>>811310
Заебись какой ёмкий ответ
>>811321
#317 #811321
>>811313
Нет.
>>811315
Тебе - да.
>>811316
Да.
>>811323
#318 #811323
>>811321
Ну а чо нет, я не очень могу в с++11/14, но в более древних плюсах не было ничего кроме оберток к аллокам.
>>811336
#319 #811336
>>811323
Так напиши всё сам.
Как я.
>>811351
#320 #811351
>>811336
Эти функции придётся писать на ассемблере, что можно сделать, но достаточно мучительно(и оно того не будет стоить)
>>811364
#321 #811354
>>811306
boost fast_pool_allocator посмотри
>>811365
#322 #811364
>>811351

>придётся писать на ассемблере


Мальчик, ты дурак?
Даже интрисинки не особо нужны, хотя могут и пригодится кое-где.
>>811366
#323 #811365
>>811354

>fast_pool_allocator


Типичная бустопараша.
>>811375
#324 #811366
>>811364
А при помощи чего ты собрался работать с кучей?
>>811370
#325 #811370
>>811366

>работать с кучей


Как обычно и как везде же.
Отжираем по максимуму и используем эту уже свою кучу оптимальным для данной задачи образом. И нет, дрочить системные аллоки - это для безруких дебилов.
Все просто.
#326 #811375
>>811365
Чем тебе не нравится?
>>811378
#327 #811378
>>811375
Просто не копрофил в отличии от тебя
И если просто говно суть неизбежный элемент жизни, то говно с претензией - типа буста - это уже лишнее.
#328 #811384
Ананасы, если я щас на андроид запилю приложение на Qt Quick и выложу его в гугл плэй, то что мне могут сделать? И как они узнают, что оно было сделано с помощью Qt?
>>811385>>811386
#329 #811385
>>811384

>что мне могут сделать?


Тебя посадят, а ты не воруй.

>И как они узнают


Через телеметрию в твоей десятке.
>>811388
#330 #811386
>>811384
Ясно всё
#331 #811388
>>811385
Да при чём тут телеметрия?

Там скорее всего есть инфа, под каким ИДЕ написано приложение
#332 #811396
>>811390
Нахуй гринтекстить и задавать тупые вопросы?

Ясно, что софт, который написан на определённом ИДЕ палится, если ты его решишь продавать
#333 #811408
>>811400
С тобой всё ясно, залётышь, можешь не продолжать. Постыдился бы

>>811401
Я просто ожидал, что найду здесь более-менее адекватную доску, с людьми, которые нашли себе интересное занятие. А на деле - очередной филиал /b. Сук, единственный годный тред - ML. Пиздец, анон. Я всё
#334 #811413
>>811410
Да, удачи. Но мне сейчас куда важнее освоить Бишопа, так что уделять внимание твои постам не буду. Через месяцок подваливай
>>811416
#335 #811416
>>811413

>освоить Бишопа


Малаца, делай это.
#336 #811430
>>811424
Да. Я тебе задал конкретный вопрос - чем тебе не нравится fast_pool_allocator. Ты ответить ничего не можешь, а просто уныло ведешь беседу в стиле /vg/. Если тебе не нравится весь буст, тут два варианта, либо ты крестохейтер и тебе следует съебать из треда сосать хуйцы вместе с мамашей, или ты не в курсе, что в бусте обкатывается большинство вещей, которые потом стандартизирует. А fast_pool_allocator - идеальная штука в 2 строчки сделать контейнер, который не будет тормозить от частых выделений и освобождений памяти (любимый дроч у функциональщиков). Возможно он не самый быстрый, но точно самый удобный - определил параметр у контейнера и все.
>>811435
#337 #811435
>>811430

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


Да, комитет именно такие пидоры и есть.
Вот поэтому у вас и нет модулей. И не будет.
#338 #811457
>>811450
https://2ch.hk/sci/res/371785.html#374444 (М)
https://2ch.hk/sci/res/371785.html#374485 (М)

>ну че ты как маленький, отфотошопил я его же скрин.


Типичный вговнемоченый уровня обо/сцай типичен.
Вопросов больше не имею.
(Автор этого поста был забанен. Помянем.)
>>813201
#339 #811468
>>811464

>эти жалобные блеяния


>саентач - значит дебил


Благодарю за иллюстрацию.
>>811466

>У кого - у нас?


У тебя, например.

>Что ты в этом треде забыл?


Доказательство P=NP.
Не находил случайно?
(Автор этого поста был забанен. Помянем.)
>>813201>>813350
#340 #811476
>>811472

>это мелкобуквенное кукареканье


Крестьянин с обо/сцая as is.
У тебя кефир стынет и теории относительности не опровергнуты.
(Автор этого поста был забанен. Помянем.)
>>813201
#341 #811600
Привет, аноны. Поясните плиз за explicit.
>>811604
#342 #811604
>>811600
Всегда пиши его, Остальное тебе пока не надо знать. А еще везде где только можно const пиши, даже в таких случаях
const Rational operator*(const Rational &lhs, const Rational &rhs);
#343 #811606
>>811527

>Вроде умные люди


Вниманиеблядь, рассуждающая об аллокаторах, не написавши ни строчки кода, и даун, который на него сагрился умными людьми не являются.
>>811607
#344 #811607
>>811606
Не ну тот ребёнок доставил конечно
>>811613
#345 #811613
>>811607
Чем? У меня непрерывный фейспалм от его постов и охуительных условий. Единственное, в чем его можно похвалить, так это в полемике. Навык пиздежа с умным видом о том, о чем знаешь поверхностно, может пригодиться в /po/
>>811614
#346 #811614
>>811613
Помню себя в школьные годы.

Ну он нёс такую хуету с серьёзным лицом, что у меня аж живот заболел от смеха
#347 #811697
>>811086

>велос


где сука тут велосипед через пост? и не в тему? ну ка ткни или не пизди ебт
>>811698
#348 #811698
>>811697
Вот, уже один, не понимающий смысла слов/выражений "велосипед", "костыль" или "выстрелить в ногу" загорелся.
#349 #811705
>>811191

>Он, видимо, про std::ios_base::sync_with_stdio не слышал.


Какое отношение ios_base::sync_with_stdio имеет к stringstream, болезный наш?
#350 #811881
Есть ли сишные аналоги питоновских методов numpy.dstack([a, b, c, d]).min(-1) и array.sum(-1)?

В документации к sum сказано, что указание в параметре цифры -1 выполняет подсчет с конца до начала.

Нифига не ясно.
>>811971>>812261
#351 #811929
Вопрос от нюфага:
Есть у меня некоторые структуры и небольшие методы в них.
Как сделать чтобы эти методы гарантированно
wait
Уже нашел, не надо.
Идите все нахуй.
#352 #811951
>>806019
Дурачок)
#353 #811971
>>811881

> Есть ли сишные аналоги


Напишешь - будут.
>>812035
#354 #812035
>>811971
если понять еще как они работают
Что они делают? Какая нахрен сумма елементов с негативным параметром? И почему она выдается в результате как массив?
#355 #812134
>>804519 (OP)
В треде крестов - топ шапка. Остальные какие-то тупые. Ну у Сишников ещё более-менее и пайтонофагов.
#356 #812169
Блин, сначала смотрел на синтаксис и чёт офигевал. Но ща вроде нравится
28 Кб, 1006x310
#357 #812236
Не вижу ошибку. Про какие точки речь и что может пойти не так?
>>812241>>812258
#358 #812241
>>812236
Библиотеки все подключил?
>>812246
#359 #812246
>>812241
Это скрин из статьи. Тут даже нерабочий код 4 точки в аргументах
#360 #812250
Немного не понял прикол << вот этого вот.
Саму суть понял, но как-то разплывчато. Мб кто подскажет
>>812256
#361 #812256
>>812250
Что именно ты понял а что объяснять?
>>812265
#362 #812258
>>812236
++yoba &= 1 это или yoba = yoba + 1; yoba = yoba & 1 или наоборот. Стандартом не определено
#363 #812259
>>812258
Ебаный стандарт
>>812262>>812263
#364 #812261
>>811881
boost::zip, std::sum, гуууугл
#365 #812262
>>812259
ty che na standart, pidor? anu idi syda
#366 #812263
>>812259
>>812258
Стандарт как раз нормальный, им именно что определено, что компилятор имеет право ебать подобные выражения в рот и программиста заодно.
>>812266
#367 #812265
>>812256
Вот допустим пример

>>std::cout << "POSHEL NAHUY, PIDORAS" << std::endl;



std::cout - операнд вывода, а << оператор, который показывает ему что выводить? А тут << std::endl; как?

В сишке-то было понятно printf("POSHEL NAHUY, PIDORAS/n");

А тут << ... << играют роль () или указывают на операндов?
>>812269>>812270
#368 #812266
>>812263

> компилятор имеет право ебать подобные выражения в рот


вот как надо выкидывать в биореактор макак, пишуших подобные выражения
#369 #812269
>>812265
int a = 4 + 5 + + 9;
std::cout << "raz" << "razraz" << "pssh";
>>812270
#370 #812270
>>812265
>>812269
проебался с лишним плюсом, ну ты понел
>>812273
#371 #812271
>>812258
Почему не определено? Сначала же ++ делается. А потом все остальные операции
#372 #812273
>>812270
То, что ты проебался - я понял, но непонял, что ты имел в виду.

В книге был пример про сочетание, но ты лучше обьясни роль << вот этого вот в коде...
>>812281
#374 #812289
>>812281
Вроде какое-то понимание уже есть. Спасиб
>>812290
#376 #812481
И тут у меня случился разрыв:

sum += val - к sum присваевается sum + val. sum = sum + val.

Это блять как? Зачем? Что за синтаксис? аААА
#377 #812486
>>812481
Готовься охуеть теперь от постфиксного ++.
>>812489
#378 #812489
>>812486
Ты имеешь в виду что-то вроде ++i, где i - переменная?

Да с этим вроде всё норм. Но вот этот += с одной стороны кажется удобным, а с другой - каким-то залупоглазым монстром
>>812525
71 Кб, 742x560
#379 #812519
>>804519 (OP)
Может кто нибудь помочь найти где я облажался? Ридеры почему-то входят в вечный wait.
http://pastebin.com/MXAcGJLv
#380 #812521
>>812481
В каждом втором если не чаще языке есть такая конструкция.
#381 #812522
>>812519
Кстати, вопрос от залётного нюфажика:

у тебя все библиотеки стандартные?
>>812526
#382 #812525
>>812489
Не, я про i++, который сначала возвращает i как есть, а потом увеличивает его на единицу.
#383 #812526
>>812522
Что ты имеешь в виду? Все что сделано include из стандартной библиотеки, да.
>>812528
#384 #812528
>>812526
Я имел в виду, что всё, что ты просписал в строках с #include - имеется в каждом компиляторе как стандартный набор
>>812532
#385 #812532
>>812528
Все которые поддерживают C++11.
#386 #812537
>>812481
Тебе удобнеt писать your_variable_name_from_any_library_numder_1488=your_variable_name_from_any_library_numder_1488+n?
#387 #812538
>>812537
Это тебе не сишка, где префиксы вместо неймспейсов.
>>812543
#388 #812542
>>812537
Забыл добавить your_library_name:: перед именем переменой.
55 Кб, 580x75
#389 #812543
>>812538
Сегодня новую картинку скачал. Красивая?
#390 #812544
>>812537
Ну чего ты так?

Просто непривычен синтаксис.

Не ругай
>>812548
#391 #812548
>>812544
Непривычно это когда +=1 пишешь вместо ++ как в питоне. Или когда пишешь var=$(echo "2.5*"$var | calc -p)
>>812554
#392 #812554
>>812548
Двачяя

Кстати, что-то не могу нормально задать условие.

Мне нужно задать чтоб программа выполнялась при i >= 0 и i<=0.

И как мне их записать? Если просто while (i<=10) - всё выполняется, но выходит за пределы 0, когда добавляю (i>=0, i<=10) - аналогично.
>>812557
#393 #812557
>>812554
А зачем тебе это надо?
>>812560
#394 #812560
>>812557
Выполняю упражнения из книги.

Кстати, я уже разобрался сам, выставив одно крайнее условие.

А что, несколько условий в while нельзя задавать? Там дальше if уже юзать, при надобности..
>>812561
#395 #812561
>>812560

>Выполняю упражнения из книги.


Перечитай главу.
>>812563
#396 #812563
>>812561
Там ничего не сказано про несколько условий.

Да, я внимательно читал
>>812564
#397 #812564
>>812563
Говори название книги и номер главы
>>812567
#398 #812567
>>812564
Липман из шапки. Упражнения к разделу 1.4.1

Говорю же, у меня всё вышло, но мне нужно знать, как ставить несколько условий в while
>>812569>>812576
#399 #812569
>>812567
and и or
>>812573
#400 #812573
>>812569
А лол, теперь ясно.

И это во всех циклах так?
#401 #812574
>>812481
sum += val -- увеличить sum на val
prod *= num -- домножить prod на num
etc.
#402 #812576
>>812567
Там нет упражнения в котором нужно or или and. Там все упражнения про то чтобы сначала задать начально значения переменой, а потом по 1 уменьшать его или увеличивать пока оно не примет другое значение.
>>812579
#403 #812579
>>812576
Я в этом разорбрался. Но я вспомнил одну задачку на си, и мне вдруг стало интересно, как это делать тут.

Гугл выдавал мне совсем не то, что нужно было
#404 #812611
В чём разница между Qt 5.5 (700+ метров) и Qt Creator 3.5 (80 метров)? Какой качать своим говноинтернетом, чтобы и консольные приложения кодить и ГУИ когда нужно?
>>812638>>812667
#405 #812638
>>812611
Креатор
>>812642
#406 #812642
>>812638
Так а в чём разница?
>>812645
#407 #812645
>>812642
в размере

трудно почитать фичи с офф сайта
#408 #812654
Где сейчас C++ реально используется?
Гуй умер, движки на крестах уже никто не пишет, LLVM вроде пока цветет и пахнет.
Просто где?
#409 #812657
>>812654
ML, gamedev...

Да нихуя не умерло, чё ты пиздишь? Бекенды до сих пор строчат
>>812723
#410 #812667
>>812611
Qt creator это среда разработки aka блокнот с автодополнением
Qt 5 это сам фрэймоворк
#411 #812723
>>812657
Ни одна из этих областей не умерла, вась. Ну разве что в мечтах веб- и Ява макак.
>>812725
#412 #812725
>>812723
Промахнулся, сюда
>>812654
#413 #812742
>>812519
Бамп.
>>812745
#414 #812745
>>812742
За время твоих бамповмог бы и сам проверить.

Что на выхлопе у тебя, где комменты? Думаешь, кому-то нужно тратить своё время и копаться в говнокоде? Прояви уважение
#415 #812768
>>812519
У тебя не совсем верно написан тестовый пример.
Он не отражает сути задачи.

В твоём примере ошибка в строке 25 (http://pastebin.com/MXAcGJLv).

>while (! readers_count >= 0) can_read.wait(lock);


Тут мы должны ожидать сообщения от can_read, только когда другой поток пишет.

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

Твой while (! readers_count >= 0) получается вообще избыточен. У читающего потока вообще никогда не возникнет ситуация, когда он не может читать. Но никакого data race не случится. Т.к. на всю работу с файлом у тебя стоит мьютекс.

Вот и выйдет, что первым начнёт работать тот, кто быстрее залочил мьютекс во время создания потоков.
>>813459
#416 #812823
>>812654

>Где сейчас C++ реально используется?


Нигде не используется, вакансий нет, проходи в другой тред.
#417 #812998
Братья, я начинаю понимать, что плюсы - это пиздец.
Ребята, буду благодарен за помощь в моих вопросах, есть недопонимание и пробелы, которые я хотел бы заполнить. большими хуями

1) Есть тридва файластула:
main.cpp, ClassName.h, ClassName.cpp.
Соответственно, там лежит главный файл с main'ом, описание класса, реализация класса. В файле реализации - Classname.cpp, я подключаю только header-файл -
ClassName.h, в header-файле, я вверх вставляю только такой код (защита от повторного включения)

#ifndef __CLASSNAME_H__
#define __CLASSNAME_H__
#endif

Внимание, вопрос: как работает эта конструкция, и что за константа __CLASSNAME_H__? чему она равна?
2) Как из главного файла - main.cpp (в котором я подключил только header-файл ClassName.h я вижу реализацию данного класса? Почему я не должен подключать файл с реализацией с помощью директивы
#include "ClassName.cpp"

Заранее, спасибо, ребята, если что пост большой, мог обосраться с разметкой.
>>813006
#418 #813006
>>812998
upd.
Попробовал, оказывается без

>>#include "ClassName.cpp"


ничего не работает.

Тогда возникает еще вопрос: надо бы по-хорошему и в файл с реализацией защиту от повторного включения сделать?

И вообще нахуй нужны .h файлы, можно было бы хуярить реализацию вместе с описанием, помогите, почему я такой тупой?
#419 #813010
>>813006
Хуйню написал.
Никто и никогда cpp не инклудит, ебанько.
#420 #813011
>>813010
всмысле, блядь, тебе пруф что ли предъявить?
#421 #813025
>>813021
блядь, тварюга, ну пожалуйста, я читал здесь же
https://code-live.ru/post/separate-compilation-cpp/#_1
у того пидораса все работает, а у меня нихуяя,,

атятятя помоги пожалйста
>>813029
#423 #813034
>>813029
Спасибо, молодой человек, за короткий и лаконичный ответ.
#424 #813041
>>813010
я смотрю, маня, ты свои шаблоны и контейнеры не писал никогда?
>>813052>>813055
9 Кб, 639x167
#425 #813052
>>813041
Дружище, подскажи дауну - я делаю как сказал >>813006 - пидор, и у меня выводится ошибка (не может достучаться до реализации методов.

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

Ошибка пикрелейтед.
#426 #813055
>>813041
И при чем тут это к шаблонам, а тем более контейнерам? Ты даун?
#427 #813056
>>804519 (OP)
Поцоны, хочу в гейдев научиться, и, конечно кодинг.
С++ ведь подойдет?
Извиняюсь за тупой вопрос
>>813058
#428 #813058
>>813056
Нет, учи хаскель, на нём все последние ААА-движки пилят.
>>813159
#429 #813124
>>810833
>>811038
Среди этих двух спорщиков определенно прав второй. Даже если он еще в самом начале пути, он превзойдет первого в кратчайшие сроки, ибо движется вперед и, что важнее, делает это осознанно. Такие новички всегда превосходят догматичных и закостенелых гордецов.
>>813180>>813326
#430 #813158
А я вообще не знаю ничего про аллокаторы :с
#431 #813159
>>813058
Ну что ты начинаешь?
#432 #813180
>>813124
найс самоподдув)))

в душе не ебу, как можно поддерживать школьника-робота с всеголишь одной командой: "нет ты"
>>813204
#433 #813189
Что, сюда мочератор заглянул что ли?

А то смотрю, некоторые посты потёрли
>>813201
#434 #813201
>>813203
#435 #813203
>>813201
Ну хоть коней с котами не постят. Аж хорошо-то как
#436 #813204
>>813180
Я ж не Эскобар, среди этих двух долбоебов ИМХО школьник лучше, и потому победит. Но лучше бы всем тредом запилили какой-нибудь годный крестопроект, а не агрились друг на друга как псы цепные.
>>813205
#437 #813205
>>813204
А как по мне, так этот школьник - соснёт хуйца, ибо ток на двощах может срать
#438 #813321
>>813006

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


Если собираешься их инклудить, то да. Так удобно делать, чтобы быстро запилить прогу без проекта/мейкфайла - тупо заинклудить все cpp в main.cpp, и скомпилировать одной строчкой.

>И вообще нахуй нужны .h файлы


Чтобы линковщик смог соединить объектные файлы друг с другом. Каждый cpp файл компилируется независимо, и чтобы потом соединить их вместе, компилятор должен знать типы функций и структур, которые будут вызываться из других модулей.

>можно было бы хуярить реализацию вместе с описанием,


Запросто. Но тогда потребуется один объектный файл на всю программу. То есть достаточно крупная программа будет компилироваться каждый раз по несколько минут.
>>813712
#439 #813323
>>813010

>Никто и никогда cpp не инклудит, ебанько


Инклудить можно что угодно и куда угодно - это тупо конкатенация текста.
#440 #813326
>>813124
Тебе 17 и ты уже выучил циклы?
>>813339
#441 #813339
>>813326
Я уже выучил thumb ассемблер под арм, про что вы ебланы и не слышали. А я могу конвертить из кайла в гнусь легко. Циклы блять. Вот же маги тут собрались 30 летние.
>>813340>>813344
#442 #813340
>>813339
Чего такой нервный? Таблеточки принял?
#443 #813344
>>813339
А ты крутой? Знаешь нахуй никому не нужный уебищный стек технологий? Небось еще под спектрум пишешь сейчас.
>>813348>>813401
#444 #813348
>>813344
Спектрум разве что его мамка под столом ползая застала.
#445 #813350
>>811468

> Доказательство P=NP


Очевидно же. P=0 или N=1.
>>813401
#446 #813364
Продолжаю делать задачки по липману.

Мне предлагают ввести 2 числа и из них вывести те числа, которые будут в промежутке.

http://ideone.com/3xVIWj

Чёт вообще ничерта не выводится
>>813369>>813371
#447 #813369
>>813364
Упс, я кое что не туда поставил. Лол
#448 #813371
>>813364
while (0 >= 3)...
>>813372
49 Кб, 765x92
#449 #813372
>>813371
Так в чём соль: всё зависит от введённых тобою чисел. По этому я и вписал туда >= x
>>813374
#450 #813374
>>813372
Мань, у тебя z всегда будет равна нулю
>>813378>>813379
#451 #813378
>>813374
Так я ж присвоил ему значение в цикле...

Или его нахуй убрать из int?
#452 #813379
>>813374
отуда ты такой взялся? у тебя z инициализирована нулём, и по твоему условию ты никогда в тело цикла не попадёшь
>>813384
#453 #813384
>>813379
Да просто слишком буквально принял указание так прописывать переменные.

Окей, сейчас вроде работает, благодарю
#454 #813388
Бля, может ты съебешь со своими лабами и задачками? В интернете куча реализаций. Думай сам когда ошибки, смотри че компилятор. Смысл, если анон тебе поможет? Ты так даже элементарного не поймешь. Например использование неинициализированной переменной.
>>813389>>813390
#455 #813389
>>813388
fix.
Не объявленная.
#456 #813390
>>813388
У вас тут всё равно скучно, не злись.

Зато я понял и больше такого не повторится
>>813393
#457 #813393
>>813390
Ты не понимаешь, тебе нужно самому научиться разбираться в проблемах, искать решения и прочее. Ты можешь спросить в треде, как сделать хуйню_нейм лучше или какая реализация более подходящая, но никак не сделайте за меня, покажите мне ошибку и им подобное.
В шапке даже сказано что тебе стоит пойти НАХУЙ, а также что делать если в проге ошибка. Алсо, если твой котелок совсем не варит, то берешь и останавливаешь программу на каждой строчке, где потенциально ошибка и смотришь что происходит. Дебажить по простому говоря.
>>813397
#458 #813397
>>813393
Не нравится что-то скрой пост и всё. Я не заставлял тебя лезть и проверять.

Да, не мог найти ошибку, бывает. Сам нюфагом был. Отстань, короче
>>813409
#459 #813401
>>813350
>>813344

>стек технологий


ебанулись все со своим стеком технологий. а хип технологий бывает? вот же хипстеры еба. стек технологий.
#460 #813409
>>813397
Ты что блядь совсем дебил? Что нахуй за позиция, НЕ НРАВИТСЯ НЕ СМОТРИ.
Ты даже ошибки компилятора читать не можешь, на том же идеоне написано.
error: 'z' was not declared in this scope
while (z > x)
Как это перевести на русский?
Z, была не объявлена в этой области, грубо говоря, какие твои действия? ОБЪЯВИТЬ ЕЕ! Тут проблема не в ошибки, все ошибаются, тут нет ничего страшного. НО ТЫ БЛЯДЬ ЧИТАТЬ НЕ УМЕЕШЬ, ПРОСТЕЙШУЮ ОШИБКУ. Можно даже в vs кликнуть по ошибке он тебе строчку покажет. А если установить visual assist или resharper, то они даже за тебя исправят.

> Сам нюфагом был


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

Пиздец кароче. У тебя с такой позицией нихуя не получится. Лучше язык меняй вообще, цпп не очень вариант для таких как ты.
>>813416>>813417
13 Кб, 491x156
#461 #813416
>>813409
Мдэмс, а вот почему-то не было ошибок у меня. Оно просто скнопелировало, выводило или ничего, или 0 и всё. Смотри пикрелейтед

Тебе лишь бы придраться. Иди к чёрту
>>813422
#462 #813417
>>813409
Небось тянка не дала, мамка накричала решил на анонов итт сорваться? Смешно
>>813422
18 Кб, 619x804
#463 #813422
>>813416
Используй иде, а не какую-то хуету. Вот тот же vs.
>>813417
Он читать не умеет и срет в лучшем треде пра и даже не понимает какой он мудак.

Ладно, не буду больше ничего отвечать тебе. Надеюсь моему примеру последуют уже_не_ньюфаги те кто на две главы первее тебя
>>813425>>813429
#464 #813425
>>813422
У меня были проблемы, когда в int я вписал z = 0.

ты уже смотришь более позднюю версию кода, когда я оттуда по ошибке стёр переменную вообще, и не успел вернуть обратно
#465 #813429
>>813422

>Используй иде, а не какую-то хуету



Cтоит qt creator, но пока лень в интерфейсе разбираться. Лучше уж тогда vim+gcc, но там тоже нужно разбираться, так что пока достаточно и этого
#466 #813432
Кстати, у тебя не работает программа, если второе число больше первого.
>>813435>>813456
#467 #813435
>>813432
Кстати да, я думал над этим, но совсем забыл, пока разбирался "почему же оно не выводит ничего"..

Нужно подумать на досуге над этим
>>813436
#468 #813436
>>813435
Ну тип можно юзануть if и for, но как бы по книжице ты ещё этого не знаешь, так что выйдет не кошерно.

Других мыслей на этот счёт у меня нет
#469 #813456
>>813432
Ну у меня вышло, когда я переписал её на if и for, хотя до if-а ещё не дошёл.

сорян, просто поделиться не с кем
>>813458
#470 #813458
>>813456
2chpr.slack.com
>>813467
#471 #813459
>>812768
Ошибка правда в этой строке, но потому что ! имеет высший precedence чем >=, лол, чего я не знал. Спасибо.
#472 #813460
>>805461
я писал, но все было ок.
я даже не знаю чем тебе помочь, профайлером разве что посмотри, ага.
#473 #813462
>>806580
тамеры?
#474 #813466
>>807922
у Кт проблемы с именами просто
QList - это вектор
QLinkedList - это линкед лист, тот самый, с указателями
(ещё есть очередь и стек отдельно)

есть ещё QVector - хуй пойми что вообще, не использовал ни разу
>>814037
#475 #813467
>>813458
Там же по инвайтам заходить...
#476 #813468
>>808391
ну оно почти работает
>>813509
#477 #813470
>>808725
лейаут формы измени на строковы или колончатый, в него свой виджет, и сайз полиси на расятягивание
#478 #813472
>>809794
суффиксное дерево
#479 #813476
Очень прошу, помогите нубу!
Не получается собрать GDB для Qt. Есть у кого-то готовый набор файлов, чтоб забросить куда надо? (чисто для С++).
>>813481
#480 #813481
>>813484
#481 #813482
Кстати, а вы когда учились - сохраняли свои написанные проги с упражнений где-нибудь?
>>814034
#482 #813484
>>813481
Ага, отладчик такой.
#483 #813509
>>813468
codecvt_utf8 при кодировании в wchar_t на винде дает неправильный результат. UCS там даже и не пахнет.

Плюс охуенные "текстовые потоки", которые по стандарту можно инстанциировать только с char и wchar_t(который на винде 16 бит) и нельзя с char16_t и char32_t так и добавляют кроссплатформенности.
>>813546
#484 #813511
Наконец-то разобрался, как настроить креатор, чтоб терминал вылезал.

Ууууужас
>>813519
#485 #813519
>>813511
И мне расскажи.
>>813521
#486 #813521
>>813519
Не расскажу...
>>813524
#487 #813524
>>813521
Мразь.
>>813527>>813528
#488 #813527
>>813524
За это вообще никому ничего не расскажу здесь.
>>813528
#489 #813528
>>813524
Ну не ругайся.

Короче, думал, ща как в школке паскаль: один файл - одна программа. А тут на те: проекты, файлы проектов, цп.. Сложна, сложна блять... Ещё я хотел настроить vim c gcc, но он оказался ещё ебанутей креатора, так что пришлось остаться в IDE. Meh, короче

>>813527
ОКей
#490 #813546
>>813509
Только char и u8"", wchar_t ненужен.
char16/32_t — нужно (как настоящий тип, по которому можно перегружать), но не до конца понятно, где именно.
>>813644
#491 #813547
>>808425
Не понимаю, ты хочешь, чтобы стандарт Unicode на 1500+ страниц включили в стандарт плюсов?
>>813574>>813644
#492 #813571
Почему, если одна функция принимает void, например
<неважно что> g(void);
а другая — возвращает
void f(<неважно что>);
я не могу устроить композицию этих функций
g(f(<аргументы для f>));
???

Ведь по типам всё в порядке.
>>813575>>813578
#493 #813574
>>813547
В последнем драфте добавили чуть ли не 300 страниц, так что подобный ход не будет чем-то из ряда вон выходящим, лол.
#495 #813576
>>813575
Я не про указатель.
#496 #813577
>>804519 (OP)
Когда только вкатывался в программирование, учил с++. Так что классы, шаблоны, лямбды, умные указатели всё это примерно понимаю. Потом занимался питоном, жавой, шарпом. Сейчас снова надо вернуться к с++. Чего умного почитать посоветуете?
>>813581
#497 #813578
>>813571
Потому что формально g(void) не принимает void, а является полным эквивалентом g(), т.е. функции без параметров. Из-за этого void в принципе не может быть параметром, чисто синтаксически оно не распарсится так.
>>813586
#499 #813583
>>813581
Как-то слишком базого, за исключением 2-3 статей.
>>813593
#500 #813586
>>813578
Т.е. void f(...) возвращает void, но g(void) не принимает void...
Где здесь логика?
>>813596
#501 #813593
>>813583

>базого


Рекомендую Розенталя, для тебя будет достаточно хардкорно.
>>813607
#502 #813596
>>813586
Логика очень простая. Возврат void как полноценного типа оставили только ради шаблонов, чтобы можно было писать что-то вроде return f <T> (); А сценарии, в которых надо написать f(g <T> (...)) с void-функциями, встречаются гораздо реже (это вообще нечто странное - внешняя шаблонная функция должна быть грязной/методом, чтобы был смысл вызвать ее без параметров, но в то же время для нетривиальных аргументов шаблона она как-то должна использовать полученный аргумент), а поведение их - неоднозначно. Вероятно, поэтому такое и запретили. Другая причина - f (void) это C-совместимая часть (на крестах так вообще не пишут, f () короче), а когда это пилилось в C, полиморфизма, шаблонов и всей хуйни не было, и к типам отношение было проще, в духе "ну надо как-то обозначить отсутствие параметров, о, у нас void свободно, возьмем его". Все равно типы всегда были известны сразу, и было принято такое делить на отдельные инструкции, а не выебываться.
>>813598
#503 #813598
>>813596

>внешняя шаблонная функция должна быть грязной


А ты соображаешь, я смотрю. Да, это отличная идея помечать грязные функции! Почему же C++ не позволяет принимать void? Как const у методов означает thread safety, так void в параметре функции означал бы, что она имеет сайд-эффекты.
>>813612>>813654
#504 #813607
>>813593

> гордиться знанием второсортного языка

>>813656
#505 #813612
>>813598
Так подписывай каждый такой метод: "грязный сука, обосрался блядь".
#506 #813644
>>813546
char и wchar_t нужны, но для совместимости - нельзя такое выбрасывать.

>но не до конца понятно, где именно


В basic_string, basic_istream/basic_ostream и во всем, что связано с локалями (ctype, например).

>>813547
На него можно сослаться, как на стандарт C, например. А вообще нужно только добавить средства для доступа к символам строки, закодированной в разновидность utf. Да, будет доступ O(n) (или дополнительные O(n) по памяти), ну а другого решения и нет какбэ.
>>813651
#507 #813645
Поясните, нахуя нужно синхронизация доступа в недрах функции std::isalpha?
>>813652
#508 #813651
>>813644

> во всем, что связано с локалями


Забыл напомнить, что они неюзабельны, и, следовательно, ненужны.

>На него можно сослаться, как на стандарт C, например.


И что делать, когда выйдет новый стандарт юникода, после того, как сослались на старый?
>>813655
#509 #813652
>>813645
Вангую, чтобы локаль не подменили в другом треде во время вызова.
#510 #813654
>>813598

>const у методов означает thread safety


Схуяле? Пока работает const метод, может вызваться мутатор, и все, приплыли.

>означал бы, что она имеет сайд-эффекты


Небось на концептах можно будет такое сделать. Пока что есть friend-инъекция, можно помечать что угодно чем угодно, хоть и с еблей. Я сейчас пилю автоматические гарантии исключений, например.
>>814031
#511 #813655
>>813651

>И что делать, когда выйдет новый стандарт юникода, после того, как сослались на старый?


То же, что и делают с C. Вон в 17 стандарте теперь ссылаются на C11 вместо C99.

>Забыл напомнить, что они неюзабельны, и, следовательно, ненужны.


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

>Вангую, чтобы локаль не подменили в другом треде во время вызова.


Тоже так думаю. Только нахуя такое счатье, из-за которого производительность не масштабируется во времени? Хотя, Джоссатис пишет, что юзайте напрямую фацеты, когда хотите перворманса.
>>813657>>813672
#512 #813656
>>813607
Вся суть крестотреда в одной строчке.
#513 #813657
>>813655

>не масштабируется во времени


не масштабируется линейно по кол-во потоков

самофикс
#514 #813672
>>813655

>Концепция локалей нормальная, но тупо сделали, что хуйня портабельная.


Это такой принцип развития C++: взять нормальную концепцию и сделать тупо.

Да, thousand_sep() возвращает char_type, должен const char_typr*. Ну там много подобного.

Так что не нужны.
>>813694
#515 #813688
>>813698
#516 #813694
>>813672

>Это такой принцип развития C++


Это такой принцип развития любой хуйни, создаваемой комитетом. Каждый в свою сторону одеяло тащит.
#517 #813698
>>813688
1) size_t int n - два типа одновременно. То же самое для массива
2) size_t, j - запятая лишняя.
3) j += 1 - тут декремент нужен, а не инкремент.

Вообще, i += 1 - это как-то не по-нашему. Лучше ++i.
#518 #813701
>>813698
2) не лишняя, там i пропущено
>>813705
#519 #813705
>>813701
А, и вправду. Не заметил.
Не код, а стыд какой-то.
#520 #813710
>>813698
Для массива не лишняя, long long ~ long long int, как и для других спецификаторов размера.
#521 #813712
>>813321
Спасибо
>>813006-даун
#522 #813752
>>813698
4) j=i-1
#523 #813928
Какие есть годные онлаен иде под кресты с дебагером?
>>813931
#524 #813931
>>813928
kuriata desu
#525 #813953
>>804519 (OP)
Иногда один С++ заебывает, хочу почитать для развития что-нибудь про алгоритмы и организацию самих железок. Есть что-нибудь для ньюфагов, но без воды?
>>813955
#526 #813955
>>813953

>без воды



А сколько же ты литературы перевернул, что во всех вода?
>>813964
#527 #813964
>>813955

>А сколько же ты литературы перевернул, что во всех вода?


Вангую в нем шкальника, который месяц изучает cpp и чет уже ПРЕСЫТИЛСЯ.
>>813965
#528 #813965
>>813964
Пусть буфер отчистит
#529 #814031
>>813654

>>const у методов означает thread safety


>Схуяле?


Соглашение такое, блеать.
>>814046
#530 #814034
>>813482
Зачем? Там же пиздец!
>>814038
#531 #814037
>>813466
С каких это хуёв QList вектором стал? QVector это аналог std::vector
#532 #814038
>>814034
Как шпаргалку.
Ну мало ли
>>814039
#533 #814039
>>814038
Крайне херовая будет шпаргалка
#534 #814046
>>814031
Проиграл с маньки. Ну давай почитай const-методом из вектора, пока туда пишут. Такой-то threadsafe будет.
>>814068
#535 #814068
>>814046
Мы вам перезвоним. давай ты не будешь тут кукарекать, если не знаешь нихуя
>>814080>>814099
#536 #814080
>>814068
Ты опять выходишь на связь, школьник? Пошел нахуй отсюдова со своими аргументами уровня /po
>>814342
#537 #814099
>>814068
Если какие-то опущенцы придерживаются небезопасных соглашений, то это не значит, что нужно повторять за ними. Показывай авторитетный стайлгайд в качестве пруфа или молчи вечно.
>>814343
#538 #814200
Думаешь, такой, разбираешь пример, но у тебя не получается объяснить некоторые моменты, которые вводят тебя в заблуждение.
И тут ты срываешься, хочешь идти писать на борде, мол " что это за хуйня ", но понимаешь, что тебя начнут гнать палками как нюфаню и тут... Приходит озарение, тебе как-будто открывается истина и до тебя доходит вся суть того, над чем ты ломал голову пол часа.

Спасибо, анон, что ты есть
>>814204
#539 #814204
>>814200
Та не за что.
Вот тебе уточка https://duck.mail.ru
>>814205>>814207
#540 #814205
>>814204
Не, мне такое низя. Я ведь ещё учусь и должен сам находить кривости кода. Но схоронил на всякий
#541 #814207
>>814204
Аааа, я понял, к чему ты клонишь!
https://ru.wikipedia.org/wiki/Метод_утёнка

Тип сформуливровав запрос, я сам дал на него ответ?
Первый раз о таком слышу. Хех
72 Кб, 708x133
#542 #814337
Чёт я таки не понял, где взять этот файл..
>>814338
#543 #814338
>>814337
А лол, я нашёл пак файлов для 4го издания...

Это ведь ничего страшного?
#544 #814342
>>814080

>Ты опять выходишь на связь, школьник?


Ты до сих пор так же туп?
#545 #814343
>>814099

> опущенцы придерживаются небезопасных соглашений


Опущенец, это предполагает std-либа в отношении тех классов, которые ты ей подсовываешь.

> Показывай авторитетный стайлгайд


> авторитетный


Тупое быдло с зековской психологией не думает, оно опирается на афтаритеты. Ну ладно, я терпим к недостаткам людей и к быдлу и могу дать ему ссылку на авторитет https://herbsutter.com/2013/05/24/gotw-6a-const-correctness-part-1-3/
>>814662
72 Кб, 429x340
#546 #814662
>>814343

>утверждает, что константность метода означает потокобезопасность


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

>>814685
#547 #814685
>>814662

>>утверждает, что константность метода означает потокобезопасность


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



Цитата из "анрелейтед" статьи

> Concurrent const operations on the same object are required to be safe


Чуть ли не буквально первая строка твоего гринтекста.

Ты, видимо, просто английского не знаешь, вот и не понял.
#548 #814718
Говноеды, у вас на C++ можно сделать так? https://ideone.com/j0GTgp

Насчет второго вывода: интерпретатор на идеоне говно. Юзайте ракет.
>>814729
#549 #814729
>>814718

>2016


>не иметь обратных итераторов


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


reverse(begin(seq),end(seq));
reverse(rbegin(seq),rend(seq));
>>814730
#550 #814730
>>814729

>2016


>не иметь ranges



другой анон
#551 #814747
>>804519 (OP)
Что писать в резюме, если опыта работы по C++ нет?
>>814753>>814857
#552 #814753
>>814747
Что ответственный, коммуникабельный, умеешь работать в команде.
>>814764
#553 #814764
>>814753
Ну серьезно.
>>814864
#554 #814857
>>814747
No commercial development experience
>>814882
#555 #814864
>>814764
Ceрьeзнo
#556 #814882
>>814857
В том и вопрос, что commercial development experience есть, а C++ experience нету. Писать что теребил буст и opengl?
#557 #814904
>>814882
Не забудь упомянуть что письку теребил.
#558 #814914
>>814882
No C++ commercial development experience
#559 #815140
>>814882
Пиши, что ешь борщи. Все поймут.
sage #560 #815528
Аноны, в чем профит от использования QJSEngine QtScript?
#561 #815578
А лучше, чтоб не врать - ничего не пиши
sage #562 #816391
Котаны. Кто-нибудь может показать хорошую реализацию кортежа? Знаю есть в бусте и turple в stl. Но в stl читать не могу, слишком нуб, а буст юзать не хочу ну и прочитать тоже не смогу.
>>816392
#563 #816392
>>816391
сажа прилипла
154 Кб, 686x626
#564 #816402
Мне вот тут интересно стало, сколько же бабла этот плешивый пес поднял на свои ссаных книжульках, где он на тысячах страниц копипастит одни и те же примеры: "как создать класс", "как создать функцию", "пишем калькулятор"? Ей богу, при всей сложности плюсов, это самый примитивный и недоразвитый язык с т. з. пользователя.
>>816405>>816406
#565 #816405
>>816402
Ах да, самые тупорылые презентации у страуструпа, саттера и мейерса, три старых клоуна-гомоске блять. Еще и этот хуй со своими патлами седыми. Зашел посмотреть что там новенького в плюсах на каналы какой-то конфы 2014-2015, воз и ныне там, мастодонты показывают как создать переменную, лямбду, метод и прочее капитанское говно по полтора часа. Пиздец, приплыли. МЫ ЖЕ БОРЕМСЯ С КОМПЛЕКСИТИ. Даже на WWDC такой хуйни нет, там только по 20 минут намекают на новое апи, а потом дырявые аплодируют когда оно появляется на экране.
#566 #816406
>>816402

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


Ей богу, не хотел оскорбить местных бичар, только хотел сказать, что прочитав книгу 1000 страниц по С++ ты научишься читать строку из файла, применяя аж целую СТАНДАРТНУЮ БИБЛИОТЕКУ и ИТЕРАТОРЫ и АЛГОРИТМЫ! А после первого туториала по питону или какому-нибудь еще говну уже можешь сделать твиттер, онлайн магазин и фейсбук. Ну вы понели. Я вообще не знаю нахуй я сюда это пишу, я вас обмудков и за людей то не считаю, лол.
#567 #816408
Блядь, все всё поняли. C++ сосет хуй, страус дебил и нихуя не умеет. R, D, RUST и прочая хуйня убийцы C++, он нигде не используется. Порог вхождения большой, функционала мало. Надо осилить овер 9000 страниц, чтобы написать свою первую шаблонную функцию, которая складывает 2 переменных. Теперь можешь сходить нахуй, вас тут таких каждый третий.
>>816410
#568 #816409
>>812654

>C++ реально используется?


Я на мобилах использую. А так — нигде, мертвое говно, нинужно. Двачедауны из этого треда 100% не пишут ничего на плюсах за деньги, готов на это квартиру поставить.
мимо хейтер всего живого
#569 #816410
>>816408
Пошел нахуй пидор гнойный, в глаза ебешься или просто тупой блять? Я тебе про фому, ты мне про ерему, мне на тебя похуй, на твой ебучий си++, на твоего анального бога страуструпа, раст, ди, р и прочее говно. Я эти базворды в резюме писал когда ты похапе осваивать начал. Мозги включи, мудень ты педальный, я где-то написал что у меня проблемы с изучением си++? Или что мне его надо изучать? Я поднял конкретно один вопрос — страуструп лох, его книги самые тупые, самые дорогие, а презентации самые уебанские. Одно видео рича хикки заводит больше, чем все, что высрал труп страуса за всю свою жизнь. Я жалею 1200 рублей, за которые я купил С++ что-то там этого пидораса в две тысячи каком-то году. Просто тогда все дрочили на эту парашу и без бумажной книги было не тру.
>>816411>>816412
#570 #816411
>>816410
Ах да, еще ваша съебавшая через пизду за бугор аленка си++ с ванькой который душил питона и перекладывал бумажки в хуяндексе, блять, два гениальных программиста, на зарплате офисное кресло пропукивали, удалите нахуй этот говноблог из оп-поста, стыдно смотреть.
#571 #816412
>>816410
Конечно страуструп тупой хуесос без навыков. Какой-нибудь школьник в треде уже пишет лучше чем он и излагает материал проще/понятней.
Он же всего лишь создал С++, стал первопроходцев в ООП. Так по хуйне.
Предлагаю всем хуесосить его, нихуя в жизни не достиг. Пердун старый блядь.
>>816414>>816461
#572 #816413
Я укатился, обтекайте, пидорахи. Нюфаги, не учите это говно, реально мертвая хуйня. Чтобы получить профиты от плюсов надо быть сам себе режиссером, вам этого на первые лет пять не видать, да и не каждому хочется. Драйв и движ только там, где много людей и клиентские бабки есть — сейчас это мобилы. Для души ебитесь с фп.
#573 #816414
>>816412
Ты в натуре ебаный баран. Прочитай еще раз, клоун, мои послания и достигни, сука, просветления.
>>816416
#574 #816416
>>816414
Нет.
Я хуевый самбист, ведь ни раз опускался до мата.
Но мать учила быть сильным и это вещь многогранна.
#575 #816461
>>816412

>стал первопроходцев в ООП.


Ох лол...
#576 #816475
Можно ли QPersistentIndex передавать аргументом в другой класс?
Скажем, есть таблица, а есть виджет для редактирования содержимого клеток.
Могу ли я во второй передать этот индекс и оставить его там? Или будет бобо если в табличке что-то поменяется?
#577 #816788
Сап, аноны. Хочу установить эту вещь(Qhttp) для создания своего http сервера на qt, вот ссыль: https://github.com/azadkuh/qhttp
Установка запарывается на этапе qmake. Возникает ошибка "Unable to generate UUID" гугл по этой теме результатов не дал. Может я что-то криво собираю? Работаю на винде. Добавил qmake в Path. Версия qt - 5.7 или для корректной работы qmake нужно сделать что-то еще?
#578 #816843
Сап, будущая студенота, первый курс.
Что лучше прочитать, если я уже знаю базовые принципы программирования?
1. Страуструп
2. Рао "Освой с++ самостоятельно"
#579 #816845
>>816843

>fix


>Что лучше почитать только из этих двух вариантов

#580 #816963
>>816843
Главное осваивай ООП, шаблоны, stl. Офк ты можешь прочитать 1000+ страниц книги для новичков. Но ты же уже знаешь их). Поэтому решай всякие задачки.
Например сортируй векторы лямбдой, напиши свою структуру данных (словарь, стэк, вектор), простенькую игру. Лучше учи алгоритмы и паттерны.
А вообще ты пиздоглазое мудило и я ебал твою мать, в шапке все написано.
#581 #817059
>>816843
Ну если ты познал уже базовые принципы С++, можешь почитать книгу джеффа элджера - http://www.sugardas.lt/~p2d/books/Eldger.pdf
Там речь идет о довольно интересных темах.
>>817203
60 Кб, 540x540
545 Кб, 1915x963
#582 #817145
Решил почитать Страуструп "Программирование Принципы и практика с использование с++"
Все шло гладко, пока не дошел до главы, в которой описывается работа с интерфейсом, а именно с библиотекой fltk. Уже четыре часа я с ней бьюсь и не могу запустить проект. Сделал все, как описано на сайте http://www.c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/FltkInstallVC.html
Вот скрин выполнения, кодировка в ошибках меня пугает.
IDE msvs 2015.
Выручайте господа, я уже в отчаянии.
>>817150
sage #583 #817150
>>817145
Спермопроблемы.
#584 #817203
>>817059
Блядь. С виду очень годно. Добавили бы в шапку штоле.
мимо
Ононим #585 #817235
Мде ребят, я тут охуел уже от кучи скобок, точек с запятой и базовых функций для хеллоу ворда и калькулятора, а так же завис от .... девелопер уровня - векторных просчетов и матриц...
А индиги выше уже вкатываются в убийцы Crysis ( Warhead, 2, 3 ) И прочие шляпы.
Дохуя блять умные, а гуманитарный вуз со второго курса мозги очень сильно разжижает отсутствием матана и вообще какой то практики. Я в этом плане с 23 уровня деградировал.
#586 #817299
Поясните про const. Настолько ли полезная вещь как пишет Мейерс?
>>817373>>817593
#587 #817373
>>817299
Да. Пиши везде, где можешь
>>817570
#588 #817570
>>817373
Обычная < const < constexpr < отсутствие переменной.
#589 #817593
>>817299
Да, меньше багов
#590 #817999
Сука, убивал бы за перегрузку арифметических операторов, делающую не то, что от неё ожидается. Написано умножение, а на самом деле нихуя не умножение. Три часа баг искал.
>>818219
#591 #818005
На крестах можно сделать всё что угодно? Как сделать прогу которая включает чёрный экран на телевизоре при нажатии какой-нибудь кнопки на пульте, но звук при этом не отключает? Где вообще про программирование для телевизоров пишут?
>>818070>>818849
#592 #818053
Посоны, в программинге недавно. Поясните за такую хуйню:
Вот есть у меня устройство. Для него установлен официальный драйвер. Хочу использовать этот драйвер для управления устройством, потому что официальное приложение неудобное, а аналоги платные. Суть в чём, как мне использовать хуйнейм-драйвер? Нихуя гугл не помогает, везде статеечки как НАПИСАТЬ драйвер, но я это в рот ебал, мне нужно готовый использовать
>>818070
#593 #818070
>>818005
Этот вопрос решается на стороне телевизора.
Тебе нужна его прошивка, которой нигде не будет.
Теоретически её можно сдампить, а дальше долбить её дебагером.

>>818053
Если разработчик не дал никаких официальных API для работы с его драйвером, то ты никак не сможешь его тыкать напрямую.
Твой выход - реверс протокола.
Сначала погугли, вероятно кто-то уже всё отревёрсил и тебе осталось взять только нужную либу.
Если нет, то ставишь сниффер на тот вид связи что у железки.
Смотришь пакеты и выстраиваешь принцип работы.
>>818079
#594 #818076
Дочитываю книгу из раздела "для ньюфань" из оп поста.

Уже не терпится написать что-нибудь полезное.
Придумал для себя удобный "менеджер задач".

Так вот в чём вопрос. Стоит ли прямо сейчас читать книги из следующих разделов (Скотта Мейерса и т.д.) или лучше сейчас попробовать так поковырять, а потом вернуться к теории?
>>818849
#595 #818079
>>818070

>Этот вопрос решается на стороне телевизора.


>Тебе нужна его прошивка, которой нигде не будет.


>Теоретически её можно сдампить, а дальше долбить её дебагером.


Покажи книгу которая научит
>>818087
#596 #818087
>>818079
К сожалению в ревёрсинге я не силён.
Занимался им только на базовом уровне.

Попробуй посмотреть в сторону крякинга.
Там ты получишь нужные базовые знания инструментов, асма и принципа работы программ.
Конечно тебе нужны знания ассемблера, причём на твоём тв он, вероятно, будет несколько другим.
#597 #818219
>>817999

>Сука, убивал бы за перегрузку арифметических операторов


И ещё так убого сделанную. Не могли сделать как в хачкеле, чтобы можно было делать свои операторы и задавать им приоритет и ассоциативность
WinApi #598 #818483
В шиндовсе можно запустить процесс как часть другого процесса? Ну чтоб просто отдельный тред не создавал, а рядом с которого вызвали работал.
>>818574>>818849
#599 #818548
ОП-хуец, создавай новый тред уже
>>818576>>818960
#600 #818574
>>818483
Нет. Можно сделать поток
#601 #818576
>>818548
Оп, похоже, попал под автобус с десяток тредов назад.
>>818678
#602 #818678
>>818576
Бывалый крестухан редко на улице бывает, по этому это очень маловероятно.
>>819344
#603 #818846
Как отвязать vs2015 от версии винды?
Версию фреймворка при сборке поставил 3.5, потыкал все что только нашел - все равно на батином ноуте с неапдейченной семеркой не запускается (ошибка при запуске 0xc000007b).
говноедская студия ненавижу блядь сука сука
#604 #818849
>>818483
http://www.rohitab.com/discuss/topic/40262-dynamic-forking-process-hollowing/
>>818076
Пиши как только есть желание, опыт важнее теории
Будешь идти в контору - лучше прочитай все
>>818005
Если ты про современные ящики типа lg smart tv то на офф сайтах есть апи, поковыряй там
>>819067
#605 #818951
Пиздец аноны, хелпаните. Начитался всякого говна из шапки. Хочу что-то делать, но не знаю что.
Может найти какой-нибудь опенсорс, где меня будут учить, а я буду прогать для них за спасибо?
Куда дальше развиваться? Что можно делать?
#606 #818960
>>818548
C++ ненужон
#607 #819067
>>818849

>http://www.rohitab.com/discuss/topic/40262-dynamic-forking-process-hollowing/


А если приложения разной разрядности?
#608 #819246
Ступил и установил qt. Я им не пользуюсь, а qt creater по дэфолту цпп файлы открывает. Как мне всё что установилось удалить? Убунта.
>>819254>>820479
#609 #819254
>>819246
sudo apt-get remove qt?
>>819492
#610 #819344
>>818678
Как раз таки такому аутисту легче под машину попасть.
>>819495
#611 #819492
>>819254
А это точно удалит весь qt? У меня даже папка в home с ним создалась. Раньше такого никогда не было.
>>819623
#612 #819495
>>819344
На самом деле он писал какой-то йоба проект и несколько тредов назад закончил. Потом нажал кнопку компилировать и до сих пор ждёт пока компиляция завершится.
45 Кб, 590x383
#613 #819601
Привет. Посоветуй книжку по тестированию ПО.
>>820152
#614 #819623
>>819492
Из домашней директории ничего не удалит.
>>819833
#615 #819833
>>819623
Нет такого пакета qt
>>819860
#616 #819860
>>819833
Зато есть пакет Яровой.
#617 #819957
Простите, господа, но не подкахут ли увадаемые доны, где можна достать код для

> Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++

>>819958
#619 #819959
>>819958
Добра. Спасибо. Я просто слепошарый немного, не увидел Downloads
#620 #820152
>>819601
Бмп
#621 #820479
>>819246
Бамп
#622 #820501
В коде while(a[i++]) и в цикле i может меняться. Это неопределенное поведение или так можно?
>>820536
#623 #820536
>>820501
Можно. Но не нужно
#624 #820537
Перекатываться то будем? ОП подох походу, есть у кого шапка?
36 Кб, 734x311
8 Кб, 703x111
#625 #820555
Как заставить MVC жрать UTF-8?

Исходники в UTF-8, пикрелейтед хуита. В убунте на кодблоке все с кириллицей нормально. Если перевести через какой Sumlime в виндокодировку, все сразу в MVC ок, но какого хуя там должна быть виндокодировка в 2015й то версии?
>>820801
#626 #820573
Стих:

Что-то ОП не подоспел
и конкретно охуел
не способен в перекат
ОП-хуец дегенерат
Наконец-то кое-как
Мы решились напустяк
Запилили тред мы новый
Аутируя как совы
А точнее как сычи
Братья-боги крестухи

И пасту заебеньте с перекатом, может ОП воскреснет к след. треду.
>>820575
#627 #820575
>>820573
Только грамм. ошибки поправьте
На пустяк
#628 #820801
>>820555
бамп вопросу в утопленном треде
#629 #820859
Читаю о виртуальных методах и появился вопрос (не связанный, впрочем, с виртуальными методами напрямую).

Есть у меня объекты Класс и Сабкласс, но храню я их всех в массиве с типом Класс. Как мне в лупе понять, какого именно класса объект и сделать с ним какие-то действия, кроме проверки dynamic_cast'ом? Возможно ли это, если у базового класса нет виртуальных? Или в этом случае и компьютер даже не в курсе, что там объект другого типа, т.е. на стадии компиляции уже всё закрепляется?

То есть, что-то такое:
MyClass a;
MySubClass b;
MyClass •arr[2] = {&a, &b};
for (int i = 0; i < 2; i++){
if (type(arr) == MyClass){
arr->baseMethod()
} else if (type(arr) == MySubClass){
arr->subClassDataMember = 20;
}
}


Я понимаю, что так делать не стоит и нужно менять архитектуру приложения, но никакого приложения нет, просто возможность интересуют.
>>820869
#630 #820869
>>820859
У базового класса может не быть чисто виртуальных (pure virtual) методов, тогда ты сможешь создать объект этого класса.

Если есть чисто виртуальные методы, то тогда ты просто не сможешь сделать объект базового класса, т.к. в таблице вирт. функций у тебя не будет реализации этого метода.

Проверить является ли класс базовым или наследником без всяких изъёбов можно только через dynamic_cast.
Но ты в любом случае не сможешь обратиться к данным/методам наследника, если работаешь с базовым.

Я бы тебе пару примеров накидал, но мне пора на вёсла.
>>820877
#631 #820877
>>820869
Не, чисто виртуальные я ещё не трогал (главу не до конца дочитал, лол).

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


Да, про это я что-то забыл. А как-нибудь можно затайпкастить там, но с сохранением данных наследника?
Просто (MySubClass)•arr не сделать же, потому что вызывается конструктор MySubClass(const MyClass *o), ну и очевидно, что из объекта o не достать subClassDataMember, потому что проблема что до каста, что внутри конструктора одна и та же.
>>820879>>820932
#632 #820879
>>820877

>const MyClass *o


const MyClass &o, то есть.
#633 #820932
>>820877
Плохо понял о чём ты.
Тебе ничего не мешает кастовать указатель. Можешь гонять его как тебе удобнее. static_cast или dynamic_cast.

https://ideone.com/Q3qnZv
Вот я сохраняю и меняю данные наследника.
Менять данные напрямую вообще не очень хорошо. Всё желательно делать через методы.
В качестве исключений могут быть простенькие структурки с каким-то простым набором данных.
>>820955>>821249
#634 #820955
>>820932
А, ну да, лол, чего это я. Спасибо.
#635 #821184
Офигеть. Тред искал 10 минут. Как он так низко пал?
>>821199
#636 #821199
>>821184
125 постов как в бамп лимите. Уроды перекот не пилят.
#637 #821249
>>820932
Чёт я тебя слегка дезинформировал.
Используй dynamic_cast, когда тебе нужно проверить возможность каста. Или тебе нужно обыграть это.
Короче, dynamic_cast для runtime.

static_cast для compiletime. В любом случае используя static_cast, ты должен быть уверен что такое преобразование возможно.
#638 #821403
>>821417
#639 #821417
>>821403
Что это за хуйня? И с хуёв он официальный?
>>821424
#640 #821424
>>821417
Потому что опа больше нет
#641 #826378
Сюда ещё кто-нибудь заглядывает?
Тред утонул или удален.
Это копия, сохраненная 25 августа 2016 года.

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

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