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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
176 Кб, 600x402
Оффициальный™ традиционный® C++ тред #26 #692400 В конец треда | Веб
Гори в аду, злокозненная свора!
Упившись властью, ты умом сгнила,
Погрязшая в сомненьях и раздорах!

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

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

Пока ваш пленум спорами объят,
Приступит к делу колыбель порока,
И Билла псы их к жизни претворят.

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

Коль ересь преимущество дает.


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

TL;DR

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

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

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

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


FAQ

Мотивация

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

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

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

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

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


Литература

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

  • Для нюфань

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


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

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


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

  • Best practices

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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


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

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

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

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


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

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


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

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

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

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

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

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

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

  • boost

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

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

    Литература:


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

  • Qt

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

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

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

    Литература:


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

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

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

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

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


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


#2 #692430
ОП-пик 17 из 17, но почему шапка проёбана?
>>692445>>692446
#3 #692431
>>692400 (OP)
ОП-хуй шапку проебал.
>>692445>>692446
#4 #692445
>>692430
>>692431
Вы видели тред где решали какая шапку будет? Недавно был. Суть в том что у старого опа лапша в шапке, а у нового не крутой оп-пик, нет стишка и многое из шапки выпилил. Мод решил сделать хтмл разметку для шапки старого опа чтобы не было такого спагетти. Теперь оп пости стишок с оп-пиком и через форму жалоб сигналит моду про новый тред, а тот редактирует шапку вставляя хтмл код в неё. Исходники шапки на гитхабе и скоро такое на всех тредах будет. Надо просто самому хтмл разметку написать и через пул реквестов сюда https://github.com/pr-hats/2ch.hk-pr-Hats/ отправить.
>>692459
#5 #692446
>>692430
>>692431
Шапку теперь моча заливает уже после создания треда, нестандарт же.
#6 #692449
>>692400 (OP)

>Вы модули отвергнули в обрат.


Объявили что модулей не будет?
>>692451>>692452
#7 #692451
>>692449
Да, не успевают и выделили модули в отдельную TS
#8 #692452
>>692449
В семнадцатом точно не будет, НИГАТОВО.
>>692454
#9 #692454
>>692452
Семнадцатый выйдет в 16ом году? А когда следующий?
#10 #692459
>>692445
C# 10 дней назад свою шапку туда залили, а мод что-то не добавляет её им. Кстати такая система позволит всегда свежие ссылки на треды в шапке прикреплённого треда писать.
>>692464
#11 #692464
>>692459

>Пока что фича экспериментальная


Еще в том треде писали, что пока что только на крестотреде тестируют. Потом уже всем объявят, если взлетит концепция.
>>692470
934 Кб, 1000x1000
#12 #692468
Анон, объясни за статью, почему там так хуесосят с++? http://lurkmore.to/C++
#13 #692470
>>692464
Что тут тестировать? 2 мелких комита за всё время. Никакого прогресса и жалоб. Пора по всем тредам пройтись и с плашкой мода сказать чтобы тоже свою шапку пилили. Надо только за jsом следить чтобы туда лишнего не записали.
>>692482
#14 #692472
Короче, 17 стандарт как-то НЕ ОЧЕ.
Из добавленных фич:
- filesystem
- всякое говно из буста по типу optional, any и пр.
- всякое минорное говно по типу добавления генераторов в <random> и пр.

Ни concepts, ни modules, ни networking, ни Transactional Memory, ни networking не ожидается.
Найс, ждем C++20
#15 #692475
Вопрос. А есть ли вообще нужда использовать new и delete когда есть умные указатели?
>>692486>>692487
#16 #692476
>>692468
Неосиляторы, сэр.
#17 #692477
>>692468
Почему тебя волнует что там пишут какие-то долбаёбы?
>>692480
#18 #692478
>>692468
Там вообще вся и всех хуесосят, если ты не заметил.
#19 #692480
>>692477
Стало обидно за язык просто, я нюфаня, хочу разобраться что же лучше.
#20 #692482
>>692470

>Никакого прогресса и жалоб


Оставлю тут свой отзыв. Как его до мода донести не знаю.

1. Убрать из шапки упоминание про [code] т.к. к крестам это не имеет отношения и им тут не пользуются.
2. Заменить все сокращённые ссылки на не сокращёный. Это для удобства. Они всё равно не показываются.
3. У меня не отображаются полоски между колонками в таблице. Наверно нужно как-то переписать чтобы везде работало.
4. Полоски между разделами в шапке при дэфолтном оформлении плохо видно. Заметнее их надо сделать. Или сразу цвет указать чёрный такой чтобы на всех стилях и на архиваче заметны были.
5. В старых тредах на архиваче проебались картинки. Тот кто эти треды заливает уже завёл свой фликер аккаунт для хранения картинок?
>>692489
#21 #692486
>>692475
Почти нет, но в легаси коде и коде слоупоков возрастом 30+ оно встречается.
#22 #692487
>>692475
Что это вообще? В какой книге поясняют за всё нововведения 11ого стандарта?
#23 #692488
Однажды на собеседовании меня спросили, что такое dependency injection. Этот термин я услышал впервые и честно об этом сказал.
Мне ответили, что не знать это стыдно и на работу меня не возьмут.
Прийдя домой, я посмотрел, что же это такое. В тот момент, когда я увидел, что это обычное уменьшение связанности, я понял: Java - говно, а джава-бляди - сраные макаки, которым нужно объяснять, что такое уменьшение связанности, вводя специальный паттерн.
>>692494>>692504
#24 #692489
>>692482
Отправь pull-реквест в репу и не выебывайся.
>>692492
#25 #692492
>>692489
Меня на гитхабе нет, не знаю хтмл и последний пункт не к шапке относится.
#26 #692494
>>692488
Просто ты соснул и не знаешь азбучный термин, и вместо того, чтобы признать, что соснул, обвиняешь других.
>>692500
#27 #692498
>>692472

> Короче, 17 стандарт как-то НЕ ОЧЕ.


>Из добавленных фич:


он уже выпущен чтоле, ёба? Нет? Вот и иди нахуй со своим тыканьем пальцем в небо.

>всякое говно из буста по типу optional, any и пр.


Это говно в std::experimental уже 2 года.

>Ни concepts, ни modules, ни networking, ни Transactional Memory, ни networking не ожидается.


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

Ты, кстати, пропруфаешь мб? если правду написал, то го в дж тред посаны))
>>692502>>692622
#28 #692500
>>692494
Бля, да это же даже не паттерн, это, сука, основной принцип ООП, блядь, - АБСТРАГИРОВАНИЕ. Именно поэтому в GoF об уменьшении связанности написали один абзац в первой главе. Это и так подразумевается, когда ты пишешь ООП-код. А Dependency Injection - изобретение java-макаки, чтобы донести простую истину до других java-макак, которые не читают классические труды по проектированию.
>>692896
#29 #692502
>>692498
Это ж новости с последней конференции. Concepts, TM, modules отложили до лучших времен(нужно набрать больше user experience)

Если вычесть эти фичи, остается то, что я написал.
>>692506
61 Кб, 588x381
#30 #692504
>>692488

>Однажды ты спросишь меня,что что я люблю больше:low coupling или dependency injection,я отвечу-low coupling,ты уйдешь так и не узнав что dependency injection это low coupling

#31 #692506
>>692502
https://en.wikipedia.org/wiki/C++17
Нет, не так. Не C++11, но всё же мажорное обновление по сравнению с 14.

С другой стороны и хорошо - в другие языки больше народу потянется, конкуренция всегда полезна надеюсь что ди с растом начнут быстрее разрастаться и из коммитета выкинут нахуй старых пердунов.
>>692521
#32 #692515
Анончики, что за хуйня. Почему у меня sleep жрет около 30% от общего ресурса CPU?
#33 #692516
>>692515
facepalm.jpg
#34 #692517
>>692515
не используй его. Зачем он тебе нужен?
#35 #692518
>>692515
while (STIME != __out);
#36 #692521
>>692506

> https://en.wikipedia.org/wiki/C++17


> SIMD vector


А как там с векторами хотели сделать? Просто SSE или gpu можно будет подгружать, если таки сделают?
>>692526
#37 #692523
бля, пиздец, опять крестоблядки в топе висят. надо вам запретить треды чаще раза в неделю
>>692524>>692533
#38 #692524
>>692523
В каком топе?
>>692525
25 Кб, 485x237
#39 #692525
>>692524
Скрин забыл.
#41 #692533
>>692523
Во-первых, это говорит о том, что C++ более популярен, чем другие языки.
Во-вторых, тебе то что с этого?
>>692535
#42 #692535
>>692533

>Во-первых, это говорит о том, что C++ более популярен, чем другие языки.


Нихуй. У нас просто разговоры активнее.
>>692537>>692539
97 Кб, 600x450
#43 #692537
#44 #692539
>>692535
Это называется "качество сообщества". Если в других языках средний разработчик - мартышка, для которой на SO миллионы ответов на одни и те же вопросы, то С++-господа знают цену общению и вместе ведут дискуссии о наиболее важных и животрепещущих проблемах.
>>692560>>692571
184 Кб, 1311x522
#45 #692560
>>692539
Я до сих пор помню спор про дэбигеры. https://arhivach.org/thread/109335/#542719 Пол треды стенами текста обменивались.
>>692569>>692586
#46 #692567
>>692515

>2016, эпоха асинхронности, реактивности и т.п.


>Почему у меня sleep жрет около 30% от общего ресурса CPU?

>>692574
#47 #692569
>>692560
Ага, в августе-сентябре почему-то был самый пик обсуждений. Сейчас тред уже не торт, наверное темы кончились годные.
#48 #692571
>>692539

>Это называется "качество сообщества". Если в других языках средний разработчик - божественный господин, у которого не возникает проблем на каждом шагу с его основным инструментом, то жопа C++-даунов горит 24/7, отчего они выливают свою боль и тупые вопросы в интернет нескончаемым потоком.


Не благодари
>>692575>>692579
#49 #692574
>>692567
Я писал игру где шарик по экрану летает с нарастающей скоростью и надо меняя направление его полёта не дать ему врезаться в стены. Делал смену кадров с помощью sleep. А как правильно надо было?
>>692588>>692652
#50 #692575
>>692571
Это в пхп треде такое. А у нас качественные беседы. Пруф пару постов выше.
>>692588
#51 #692579
>>692571
Не, крестовый тред достаточно интересный, я сам не крестоблядь, но тут порой интересные дискусии ведутся, люблю почитать. А вот тот же лисотред это какой-то пиздец, скатили в емаксосрач и утонули.
>>692583
#52 #692583
#53 #692586
>>692560
C одной стороны какая-то макака, которая строчит по 1к строк в день, использует реверс-дебаг(вангую бинарник 15КБ), и отправляет джунов фиксить баги(которые обычно требуют понимания предметной области на таком уровне, что надо идти к product owner'у), а еще у которого дебагер никогда не падает и стек не портится.

А с другой стороны вроде серьезный дядя, который не может объяснить, что дебагеры еще как крэшатся, стек еще как ломается, а охуительные истории про включение reverse-debugging на серьезных проектах такие охуеительные.
>>692638
#54 #692588
>>692574
Вероятно что-то в этом роде http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/tutorial/tuttimer2.html

>>692575
Открыл картинку, увидел типичную боль крестомартых про утечки, неопределённое поведение, конпеляцию, магическим образом ломающуюся релизную версию. Что и требовалось доказать.
>>692590
#55 #692590
>>692588

>boost


>игру где шарик по экрану летает с нарастающей скоростью и надо меняя направление его полёта не дать ему врезаться в стены

>>692607
#56 #692592

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



Надо бы в шапку запилить сборник охуительных цитат
>>692601>>692605
#57 #692601
>>692592
В прошлом треде ещё вредные советы были.
#58 #692605
>>692592
Алсо вангую ОП в качестве автора этой цитаты.
>>692776
#59 #692607
>>692590
Действительно, в то время как в нормальных языках зависимости подключаются одной строчкой в конфиге, в крестах обязательно порвать себе очко конпеляцией гигабайтов крестодрисни, а потом вымазать в ней все файлы инклудами. Эта особенность си/с++, наверное, даже хуже, чем все сегфолты и утечки вместе взятые.
Тем не менее крестоблядки уверяли меня, что boost это дохуя стандарт, а то кастрированное поделие без буста это и не с++ вовсе.
#61 #692638
>>692586

>А с другой стороны уставший от жизни алтфак, который хуесосит все новые технологии, чтобы их не изучать.


Пофиксил тебя.
мимооппонент
>>692650
#62 #692650
>>692638
Т.е. тебя мои доводы не смутили, оппонент?
>>692666
#63 #692652
>>692574
А что ты вообще подразумеваешь под "sleep жрет около 30% от общего ресурса CPU"?
#64 #692657
>>692472
Даже networking не будет?
#66 #692666
>>692650
Они дали мне пищу для размышлений, несомненно. Наверное даже я спустя полгода стал менее радикально смотреть на это все. Но это таки не отменяет того, что игнорирование имеющихся технологий из-за их несовершенства - в чистом виде неосиляторство. Ты как дровосек, который нашел у барахлящей бензопилы кучу недостатков и пошел рубить лес топором.
>>692670
#67 #692670
>>692666
Тот алтфак в общем-то прав, я так и не понял, почему он не сказал то, что я. В особенности на linux, gdb просто пиздец какая баженная хрень. Именно поэтому проще использовать печать. И это не говоря о том, что дебагер не всегда применим в принципе. Например, когда под отладкой не повторяется баг.
>>692673>>692674
#68 #692673
>>692670
Там в основном про дебаггер студии речь шла.
>>692742
#69 #692674
>>692670
проще использовать печать
@
в ньюфаг тред приходит ньюфаг у кооторого программа http://ideone.com/3Tarc4 с закоменченой 14 строкой работает неправильно, а с раскоменченой - правильно inb4: вот что printf животворящий делает
>>692680>>692749
#70 #692680
>>692674
Endzoy your See langueech.
>>692684
#71 #692684
>>692680
На плюсах подобное тоже происходит, просто лень пример высирать когда есть готовый.
#72 #692697
Хочу улучшать свои знания C++, изучая конструкции языка в дизассемблере. Какая книга больше подойдет для такого способа изучения языка?
#73 #692701
>>692697
Кек.
>>692704
#74 #692703
>>692697
Очевидное "Искусство дизассемблирования" Касперски и Рокко.
>>692705
#75 #692704
>>692701
Всегда так делаю. Дизассемблер охуенен.
#76 #692705
>>692703
Мне надо именно понимание C++ прокачать, а не реверса. Хотя я, пожалуй, просто рандомную книгу из шапки возьму.
#77 #692707
>>692705
Объектная модель + модель памяти + оптимизации + чистый ассемблер
#78 #692708
>>692705
Там подробно разобрано, во что транслируются различные специфические для C++ конструкции. Попробуй, базарю, еще захочешь.
#79 #692727
Можно ли в Gtk назначить focus_chain для глубоко лежащего виджета, не назначая при этом фокус для всех родителей?
>>693020
#80 #692742
>>692673
Ага, на Студии мир сошёлся.
>>692762
#81 #692749
>>692674

>gets(isbn);


>while (isbn[pos]) {


>pos++;


Давай ещё более нереальный пример придумай. Если специально себе грабли подкладывать - обязательно наступишь.

>#include <stdio.h>


Уёбывай в C-нить.
#82 #692762
>>692742
Не сошелся, конечно. Просто если надо дебажить под *nix, то и спорить не о чем, я и сам полностью согласен насчет ущербности тамошних отладчиков.
>>692769
#83 #692767
>>692622

>Bjarne Stroustrup created the C++ language in 1979, and it still scores high in language popularity indexes today as it expands into mobile development.


Как у крестов сегодня в мобилке? Как там решается проблема непереносимости кода? Какие варианты сейчас есть вкатится на плюсахobjective-c мимо в mobile development?
>>692774
#84 #692769
>>692762
Это же ад. Как ядро отлаживают или графическую подсистему?
>>692793
#85 #692772
>>692622
Алсо, Бьёрне много говорит о нитинге. Если это будет действительно так же хорошо говорит, то можно набегать на удавов, гошников, чтобы похуисосить. Анон как бы ты прикрутил нитинг в кресты?
>>692777>>692835
#86 #692774
>>692767
Точно работает на Android и iOS
За винфоны не скажу.
>>692779
#87 #692776
>>692605
Почему?
#88 #692777
>>692772
Нитинг?
>>692786
#89 #692779
>>692774

> Точно работает на Android и iOS


Ну вот, допустим, я хочу заняться какой-нибудь разработкой игр на с++ или с.
Что мне для этого потребуется?
#90 #692784
>>692779
Можешь посмотреть на openttd. Использует sdl для запуска на Android.
#91 #692785
>>692779
Как же вы заебали: либо игры, либо машинное обучение. Ебани отладчик под *nix. Мы с анонами тебе спеку накидаем.
#92 #692786
>>692777
Threading.
>>692787>>692799
#93 #692787
>>692786
А что с ним?
>>692816
2880 Кб, 3264x2448
#94 #692793
>>692769
НИКАК
>>692801>>692885
#95 #692797
>>692779
Android NDK гугли. Вроде даже был гайд на хабре. Ну и официальные доки нормальные у него. Алсо, замечательно интегрируется со студией, отладка на устройстве, нативный эмулятор на десятке, все дела.
#96 #692799
>>692786
Так с одиннадцатого стандарта есть треды же. Или я что-то не понимаю?
>>692816
#97 #692801
>>692793
Ну уж и никак. Ядро должно уметь писать дамп. Даже на твоей картинке виден стек, например. А потом пялишься в код до посинения и ишешь, что там могло пойти не так.
#98 #692803
>>692705
Вместо этого ты прокачаешь понимание компилятора С++. Это, впрочем, тоже полезно.
#99 #692807
>>692697
Любой нормальный компилятор умеет генерировать ассемблерные файлы, так что дизассемблер нинужен. Покопайся в параметрах командной строки.

В вижуал студии можно смотреть ассемблерный код в отладчике.
#100 #692816
>>692799
>>692787
Параллельные алгоритмы а ля параллелизация частых рутин в MKL. Intel запилил на базе OpenMP.

Пример

template<typename InIter, typename T, typename Reduce, typename Convert>
T transform_reduce(InIter first, InIter last, T init, Reduce red_op, Convert conv_op)

double result =
std::experimental::parallel::transform_reduce(
std::experimental::parallel::par,
std::begin(values),
std::end(values),
0.0,
std::plus<double>(),
[](Point r)
{
return r.x * r.y;
});

И как следствие добавляют функционал для работы в concurrency-среде.
>>692829>>692900
#101 #692826
>>692697
cyka blyat, что ты там увидеть хочешь? Как name mangling выглядит? или обращение к vtable?
#102 #692829
>>692816
Почему бы просто не стандартизовать #pragma omp parallel?
>>692845
#104 #692832
Посоны, есть хуева гора свободного времени и 1.5 года на С++. Знает кто опенсорс проекты, где такие долбоебы нужны?
>>692837>>692874
#105 #692835
>>692772

>Если это будет действительно так же хорошо говорит


Значение знаешь?
#107 #692841
>>692837
я не студент, просто на работе тасок нет вообще.
#108 #692842
>>692837

>/gsoc/


Прочтиал как гейсоц, представил объединившейся /ga с /soc/ и проиграл.
>>692849
#109 #692845
>>692829
По крайней мере потому, что это другой стадарт и другое комьюнити.
#110 #692847
Напишите программу которая вечно компилируется. В препроцессоре зацикливание но обязательно чтобы одним файлом или в расчётах на этапе компиляции.
222 Кб, 868x1024
#111 #692849
#112 #692851
Треду 7 часов и уже больше 100 постов. Что делать если тред уйдёт в бамплимит, а оп не успеет стишок написать или оп-пик подобрать? Может самим перекатывать после 600 постов?
>>692881
#113 #692874
>>692832
Делай патчи для кодеблокса, там типично-громоздкий код, который пишут обычные погромисты в среднестатистической конторе.
#114 #692881
>>692851
Тащемта можно месяц в бамплимите сидеть и нихуя не будет. Четыре прошлых треда до сих пор живо. Просто что мимокрокодилы заходить не будут, и наверное скучно станет.
14 Кб, 427x328
#115 #692882

>if (left == right || left == std::prev(right,1) || left == std::next(right,1))


MinGV все ок, MVS вот это не принимает

>left == std::next(right,1))

>>692926>>693295
5006 Кб, 3264x2448
#116 #692885
>>692793
Мамкинфотошопер
#117 #692896
>>692500
Ты бредишь, я тебе перезвоню.
#118 #692900
>>692816
Костыль какой-то, а форк-джоин-пула случайно нет?
>>692929
#119 #692918
>>692847
#include __FILE__
#120 #692926
>>692882
Включи debug stl у GCC, тоже будет вылетать.
>>692928
#121 #692928
>>692926
Чому? В чем ошибка?
>>692934
#122 #692929
>>692900
Дурак, параллельные примитивы - это высокоуровневый подход правильных пацанов.
>>692954
#123 #692934
>>692928
Ты пытаешься читать за границей массива. Без debug assert тебе это прощается, хотя формально это такая же ошибка.
>>692936>>693041
#124 #692936
>>692934
вот зачем ты ему сказал? он, может быть, попытался бы сам понять
>>693041
#126 #692946
>>692937
Статья 2007 года, ты ещё из прошлого тысячелетия чтонить принеси. Многое поменялось.

Толстотроллинг о нечитаемых сообщениях в темплейтах уже всем наскучил.
>>692958
#127 #692949
>>692847
typedef int i;
typedef i int;

Это зациклит?
#128 #692954
>>692929

> примитивы


> высокоуровневый подход


Ясно.
#129 #692958
>>692946

>Толстотроллинг о нечитаемых сообщениях в темплейтах уже всем наскучил.


Вообще я не об этом принёс, см 12-ю страницу.

Ну да ладно.

А нечитаемые сообщения куда-то делись?
>>692974>>692981
#130 #692973
Зачем нужны шаблоны? Факториал на них 10 строк, а рекурсивную функцию в одну строчку вписать можно и работать будет точно так-же.
>>692986>>692994
#131 #692974
>>692958

>см 12-ю страницу.


Проверил, собиралось 2 минуты и потребляло ок 30МБ. В статье сказано gig of RAM and a couple CPU hours.

>А нечитаемые сообщения куда-то делись?


Стали структурированы и намного легче читаемы.

Конечно, можно много минусов найти, но в последнее время язык оче стремительно развивается.
После выхода с++98 был пятнадцатилетний(!) застой, согласен.
Тут недавно говорили, что жава - убогий язык, и по сути кроме НуллПоентерИксепшена ничего не больше даёт.
>>692983
#132 #692981
>>692958
Окей. Что бы ты сделал, чтобы решить проблему нечитаемости сообщений?
#133 #692983
>>692974
12-ю не по номеру на слайде.

btw, 1 минута g++, clang++ — <1 секунды.
>>692997
#134 #692986
>>692973

>Зачем нужны шаблоны


Например чтобы выбрать реализацию дерева или тип аллокатора для твоего мап-велосипеда.
Хочешь красно-чёрное - пожалуйста, хочешь АВЛ нет - проблем, хочешь выпендриться - захерачь Андерсона.
Для реализации каждого дерева нужно определить только базовые операции, а для выбора дерева в твоём недомапе - всего-навсего поменять или добавить один шаблонный параметр.
>>692990>>692994
#135 #692987
Как сделать чтоб min_element находила объект в массиве с минимальным методом из класса этого объекта?
>>692989
#136 #692989
>>692987

>минимальным методом


Что это?
>>692991
#137 #692990
>>692986

> Например чтобы выбрать реализацию дерева или тип аллокатора для твоего мап-велосипеда.


Это и без шаблонов можно.
>>692992
#138 #692991
>>692989
Ну метод класса, которому принадлежит объект.
>>692993
#139 #692992
>>692990
И проще.
#140 #692993
>>692991
Функция? Как ты их сравнишь чтобы посчитать минимальную?
>>692995
#141 #692994
>>692973
Ебанутый пример. Хочешь рекурсивность на шаблонах, тогда преобразование Фурье по Кули и Тьюки.

>>692986
Дело говорит. Ботай матчасть GoF, Саттер, Эккеля, Александреску, там для дебилов всё разжёвано.
#142 #692995
>>692993
Бля, смотри, массив, в нем элементы это объекты определенного класса, у класса есть всякие переменные в public, вот это методы я имею ввиду, и надо сравнить эти объекты с помощью min_element, как подсказали в вопросов треде по признаку этих самых методов. У какого из объектов самый малый метод этот, заданный в классе.
>>692996
#143 #692996
>>692995
Компаратор напиши.
>>692999
#144 #692997
>>692983
Ну вот, гцц 4.8 - слишком отсталый, хотя версию сделали 3 года назад.

По поводу 12-страницы:
<1 секунды
error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum) instantiating 'Loop<T*> Loop<T>::operator->() [with T = int...

Любую метапрограмму можно ввести в рекурсию без условия выхода.

Высокий порог вкатывания гарантирует, что индусы не отберут у тебя красную икру.
>>693001>>693006
#145 #692999
>>692996
Не понял.
>>693000>>693015
#146 #693000
>>693010
#147 #693001
>>692997

>Высокий порог вкатывания


Порог есть, а работы нет.
#148 #693006
>>692997

>По поводу 12-страницы:


blyat. Я имел в виду "твою" 12-ю, где наследование структур. g++ компилит минуту, clang++ — мгновенно.

Ну а List<int> у меня тоже сразу обрывается с той же ошибкой.
#149 #693010
>>693000
Пишет

error C2440: инициализация: невозможно преобразовать "std::_Vector_iterator<std::_Vector_val<std::_Simple_types<realPer>>>" в "realPer"

realPer это класс этих объектов.
>>693012>>693013
#151 #693013
>>693010
Звёздочку перед i поставь.
>>693023
#152 #693015
>>692999
Да, работы мало, это следствие 15-и летнего застоя и того факта, что в стандартной либе до сих пор нет сети и фаеловой системы.

Тут один ананас говорил, что в плюсы добавят возможность работы с жаба кодом. Таким образом, пока жабобляди будут над нами смеяться, изза того что не в джаву добавят возможность вызова плюсокода, а наоборот - мы тихо и незаметно огрызём у них большой кусок рынка.
#153 #693016
>>693015

>ананас говорил


Пруф или не было! Подробрости, блять! И раазумеется всё это к 2079 в честь столетия крестов.
#154 #693017
>>693015
Они выучат кресты и в их вакансиях появиться ещё 1 пункт.
#155 #693018
>>693016

>ананас говорил


>Пруф


Если так хочешь могу тебе это прямо щас сказать. В плюсы добавят возможность работы с жаба кодом
#156 #693020
>>692727
Бамп
>>693040
#157 #693021
>>693015

>Да, работы мало, это следствие 15-и летнего застоя


Работы много, но не в твоем селе.
>>693024
#159 #693023
>>693013
Где именно? В функции ставлю ругается на то, что выражение должно иметь тип класса в { return i.f < j.f; }. Я не окончательно разобрался с этими ссылками.
>>693025
#160 #693024
>>693021
Хорошей работы нет. Я искал. Найди мне в рашке пару хороших вакансий.
>>693036
#161 #693025
>>693023
Покажи код.
>>693030
#162 #693030
>>693025

bool minSc(realPer i, realPer j) { return i.sc < j.sc; };

realPer perMin = min_element(realPerM.begin(), realPerM.end(), minSc);
>>693031>>693032
#163 #693031
>>693030
Бля, разметка сбилась, как всегда.
http://pastebin.com/EBhEDLH4
#164 #693032
>>693030
Перед min_element звёздочку. А те что поставил убери.
>>693035
#165 #693035
>>693032
Пишет какую-то неебическую хуйню, связанную с ошибкой в algorithm. Первая строчка:
не найден оператор, принимающий левый операнд типа "realPer" (или приемлемое преобразование отсутствует)
>>693038>>693059
375 Кб, 2072x1572
#166 #693036
>>693024
Ты че ебанутый?
>>693056
#167 #693037
>>693016
Вот этот пруф https://arhivach.org/thread/156310/#690655
Подробностей не знаю.
>>693039
#168 #693038
>>693035
Весь код кидай. Из minSc зёздочки убрал?
>>693044
#169 #693039
>>693037
Да то был дежурный вскукарек java-мрази. У нас тут еще с ABI не определились, а ты уже предлагаешь писать биндинги на java-код.

Да и нахуя? Чтобы оно так же тормозило?
>>693047
#170 #693040
>>693020
А что будет если выставить фокус твоему виджету не перепахивая родителей?
И что это за хуйня фокус_чейн?
>>693096
#171 #693041
>>692934
>>692936
Я и так понял. Я думал с итеротором можно как с указателем
#172 #693044
>>693038
Да не, весь нет, у меня говно полное, месиво. В чем может быть проблема скажи и я погляжу.
>>693049
#173 #693047
>>693039
Ясно. Тогда вопрос в тему, как правильно биндить вызовы других языков: python, lua, js, yoba$, etc? Был опыт прикручивания python -- вылез шаблонныйв смысле рутинный, однородный код. Интересует как архитектурный аспект, так и конкретная реализация.
#174 #693049
>>693044
realPer perMin замени на vector<realPer>::iterator perMin и проверь или компилируется.
>>693053
#175 #693053
>>693049
Бля, ты делаешь из просто объекта, в который записывается другой аналогичный минимальный объект, вектор. Теперь я не могу вызывать из него методы далее, нет, не компилируется. Но красное подчеркивание под min_element исчезло, теперь ругается только где я пытался брать методы из perMin. Я кстати убрал * перед min_element, да.
>>693059>>693060
#176 #693056
>>693036
Я закончил вуз и учил кресты. Теперь хочу весь день калывать на работе т.к. мне больше нечем заняться. Готов переехать в другой город если зарплаты будет хватать на съём квартиры. Но все зарплаты оказывается не больше 40к, а для тех те что больше кресты знать не обязательно, а только будет плюсом. А чтобы утроиться на хорошую работу мне надо 3 года опыта на схожей должности. И где этот опыт найти?

https://hh.ru/search/vacancy?order_by=salary_desc&only_with_salary=true&area=113&text=C++&schedule=fullDay&experience=noExperience&enable_snippets=true&clusters=true&employment=full
>>693058>>693098
#177 #693058
>>693056
Стандартная цена адекватного нуба, который знает C++ - 300$
Поработай так 3-4 месяца и проси все 600-1000$
#178 #693059
>>693053
UPD
Я попробовал вызвать из получившегося вектора тот объект с помощью perMin[0], получил такую же ошибку как >>693035
>>693060
#179 #693060
>>693053

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


min_element возвращает не минимальный элемент а итератор на минимальный поэтому его нужно разыменовывать звёздочкой. Сколько строк программа?

>>693059

>perMin[0]


Это у тебя объект. Не вектор. У тебя не определён оператор идексации. Ты не можешь квадратные скобки писать. Ты их можешь писать для realPerM
>>693074
#180 #693061
Антонасы, поясните такую вещь.
В позапозапрошлой конторе решил вкатится в шаблоны, голова кипела по-началу. Наваял немало всяких вещей, которые уменьшают код и ускоряют его написание.

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

Было ли у вас подобное?
#181 #693074
>>693060

>min_element возвращает не минимальный элемент а итератор на минимальный поэтому его нужно разыменовывать звёздочкой


>Это у тебя объект. Не вектор. У тебя не определён оператор идексации. Ты не можешь квадратные скобки писать. Ты их можешь писать для realPerM


Что значит разыменовывать? Как бы так сделать, чтоб он элемент возвращал, а не итератор? Или по итератору записывал в этот объект все методы, класс же общий, хуй знает. Мне просто надо, чтобы этот элемент записывался в другой объект этого же класса, откуда я мог его использовать, и всё.

>Сколько строк программа?


Около 1000 всего, но почти ничто не имеет отношения к этому min_element, это всё в функции происходит, которая нигде не использована, эта дичь даже не компилится ведь.
>>693078
#182 #693078
>>693074

>Что значит разыменовывать? Как бы так сделать, чтоб он элемент возвращал, а не итератор? Или по итератору записывал в этот объект все методы, класс же общий, хуй знает. Мне просто надо, чтобы этот элемент записывался в другой объект этого же класса, откуда я мог его использовать, и всё.


Звёздочку перед ним поставить. Превратишь в объект. Но это ты уже делал.

Кидай эту функцию и класс.
>>693083
#183 #693083
>>693078

>Но это ты уже делал.


Почему это не работает?

>Кидай эту функцию и класс.


Да нет, там полный говнокод, братан.
>>693085
#184 #693085
>>693083

>Почему это не работает?


Не знаю. Должно быть так.

bool minSc(realPer i, realPer j) { return i.sc < j.sc; };
Какого типа sc?
realPer perMin = *min_element(realPerM.begin(), realPerM.end(), minSc);
>>693087
#185 #693087
>>693085
sc это double. Он считается с использованием переменных, которые мы даем этой функции, в которой всё это происходит.

бинарный "==": не найден оператор, принимающий левый операнд типа "realPer" (или приемлемое преобразование отсутствует)
>>693089
#186 #693089
>>693087
Здесь ты == не используешь, а он жалуется. В другом месте ошибка значит.
>>693091
#187 #693091
>>693089
Когда я щелкаю по этой ошибке он мне дает строчку из библиотеки algorythm. Вот еще что дает

c:\program files (x86)\windows kits\8.1\include\shared\guiddef.h(192): или "bool operator ==(const GUID &,const GUID &)" [найдено при поиске с зависимостью от аргументов]
1> при попытке сопоставить список аргументов "(realPer, const realPer)"
>>693092
#188 #693092
>>693091
Понятней не стало.
#189 #693094
Кто-то разбирается в OpenGL? Там можно как-то повляить на порядок в котором вычисяются шейдеры? У меня текстура у которой нужно немного подправить альфа канал. Строки независимы друг от друга, там без разницы в каком порядке вычислять, но в самой строке для корректного просчета нужно чтобы более левые (в координатах текстуры) пиксели (фрагменты) просчитались первыми. Есть какая-то возможность добиться такого?
>>693095>>693097
#190 #693095
>>693094
В шейдерах же массовый параллелизм, вряд ли ты этого добьешься. Хотя с помощью OpenCL можно.
#191 #693096
>>693040

>И что это за хуйня фокус_чейн?


Порядок смены активных виджетов по табу

>А что будет если выставить фокус твоему виджету не перепахивая родителей?


В том то и дело, что ничего. Никакого эффекта. Нужно учитывать вложенность виджетов, насколько я понял. Т.е. если у тебя есть что-то типа

frame
|-box1
..|-input1
..|-box2
....|-input2
....|-input3

То ты не можешь для frame назначить порядок input1-input2-input3, а только box1-input1-box2-input2-input3
По крайней мере у меня проще не получалось, на стековерфлове то же говорят. А в целом в инете инфы мало, так что хуй поймёшь.
>>693201
#192 #693097
>>693094
Если правильно понимаю, то это поведение не специфирется. Но есть костыль: прогоняешь свою текстуру, через фрагментный шейдер с параметром, который кодирует колонку, итерируешься по параметру, каждый раз вызывая шейдер, лал.
#193 #693098
>>693056

>Требования:


>Понимания принципов объектно-ориентированного программирования, знание одного или нескольких языков высокого уровня (C++, java, pascal).

#194 #693197
Аноны, в прошлом треде мне помог разобраться с задачей один доброанон, но вот все таки я разобраться не смог, т.к. некоторые конструкции непонятны, нужна помощь. Сам код:
http://ideone.com/NAOIOn

1. Как работают циклы for в основной функции? Что они делают, почему именно двоеточие и зачем auto v?
2. В функции vecvec assign() мы возвращаем функцию как я понял и в ней:
Передаем вектор размера N+1,0 если я правильно понял?

И непонятно вот это: vecvec(1,vec(N+1, 0))
#195 #693199
>>693197
Ну и еще один вопрос:

Что нужно учить, чтобы писать такие охуенные коды? Я пока умею только говнокодить, книги начал читать, шилтд там, страуструп пока тяжело
>>693203
#196 #693201
>>693096
То есть нужно по табу переключаться между input1, input2, input3, так?
Не помню как это делается в тех же wxWidgets или Qt, но в крайнем случае придётся написать небольшой класс, которому даётся список виджетов и методы next(), prev(), current(). Может быть в gtk уже есть такой класс хелпер.
>>693205
#197 #693203
>>693199
Ты какого Стауструпа читаешь? Посмотри прошлый тред там ссылка была на книгу для новичков.
>>693204>>693206
#198 #693204
>>693203
видимо не того, спасибо, гляну обязательно, пока шилтда читаю, там все хорошо и доступно написано
#199 #693205
>>693201

>Может быть в gtk уже есть такой класс хелпер.


Нету в gtk классов. Это си-онли поделие (не считая их мёртворождённого язычка).
>>693510
#200 #693206
>>693203

>Стауструпа для новичков.


Не надо. Не читай. Подумой.
#201 #693235
>>693197
За такой код надо ломать все пальцы на обоих руках
>>693236>>693834
#202 #693236
>>693235
а что с ним не так?
>>693237
#203 #693237
>>693236
А ты подумай
>>693238
#204 #693238
>>693237
так поясни чем этот код хуевый
>>693239
#205 #693239
>>693238
Тем что абсолютно нечитабельная портянка
#206 #693264
Что значит "знание boost" в описаниях вакансий? Если знание стандартной библиотеки я еще могу понять, то с бустом не все так однозначно. Там же, мать его, 136 модулей, порой с весьма экзотической функциональностью.
>>693300
#207 #693277
Посоны, жопа горит. Почему при запуске под дебагером MSVS 2010 при вводе четвертого элемента вываливается ошибка Invalid heap в функции push_to_min на строке push_heap, а на идеоне программа отработала нормально?

https://ideone.com/XsEekf
16 Кб, 716x316
#208 #693295
>>692882
Окей, это верная замена по логике ?
>>693313
#209 #693300
>>693264
Обычно хватает знания самых популярных либ: smart pointers, ptr-containers, foreach, noncopiable, filesystem. Хотя меня как-то спрашивали про geometry и GIL.
#210 #693313
>>693295
left и right это у тебя какие итераторы?

и вообще, что ты делаешь? есть же std::lower_bound
>>693342
#211 #693315
>>693197
1. Это http://en.cppreference.com/w/cpp/language/range-for можно заменить на обычные for
2. Возвращается результат функии, в которую предается в том числе три заполненых нулями вектора размера N+1 и один вектор векторов (vecvec(1,vec(N+1, 0))) который будет использоваться для хранения результата, а в данный момент там один заполненый нулями вектор размера N+1. Это все конструкторы векторов.
#212 #693342
>>693313
Я темплейт функия, я хочу, чтобы она могла принимать итераторы на разные контейнеры STL
>>693347
#213 #693347
>>693342
пиздец, я написал, пойду просплюсь
#214 #693378
Аноны, а есть нормальный отладчик для glsl? Как в студии для hlsl.
>>693401
#215 #693401
>>693378
Nsight буду юзать.
45 Кб, 350x451
#216 #693408
Посоны, а кто что думает по поводу видеокурсов специалиста? Я вот выкачал видеокурсы по С и по С++. Норм зайдет или нуивовпень?
>>693534>>693551
#217 #693454
Господа, какой там статус у униформ вызовов функций? Станет ли C++ с выходом 17-го стандарта ещё более трудночитаемым?
>>693514>>693802
#218 #693510
>>693205

>Нету в gtk классов


Куда бы они делись? В биндингах всё есть.
#219 #693514
>>693454

> какой там статус у униформ вызовов функций?


Небудет, скорее всего.

> Станет ли C++ с выходом 17-го стандарта ещё более трудночитаемым?


Да.
#220 #693534
>>693408
Если отечественные, то не советую. У нас даже в топовых вузах преподавание крестов оставляет желать лучшего, преподы до сих пор живут в 90-х. Чего уж говорить о параше на продажу.
>>693535>>693581
#221 #693535
>>693534

>преподы до сих пор живут в 90-х


Это как раз в отсосных топовых рашковузиков такое положение дел, а в моем миллионнике C++11 и 14 проходили, если говорить только про актуальность стандартов.
>>693576
#222 #693551
>>693408
Глянуть стоит, раз скачал. Но если ты про книгам не можешь, то как-то стоит усомниться в выборе занятия. Если обычные книги из шапки не вставляют, гугли дополнительно примеры, или найди какую-нибудь статью вроде "пишем свой первый рогалик на C++".
>>693581
#223 #693559
Какой самый нормальный полностью бесплатный компилятор/IDE на кресты?
#224 #693563
>>693559
Clang + vim + ninja
>>693567
541 Кб, 480x228
#225 #693567
>>693563

> vim


> IDE

#226 #693569
>>693559
CodeLite
#227 #693576
>>693535

>проходили


В этом вся суть. Везде проходили, но нигде не изучили. Вот какой проект на крестах вы писали в вашем миллионнике? Не отвечай, я знаю, что это была лаба2.
>>693582
24 Кб, 504x371
#228 #693581
>>693534
Насколько я понял, там обычные курсы в аудитории, которые они дополнительное еще через Интернет другим ученикам транслируют. Ну а кто-то эти трансляции записывает и на торренты сливает.
По php смотрел как-то курсы от Специалиста. Дядечка там как бог поясняет.
>>693551

>Если обычные книги из шапки не вставляют


Не вставляет их с монитора читать, а бумажных вариантов у мну нет.

И вот как там угадаешь, где мина?
>>693604
#229 #693582
>>693576
Игру из примерно 25 классов.
>>693595>>693835
#230 #693591
>>693559
emacs+cmake
#231 #693595
>>693582
Соболезную, братюнь.
#232 #693602
>>693559
QtCreator, вроде можно сразу с компилятором поставить
#233 #693604
>>693581
Распечатай, я так себе "K&R Язык Си" печатал, ох где те времена
#234 #693645
Анчоусы, есть вопросик про кросс-компиляцию.

У меня лежит малинка, я решил под неё писать быдлокод на крестах. Накатил на неё эклипс и Bluez чтобы не просто быдлокод писать, а ещё светодиодом на БТ-свистке моргать. Хеллоуворлд компилируется, БТ-свисток моргает и даже находит соседние устройства.

Но эклипс на малинке это удовольствие для ценителей, поэтому захотелось мне писать быдлокод на десктопной убунте, а на малинке отлаживать удалённо. Обмазался паком компиляторов для малинового арма и RSE для эклипса. Простой хеллоуворлд компилится, запускается удалённо на малинке и прекрасно отлаживается через GDB. Но вот при попытке сделать что-то сложнее, а именно при попытке подключить блютусовские библиотеки, начинаются проблемы.

Гугл говорит, что нужно кросс-компилить Bluez под армы на десктопной убунте, но, блядь, как это сделать, я ума не приложу. Можно ли каким-то образом линковщику ссылаться на библиотеки, которые хранятся на удалённой машине?
Вот тут https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=98777 паренёк был с идентичной проблемой, но он как-то без проблем скомпилировал Bluez на своей убунте.
>>693652>>693691
#235 #693652
>>693645
Я сам не пробывал, но людям нравится и мне кажется оптимальней.

Короче, не долбиться с кросс-компиляцией, а пользоваться такой замечательной вещью, как proot в паре с qemu-user-arm.

proot.me что-то лежит последнее время, достань страницу из кэша и изучи, там немного.

Олсо, применение этого всего https://lionfacelemonface.wordpress.com/2015/04/18/raspberry-pi-build-environment-in-no-time-at-all/
#236 #693691
>>693645
Линковщику похуй, что линковать - можно просто скопировать arm-либы и правильно прописать пути через -L.
Если хочется совсем просто, то юзай qemu-arm. Но будет медленно, если кода много.
#237 #693745
>>692400 (OP)
Хочу вкатиться в игрострой. Это лучший для этого язык?
#238 #693802
>>693454

>униформ вызовов


что это за хрень?
>>693803>>693804
#241 #693807
>>693803
>>693804
А чё, прикольно и даже хитро с целью сделать эстеншен методы как в дотшарпе. И главно теперь не надо переизобретать свой стринг, чтобы добавить в него стартс_уидт()

я всё правильно понел? и нет ли в этой фиче каких подводных камней?
>>693842
88 Кб, 466x604
#242 #693821
Петуханы, кто в теме. Поясните кратко и уверенно за кодировки в цепепе. Да, я проглядел мельком Джо Саттиса про i18n. Ну там круто, форматы ввода/вывода цифер денег и времени и всё такое. Куча кода.

А что с кодировками? Как кошерно принимать строки от пользователя и показывать ему, чтобы он видел все символы? (я пердоля, для меня не очень актуально, а вот у всяких спермоворов вечно геморрой с кириллицей в консоли)

Или корректная работа с кодировками нереальна в стандартном C++, надо тащить всякие сторонние либы?
>>693825
#243 #693825
>>693821
use icu, perdolic
#244 #693834
>>693235
Это не тот математик-могувпрограммирование? Пишет говномочу как на фортране.
#245 #693835
>>693582
Такой же непоказатель как и число строк твоего спагетти-кода.
#246 #693836
>>693745
Julia as fast as C.
#247 #693842
>>693807
Понял то ты правильно но,

> нет ли в этой фиче каких подводных камней


обратная совместимость. Комитетские петухи не будут её ломать.
#248 #693865
Что такое operator, что такое перегрузка операторов и прочее в этом духе, дайте понятную статью, прошу.
>>693874
#249 #693874
>>693865
Вот, например, пишешь ты класс векторов или матриц.
Ну или её какой хуйни.
И вот ты с этой хернёй что-то хочешь делать: складывать, сравнивать, присваивать, умножать и тд.
Для этого тебе надо перегружать операторы соответствующие. Ну или для каждого такого действия можно написать функцию.
>>693876
#250 #693876
>>693874
Оккк, перегрузка операторов это что-то вроде создания операторов под собственный класс. Почему, блядь, так нигде не написали? Почему везде такая вода?
#251 #693924
Видеокурс от mail.ru по многопоточному программированию:
https://goo.gl/e427Sy

Похоже на годноту, я прав?
>>693926>>693930
45 Кб, 471x700
#252 #693926
>>693924
Я хотел посмотреть но там требуется ещё какая-то регистрация поэтому мы с пикрелейтедом послали их нахуй.
>>693933
#253 #693930
>>693924
Да, но не столько по разбору C++ в той области, сколько по разбору всех паттернов мп программинга в одном месте.
#254 #693933
>>693926
Сабж ограничен стандартной библиотекой C++, курсы всё же ценные.
Алсо, лучше бы они в текстовом формате опубликовали.
>>693935
#256 #693962
>>693745

> Игрострой


В /gd/.

> язык


В зависимости от движка. Движки в /gd/ смотри.
#257 #693967
>>693935
И при чём тут это? Ты всё равно будешь пилить свои велосипедные каналы, очереди и тд. если решишь использовать только стандартную библиотеку. А в той книжке ни слова кроме как о классах из stl.
>>694045
#258 #693993
>>693745

>Хочу вкатиться в игрострой. Это лучший для этого язык?


0. Если ты собираешся пилиить игры в одно лицо, или микротимой индихуинди, то выбирать нужно движок.
1. Если ты хочешь идти в контору, то подавляющее число пилит под андроид и яблоко. Следовательно Andoid-SDK, Objectiv-C.
2. Если ты хочешь попасть в ААА контору, тот либо С# и Unity, либо C++ и, желательно, какой-то движок (благо уже все стоящие халявные).
3. Обрати внимание, что автор игры - продюсер, потом идет гейм дизайнер, который формализирует на бумагу все идеи продюсера, чтобы кодер (ТЫ) получил конкретное ТЗ для реализации. То есть ААА кодер в /gd/ это просто кодер.
#259 #694018
Как часто вы используете структуры данных, которых нет в stl? Или стандартной библиотеки хватает?
#260 #694025
>>694018
мы считаем stl говном и не используем, как и буст
соси
>>694044
#261 #694044
>>694025

>мы


>мы, король всея петушни, считаем stl говном и не используем

>>694047
#262 #694045
>>693967
Если бы ты дочитал до конца, то ты бы знал, что там всю вторую половину книги занимает рассказ о красивой реализации параллельных паттернов вроде пула потоков.
#263 #694047
>>694044

>мы, короли чуханов, не пишем ничего длиннее laba1 и laba2, поэтому нам stl норм и мы его используем

>>694059
#264 #694059
>>694047
Есть кулстори, связанная с laba1 laba2, или просто внезапно начали использовать эти термины?
мимо-ньюфаг
>>694203
#265 #694103
Петуханы, в C++17 подвезут рефлексю для enum-ов, или как обычно?
>>694115>>694147
#266 #694115
>>694103
Блядь, заебали вы. Завезут или нет – узнаем в следующем году, сейчас пиздеть что пальцем в небо тыкать.
>>694129
#267 #694120
Доставьте простой пример перегрузки == плиз
>>694123>>694145
#268 #694123
>>694120
class A {
bool operator==(A& a) {
return false;
}
};
>>694125>>694145
#269 #694125
>>694123
Что такое A& a
>>694142>>694143
#270 #694129
>>694115

> Завезут или нет – узнаем в следующем году


В этом, в июле.
>>694135
#271 #694135
>>694129
*в июне.
#272 #694142
#273 #694143
>>694125
Ссылка на переменную по имени а типа А
>>694151
#274 #694145
>>694123
>>694120
class A {
bool operator==(A& a) const {
return false;
}
};
>>694148>>694151
#275 #694147
>>694103
Что это такое?
#276 #694148
>>694145
class A {
bool operator==(const A& a) const {
return false;
}
};
>>694149>>694150
#277 #694149
>>694148
class A {
public:
bool operator==(const A& a) const {
return false;
}
};
>>694152
#278 #694150
>>694148
лол, нет
>>694155
#279 #694151
>>694143
Это понял.
>>694145
То есть эта хуйня просто возвращает фолс всегда? В чем профит? Я думал типа надо описать там что ты подразумеваешь под ==, типа, if (A.a==A.b) { return true; } или типа того.
#280 #694152
>>694149
Обосрамс нумер два
>>694155
#281 #694155
#282 #694157
>>694151

> Я думал типа надо описать там что ты подразумеваешь под ==


Правильно думал
#283 #694158
>>694151
friend ostream& operator<<(ostream& out, const Vector2D& vec) // output
{
out << "(" << vec.x() << ", " << vec.y() << ")";
return out;
}
вот тебе жизненный пример
#284 #694168
>>694151
А, я все понял короч.
#285 #694170
>>694151

> В чем профит?


Тебе же простой пример нужен был. В него добавляешь дополнительные проверки, в зависимости от твоего класса, которые позволят иногда вернуть true. Можно, наверное, начать с if (this == &a) return true;
#286 #694183
>>694018
Пару раз делал обертки над стандартными контейнерами. Обычно довольно простые вещи с наивной и немасштабируемой реализацией, но это потому что у меня питомец проект (Pet project)
#287 #694203
>>694059
Кулстори в том, что stl, как и вообще механизм шаблонов в крестах, непригодны для действительно больших проектов, в гейдеве уже давно это поняли, так что дрочить на них могут только студенты, не писавшие ничего длиннее laba1 laba2 это мемчик такой кароч
>>694204>>694219
#288 #694204
>>694203
Пруфы будут?
#289 #694207
>>694204
Какие пруфы могут быть на такие ахуительные истории?
>>694253>>694522
#290 #694219
>>694203
Проиграл с фантазера.
>>694253
#291 #694222
>>694204
"Pitfalls of Object Oriented Programming", Tony Albrecht.
#292 #694253
>>694204
>>694207
>>694219
http://voodoo-slide.blogspot.ru/2010/01/amplifying-c.html?m=1
Уже вбрасывал, в ответ были только маняотрицания и "сейчас лучше стало кокок C++11". На вопрос, что именно стало лучше относительно критикуемых автором аспектов языка, ответа, ожидаемо, не последовало.
>>694285>>694416
#293 #694255
На олимпиаде наконец разрешили использовать 11ыйшплашапыл стандарт. Я ч ним не много работал и ни одной задачи с ним не решил. Какие там крутые штуки есть которые мне могут пригодиться? Помню только array, auto и forin.
>>694268>>694282
#294 #694268
>>694255
Google, Страуструп и лямбда
#295 #694282
>>694255

>крутые штуки


>огрызок от type inference, недозамыкания, foreach


>2011


Почему кресты развиваются в таком темпе, будто это хоум-проджект одного человека?
#296 #694285
>>694253
Я еще тогда тебя обоссал. Его доводы настолько нелепы, что даже отвечать лень. Но ради того, чтобы обоссать тебя еще раз:

>Templates suck as they cause link-time spam and compile times to skyrocket. They severely bloat the size of the debug symbol file, which on large projects can easily reach several hundred megabytes of data. Abstractions built with templates perform differently depending on whether compiler optimizations are enabled or not (every tried debugging Boost code?). They’re essentially unusable on large code bases beyond container-of-T and simple functions.


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

>RTTI sucks because it doesn’t do what anyone wants, and you can’t even rely on it returning a type name formatted in a certain way.


Этой парашей и так никто не пользуется. Либо в класс вводится отдельное поле type_id, или используются cast'ы через visitor'ы.

>Classes suck because their guts have to be in headers for all to see.


Охуительные истории неосилятора. Товарищ с 10 годами опыта не знает про абстрактные интерфейсы, которые можно реализовать либо через наследование, либо через pimpl.
>>694347
#297 #694287
>>694282
Потому что ленивые пидорасы вроде тебя сидят и нихуя не делают.
>>694347
#298 #694289
>>694282
Потому что там сидят старпёры. Предложили корутины как часть языка – былиьпосланы нахуй. Предложили ещё разок присоснуть хуйца из буста – нихатят. Блядь, они вывод типов и вариадик тимплейты 10 лет пилили, о чём вообще говорить.

Потому и появляются постоянно новые языки вроде D и Rust.
>>694310>>694395
179 Кб, 657x444
#299 #694299
Прочитал

>Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004)


после 2 лет байтоёбства в K&R, за плечами поверхностное изучение 3 тома Кнута (ещё в универе), небольшой опыт писания на коленке на низком уровне (ASM), немного понимаю в модулях ядра, драйверах Linux и кросс-компиляции. Про графику не знаю вообще ничего, с трудом переделал шаблонную формочку в Qt для отслеживания своего заказа на почте. Не программист, инженер.
Цель - летом сменить работу и пойти джуниором на крестах, потому что интересно, перспективно и потому что заебало инженерить.
Собираюсь обмазаться Маерсом по STL и им же Effective C++, какие ещё советы? Нефть авансом, выручайте, анончики
>>694303
#300 #694303
>>694299
Добавь что-нибудь посвежее к прочитанному. Майерса нового, например.
>>694901
#301 #694310
>>694289
Ты хоть раз читал пропозалы, лалка? По ним можно увидеть, что любую фичу ОЧЕНЬ тщательно обсуждают. Тебе до этих старперов еще учиться и учиться.
>>694311
#302 #694311
>>694310

> Тебе до этих старперов еще учиться и учиться.


Да, чтобы уметь наворотить такое УГ как C++, нужно долго учиться.
>>694321
#303 #694321
>>694311
Чем это УГ хуже УГ в других языках? Есть много неприятных проблем в C++, но не думай, что в комитете считают, что так и должно быть. У них не хватает времени сделать сразу и охуенно, потому что в отличии от других языков, здесь есть одна большущая проблема: обратная совместимость.
>>694328>>694413
#304 #694324
>>694282

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


Ну типа интерпрайз, там помешаны на штабильности.
#305 #694328
>>694321

> обратная совместимость.


Это да. Нужно было сразу дропать совместимость с C на уровне исходных текстов. Не думаю, что в 1978 для кого-то было в новинку вызывать сишный код из более других языков.
>>694333>>694406
#306 #694333
>>694328

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



Охуительные истории. Дохуя кода на C ты тоже предлагаешь выкидывать?
>>694338
#307 #694338
>>694333

> Дохуя кода на C ты тоже предлагаешь выкидывать?


Ты жопой читаешь, что ли?

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

#308 #694347
>>694285
У тебя хоть эти десять лет опыта профессиональной разработки есть?

>Этой парашей и так никто не пользуется. Либо в класс вводится отдельное поле type_id, или используются cast'ы через visitor'ы.


Фича X говно плохо сделано тупо, приходится городить костыли. Но это не недостаток языка, нет!

>охуительный вывод компилятора. Но является ли это критичным? Нет.


мда ясно понятно
>>694287
Я что-то сомневаюсь, что если левый хуй с горы врроде меня, предложит новую нужную фичу, ее тут же кинутся добавлять в стандарт.
>>694414
#309 #694395
>>694289

>корутины


нахуй нужно это говно, тот класс задач что они решаются, легко делается обычной комбинацией подпрограмм и флагов
а что произойдет когда мы в язык введем еще одну конструкцию? правильно, заставим обезьян (обычных пользователей языка) напрягатся и охуевать
#310 #694398
>>694395
Тащемта любой класс задач решается в машкоде.
#311 #694403
>>694395
Эта боль обезьяны. За корутинами будущее, тому що асинхроннiсть.
#312 #694406
>>694328
Кому нужно? Это сообщество выбрало С++, а не С++ был навязан сообществу какой-то корпорацией. Таких умников с дропаньем всего и вся было дохуя, Вирт, например.
#313 #694413
>>694321
Вот и главная проблема – там сидят старпёры которые никуда не спешат. Вот что изменилось во всех фичах из C++11 и 14 за пошедшее десятилетие с 2003-го? А нихуя.

Люди, делающие замены C++ вроде делают что-то классное, а вроде да идите вы нахуй с вашими тараканами – у того же D вроде ахуенная рефакторнутая версия крестов, а у него десяток компиляторов, у каждого свои ошибки, костыли, версии рантайма и языка. Gc от которого хуй убежишь и прочее дерьмо вроде 2 стандартных библиотек.

Итого с одной стороны старики-пердолики, а с другой – велосипедисты переоценивающие свои возможности. Нахуй так жить.

>>694395
Это не мешает в каждом стандарте расширять язык, сохраняя костыли 20ти летней давности. Просто пройдёт ещё 3-6 лет, и может кто-то созреет, что концепция уже давно продумана.

Тем более, люди пишушие конкурентную хуету сейчас страдают намного больше из-за отсутствия таких средств в языке (а потом C# и даже убогие go приматы поясняют за продуктивность, лал).
>>694424>>694438
#314 #694414
>>694347

>У тебя хоть эти десять лет опыта профессиональной разработки есть?


Мы тут "сперва добейся" обсуждаем или конкретные проблемы?

>Фича X говно плохо сделано тупо, приходится городить костыли. Но это не недостаток языка, нет!


Знаешь почему этим никто не пользуется? Потому что когда нужно принимать решение в зависимости от типа, обычно можно использовать стандартные средства полиморфизма, а не typeid. По сути, единственная проблема RTTI -
это медленный dynamic_cast. Но когда тебе нужно сделать переход на другую ветвь иерархии, то скорее всего у тебя и так есть механизм visitor'ов и реализовать быстрый cast проще простого. Да, можно реализовать быстрый dynamic_cast. Но нахуя? Всем же похуй на это.

>мда ясно понятно


Никто не отрицает, что ошибки в шаблонах печатаются дерьмово. Но мешает ли это писать код? Не мешает. Ну ок, потратишь ты минут 10(в крайнем случае) на поиск проблемы, ну и все.
А типичная проблема с шаблонами, когда используешь библиотечный шаблон, вообще решается за 30 секунд. Так что повторюсь опять: хреновый вывод ошибок шаблонов не является критичным. Да и в конце концов, какое решение лучше? Тебе известны решения лучше, чем шаблоны в C++? Если послушать того неосилятора, то нужно переходить на макросы, что конечно же намного читаемо, да.
Или на динамический полиморфизм через void*. Ну это конечно куда безопаснее и быстрее, чем существующие инструменты.

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


Если ты сделаешь research фичи, опишешь все решаемые проблемы и проработаешь тему так, что никто не сможет придумать corner case, а так же предоставишь готовую реализацию, т.е. сделаешь все то, что делает комитет стандартизации, то твой пропосал в кратчайшие сроки попадет в стандарт, уверяю тебя. Но ты же ленивый хуй, поэтому - да, твой пропосал не пройдет дальше обсуждения в google groups.
#315 #694416
>>694253

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


Ну ты школьник, у которого в голове один гейдев и своих мыслей нет, нахуя мне нужна полемика с копипастой этого неадекватного лиспоеба? У него там написан бред чуть менее, чем везде.
#316 #694424
>>694413

>Итого с одной стороны старики-пердолики, а с другой – велосипедисты переоценивающие свои возможности. Нахуй так жить.


А третьего не дано. Если бы фичи принимали в стандарт С++ с той же скоростью, что и в D, он бы просто превратился в D с хуевым обратно-совместимым синтаксисом. А разработать zero-overhead имплементации разных модных в этом сезоне фич не так просто.
#317 #694431
как сделать функцию с vector<class> на выходе???
>>694433
#318 #694433
>>694431
В смысле?
>>694434
#319 #694434
>>694433
Чтоб она возвращала вектор с объектами какого-то класса.
>>694435
#320 #694435
>>694434
vector<class> function();
>>694441
#321 #694438
>>694413

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


Так есть же уже и stackful и stackless коротюны в виде либ, что еще тебе нужно? Или ты думаешь в стандарте будет что-то охуенно отличающееся? Сахарком это покроют и все.
>>694448
#322 #694441
>>694435
Я пробовал, вижуал студио не воспринимает меня всерьёз и просит точку с запятой перед {, которая должна быть началом тела функции.
>>694444>>694712
#323 #694444
>>694441
Весь код покажи.
#324 #694448
>>694438
Сходи посмотри в документацию буста как по-франкинштейновски это реализовывается. Сходи к шарпистам и посмотри как у них всё аккуратно.

Ты бы ещё написал, мол, в бусте и пародия на лямбды была, и вообще bind там же был, нахуй в языке оно надо?
>>694460
#325 #694452
У меня вопрос, касаемый тщетности бытия программистом под окнеблядикс и тоске по ушедшим временам работы на красноблядиксе. После двух дней(!) гугления и ненахождения вменяемого ответа, я отчаялся до того, что спрашиваю на дваче.
Есть задача, которая теоретически должна решаться очень просто стандартными средствами,и которая так и решается на линуксах, но с которой всё не так просто на винде. Задача - упаковать в финальный билд исполняемого файла файл ресурса так, чтобы его можно было считать из кода по указателю просто как область памяти. Условие - использовать при этом мелкософтовские компилятор и линкер(я бы не мучался, если бы это условие не было обязательным). Дополнительное условие - нет возможности использовать .NET
Я уже охуел гуглить и ненагугливать никаких вменяемых решений. Теоретически это должно решаться через систему ресурсов студии, но к ней отсутствует хоть сколько-нибудь вменяемая документация, и все официальные документы предлагают решение только через .NET, который я не могу использовать.
Возможно, я совсем тупой, и не вижу какого-то очевидного решения, в таком случае подскажете его, пожалуйста, очень прошу! Пока что самое простое из найденных решений - это использовать обёртку на ассемблере(через .incbin), но должен же быть менее жопопроходный способ?
Прошу не предлагать включать данные массивом данных в коде.
Прошу не предлагать gcc - я и так знаю, что эта задача решается одной строчкой с ld. Мне нужно решение для студии.
#326 #694460
>>694448
У меня есть код с бустовыми корутинами, никаких принципиальных проблем с ним нет.
#327 #694464
>>694452

>Прошу не предлагать включать данные массивом данных в коде.


Самый нормальный (кроссплатформенный) вариант - сделать pre-build rule, в котором твой ресурс сконвертится в .inc файл и добавится к существующему коду через #include "yoba.inc". А так гугли windows api resources.
#328 #694466
>>694469>>694471
#329 #694469
>>694466
ок, забыл ещё одно условие - Qt использовать тоже нельзя.
>>694472
#330 #694471
>>694466
Это не пройдет по критерию "Прошу не предлагать включать данные массивом данных в коде"
>>694472
#331 #694472
>>694469
>>694471
А тебе не кажется, что у тебя критерий дебильный?
>>694475>>694488
#332 #694474
Тут никто vim не использует в процессе работы?
>>694581
#333 #694475
>>694472
А тебе не кажется, что у тебя детектор дебильный?
У кого - "у тебя"?
#335 #694482
Если у меня вот так
for (i = 0; i != n; i++)
i будет прибавлять 1 ПОСЛЕ каждого цикла или ПЕРЕД?
#336 #694484
>>694482
после каждой итерации
#337 #694485
>>694482
Если ты напишешь это в цикле - насрать, i++или ++i.
Разница будет когда ты напишешь yobafunc(i++);
>>694486
#338 #694486
>>694485
>>694482
Тащемта i++ на порядок медленнее ++i
#339 #694487
>>694486
Даже для int?
#340 #694488
>>694472
Критерий не у меня, а у начальника.
>>694477
Спасибо, кажется, это то, что нужно. Сейчас попробую.

>The proper syntax is hard to figure out just from reading msdn docs.


Это мягко сказано ещё.
#341 #694490
>>694486
Вы все ебанутые, сука! Мерять что медленнее, i++ или ++i - охуеть просто!
>>694493>>694494
#342 #694493
>>694490
Ну вообще он прав. Постинкремент МОЖЕТ быть медленнее. Если это итератор, то при постинкременте приходится создавать копию текущего состояния, чтобы её вернуть.
#343 #694494
>>694490
Действительно. Похуй что i++ создает копию объекта.
>>694495
#344 #694495
>>694494
Какого блять объекта? Восьми сраных байт? Пиздец у вас байтоебство крышу сносит.
>>694505
#345 #694496
>>694486
Блядь, ++i прибавляет ПЕРЕД циклом, а i++ ПОСЛЕ?
>>694497>>694498
#346 #694497
>>694496
Оба блять прибавляют после. Нету никакой разницы, тугодум.
>>694499
#347 #694498
>>694496
Нет.
#348 #694499
>>694497
Нахуя тогда их джва?
>>694500>>694501
#349 #694500
>>694499
Наверное в других контекстах есть разница?
>>694504
#350 #694501
>>694499
Тебе уже блять сказали - когда ты сделаешь printf(i++) и printf(++i) - вот тут и будет разница.
>>694504
#351 #694504
>>694501
>>694500
Хорошо.
#352 #694505
>>694495
Он решил поделиться знанием, что в случае с итераторами надо пользовать преинкремент.
>>694507
#353 #694507
>>694505
В итераторах так и делал всегда. Правда не знал почему - просто по образцу.
>>694508
#354 #694508
>>694507
Теперь знаешь почему.
>>694509
#355 #694509
>>694508
Теперь знаю.
>>694510
101 Кб, 640x640
#356 #694510
>>694509
Все чики твои.
#357 #694512
>>694482

>for (i = 0; i != n; i++)


Короче, for(INIT; COND; INCR) BODY устроен так

INIT
loop: if COND is false goto endloop
BODY
INCR
goto loop
endloop:
#358 #694517
>>694477
Ещё раз спасибо. Сделал. Работает. WinAPI, как всегда, написан через жопу. Ненависть!
#359 #694518

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

#360 #694522
>>694207
Не, ну много где делают свои контейнеры, свои аллокаторы. В Qt, например, при наличии своих контейнеров, перешли к использованию стандартных алгоритмов. Не говоря о том, что стандартные контейнеры тоже рекомендуют использовать, где уместно.
>>694624
#361 #694523
Есть std::queue<Yoba> yoba

С помощью const std::queue<Yoba>& getYobas() нужно получить ъочередь йоб в другом классе.

Так вот, auto yobki = getYobas() будет достаточно, или нужно auto& yobki = getYobas() ?
А что если не было бы "const"? Тогда в случае с "auto" вызывалось бы копирование?
#362 #694525
Если порядок байт - сетевой, то в каком порядке вычислять crc?
#363 #694528
Почему вы все здесь такие умные? Я тоже хочу, как и вы, спорить о новых стандартах и прочих фишках языка. Как стать таким умным, как вы?
>>694533>>694570
#364 #694533
>>694528
Прочитать об умных указателях
#365 #694543
>>694523
Насколько я знаю, auto кладёт на reference и делает value. Так что, видимо, оно будет копировать.
Используй auto&
>>694577
#366 #694567
>>694523
Читай про вывод типа у Майерса.
>>694582
#367 #694569
https://m.habrahabr.ru/post/279745/
https://m.habrahabr.ru/company/ua-hosting/blog/279791/

Очень разочарован появлением этих двух статей. Сам хотел про что-то одно похожее написать. Обе идеи подсказали в этом треде. Подскажите ещё одну.
#368 #694570
>>694528
Книги из шапки для продвинутых, видео с cppcon'ов и прочих сборищ. В основном, вся актуальная инфа на английском
#369 #694573
>>694486
КОНПЕЛЯТОР САМ ОПТИМИЗИРУЕТ
#370 #694577
>>694543
>>694523
Я (мимокрокодил) стараюсь всегда использовать const и & вокруг объявлений auto, если они подразумеваются, чтобы читатель кода видел мои намерения. Норм же?
>>694719
#371 #694581
>>694474
Ну, используем, че хотел?
>>694583>>694584
#372 #694582
>>694567
Я задал вполне конкретный вопрос.
#373 #694583
>>694581
Какими плагинами обмазаться, кроме автокомплита?
#374 #694584
>>694581
Как из него выйти?
>>694586
#375 #694586
#376 #694590
Поясните, двусвязный список обязательно должен быть замкнут?
Ну, то есть first->prev = last, а last->next = first? Или это необязательно?
>>694591
#377 #694591
>>694590
Конечно необязательно.

Односвязный тоже может быть как замкнут, так и не замкнут.
#378 #694607
Как познать ООП? Хотелось бы в идеале синхронизированную теорию с практикой. Класс часов уже писал
>>694629
#379 #694624
>>694522
Стандартные контейнеры, в сравнении с Qt'шными - говно.
>>694841
#380 #694629
>>694607
А хули познавать? Можно наследоваться, переопределять методы в наследнике и прятать требуху в приват.

Вот и все ООП.
>>694633
#381 #694633
>>694629
Ну, ручками же надо это все пописать, а то я уже заебался все в мейн пихать
>>694638
#382 #694638
>>694633
Суть в том, что каноничное ООП не так уж часто и нужно.
На Qt пиши - точно познаешь, так как часто придется писать свои классы на основе всяких QAbstractYoba
>>694657
#383 #694655
Как записать вектор наоборот? То есть не { a, b, c }, а { c, b, a}.
>>694656
#384 #694656
>>694655
std::reverse
>>694658
#385 #694657
>>694638
Я, если честно, за этим решил познавать, ибо от вида кьюта становится страшно и малопонятно
>>694662
#386 #694658
>>694656
Какие умные люди писали std, на все случаи жизни есть функции.
>>694659
#387 #694659
>>694658
Это называется stl.
>>694661
#388 #694661
>>694659
А стд - это тогда чье пространство имен:
#389 #694662
>>694657
Балда, наоборот Qt это кресты для людей, а не для мазохистов.
Нормальная IDE, великолепная встроенная документация, и отличные плюшки на любые потребности и случаи жизни.
>>694711>>694841
#390 #694668
У меня есть класс А. Нужен новый класс В, который поглощает функционал А, но методы и переменный в нем названы по другому ( для удобства, ясности, однозначности). Писать В заново или есть какой-то способ унаследовать с переименованием? _наркоманджпг_
#391 #694670
>>694668
Перегрузка функций
>>694673
#392 #694673
>>694670
В которых будет код со старыми именами переменных - они одна из важных частей замены.
#393 #694684
>>694668
Нет такого.
#394 #694709
>>694018
Ptr-container из буста.
Spatial tree бустовый из geometry и велосипедный R*.
Хитрый вариант листа с Union для упаковки опциональных данных.
Куча кастомных итераторов.
Это вспомнил на вскидку
#395 #694711
>>694662
Но после чистого c++ на одном main.cpp от Qt мне страшно. Уже, конечно, читаю этого Шлее, но мне такого плана книженции никогда не нравились. Предпочитаю методом научного тыка все осязать
>>694724
#396 #694712
>>694441
std::vector<CMyClass> f();
>>694717
#397 #694717
>>694712
Это же прототип функции.
Правильно std::vector<CMyClass> f;
>>694720
#398 #694719
>>694577
Еще auto&& в шаблонах и ночью к тебе придет Майерс и поцелует в писю.
#399 #694720
>>694717
Бля туплю. Сорян.
#400 #694724
>>694711

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


Бобук, что ты здесь забыл?
13 Кб, 458x409
#401 #694786
Это должно работать? Сделал все таки астар, если бы он еще работал было бы вообще круто. Почему-то цикл проходит всего один раз.
#402 #694788
>>694786
Выключи компьютер, пожалуйста. И не включай никогда больше.
>>694791>>694825
#403 #694791
>>694788
Двачую.

>>694786
Программирование не для тебя.
#404 #694799
>>694786
А чё ворнингов нет? VS сосет?
>>694800
#405 #694800
>>694799
А где они там должны быть?
>>694806
#406 #694806
>>694800
Ну статический анализатор, не ворнинг компилятора. Андроид студия, например, выделит подобное (в с++ коде, ndk) желтеньким. Больше IDE на текущем компе нет, так что проверить не могу.
#407 #694817
Поясните за Intel Russia. Норм пацаны? Много платят? Скиллованный коллектив?
#408 #694825
>>694788
Ой, бля, обоссы меня, я понял, какой же я мудак.
>>694841
#409 #694841
>>694624
Со стандартными контейнерами мне более удобно проходить по map'у.

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

>>694662
QtCore слишком жирный, как по мне. Слишком высока связность у этого вашего Qt. Но если не байтоёбствовать, то норм, да.

>>694668
Добавь абстрактный класс в верхушку иерархии и используй агрегирование вместо наследования.

>>694825
Пиздец, как ты такое мог написать? Я не засну теперь нормально после такого. Эта функция должна быть раз в 10 короче. И впредь литералы ставь слева в блоках условия. Но это всё равно пиздец.
>>694843
#410 #694843
>>694841

>QtCore слишком жирный, как по мне.


А какой смысл дрочить на жирность, с дискеты чтоле грузишься?
>>694845
#411 #694845
>>694843
При деплое получается 20 мегабайт что ли, запамятовал уже. Не много, но и не мало. Отладочная сборка. Там, где это критично, лучше обойтись легковесными либами. Мне-то норм, но таки не дает покоя наличие тонны какой-то странной хуеты, которая мне никогда не понадобится.

Если пройтись по so'шке qtcore командой strings, ты сможешь найти там пророчества про тебя и твою мамашу.
>>694847
#412 #694847
>>694845
Вдогонку, для Gui на плюсах Qt это лучшее из зол, наверное. Но использовать Qt, как либуы общего назначения - это уже более тонкий вопрос
>>694848
#413 #694848
>>694847
Я вообще Qt как этакую стандартную библиотеку крестов воспринимаю.
Ну сириосли, без нее на крестах писать - что кактус жевать.
>>694859
#414 #694859
>>694848
Некоторые буст жуют. Да и не для всех предметных областей Qt нужен. Есть еще сотни отдельных либ для логов, сериализации, фс, кодировок и интернационализации, потоков (привет c++11-богам) и многого другого из Qt.

Я вот на своем проекте использую Qt. И это значит, что если я захочу переписать сеть или потоки без Qt (да хотя бы ради интереса) то придётся переписывать половину всего кода. Не то чтобы я хочу свалить всю вину на Nokia/Digia за непродуманный дизайн своего поделия. Но мне кажется, что это пиздец сложно -- совмещать Qt сигналы/потоки с другими либами.

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

В стандартной библиотеке нет столь высокой связности, потому-то (и из-за обратной совместили) она и развивается медленно -- старые пердуны разделяют мою паранойю.
>>694864
#415 #694864
>>694859

>за непродуманный дизайн своего поделия


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

Собсно, в Qt есть практически все, редко возникает необходимость "сочетать" его с другими библиотеками.
>>694956
#416 #694872
Месяц назад кидал в нюфап тред, мне там ничего не сказали вообще, хотя сотня просмотров была
http://pastebin.com/3MEN9FkP
>>694955
#417 #694901
>>694303
Спасибо! А насчёт практики?
Изучил https://habrahabr.ru/post/117996/, но вообще весьма смутное имею представление о том, как проходит собеседование на джуниора по с++.
Если предложат прямо на месте реализовать какой-нибудь алгоритм уровня 2-3 курса, то я попыхчу, но сделаю, но не больше.
#418 #694955
>>694872
Да и сейчас всем похуй, кому интересно разбираться в не пойми в чем?
#419 #694956
>>694864
Дизайн и наполнение - разные вещи.
#420 #694960
Считается ли по умолчанию, что программист на крестах должен уметь в технический английский (то есть в требованиях к вакансии тех. английского нет, но знать он его должен все равно)?
>>694965>>695053
#421 #694965
>>694960
Это требование вообще к любому программисту.
>>695209
#422 #694992
Компилирую экзешник, но касперский считает, что там Trojan Fsysna, и поэтому удаляет его, лол.
>>695005
11 Кб, 320x240
#423 #695005
>>694992

Это был дев-с++. Поставил кодлайт - там вообще вылет при компиляции.
>>695138
#424 #695053
>>694960
Да. К любому программисту. Даже к 1С программисту :3
>>695209
#425 #695096
Дерево отрезков поддерживает нахождение средне арифметического?
>>695119
#426 #695117
>>694786
Я ньюфаг, но может в условиях нужно писать if (i == 0) и т.д.?
#427 #695119
>>695096
Да. Но проще в самом дереве хранить сумму элементов, а для среднего сумму делить на длину отрезка.
>>695142
#428 #695138
>>695005

Поставил визуал студию - не компилится, 458 ошибок говоряших о том, что отсутствуют какие то библиотеки.
>>695140
#429 #695140
>>695138
Сколько ещё напишешь постов вместо того, чтобы выложить исходники? пиздос!
>>695152
#430 #695142
>>695119
Есть n натуральных чисел. Нужно разделить их на k отрезков числа идут подряд и пропускать числа нельзя но между отрезали могут быть числа не входящие не в один из отрезков минимальной длины m. Так чтобы минимальное средне арифметического отрезка было максимальным. У каждого отрезка есть средне арифметическое СА и нужно разделить последовательность на отрезки так чтобы минимальное из СА всех отрезков было максимальным. Надеюсь вв поняли. Ограничения n<=10000 k<=500 и m от 3 до n/k.
>>695160
#431 #695143
Может кто сказать по поводу вещей, которые нужно знать чтобы интервью на jun dev`а пройти? Не думаю, что пару прочитанных книжек достаточно будет. Второй год уже пишу на C++, учиться в универе реально заебывает, хочу уйти работать. Если кто-то скажет, что конкретно будут спрашивать/что нужно знать при поступлении на работу, буду благодарен.
#432 #695145
>>695143
В шапку это надо. Оп сделай.
#433 #695146
>>695143
Что в вакансиях написано то и надо. stl, boost, qt
210 Кб, 2340x1653
#434 #695150
>>692400 (OP)
Котаны, помогите с решением задач, пожалуйста

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

2)Написать функцию инициализирующую двумерный массив целых пользовательскими значениями.

3) Написать функций my_strcpy(), my_strcat(), my_strlen(), my_strcmp() (две на выбор), которые будут работать аналогично библиотечным функциям strcpy(), strcat(), strlen(), strcmp().

4) Написать функцию, рекурсивно вычисляющую сумму ряда вида Σ 2x/x!, где х принимает дискретные значения от 0, до 20 с шагом 1.
>>695155
#435 #695151
>>695143
На джуна нет конкретных требований, все очень сильно зависит от конторы. Нужно брать количеством, между собеседованиями подтягивая на чем засыпался. Но в общем как минимум нужно понимать stl (итераторы, функторы), знать ответы на традиционные подъебки (виртуальный деструктор), какую-то библиотеку виджетов (Qt например) в общих чертах - имеется ввиду MVC или подобные паттерны, событийное программирование и т.д. Ну и в базвордах ориентироваться, ООП и т.п.
#436 #695152
>>695140

Исходники не причем. В б кто то создал тред с просьбой помочь сделать лаболаторку на С, ну я решил проверить себя и написать на плюсах. На идеоне компилится.
#437 #695153
>>695143
Тезис первый: без знания предметной области ты можешь устроиться только макакой, вне зависимости от опыта/знания самих крестов.
Тезис второй: макаки на крестах получают очень мало, потому что все студенты изучают кресты на начальном уровне и создают высокую конкуренцию.
>>695667
#438 #695155
>>695150
Сделал, как платить удобнее?
>>695158
#439 #695158
>>695155
заплатил тебе за щеку, проверяй
1020 Кб, 1841x893
2799 Кб, 1789x2047
#440 #695160
>>695142

>но между отрезали могут быть числа не входящие не в один из отрезков


Щас перечитал условие там не понятно написано.

>k*m<=n


>сумма всех T-iых должна быть равна n.



Как это решать?
122 Кб, 350x151
#441 #695209
>>694965
>>695053
Спасибо, чтобы бы я без вас делал...
#442 #695211
Скачал значит Qt 5.6.0, пытаюсь собрать пример с кубиками, а эта хуйня говорит
This example requires Qt to be configured with -opengl desktop
Мне что теперь вручную Qt пересобирать что ли?
>>695238
#443 #695238
>>695211
Вставь текст ошибки в гугл, мб тебе отдельно чото докачать надо или другую сборку. Мб для выбранного тобой тулчейна так собрали. // не у компа сейчас
>>695324
#444 #695324
>>695238
Как я понял, в примере устаревший QtOpengl, а сейчас уже работают через QtGui и опнгл туда зашито с -opengl dynamics, поэтому эта херня его не видит. Могли бы и обновить пример.
#445 #695570
define_name как и где и почему нет?
#446 #695667
>>695153
Конкретно напиши, что ты понимаешь под предметной областью? Все, начиная от Архитектуры ЭВМ и заканчивая работой компилятора?
>>695743
#447 #695743
>>695667
Нет, это как раз таки универсальные знания, которые неплохо иметь, но которые играют не такую важную роль. А предметная область это, возможно не связанная с языком и программированием вообще напрямую, инфа по тем проблемам, которые в конечном счете решает твой софт. Например, для гейдевелопера предметной областью будет игростроение, оно тянет за собой компграф, компграф тянет векторную геометрию, ну ты понел. Или, скажем, ты пилишь какой-нибудь финансовый софт, тогда ты должен знать статистику, вычислительные методы, ну и в экономике хотя бы терминологию понимать.

Вариант тупо нанять абстрактного кодера и транслировать ему задачи в общепонятных терминах тоже есть, но тогда все равно надо иметь прослойку - дополнительных консультантов по предметной области, чуваков, транслирующих задания в кодерский язык, и так далее. Получается дороже, поэтому обычно стараются нанимать тех, кто так или иначе в теме. Иногда дополнительно нанимают сотни макак-джунов для черновой работы, но там платят мало, задачи неинтересные, и ничему ты не научишься, а поэтому и не вырастешь в синьора. Как-то так.
>>695965
#448 #695799
Я как-то раньше не задумывался.
Что делать, если мне нужно представить массив массивов массивов массивов ... массивов. То-есть, большое кол-во измерений.
Так же скажем, что он может менять размер динамически (то-есть, нельзя использовать одномерный массив, как в геймдеве делают, и обращаться к нему типа arr[i*width + j]).
1d массив: обычный указатель.
2d массив: указатель на указатели.
3d массив: указатель на указатели на указатели?
И так далее?
С такой штукой же работать вообще невозможно. Как обычно делают это?
#449 #695820
>>695799
Для таких как ты придумали zero-overhead std::array
#450 #695840
>>695799
2d массивы нужно делать единым куском.
struct Yoba {
int data;
int cols; int rows;
void get(int i, int j) { return data[i
rows + j];}
};

Если 3-е измерение небольшое, например цветная картинка RGB, лучше сделать массив не int'ов, а struct Vec3f { int r; int g; int b};

Если третье измерение большое, то можно уже делать указателями.
struct Yoba3d{ Yoba* yobas2d;};

И, наконец, если у тебя, допустим, пятимерный массив, нужно смотреть в сторону sparse структур данных.

struct Yoba5d {
vector<tuble<int, int, int, int, int>> data;
void set(int i, int j, int k, int l, int m, int value) {
data.push_back({i,j,k,l,m,value});
}
};

Почему? Потому что dense массив с ростом измерением очень быстро растет. Например, пятимерный массив со стороной "куба" 10 будет иметь размер 10^5, а со сторонй куба 100 - 100^5.
>>695890
#451 #695890
>>695840
В реальности никто не закладывается на тензорные структуры - с такой срамотой непонятно как работать. Если что-то больше трёх измерений и с этим активно работают, то следует изучить внутреннюю структуру или как-нибудь аппроксимировать. Смотри cross-approximation, SVD, HOSVD, Tucker decomposition, (Quantized) Tensor Trains.

>>695840
Ну-ка давай поясни, чем это твоя схема лучше использования индексации вида i + j K + k K L + l K L M + ...
24 Кб, 514x243
#452 #695895
Кресты в Top10, все остальные - мимо.
#453 #695898
>>695799
Тупой вариант: как ты описал, сишные массивы будешь звёздочки указателей считать.
Получше: boost::multiarray
Сложнота: массив с хитрой адресацией.
22 Кб, 883x358
#454 #695905
>>695922
#455 #695922
>>695905

> Категория: Программирование


> Веб-дизайн


> CSS, HTML, SVG

>>695925
#456 #695925
>>695922
mail.ru же
>>695926
#457 #695926
>>695925
IT гигант
#458 #695965
>>695743
Хм, но разве знание предметной области - это не требование для синьоров? А для тех кто ниже, предметная область - желательно, но не обязательно?
>>695972
#459 #695972
>>695965
Тогда зачем, по-твоему, нужны всяческие ШАДы, мэйлрушные курсы, студенческие стажировки и прочее? На них ведь не кодить учат, а как раз предметной области, при том, что никто тебя не возьмет синьором сразу после.
>>696023
#460 #695997
Охуенный туториал для новичков (на ангельском) от гугла - https://developers.google.com/edu/c++/
#461 #696023
>>695972
Понятно, пойду обратно на C#/Unity.
#462 #696029
>>695799
Я считаю полное количество элементов и использую хитрый индексатор с одномерным массивом.
#463 #696036
>>695799
Собираешь массив из маленьких элементарных с фиксированным размером, которые индексируются другим массивом. Для 3д, например, составляешь из кубических массивов со стороной, скажем 16 элементов. Тогда при увеличении размера достаточно перестроить только массив индексов.
#464 #696071
Впервые зашел в тред и подофигел от шапки. Круто все-таки крестухи делают, основательно и от души.
>>696204
#465 #696180
Как сделать объект класса yoba внутри класса yoba?
#466 #696183
>>696180
class Yoba
{
Yoba yoba;
}
>>696190>>696193
#467 #696190
>>696183
Forward declaration еще
#468 #696193
>>696183
недопустимый неполный тип пишет
#469 #696198
https://habrahabr.ru/company/infopulse/blog/279927/
Чото прочитал и погрустнел. Обещали мажорный релиз - теперь собираются релизнуть 2,5 математические функции палезнасть и стандартизировать убогие директивы отключение варнингов, которые везде свои 9000 лет. Даже банальный constexpr if не завезут.

Аргументы в защиту старпёров пожалуйста, хочется уринировать чью нибудь мамку.
>>696285
45 Кб, 619x265
#470 #696200
Пиздос посоны, не могу сделать асинхронный вызов на C++/CLI.

Пикрелейтед короче. Хотел, чтобы при нажатии кнопки StartButton асинхронно запускалась функция ololo. Но всё выполняется последовательно и форма подвисает на несколько секунд, пока выполняется ololo.
ЧЯДНТ?!
>>696202>>696214
220 Кб, 1024x1008
#471 #696202
>>696200

> ЧЯДНТ?!


> C++/CLI

>>696211
#472 #696204
>>696071

Если бы ты зашел не в первые, то ты бы отсюда бежал к хуям.
>>696206
#473 #696206
>>696204

>если бы зашел впервые сюда давным давно



самофикс
#474 #696210
>>696180
Конструктор?
>>696217
51 Кб, 283x294
#475 #696211
>>696202
Ну бля, сам не люблю эту хуйню. Мне нужно по быстрому GUI прикрутить к научной работе, хотел в winforms состряпать на отъебись.
если бы скорость была не критична, на шарпе бы сделал
>>696215>>696235
#476 #696212
>>696180
class Yoba
{
Yoba& yoba;
}
>>696217
#477 #696214
>>696200
Поток создавай.
#478 #696215
>>696211
Это ужасно, сам был в этой ситуации, нужно было гуй пилить на шарпе, а критические по скорости куски кода пилить на сишке и пинвокать. А сейчас так вообще есть возможность на расте такие куски пилить, чем я и пользуюсь.
#479 #696217
>>696212
>>696180
>>696210
Вы тралируете так?
Очевидно же, что необходимость создать объект класса yoba в классе yoba следствием плохо продуманной структуры приложения.
>>696223>>696303
#480 #696223
>>696217
Начнем с того что создать объект класса внутри самого себя (в общем случае) нельзя в принципе. А содержать ссылки(указатели) как на самого себя (у каждого класса уже есть this) так и на другие инстансы своего класса он спокойно может - например связный список. Мне кажется анон именно его и пытается запилить.
#481 #696226
Вопрос. Когда нужно выделять память на стеке, а когда в куче?
#482 #696235
>>696211
Взял бы Qt или wx.
>>696241
#483 #696236
>>696180
Сделай йобу темплейтным классом. Только так.
#484 #696237
>>696226

>Когда нужно выделять память на стеке


Когда эта переменная используется только в текущей области видимости (от { до } функции всесте со всеми вложенностями).

В остальных случаях - куча.
>>696239
#485 #696238
>>696226
За щеку тебе выделил. Платиновые вопросы крестотреда.
#486 #696239
>>696237
А если ты, например, структуру из функции возвращаешь?
>>696242
#487 #696241
>>696235

>Qt


Пошел качать. Давно очень я в нем работал, забыл уже все. Помню только, что OpenGL к виджетам довольно легко подключался.
>>696250
#488 #696242
>>696239
Перечитай ещё 10 раз тот пост. Если возвращаешь по ссылке - куча. Иначе будет копироваться полностью.
>>696249>>696252
#489 #696249
>>696242

>Если возвращаешь по ссылке - куча.


Даже если он возвращает ссылку на структуру, выделенную на стеке, ногастрелятель?
>>696257
#490 #696250
>>696241
Последний wx тоже ничего. Не надо макросами все хуярить и экзешники небольшие.
#491 #696252
>>696242

>Иначе будет копироваться полностью


И что. Выделил на стеке, вернул на стеке. Все без кучи.
>>696257
#492 #696257
>>696252

>И что. Выделил на стеке, вернул на стеке. Все без кучи.


1) Передать 4/8 битный адрес вместо целой структуры куда быстрее;
2) Прокатывает до тех пор, пока стек не закончился. А он заканчивается где-то в районе 4 мб.
>>696249
Ещё одно животное читать не умеет. Иди нахуй просто.
>>696265
#493 #696265
>>696257

>Передать 4/8 битный адрес вместо целой структуры куда быстрее


Без разницы, на самом деле. И так и так обращение по адресу идет. Все результаты больше машинного слова возвращаются через указатель на стек в предыдущем фрейме.
>>696272
#494 #696272
>>696265
Речь не об обращении. А о том, что если у тебя струкрура, например, величиной в мегабайт - весь этот мегабайт будет бессмысленно скопирован. Если компилятор не соптимизирует, на что бездумно полагаться лучше не стоит.
>>696277>>696444
#495 #696277
>>696272
Хотя туплю, там выше про другое.
#496 #696281
>>696226
В общем случае, когда количество необходимой памяти не известно на момент компиляции.
sage #497 #696285
>>696198
Обидно из-за модулей и контрактов, но лучше никакие не впиливать, чем впилить неготовое и навсегда зашкварить стандарт, обратно-то не выпилишь. Все остальное вообще нинужно, либо сахарок, либо сверхизбыточнные фичи.
>>696290
#498 #696290
>>696285
Что не готово-то? Модули?
Главный камень преткновения – экспортируемость йобана в рот текстовых макросов! Спасибо комитет, нас в 2016 они очень волнуют. Можнобыло просто послать нахуй эти макросы – стандартные инклюды-то никуда не денутся.

Про избыточность – ну разве что ufcs. Всё остальное нужно более чем, если ты конечно не наслаждаешься анальными костылями. И уж тем более это всё обкатано десятилетиями в других языках, не надо пиздеть про "кококо сыро". Они решили устроить песочницу – пусть весь мир подождёт, чо.

Итог – хули смысла от 3-х годовых стандартов, если новые фичи всё равно вводятся раз в 10 лет?
>>696320>>696352
#499 #696303
>>696217
Одна из реализаций синглтона или какое-нибудь вссаное дерево, например.
#500 #696320
>>696290
Платиновый дискас. Пора бы уже запилить подшапку о новом стандарте в стиле <<что такое хорошо и что такое плохо>>.
#501 #696352
>>696290
Они не хотят сделать что-то по экспортируемости шаблонов сверх того, что есть. Нахуя модули, если по-прежнему придется делать гигантские шаблоны в один файл? Пущай допиливают.
#502 #696359
Котаны, в чем приемущество парсинга текстовых протоколов при помощи atof, atoi, atol и т.п. вместо sscanf?
#505 #696444
>>696272
Rvo/nrvo
Гайдлайны с "один ретурн на функцию" идут нахуй
#506 #697119
>>693803
Выглядит как пиздецкак и весь остальной D, из-за которого код превратится в кашу.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 6 апреля 2016 года.

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

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