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

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

 Аноним 01/06/16 Срд 14:40:41 #1 №759279 
14647812418890.jpg
ОП не придет - его разорвали собаки,
Арматурой забили скинхеды,
Надломился предательский лёд.
Его руки, подготовлены не были к драке
И он не желал победы
Я теперь буду вместо него.

ОП, плавает в формалине
Несовершенство линий
Движется постепенно
У меня его лицо и имя
Свитер такой же синий
Никто не заметил подмены.

ОП не придет - руки были в змеиной норе
Голова в осином гнезде
А спина в муравьиной куче
Буду я - я из более прочного теста
Я достоин занять это место
Я многое делаю лучше.

ОП плавает в формалине
Двигаясь постепенно
В мутном белом тумане
У меня его лицо и имя
Никто не заметил подмены
Ключи проверяя в кармане.


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

TL;DR

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

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

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

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


FAQ

Мотивация

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

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

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

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

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


Литература

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

  • Для нюфань

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


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

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


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

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


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

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


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

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

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

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


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

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

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

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


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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

  • boost

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

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

    Литература:


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

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

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

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

    Литература:


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

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

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

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


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


Аноним 01/06/16 Срд 14:48:19 #2 №759289 
QT и OpenMP ПРОБЛЕМЫ
У меня есть два вопроса:
1) Есть Window. На нём есть пара элементов. Как можно поменять параметры одного элемента из кода другого? Обычно это делается сигналами/слотами, но что делать, если я хочу, например, изменить значения на сразу двух лейблах по нажатию кнопки? Мне нужно биндить слот на кнопке сразу к двум сигналам на лейблах?

2) Есть кнопка. Когда нажимаю кнопку, начинается в цикле выполнение некоторого кода. Цикл распараллеленн с помощью OpenMP. После завершения нужно вывести результат в лейбл на форме.
Как сделать так, чтобы во время этих вычислений, само приложение не подвисало? Такое возможно с OpenMP вообще?
Ну то-есть, я хочу, чтобы приложение просто висело и не крашилось от того, что пользователь по нему кликнет пару раз наугад куда-нибудь.
Аноним 01/06/16 Срд 15:25:53 #3 №759325 
>>759279 (OP)
наканецта
Аноним 01/06/16 Срд 15:56:38 #4 №759346 
Вопрос по qml. Вот написал я допустим кастомный стиль для кнопки и выделил ее как компонент.
Button {
  style: ButtonStyle {
    label: Text {
      font.family: "Lucida Console"
      font.pointSize: 20
      text: control.text
    }
  }
}
В другом файле я его использую и хочу при этом отдельно изменить font.pointSize. Как это сделать не проебав ничего остального?
Аноним 01/06/16 Срд 16:25:33 #5 №759372 
14647875339070.jpg
14647875339071.jpg
Через сколько времени я смогу понимать чужие крупные программы, написанные на C++? Пока никак не могу.
учу уже 4 неделю
Аноним 01/06/16 Срд 16:27:15 #6 №759374 
>>759372
3-4 года.
Аноним 01/06/16 Срд 16:51:46 #7 №759384 
>>759372
Ну, через годик где-то. Еще ж нужно понимать предметную область. Синтаксис - это как букварь: не гарантирует понимание речи.
Аноним 01/06/16 Срд 16:57:46 #8 №759385 
>>759384
>не гарантирует понимание речи
Но требуется для понимания же. Где-где, а в крестах ты абсолютно точно будешь насасывать без детального и глубокого понимания синтаксиса. Например, имеем вот такой фрагмент, совершенно очевидный на первый взгляд:

http://pastebin.com/z4bbBiZh

Любой ньюфаг будет шокирован, когда посмотрит получившиеся значения z1 и z2, а в реальном коде может отстрелить себе даже не ногу, а всю нижнюю половину тела. А разгадка одна - изучение языка по нубским книгам и интуитивное псевдопонимание синтаксиса.
Аноним 01/06/16 Срд 17:08:22 #9 №759394 
>>759385
>Любой ньюфаг будет шокирован, когда посмотрит получившиеся значения z1 и z2
Вангую, всегда будет вызвваться f (signed int)
Аноним 01/06/16 Срд 17:15:34 #10 №759399 
>>759385
> constexpr
C++11 не нужен
Аноним 01/06/16 Срд 17:16:37 #11 №759400 
>>759394
Так и есть.
А я не понимаю, какого хуя.
Аноним 01/06/16 Срд 17:17:34 #12 №759403 
>>759385
>Любой ньюфаг будет шокирован
Вот этим http://pastebin.com/GKFZHPWa тоже будет. Даже некоторые не-ньюфаги будут шокированы.
Аноним 01/06/16 Срд 17:18:15 #13 №759404 
>>759400
4.5 Integral promotions [conv.prom]
1 A prvalue of an integer type other than bool, char16_t, char32_t, or wchar_t whose integer conversion rank (4.13) is less than the rank of int can be converted to a prvalue of type int if int can represent all the values of the source type
Аноним 01/06/16 Срд 17:18:28 #14 №759405 
>>759399
Как там, в 2003?
Аноним 01/06/16 Срд 17:19:03 #15 №759406 
>>759404
Он не понимает небось, почему using не подставляется.
Аноним 01/06/16 Срд 17:21:18 #16 №759409 
>>759403
Да не, про это как раз во всех книгах почти написано. Что знаковость char implementation defined, а типы вообще всегда считаются различными у всех трех.
Аноним 01/06/16 Срд 17:23:49 #17 №759414 
>>759409
> Что знаковость char implementation defined, а типы вообще всегда считаются различными у всех трех.
Многие знаю только про первую часть этого предложения.

Кстати, кто знает объяснение? Просто так, с потолка стандартопетухи решили, что пусть будет "implementation defined"?

я знаю объяснение, да
Аноним 01/06/16 Срд 17:25:41 #18 №759416 
>>759385
Ньюфаги, не ведитесь. Такого не бывает в реальном коде и знать это не обязательно. С тем же успехом можно начать обсуждать особенности работы IOMMU и доказывать, что java-разработчик не разработчик.

Overload resolution - одна из самых сложных частей C++, unified call по этой причине и отвергли от принятия в C++17.

Я, кстати, тоже не знаю ответа, хоть и пишу 3 года. Я, конечно, полез уточнять этот момент, но там читать на час, так что иди нахуй стандартоеб.
Аноним 01/06/16 Срд 17:27:04 #19 №759418 
>>759416
Двачую
Аноним 01/06/16 Срд 17:27:48 #20 №759419 
>>759416
>IOMMU
>java
Какая связь вообще?

>читать на час
Кек. Ищешь в содержании Integral promotion и открываешь. В первом же абзаце ответ.
Аноним 01/06/16 Срд 17:31:55 #21 №759421 
>>759419
>Какая связь вообще?
Вот и я спрашиваю, какая связь между ньюфагом и дрочевом правил overload resolution?
Аноним 01/06/16 Срд 17:32:26 #22 №759423 
>>759414
Потому что применение различается же. unsigned char для работы с памятью, char для арифметики. Если их отождествить, то может быть неоптимально для части сценариев. Если отождествить со знаковым, то всплывают проблемы с отрицательными кодами, либо половина кодов не используется, это тоже не очень хорошо.
Аноним 01/06/16 Срд 17:33:00 #23 №759425 
Анончики помогите разрулить жопную боль. Суть такова:
std::thread t([=](){
forever{
if(again){
t.sleep(1) //<<<-----Такова нету
std::count<<"function();";
emit nextImage();
}else
break;
}
});
t.join();

Суть такова, нужна задержка перед каждым выполнением функции. Какие могут быть варианты?
Аноним 01/06/16 Срд 17:33:20 #24 №759426 
>>759421
Ew, пахнет неосиляторством.
Аноним 01/06/16 Срд 17:34:09 #25 №759427 
>>759425
std::this_thread::sleep_for
Аноним 01/06/16 Срд 17:34:42 #26 №759428 
>>759426
Когда последний раз ты использовал знание integral promotion в своей работе?
Аноним 01/06/16 Срд 17:36:02 #27 №759429 
>>759428
На собеседовании же.
Аноним 01/06/16 Срд 17:37:22 #28 №759430 
>>759423
Отдельные утверждения верные и вроде можно разглядеть объяснение (если сам знаешь его), но в общем как-то неуверенно и невнятно.
Аноним 01/06/16 Срд 17:41:49 #29 №759431 
>>759429
Вся суть. Риал кейса, в котором это нужно и не нашлось.
Аноним 01/06/16 Срд 17:43:40 #30 №759434 
>>759430
Ну так я и не особо над этим задумывался раньше, если честно. Просвети штоле.
Аноним 01/06/16 Срд 17:46:30 #31 №759437 
14647923901290.png
Qt-проблемы
Ну так что, кто-нибудь может объяснить мне, как в QT из кода одного элемента изменить значения другого?
Ведь объект ui храниться в классе Window и он privite.
Аноним 01/06/16 Срд 17:47:26 #32 №759439 
>>759427
Он стопит основную нить а не ту которая у меня весит отдельно.
Аноним 01/06/16 Срд 17:48:07 #33 №759440 
>>759434
Стандарт определяет базовый набор символов и требует, чтобы его кодировка влезала в char и при этом числа, кодирующие базовый набор символов, были беззнаковыми.

Если char = 8 bit и кодировка ASCII, то char знаковый, т.к. 7 бит достаточно для кодирования базового набора.
А если кодировка вроде EBCDIC, то нужно 8 бит для кодирования и char приходится делать беззнаковым.

Правда, ХЗ, зачем нужно три разных типа. >_<
Аноним 01/06/16 Срд 17:49:12 #34 №759441 
>>759437
Т.е. ты хочешь например что-бы ui->spinBox менял, например ui->horizontalSlider?
Аноним 01/06/16 Срд 17:50:02 #35 №759442 
>>759439
Он стопит ту нить, в которой вызывается.
Аноним 01/06/16 Срд 17:52:30 #36 №759444 
И вообще, хули вы за integral promotion зацепились, если проблема в том, что в "unsigned x" x - это имя параметра, а не типа?
Аноним 01/06/16 Срд 17:53:02 #37 №759446 
>>759444
А почему должно быть имя типа?
Аноним 01/06/16 Срд 17:54:06 #38 №759447 
>>759446
А нахуй using тогда в примере? С тем же именем, что и параметр? Потолстить решил?
Аноним 01/06/16 Срд 17:54:55 #39 №759450 
>>759447
Да как-то со времён C привык, что
typedef A int;
A A;

означает int A; а не int int;
Аноним 01/06/16 Срд 17:57:20 #40 №759452 
>>759450
*typedef int A;

медленнофикс
Аноним 01/06/16 Срд 17:57:50 #41 №759453 
>>759450
А я не привык. И вообще, за такое натурально убивать надо. И за использование сокращенного определения типа. В общем, съеби кукаретик.
Аноним 01/06/16 Срд 17:58:33 #42 №759454 
>>759440
Я не уверен, но мне кажется, что ты сейчас хуйню сказал. Согласно 3.9.1/1, все три занимают одинаковое количество байтов, согласно 5.3.3/1 это количество в точности 1. Согласно 1.7/1 байт может хранить восьмибитный юнит UTF-8. Соответственно, здесь не стоит вопрос места, только вопрос эффективности конкретных операций. Например, если надо поддерживать знаковость, то в некоторых двоичных представлениях надо применять другие операции, которые, вообще говоря, могут быть и более сложными. Такого нигде реально нет, конечно, но это, по крайней мере, хотя бы теоретически дает мотивацию, в отличие от размеров, которые гарантированно совпадают у всех трех.
Аноним 01/06/16 Срд 18:00:47 #43 №759458 
>>759450
В той сигнатуре работает правило приоритета объявлений. unsigned x выглядит как объявление x, поэтому это оно и есть, хотя unsigned char бы тоже подошло. Это если неформально. А формально вроде этот случай с unsigned даже указан отдельно.
Аноним 01/06/16 Срд 18:01:34 #44 №759459 
>>759453
>за такое натурально убивать надо. И за использование сокращенного определения типа.
И за auto убивать надо?
Аноним 01/06/16 Срд 18:03:24 #45 №759461 
>>759459
Порой надо.
Аноним 01/06/16 Срд 18:04:33 #46 №759462 
14647934731030.png
>>759461
[] (auto, auto) {return auto;}
Аноним 01/06/16 Срд 18:08:24 #47 №759464 
>>759462
ЕХАЛ AUTO ЧЕРЕЗ AUTO
ВИДИТ AUTO - В AUTO AUTO
СУНУЛ AUTO AUTO В AUTO
AUTO AUTO AUTO AUTO!


Лучше, чем ОП-стих. Можно в следующий тхреад пихать не глядя.

Аноним 01/06/16 Срд 18:13:19 #48 №759468 
>>759441
>>759441
Ну типа того.
Допустим, я хочу при нажатии на кнопку изменить значение лейбла. Обычно, это сделалось бы с помощью сигнала/слота. А как сделать так, чтобы можно было именно из класса кнопки повлиять на другие элементы?

Вообще, в моём случае, это виджет, который находится на окне. В нём генерируется пикча и я хочу эту пикчу вывести на другой элемент.
Аноним 01/06/16 Срд 18:15:09 #49 №759469 
>>759454
Я вообще не про место или эффективность.
Я про 2.3/1, где определяется basic character set и 3.9.1/1 где требуется, чтобы char вмещал этот basic character set.

Кстати, в цепепе-стандарте не сказано, что значения, соответствующие basic character set, должны быть unsigned. Это сказано в стандарте C:
6.2.5 Types
3 An object declared as type char is large enough to store any member of the basic execution character set. If a member of the basic execution character set is stored in a char object, its value is guaranteed to be nonnegative.
Аноним 01/06/16 Срд 18:15:44 #50 №759470 
>>759468
Законекти оба объекта в классе в котором находяться экземпляры этих обектов, ну или какой-нить ивентФильтр установи. Правда у нас за ивентФильтры по бошке бьют.
Аноним 01/06/16 Срд 18:17:33 #51 №759472 
Почему вы в прошлом треде молчали, а тут так быстро посты строчите? Специально тред в бамплимит уносите?
Аноним 01/06/16 Срд 18:18:25 #52 №759473 
>>759472
> ко-ко-ко
Аноним 01/06/16 Срд 18:23:40 #53 №759476 
>>759472
Месье удачно набросил, а мы обсудили. Все нормально.
Аноним 01/06/16 Срд 19:08:07 #54 №759493 
>>759470
А что это значит вообще? В смысле законнектить сигнал/слот? А сигнал можно кастить как-то из кода самому?
Аноним 01/06/16 Срд 19:08:08 #55 №759494 
>>759462
бля что это такое
поясните отсталому дауну хелоувордщику застрявшему в 98году что это за хуйня и как её читать
Аноним 01/06/16 Срд 19:09:29 #56 №759495 
>>759494
Как неверную конструкцию, т.к. "return auto;" невалидно.
Аноним 01/06/16 Срд 19:26:20 #57 №759502 
>>759495
А как тип вернуть? Шаблоны вроде это могут. Может там return auto написать?
Аноним 01/06/16 Срд 19:28:07 #58 №759504 
>>759502
>тип вернуть
Как ты это будешь использовать?
Аноним 01/06/16 Срд 19:30:43 #59 №759505 
>>759504
Я не помню. Но как аргумент тип же можно использовать. Наверно и возвращать его можно.
sageАноним 01/06/16 Срд 19:36:05 #60 №759509 
>>759505
auto - это не тип, а конструкция языка. Есть еще такая интересная штука, как decltype(auto).
Аноним 01/06/16 Срд 19:41:39 #61 №759516 
14647992992460.jpg
>>759493
>>759470
Всё, вроде бы решил проблему.
Ебал я все эти сигналы/слоты.
Вот решение проблемы для илиты:
[code]
// uiWindow - parent, который передаётся в конструктор
QLabel QO = (QLabel)uiWindow->findChild<QLabel*>("label1");
QO->setText("test");
[/code]
Аноним 01/06/16 Срд 20:43:57 #62 №759546 
14648030378550.gif
КАК РАСПАРСИТЬ X, Y, Z ВЕКТОР?
Чёт не хочется писать самому парсер, проверять всякие там буквы, знаки, экспешены ловить.
Есть какое-нибудь решение уже готовое?

Постановка задачи.
Инпут: строка, вида 0.25, 0.12, 1.23
Нужно распарсить её в 3 float переменных + проверить на хуевые данные, чтобы эксепшен какой-нибудь потом не вылетел.
Аноним 01/06/16 Срд 20:47:39 #63 №759547 
>>759546
Любой вектор корректный. Что проверять?
Аноним 01/06/16 Срд 20:58:05 #64 №759557 
>>759547
буквы, знаки
Аноним 01/06/16 Срд 21:00:50 #65 №759559 
14648040507670.png
>>759557
Ты строкой читаешь*
Аноним 01/06/16 Срд 21:04:09 #66 №759560 
>>759546
Любой csv-парсер, тысячи их.
Аноним 01/06/16 Срд 21:12:47 #67 №759564 
>>759559
да
>>759560
Не подскажешь какой-нибудь? Желательно без каких-нибудь стрёмных зависимостей.

Аноним 01/06/16 Срд 21:14:44 #68 №759566 
>>759546
Вот тебе парсер, правда, он для C
https://github.com/orangeduck/mpc
Аноним 01/06/16 Срд 21:16:36 #69 №759571 
>>759564
Хз, сами обычно бустовским токенайзером парсим.
Первое, куда посылает гугль:
https://sourceforge.net/projects/cccsvparser/
https://code.google.com/archive/p/csv-parser-cplusplus/
Аноним 01/06/16 Срд 21:44:38 #70 №759590 
В ВАШЕМ СРАНОМ КЬЮТЕ ЕСТЬ ВООБЩЕ ТАКОЙ GUI ЭЛЕМЕНТ, КАК ЛИСТ???
Какие-то QListView, какие-то модели блять. Обычный сука лист нужен.
Аноним 01/06/16 Срд 21:53:17 #71 №759595 
>>759590
Ну берёшь и используешь его (или виджет, я не помню какой там оптимальнее для анальных игр) без всяких MVC.
Аноним 01/06/16 Срд 22:03:17 #72 №759599 
>>759595
Спасибо.
Виджет нормально работает, а именно QListView элемент - вообще дерьмо бесполезное.
Аноним 01/06/16 Срд 23:47:55 #73 №759675 
14648140753120.png
Анон, возможно ты знаком с sfml. Не знаю как избавиться от белого квадрата. Новые объекты добавляются через emplace_back.

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

Спрайт и текстура храняться в каждом объекте. Похоже emplace_back переносит куда-то в памяти весь массив, в результате "старые спрайты" имеют не правильный указатель на текстуру. Как быть?
sageАноним 01/06/16 Срд 23:53:49 #74 №759685 
>>759675
Весь код давай, а не только отрезок класса.
Аноним 02/06/16 Чтв 00:30:48 #75 №759700 
>>759685
http://ideone.com/K4SZzw

http://puu.sh/pddKg/ad7f3c6436.png
Аноним 02/06/16 Чтв 00:33:55 #76 №759703 
Если программировать на Haskell одно удовольствие, а программировать на C++ сплошная пытка — то почему весь промышленный код пишется именно на крестах? Что это? Стокгольмский синдром? Мазохизм? Подсознательная жажда унижений?
Аноним 02/06/16 Чтв 00:34:49 #77 №759705 
>>759703
Промышленности обычно нужно что-то большее, чем вычисление факториала.
Аноним 02/06/16 Чтв 00:36:13 #78 №759706 
>>759700
Кинь пик с тем, что выводит
Аноним 02/06/16 Чтв 00:40:31 #79 №759710 
>>759706
Выводит куда?
http://puu.sh/pdeAL/7fe10ed277.png
Аноним 02/06/16 Чтв 00:43:01 #80 №759711 
>>759710
На экран. Ну у тебя 2 спрайта. Позицию ты не задал. Размер не задал. Кидай пик как ты писал в >>759675

Аноним 02/06/16 Чтв 00:45:02 #81 №759718 
>>759546
Неужели написать велосипед с stringstream труднее чем использовать чужой код?
Аноним 02/06/16 Чтв 00:55:43 #82 №759723 
>>759711
http://puu.sh/pdfDg/6305d2cc97.png
sageАноним 02/06/16 Чтв 01:03:52 #83 №759727 
>>759723
http://ideone.com/EvFEtk

В общем, проблема такова:
в createpath ты создаешь временный объект с временной текстурой и спрайтом, когда делаешь это:
obj.emplace_back(Path);
Так как у тебя нет copy или move конструктора, то в emplace_back вызывается конструктор, сгенерированный компилятором, который втупую копирует объект. Когда выходишь с функции, временный объект удаляется вместе с текстурой. Спрайт в объекте из вектора ссылается на временную (уже удаленную) текстуру, поэтому выводится белый квадрат.
Аноним 02/06/16 Чтв 01:07:49 #84 №759728 
>>759727
А я думаю иначе.
>>759723
Сами текстуры скорее всего с подсчетом ссылок. При копировании объекта ничего не удалится. А вот при создании спрайта у тебя скорее всего передается адрес текстуры в памяти. Нужно передавать адрес текстур, а не создавать их в объектах.
И ещё. Сюда можно загружать скрины.
Аноним 02/06/16 Чтв 01:11:45 #85 №759730 
14648191054800.png
Ну да. Я был прав.
sageАноним 02/06/16 Чтв 01:12:53 #86 №759731 
>>759728
Нет, текстура - это жирный объект:
https://github.com/SFML/SFML/blob/master/src/SFML/Graphics/Texture.cpp
Спрайт как раз используется с texture, чтобы избежать дублирования ресурсов.
Но да, ты прав, лучше завести отдельный менеджер текстур и передавать ссылки на них в объекты и дальше спрайтам.

>>759730
И где ты тут прав?
sageАноним 02/06/16 Чтв 01:16:49 #87 №759733 
>>759728
А ну да, со спрайтом ты прав. Но по сути ты сказал то же самое, что и здесь >>759728, но у текстур нет подсчета ссылок.
Аноним 02/06/16 Чтв 01:17:00 #88 №759734 
>>759703
Шкорость выполнения.
Аноним 02/06/16 Чтв 01:18:20 #89 №759735 
>>759733
>но у текстур нет подсчета ссылок
Ну ок. Просто выразил предположение.
Аноним 02/06/16 Чтв 12:25:39 #90 №759923 
>>759516
ебать как все сложно
Аноним 02/06/16 Чтв 13:56:53 #91 №759986 
>>759703
>программировать на Haskell одно удовольствие
>программировать на C++ сплошная пытка
У тебя обе посылки неверные. Например, и там блядь сука сраные монады хер проссышь ваще как сделать цикл и там пиздец оно должно работать какой нахуй сегфолт ну как так в самом начале бугуртил, но с увеличением опыта увеличивалось и удовольствие.
Аноним 02/06/16 Чтв 13:59:15 #92 №759991 
>>759502
template <параметры метафункции> struct YourMomma { using res_type = вычисления на типах; }
Аноним 02/06/16 Чтв 14:29:23 #93 №760013 
народ посоветуйте куда вкатиться, я года джва три лернил Стивена Прату, выполнил все задания в конце всех глав, но никаих технологий не освоил и как их найти, и где искать работы тоже не понимаю, усилий въебал дохерища, а отдачи ноль, я в жутком отчаянии что делать?
Аноним 02/06/16 Чтв 14:30:49 #94 №760015 
>>760013
ХЗ знает, я сам безработный.
Аноним 02/06/16 Чтв 14:31:11 #95 №760018 
>>760013
Выбирай область по душе. Изучай технологии. Иди работай.
Аноним 02/06/16 Чтв 14:34:08 #96 №760023 
>>760018
какую область? есть какой-нибудь гайд? я слабо представляю как всё обстоит. есть смысл например учить яву начинать, ведь там работы больше.
Аноним 02/06/16 Чтв 14:40:38 #97 №760031 
>>760023
>какую область?
Которая больше всего нравится.
Аноним 02/06/16 Чтв 15:01:15 #98 №760043 
>>760031
ты - мудак, есть такой типаж
Аноним 02/06/16 Чтв 15:01:53 #99 №760044 
>>760031
или долбоёб
Аноним 02/06/16 Чтв 15:09:10 #100 №760047 
>>760043
>>760044
Ну блин. Откуда я могу знать, что тебе больше всего нравится?
Аноним 02/06/16 Чтв 15:10:29 #101 №760048 
>>760047
мне нужна инфа, какие направления есть?
Аноним 02/06/16 Чтв 15:10:41 #102 №760049 
>>760047
А где список?
Аноним 02/06/16 Чтв 15:11:53 #103 №760050 
>>760013
Твоя главная проблема по жизни состоит в том, что ты мелкобуквенный.
Аноним 02/06/16 Чтв 15:14:41 #104 №760052 
>>760048
>>760049
Иди в java тред. Кресты не для тебя.
Аноним 02/06/16 Чтв 15:15:47 #105 №760053 
>>760052
А как же 3 года дрочки крестов?
Аноним 02/06/16 Чтв 15:17:36 #106 №760054 
>>760053
Ну если ты 3 года учишь кресты и не смог найти работу, то кресты не для тебя. А может и программирование не для тебя.
Аноним 02/06/16 Чтв 15:48:11 #107 №760081 
>>760054
и жизнь не для меня, ответил ананас на вопрос который я не задавал.
Аноним 02/06/16 Чтв 15:56:01 #108 №760085 
>>760052
в джава треде хотя бы шапка нормальная, тут просто хуита о синтаксисе, сразу видно что крестовое комьюнити состоит из долбаёбов, у вас весь тред о синтаксисе штоле блядь?
Аноним 02/06/16 Чтв 16:40:27 #109 №760128 
14648748274080.gif
>>760085
>шапка нормальная
>3.5 книги
>нет софта
>нет стихов
>есть реклама JavaRush
Аноним 02/06/16 Чтв 16:53:43 #110 №760141 
>>760128
>Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.

Это реклама JavaRush, ну я даже не знаю.
Аноним 02/06/16 Чтв 17:08:51 #111 №760154 
Подскажите, я тот ньюфаг что изредка тут спрашивает, я тут задачку пробую решить с ньюфагокниги, я её в тетради решил по числам, но в коде не могу.
Аноним 02/06/16 Чтв 17:10:18 #112 №760155 
>>760154
Ну кидай. Помогу чем смогу.
Аноним 02/06/16 Чтв 17:13:21 #113 №760158 
>>760155
Но я не хочу чтобы задачку кто-то решал за меня, тем более что это начальные простые задачи. Если до завтрашнего обеда не смогу решить, то напишу. У меня решение на уме вертится, надо проветриться.
Аноним 02/06/16 Чтв 17:20:42 #114 №760164 
>>760154
Удачи. У тебя получится. Всё можно решить если постараться.
Аноним 02/06/16 Чтв 17:23:37 #115 №760168 
>>760158
И чего тогда тебе подсказать?
Аноним 02/06/16 Чтв 18:40:49 #116 №760217 
14648820492610.jpg
>>759728
>>759731
tnx помогло
>Сюда можно загружать скрины.
интернетов не хватает для картинок овер 1мб, за 2 минуты аплоада макаба сбрасывает загрузку. Да и с puush не нужно сохранять-искать-чистить, всегда прямые ссылки на любые файлы, словом удобнее да и уже привычнее
Аноним 02/06/16 Чтв 19:44:11 #117 №760250 
>>760141
Да у вас семь пятниц на неделе, в каждом тренде кусок про джавараш меняется на диаметрально противоположный.
Аноним 02/06/16 Чтв 22:27:26 #118 №760353 
Как быстро скопировать многомерный массив в многомерный вектор векторов?
Потипу копирования одномерного:
http://ideone.com/gOiVJP
Аноним 02/06/16 Чтв 22:35:43 #119 №760373 
>>760353
фором ручками каждый элемент копируй. Ну 1 вложенный вектор можешь конструктором по умолчанию заполнить. А все остальные форами.
Аноним 02/06/16 Чтв 22:49:38 #120 №760402 
>>760353
https://gist.github.com/frostoov/4744da28b3fb21fceef505c0bd54743d
Аноним 02/06/16 Чтв 22:49:48 #121 №760403 
>>760373
>1 вложенный вектор можешь конструктором по умолчанию заполнить
дык это 1 строка, а нужна "плоскость".

Для вектора можно пристроить memcpy? Все же высокий уровень все такое.
Аноним 02/06/16 Чтв 23:03:43 #122 №760411 
>>760403
>Для вектора можно пристроить memcpy?
Нет.
Аноним 03/06/16 Птн 00:20:49 #123 №760443 
Почему это Qt под шинду с помощью vc2013 так говено собирается, в чем секрет? Или это норма больший сборки? Никогда ничего не собирал
sageАноним 03/06/16 Птн 00:53:36 #124 №760451 
>>760402
методом тыка вроде дотыкался
http://ideone.com/dq8beD

>>760411
Надеюсь с записью collection[0] = vec2 все нормально, а то подозрительно легко перезаписываются вектора разного размера...

Спасибо тебе, Антон.
Аноним 03/06/16 Птн 01:08:12 #125 №760457 
>>760451
>>подозрительно легко перезаписываются вектора разного размера
RAII же. В современных плюсах редко приходится вручную управлять ресурсами
Аноним 03/06/16 Птн 05:13:18 #126 №760480 
>>760402

error C3533: auto &: параметр не может иметь тип, содержащий спецификатор "auto"

может быть проблема в mvc13? вроде хуямды и авто доработали еще в 11м штандарте
Аноним 03/06/16 Птн 08:19:54 #127 №760500 
>>760480
В mvc13 неочень поддержка С++11. Ставь mvc15
Аноним 03/06/16 Птн 11:52:24 #128 №760554 
>>760480
в лямбдах ставить auto можно с c++14
Аноним 03/06/16 Птн 12:35:17 #129 №760568 
14649465177050.png
Программисты, я вчерашний нуб, в общем ситуация такая: http://ideone.com/IHYzYH, задачка на пике.
Суть в том, что я мог бы легко её сделать через if-else, там просто очень большим получится решение, но я подумал - ведь можно сделать так, чтобы после ответа каждый раз генерировалось бы сами все ступени.
Я рассчитал вот что:
- сначала берётся число 50, y означает + в лестнице, n -.
- каждая последующая ступень делится на n*2, т.е. 1 ступень это 50, 2 ступень - 50/2, 3 ступень - 50/4 и т.д.
Собственно например мы загадали число 22, вопрос ставится - больше ли это число чем Х, где Х сейчас это 50:
1. 50
n минус в выражении
2. 50 - 50 / 2 = 25
n
3. 50 - 50 / 2 - 50 / 4 = 13
y плюс
4. 50 - 50 / 2 - 50 / 4 + 50 / 6 = 21
y
5. 50 - 50 / 2 - 50 / 4 + 50 / 6 + 50 / 8 = 27
n
6. 50 - 50 / 2 - 50 / 4 + 50 / 6 + 50 / 8 - 50 / 10 = 22
Оно.

Можно ли это как-то сделать через самогенирирущийся код? Я вижу что можно, но у меня не хватает знаний... Дайте подсказку, пожалуйста.
Аноним 03/06/16 Птн 12:37:40 #130 №760570 
>>760568
Используй циклы, Люк. В цикле меняй начало и конец интервала.
Аноним 03/06/16 Птн 12:39:38 #131 №760572 
>>760570
Так я цикл while использую, ладно, надо еще подумать.
У меня, вообще, такая идея была: сделать 3 вектора, 1 - записывает числа, 2 - ввод n/y, 3 - шаг. Просто, у меня в голове пока не умещается решение.
Аноним 03/06/16 Птн 13:05:07 #132 №760579 
>>760572
Цикл, внутри ветвление. Всё.
int a = 22, b = 50, c = b;
while (b != a)
{
c=c/2;
if (a < b)
b=b-c;
else
b=b+c;
}
cout << b;
Вроде работает.
Аноним 03/06/16 Птн 13:24:58 #133 №760590 
>>760579
Разве что при a =1 b =100 выдаёт 8 итераций.
А вот это c=c/2; нужно заменить на if (c>1) c=c/2;
Аноним 03/06/16 Птн 13:48:39 #134 №760606 
Как мне создать исполняемый файл .exe под Windows из обычного C++ кода или какого-то Qt проекта? Сам сижу на GNU/Linux.
Аноним 03/06/16 Птн 13:55:24 #135 №760607 
>>760579
Стандартный способ это делать M=(L+R)/2; а дальше соответственно L=M; ну или R.
L это число <= искомому, поэтому в начале оно равно 1. R это число большее искомого, поэтому для поддержания инварианта он сначала равно 101.
Аноним 03/06/16 Птн 13:55:58 #136 №760608 
>>760568
У тебя алгоритм кривой. И генерация кода не нужна. Просто 1 цикл. Про генерацию года почитай шаблоный
Аноним 03/06/16 Птн 13:56:52 #137 №760610 
>>760607
И цикл делается while (R-L>1) для бинарного поиска и (R-L>2) для тернарного.
Аноним 03/06/16 Птн 13:59:16 #138 №760612 
>>760607
Я алгоритмами никогда не занимался. Што поделать.
Аноним 03/06/16 Птн 14:01:24 #139 №760613 
>>760568
Для 23 твоя программа не работает.
Аноним 03/06/16 Птн 14:01:48 #140 №760614 
>>760612
Поищи бинарный поиск. Почитай e-maxx.ru
Аноним 03/06/16 Птн 17:50:14 #141 №760757 
>>760568
В софтаче отказались помогать. Запускаю эти программы и вручную копипащу вывод их на ввод друг другу. Всё работает. Пытаюсь с помощью консоли их зациклить, но не выходит. Как это надо делать?

http://pastebin.com/aQ9wy9VM
http://pastebin.com/CzKk1dK3
Аноним 03/06/16 Птн 18:43:57 #142 №760787 
>>760757
Пайпом соединить, через |
Аноним 03/06/16 Птн 19:00:50 #143 №760800 
14649696504960.png
ПРОБЛЕМЫ НЕ ВИДАННЫХ РАНЕЕ МАСШТАБОВ
Кароче, пишу в Qt проект. Там много всего. И Qt-шная многопоточность, и OpenMP, и OpenGL, и пару либ математических.
Кароче, попытался запустить экзешник отдельно, а не через qt creator и конкретно соснул.
Выходит пикрилейтед.
Вроде dll'ки закинул туда. А тут ошибка вообще какая-то странная.
Еще и непонятно, как она на английском звучит. Что за нахуй точка входа? Пытался загуглить, но чёт не вышло вообще ничего.

Есть какие-нибудь идеи, ананасы?
Аноним 03/06/16 Птн 19:04:41 #144 №760802 
>>760800
>непонятно, как она на английском звучит
The procedure entry point could not be located in the dynamic link library
Аноним 03/06/16 Птн 19:07:34 #145 №760804 
>>760800
не по Сеньке шапка!

почитай по компоновку и все поймешь
Аноним 03/06/16 Птн 19:10:54 #146 №760805 
>>760800
Ну либа некоректная или нет ее.. задеплой нормально, ёпта!
Аноним 03/06/16 Птн 19:32:01 #147 №760814 
>>760787
Не работает это т.к. он вывод первой программы подаёт на вторую, а второй в консоль. Нужно чтобы вывод второй подавался на первую. Нашёл решение в интернете. mkfifo fifo; ./1 < fifo | ./2 > fifo; rm fifo. Но он не показывает вывод. Файл fifo всегда пуст. Пытаюсь tail -f fifo делать, но он не показывает изменений и программы зависают запущены но бездействуют. Что делать?
Аноним 03/06/16 Птн 19:34:11 #148 №760816 
арвар
Аноним 03/06/16 Птн 19:37:06 #149 №760821 
>>760814
Разве можно вот так просто пытаться читать пайп? Его же вроде только один раз прочитать можно, поэтому он и пустой.
Аноним 03/06/16 Птн 19:40:56 #150 №760823 
>>760821
>Его же вроде только один раз прочитать можно
Скорее всего так. Но тогда я не понимаю что с ним происходит. Если tail не получает никаких данных, то эти данные должны были читать программы. Но они зависают как-будто ждут ввода.
Аноним 03/06/16 Птн 19:56:53 #151 №760827 
>>759279 (OP)
Пацаны, как в плюсах прикрутить таймер? Хочу узнать, на сколько с кудой быстрее считается массив
Аноним 03/06/16 Птн 19:57:51 #152 №760829 
>>760827
Проще таймер из ос использовать чем в программу вписывать.
Аноним 03/06/16 Птн 20:06:46 #153 №760837 
>>760829
я уже так делал
Аноним 03/06/16 Птн 20:08:13 #154 №760838 
>>760837
А зачем вторым вариантом хочешь попробовать?
Аноним 03/06/16 Птн 20:11:25 #155 №760841 
>>760838
Нужны скриншоты в отчете
Аноним 03/06/16 Птн 20:13:35 #156 №760842 
14649740155940.png
>>760804
>>760805
>>760800
У меня так и не вышло найти dll. Ничего даже не гуглится.
Я убрал OpenMP, посмотреть что будет и появился новый эррор.

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

Есть какой-нибудь альтернативный вариант?
Аноним 03/06/16 Птн 20:15:56 #157 №760844 
>>760842
И это вообще нормально, что он не пишет какая именно dll?
Аноним 03/06/16 Птн 20:20:49 #158 №760846 
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
Аноним 03/06/16 Птн 20:21:12 #159 №760847 
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
sageАноним 03/06/16 Птн 20:22:17 #160 №760848 
>>760842
Как ты вообще умудрился что-то там напрограммировать с OpenMP, если не в состоянии решить такую проблему? Я хуею.
Аноним 03/06/16 Птн 20:22:50 #161 №760849 
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
Аноним 03/06/16 Птн 20:22:59 #162 №760850 
>>760848
Двачую
Аноним 03/06/16 Птн 20:24:41 #163 №760851 
>>760848
И ещё этот >>760827
С кудой разорался, а как вывести время нагуглить не может
Аноним 03/06/16 Птн 20:30:41 #164 №760853 
>>760848
>>760848
Ладно, мне немного стыдно, что я не умею ебаться со всякими там библиотеками и сборками, но ты всё-равно пидор.

Аноним 03/06/16 Птн 20:31:01 #165 №760854 
>>760842
Расскажу тебе, как решить этот трабл, хоть я и ньюфак 4-недели в программировании, а ты параллелишь на OpenMP.
Идешь сюда:
http://www.dependencywalker.com/
Качаешь и сначала смотришь все либы и таблицы импорта. Библиотеки, которых не хватает там будут подсвечены (там есть некоторые проблемы с либами самой майкрософт из-за древности софта, но в целом он работает отлично).

Если это тебе не помогло, то пришло время ебаться с отладчиком. Тут гугли сам, как подключить исходники к твоему отладчику + как ставить брейкпоинты и т.д.
Аноним 03/06/16 Птн 20:51:56 #166 №760857 
>>760846
>Нужно понимать, что используемый язык должен соответствовать поставленной задаче
>C++ это по-настоящему сложный язык
>крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей

Да ты охуел, братец. Мы тут почти год жопу рвали, чтобы шапка была объективной. Насколько я могу судить, это сейчас единственный тред, в котором нет неаргументированных кукареков в духе НАШ ЯЗЫК ЛУЧШИ ВСЕХ!!!!111111.
Аноним 03/06/16 Птн 20:52:42 #167 №760858 
>>760827
std::chrono же.
Аноним 03/06/16 Птн 20:55:08 #168 №760861 
>>760857
>неаргументированных
Главное слово. Вы додумались ещё и аргументы придумать к своим кукарекам.
Аноним 03/06/16 Птн 20:59:42 #169 №760862 
14649767823400.jpg
>>760861
Опровергни.
Аноним 03/06/16 Птн 21:21:20 #170 №760874 
>>760862
> ответы на возникающие у тебя вопросы ищешь в предыдущих тредах
> забыл поставить точку с запятой
> заставляют читать 30 тредов
> не фанатизм

>Мощь
Такой аргумент к любому популярному языку можно отнести.
Потом одна вода уровня каждой задаче свой инструмент но наш язык решает больше задач и делает это лучше.
Потом талмуд книг у 4ёх из которых название "Язык программирования C++"
У вас даже блог алёны в шапке.
Аноним 03/06/16 Птн 21:42:20 #171 №760887 
>>760854
Ты, рачила ньюфаговская, нахуя даешь how to советы, бля? В простонародье это зовется "медвежья услуга".

Адресую другой рачиле: читай про компоновку, блядь! Ничего у него не гуглится, нахуй. Как же мы тут живем-то!

Для тех, кто в гугле забанен:
https://habrahabr.ru/post/150327/
Аноним 03/06/16 Птн 21:44:15 #172 №760889 
Горит от пидорасов, которые по верхам нахватываются и ебошат "Qt проект. Там много всего. И Qt-шная многопоточность, и OpenMP, и OpenGL, и пару либ математических.". А основ не знают, бля.

Вангую, что и все перечисленное ты нихуя не знаешь.

Аноним 03/06/16 Птн 21:46:49 #173 №760892 
>>760874
Просто, съеби. На входе так и написано: вопросы по синтаксису идут нахуй. Залетных ебланов, не способных осилить синтаксис, мы и не ждем.
Аноним 03/06/16 Птн 22:00:08 #174 №760899 
14649804089090.png
>>760858
От души, братуха!
Аноним 03/06/16 Птн 22:04:28 #175 №760901 
>>760874
>к любому популярному языку
Напомни мне, где еще есть полноценная поддержка шести парадигм?
Аноним 03/06/16 Птн 22:05:23 #176 №760902 
>>760901
питон
Аноним 03/06/16 Птн 22:07:39 #177 №760904 
>>760902
>процедурное
>ООП
>функциональное
Какие там еще?
Аноним 03/06/16 Птн 22:14:37 #178 №760914 
14649812780150.png
14649812780151.png
>>760904
Аноним 03/06/16 Птн 22:17:07 #179 №760915 
14649814276910.jpg
Если нужо скачивать инфу с сайтов, к примеру, выводить текст первые 5 запросов по переменной типа стринг в гугле. В плюсах есть библиотеки для реализации этого? Что гуглить подскажите, буду весьма благодарен.
Аноним 03/06/16 Птн 22:21:10 #180 №760919 
>>760915
Думаю requests сойдет.
Аноним 03/06/16 Птн 22:30:06 #181 №760923 
>>760919
Нагуглил много библиотек, в бусте как с этим обстоят дела, известных проблем нет?
Аноним 03/06/16 Птн 22:30:54 #182 №760925 
>>760914
>обобщенное программирование -/+
>функциональная -/+
Ну это толсто же, писано году в 2005.
Аноним 03/06/16 Птн 22:52:50 #183 №760937 
>>760887
Я прочёл статью.
Но я всё-равно не понял, почему так происходит.
В чём разница между вызовом экзешника из qt криэйтора и просто даблкликом? Разница же только в установленных в Qt путях, нет?
Аноним 03/06/16 Птн 22:55:18 #184 №760938 
>>760925
Где-то так и есть, они там до сих пор кортежи ждут со дня на день.
Аноним 03/06/16 Птн 22:59:02 #185 №760939 
>>760827
time laba2
Аноним 03/06/16 Птн 23:03:17 #186 №760943 
>>760939
Уже разобрался.

Кстати, кто-нибудь пердолился с OpenCL? Где можно курнуть гайдов и как прикрутить всю эту хуйню к VS2012?
Аноним 03/06/16 Птн 23:03:52 #187 №760944 

>>760923
В бусте всё отлично, но "взять и скачать" там нечем.
Аноним 03/06/16 Птн 23:08:14 #188 №760947 
>>760944
Ну, делается же запрос на файл, и файл передается по .ээ ftp еслим не ошибаюсь, имеешь ввиду что ftp нет в бусте?
Алсо, такой вопрос, если я делаю запрос на сайт loh.com/index.html
Если я делаю это через програмку - она выдает нме тонну текста, хотя сам сайт выглядит весьма просто.
Так вот вопрос, в сам БРАУЗЕР этот же index.html передается точно в таком же виде, или присутствует какая-либо конвертация?
Аноним 03/06/16 Птн 23:30:13 #189 №760962 
Я задал вопрос, пидоры >>760847
Аноним 03/06/16 Птн 23:37:33 #190 №760964 
>>760962
Не знаю. Наверное какие-то компенсирующие ноулайферы.
Не думаю, что тут много кто плотно сидит.
Аноним 03/06/16 Птн 23:47:03 #191 №760965 
>>760962
>>760964
Семен такой Семен...
Аноним 03/06/16 Птн 23:48:18 #192 №760966 
>>760965
Но я правда не он.
Аноним 04/06/16 Суб 00:22:59 #193 №760984 
>>760966
Ладно, шучу. Я вас просто затолстил, лол.
Аноним 04/06/16 Суб 00:41:26 #194 №760993 
>>760847
Потому что быдлокодеры и есть секта. Со своими конфессиями.
Аноним 04/06/16 Суб 08:43:48 #195 №761060 
Че по нейросетям, ген. алгоритмам, машинному обучение и прочему ии подобному почитать посоветуете?
Знаю, что такое уже есть, но мне бы книги с примерами кода на крестах
Аноним 04/06/16 Суб 09:05:03 #196 №761065 
>>761060
Тут где-то тред с литрой и курсами по cs был, поскроль, поищи. С примерами кода на крестах точно не найдёшь, ибо там учат алгоритмам, а не языку.

В любом случае, насколько я знаю, в ирл все моделируют/прототипируют нейросети и пр на питонах, а потом уже готовые алгоритмы переносят на плюсы при нужде в перформансе.
Аноним 04/06/16 Суб 09:07:20 #197 №761066 
>>761065
>все моделируют/прототипируют нейросети и пр на питонах, а потом уже готовые алгоритмы переносят на плюсы
Двачую. Либо юзают связку Python + C++.
Аноним 04/06/16 Суб 11:19:38 #198 №761123 
>>759279 (OP)
Студия на шиндовс хп, sp1 пойдет?
Или лучше не выебываться и продолжать сидеть на 8?
Аноним 04/06/16 Суб 11:22:17 #199 №761126 
>>761123
2008 на xp ставь
Аноним 04/06/16 Суб 11:27:03 #200 №761133 
>>761126
Да я уж как то к новой попривык.
Аноним 04/06/16 Суб 12:08:19 #201 №761156 
>>760899
Ты там че ОСь пишешь?
Аноним 04/06/16 Суб 12:29:11 #202 №761161 
>>761156
>Програм.цэпэпэ
Рилтаймовую.
Аноним 04/06/16 Суб 15:39:09 #203 №761248 
Господауны, как найти максимум в std::deque?
max_element (deq.begin(), deq.end()) не компилится.
Аноним 04/06/16 Суб 15:41:25 #204 №761250 
>>761248
Думаю, твоя проблема в том, что ты не способен прочитать текст ошибки компилятора.
Аноним 04/06/16 Суб 15:44:05 #205 №761251 
>>761250
Я не могу ее понять.
Аноним 04/06/16 Суб 15:44:35 #206 №761253 
>>761251
error: cannot convert 'std::_Deque_iterator<int, int&, int*>' to 'int' in assignment
max = std::max_element (deq.begin(), deq.end());
Аноним 04/06/16 Суб 15:47:26 #207 №761257 
>>761253
Я кароче нуфаг, но скажу свое мнение.
Deque, эт очередь, а max_element ищет в диапазоне, другими словами перебирает. А в deque, ты можешь обращаться ток к 1ому или последнему элементу.
Я прав или мне нахуй сходить?
Аноним 04/06/16 Суб 15:49:18 #208 №761258 
>>761257
У очереди есть носитель (вектор или список), в котором можно искать максимум.
Аноним 04/06/16 Суб 15:55:20 #209 №761268 
>>761253
http://ideone.com/NRw2n5
Соглашусь со вторым аноном, учись читать ошибки компилятора.
Аноним 04/06/16 Суб 15:56:06 #210 №761269 
>>761268
Пусть он лучше документацию научится читать.
Аноним 04/06/16 Суб 15:59:48 #211 №761273 
>>761253
> std::max_element
Почитай в документации что возвращает std::max_element. И раз это итератор то его нужно разименовать чтобы получить значение.
Аноним 04/06/16 Суб 16:09:10 #212 №761287 
>>761257
>Я прав или мне нахуй сходить?
Второе.
А лучше сходи сюда:
http://en.cppreference.com/w/cpp/container/deque
Вкат Аноним 04/06/16 Суб 19:09:31 #213 №761422 
Господа, я хочу вкатиться к вам, потому что мне нужен язык, на котором я буду писать небольшие десктопные программки, а возможно, когда-нибудь, сяду за микруху. С основами программирования знаком. С++ стилистически нравится. Но проблема в том, что мне нужно писать быстро, быстро видеть результат и быстро идти дальше. Программы небольшие (к примеру, полив автоматизировать, тексты определенной структуры обработать, гуй к консольной утилите запилить) и не слишком требовательные к производительности, но скорость разработки важна. И вот тут я не уверен, что С++ для меня. Можно к вам быстро вкатиться и быстро начать писать реальные продукты, пусть и сначала на нубоуровне? Java/Python не хотелось бы, потому как там интерпретатор нужен в том или ином виде, да и назначение немножко не то, C# поинтереснее, но мне он синтаксически не очень симпатичен + майкрософт, .NET и все в этом духе. Если я возьму вашего Липпмана из шапки + wxwidgets/Qt5 (собственно, что из них лучше и быстрее взять?), я смогу комфортно писать код, не отплевываясь от низкоуровневости и пещерности? Насколько быстро вообще вкат пойдет? Через 40 часов изучения смогу написать гуй-калькулятор? Если нет, то как быть?
Аноним 04/06/16 Суб 19:15:03 #214 №761435 
>>761422
>небольшие десктопные программки
C#
>микруху
C
>Можно к вам быстро вкатиться и быстро начать писать реальные продукты, пусть и сначала на нубоуровне?
Нет.
>Если я возьму вашего Липпмана из шапки + wxwidgets/Qt5 (собственно, что из них лучше и быстрее взять?), я смогу комфортно писать код, не отплевываясь от низкоуровневости и пещерности?
Да.
>Насколько быстро вообще вкат пойдет?
Год.
>Через 40 часов изучения смогу написать гуй-калькулятор?
Нет.
>Если нет, то как быть?
C#
Аноним 04/06/16 Суб 19:15:22 #215 №761436 
>>761422
Приличная скорость разработки на крестах достижима, но для этого нужно лет пять опыта, плюс неплохо иметь опыт в других языках для развития навыков декомпозиции и дизайна кода (чистые кресты калечат мозг). Бери пистон или C#.
Аноним 04/06/16 Суб 19:16:19 #216 №761439 
>>761435
>>761436
Двачую обоих.
Аноним 04/06/16 Суб 19:20:29 #217 №761443 
>>761422
> полив автоматизировать
Купить готовое решение на рынке и не ебать себе мозг.
> тексты определенной структуры обработать
Perl.
> гуй к консольной утилите запилить
wxPython.
Аноним 04/06/16 Суб 19:22:20 #218 №761447 
Почему в коде decltype(a = b) d = a не выполняется присвоение a = b?
Аноним 04/06/16 Суб 19:25:19 #219 №761449 
>>761436
Пистон - не то, что мне нужно. Шарп просто не нравки, как не нравки Visual Studio, .NET и прочая параша.
>>761435
>Нет.
Хуле нет-то? И чем C# столь лучше? Длина массива из коробки?
Аноним 04/06/16 Суб 19:27:34 #220 №761454 
>>761443
>wxPython
Счетчик кликов мыши на 50 мб в памяти? Нет, спасибо.
Аноним 04/06/16 Суб 19:28:44 #221 №761455 
>>761447
Потому что decltype выполняется на этапе компиляции, а не в рантайме.
Аноним 04/06/16 Суб 19:32:27 #222 №761461 
>>761449
>Пистон - не то, что мне нужно
Тебе видней.
>Шарп просто не нравки, как не нравки Visual Studio, .NET и прочая параша.
Мне тоже. Но у меня времени больше и задачи другие.
>Хуле нет-то?
За 40 часов ты только до классов дойдёшь.
>И чем C# столь лучше?
Он проще. Сделан специально чтобы заменить дэлфи и осталось возможно кодить мышкой. Если у кого-то есть реквестирую статистику по времени изучения каждого языка.
>Длина массива из коробки?
Сам понял что сказал?
Аноним 04/06/16 Суб 19:33:21 #223 №761465 
>>761422
Можешь попробовать что нибудь из лиспов.
Аноним 04/06/16 Суб 19:40:27 #224 №761481 
>>761422
Завтра ищешь в интернете книжку Керниган, Ричи. Язык C. Похуй если ничего не поймешь. Затем идешь на http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию сишного кода - 1TBS, чтобы от зубов отскакивало. Когда напишешь свою первую сортировку Хоара, по пути изучив ассемблер инлайном, скачиваешь и изучаешь любую олдовую среду разработки, рекомендую Turbo C. Как переделаешь сортировку, чтобы была по меньшей мере итеративной, а не рекурсивной, можешь идти дальше - тебя ждет увлекательный мир байтоёбства. Хипсорт, сверхбыстрые асинхронные B-деревья, xor-связные списки. Отсос у хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-богов, которые работают в тёплом офисе за приличную зарплату не заставит себя ждать и уже через пол года ты будешь так редко мыться, что любая баба будет брезгливо закрывать нос платком при одном упоминании твоей одежды.
Аноним 04/06/16 Суб 19:40:42 #225 №761482 
>>761461
Да, функция, возвращающая длину массива.
> Сделан специально чтобы заменить дэлфи и осталось возможно кодить мышкой.
Блядь. Вот это вроде то, что нужно как раз (я что-то вроде современного делфи и хотел найти), но мне уж очень не нравится VS, Net и Мрикософт.
Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?
> чтобы заменить дэлфи и осталось возможно кодить мышкой
До классов я побыстрее дойду, мне же
1) не надо все изучать досконально
2) основы программирования я все-таки понимаю
Аноним 04/06/16 Суб 19:41:22 #226 №761485 
>>761449
> Через 40 часов изучения смогу написать гуй-калькулятор?
> Хуле нет-то?
http://www.williamspublishing.com/21-days.html
Аноним 04/06/16 Суб 19:41:31 #227 №761486 
>>761481
Жирно.
Аноним 04/06/16 Суб 19:43:31 #228 №761490 
>>761485
Да хуле вы такие пафосные-то, блядь? У меня в текущий момент не стоит задачи НАУЧИТЬСЯ ПРОГРАММИРОВАТЬ за 10 лет, я хочу через неделю уметь написать годный гуевый калькулятор. Там из более-менее сложного, по сути, только парсер строки.
Аноним 04/06/16 Суб 19:45:14 #229 №761496 
>>761490
а как же дерево синтаксического разбора?
Аноним 04/06/16 Суб 19:45:51 #230 №761498 
>>761422
>мне нужно писать быстро, быстро видеть результат и быстро идти дальше
>Python не хотелось бы, потому как там интерпретатор нужен в том или ином виде, да и назначение немножко не то
Для твоего требования Python почти идеален.
Но если нужен компилируемый и быстрый - то бери go
Аноним 04/06/16 Суб 19:47:05 #231 №761507 
>>761482
>не надо все изучать досконально
С крестами надо. Рао основы за 21 день дрочки без практики пытался научить.
>Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?
Можно. Но ты хочешь быстро и просто. Это не кресты.
>>761490
А теперь тебе нужен питон.

Если вопросы по крестам кончились, то сформирую корректно задачи которые хочешь решать и иди в ньюфаготред искть для них язык.
Аноним 04/06/16 Суб 19:47:10 #232 №761508 
>>761454
Застрял в 70-х?
Аноним 04/06/16 Суб 19:49:13 #233 №761511 
>>761454
На Qt/Gtk потребление памяти будет примерно таким же
Аноним 04/06/16 Суб 19:49:46 #234 №761514 
>>761507
>С крестами надо
Только если ты много работаешь с чужим кодом
Аноним 04/06/16 Суб 20:07:52 #235 №761546 DELETED
>>761454
Машина должна и будет служить людям, она не шлюха, чтобы люди исполняли её прихоти. Отсюда байтобляди (а так же сочувствующие им императивные пидорасы, надрачивающие на показатели System.currentTimeMillis() - start) - пиздолисы, которые опускаются до полного говноедства, лишь бы ублажить её регистры и микросхемы. Альфапрограммисты, как и положено альфам, если машина не выполняет положенных ей задач и требует пресмыкаться перед ней и ублажать её байтами, просто берут и за патчкорды, ебашат с вертушки по передней панели и списывают машину на мороз, купив взамен ту, которая не будет выёбываться и выполнит код в сроки и без выебонов, будь там хоть 1000% неоптимизированного оверхеда. И настоящего программиста не волнуют вопросы выдрачивания и быстродействия - он решает важную задачу из предметной области гораздо более сложной, чем низкоуровневое дрочево, и отвлекаться на всякую подзалупную хуету вроде осоьбеннойстей какой-то там архитектуры ему некомильфо.
Аноним 04/06/16 Суб 20:16:41 #236 №761563 DELETED
>>761546
Двачую, байтоёбы рабы во всём - рабы машины. рабы предубеждений, рабы производительности, рабы стереотипов, рабы обрабатываемых штеудом х86 типов данных - для них всё, что не кратно 2 байтам и больше 16 байт не может быть примитивным типом, хотя число - это просто число, оно может быть целым, дробным, рациональным, комплексным, но не "в 2 байта в 4 байта в 8 байт". Да, байтобляди были актуальны пару-тройку десятков лет назад, когда кроме этого пресловутого отлизывания регистров и микросхем не было способов заставить машину быстро решать задачу. Но теперь-то в нашем распоряжении оптимизирующие компиляторы, многоядерные процессоры с параллелизацией, которые производительнее машин 20летней давности в сотни тысяч раз. Жаль, что программирование было поглощено стереотипным быдлом, не могущим в думать, и способным работать лишь по зазубренной инструкции, написанной кровью и потом сотен павших хомячков-байтоёбов до него. Настоящее, полноценное программирование, благодаря подобным обмудкам, мало теперь где востребовано. Хотя там где оно востребовано, можно кататься как в масле сыр и получать в три раза больше не то что сениор-байтоёба, а ёбанного заместителя директора быдлоконторы в которой этот байтоёб работает. С другой стороны это и хорошо - в космическую промышленность, Data mining и прочие сложные и непосильные для императивных байтохомячков сферы попадает лишь элита.
Аноним 04/06/16 Суб 22:51:27 #237 №761710 
>>761447
В стандарте это называется невычисляемым контекстом. То же самое внутри sizeof, alignof, noexcept и тому подобного. Фактически не гарантируется, что-либо про compile-time, но гарантируется, что наблюдаемое поведение будет как если бы выражение не вычислялось. Поэтому можно разыменовывать nullptr и творить прочие непотребства внутри.
Аноним 04/06/16 Суб 22:59:15 #238 №761718 
>>761546
>>761563
Красиво расписал, братюнь, хоть я и не со всем согласен. На мой взгляд, здесь, как и везде, нужен баланс. Кроме того, пускай наивно сравнивать программирование с искусством, но что-то в этом сравнении все же есть, на мой взгляд. Мамкины нигилисты скатывают все в говно еще чаще, чем мамкины романтики.
Аноним 04/06/16 Суб 23:16:57 #239 №761733 DELETED
>>761718
В монадах искусства гораздо больше, чем в подсчете байтов.
Аноним 04/06/16 Суб 23:17:30 #240 №761734 
>>761563
Неосилятор порвался.
Аноним 04/06/16 Суб 23:36:25 #241 №761758 
>>761733
Что байтослесари, что функциональщики — и те, и те клоуны ещё те.
Аноним 05/06/16 Вск 00:17:18 #242 №761807 
Изучаю эти ваши кресты 4 недели, дошел до виртуальных функций. Все это становится сильно запутанным, что я прям чувствую уже потребность в написании ТЕСТОВ, которые бы проверяли, что все работает как положено. Но ведь это пиздец. Программы буквально делают какую-то хуету, которая пишется на чистом Си в три строчки, а с вашими объектами, наследованием и виртуальными методами нужно писать ТЕСТЫ. Это же говно какое-то. Broken By Design.

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

В чем польза от ООП? Кроме лишних тонн говнокода и юнит-тестов?
Аноним 05/06/16 Вск 00:21:00 #243 №761809 
>>761758
Хотя нет. Байтослесари не клоны. Никто не делает из байтослесарства религии, как из монад и прочих аппликативных функторов.
Аноним 05/06/16 Вск 00:25:04 #244 №761812 DELETED
>>761809
Школотрон не застал конца 90-х и начала нулевых, когда C++ и ООП были именно религией.
Аноним 05/06/16 Вск 00:27:20 #245 №761815 
>>761812
Я много чего застал. И дроч ассемблерщиков на то, что они урезали PE-файл до 50 байт, и дроч на C++. Последнее, собственно, никуда не делось. Просто слегка растворилось в потоке стартапов на раби.
Аноним 05/06/16 Вск 00:27:43 #246 №761816 DELETED
>>761812
Был такой дурачок, по кличке Страус, и решил он как-то сделать язык простой, народный, для своих пацанов. Ну и в итоге у него получилось такое неведомое лесное угребище, что люди над ним и его пацанами хорошенько посмеялись, так же как мы сейчас смеемся над денисками и бабушкиными. Посмеялись и забыли.

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

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

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

И называлась та религия ООП, ее священники - ООП-учеными, а те самые косяки и аномалии прозвали паттернами.

И сейчас, спустя много-много лет, мир постепенно осознает в какой беде находится и с каждой новой версией языков программирования пытается скинуть старые заржавелые оковы. А ущерб, который нанесли человечеству ООП-псведоученые, еще предстоит осознать.
Аноним 05/06/16 Вск 00:31:09 #247 №761818 
>>761816
Не осилил — так и напиши, кратко.
Аноним 05/06/16 Вск 00:31:20 #248 №761819 DELETED
>>761807
>Программы буквально делают какую-то хуету, которая пишется на чистом Си в три строчки
Ты конкретный пример приведи. На Си вообще сложно писать что-либо в 3 строчки, из-за обработки ошибок весь код превращается в лапшу из if'ов, возвращения значений через выделяемые снаружи буферы и goto clenaup. Но ты явно не об этом, потому что к ООП это имеет мало отношения.
>Но ведь Кармак писал игры на чистом C
Только потом начал писать их на С++.
Аноним 05/06/16 Вск 00:32:56 #249 №761821 DELETED
Байтоёбство включает в себя:
1. Императивный стиль программирования как начало байтоёбского пути.
2. Дрочка на машинно-ориентированные типы данных (собственно, основной симптом байтоёбства) и последующее за ней закономерное возмездие байтомудакам в виде big endian vs. little-endian, особенности обработки чисел с плавающей точкой и.т.д.
3. Предтерминальные стадии байтоёбства - интринсикоёбство и его более тяжёлая форма - инлайн-ассемблероёбство. Подсадка начинается с убеждённости поциента в необходимости ручками использовать SIMD -инструкции.
4. Терминальная стадия, как итог п.3, тру-ассемблероёбство и "хроническая низкоуровневая оптимизация головного мозга"

В нашем мире, к счастью, подобные симптомы с распространением java, C# и прочей "замещающей терапии" встречаются реже, однако остались две отрасли, входящие в зону риска:
1. Гейдев. Байтоёбство в гейдеве берёт своё начало в 70х-80х, поскольку именно тогда зародилась традиция байтоёбства в геймдеве. Обязаны этим, в основном, восьмибитным соснолям и домашним компьютерам, которые, обладая малым объёмом ОЗУ и имея скудные средства программирования, требовали делать на них ёба-игры. Эта традиция продолжилась и далее, всё благодаря тем же консолям, на которых консолерабы должны были выпускать игры 5 лет, задрачивая их убогие байтоёбские архитектуры по полной. К сожалению, подобная практика перешла и на ПК, где байтоёбство, в общем-то не так оправдано. К слову байтоёбам-игроделам дали шанс выбраться из этой трясины в 2002 году, когда майкрософт запилила дуднет и менеджед дайректикс к нему. Но байтоёбы остались верны своим указателям, плюсам и байтоёбской оптимизации. Зашоренность, верность привычкам, безыдейность, десу.
2. Эмбеддед. Причины почти всё те же, что и в гейдеве. Маломощное железо, пара сотен байт озу, деревянные игрушки, прибитые к полу и.т.д. К этому прибавляется огромное количество разных железок разномастных архитектур, для которых нет толковых тулчейнов. Из хорошего - в последние годы байтоёбство в этой сфере потихоньку излечивается, спасибо дядям из ARM co ltd, сделавшим свою архитектуру более менее распространённым стандартом среди всех архитектур и огромному количеству появившихся фреймворков и компиляторов языков для этой платформы.

Так же распространено ложное утверждение что байтоёбство крайне необходимо в системном программировании. На самом деле этого легко избежать. Рассмотрим среднестатистическую аппаратную платформу. Краеугольными камнями любой аппаратной платформы являются:
1. Процессорная архитектура
Memory map - адресное пространство, в которое отображаются RAM, ROM и внешние устройства
2. Протоколы управления этими самыми внешними устройствами.

Так вот, всё вышеперечисленное вполне можно вполне декларативно описать обычным конфигурационным файлом, не прибегая к программированию вовсе. Затем, скормить этот файл генератору платформ и на выходе получить готовый фреймворк-скелет нашей операционной системы, доступ к которому можно получить из любого языка программирования. Вот так вот просто, если бы байтоёбство гологного моска не мешало.
Аноним 05/06/16 Вск 00:36:28 #250 №761826 
>>761807
ООП в исполнении крестов - улучшает модулность и могут помочь создавать абстракции с удобным интерфейсом. Для маленьких программок, как ты правильно заметил, это не требуется.
Аноним 05/06/16 Вск 00:37:49 #251 №761828 
>>761821
>подобные симптомы с распространением java, C# и прочей "замещающей терапии" встречаются реже
Так Java и C# - императивные
Аноним 05/06/16 Вск 00:38:08 #252 №761829 DELETED
>>761818
Разумеется, Страус не осилил полноценное ООП и запилил неполноценную реализацию. Не думаю, что программисты, пишущие на Smalltalk'е, сочтут С++ объектно-ориентированным языком. Даже по сравнению с Java С++ явно в проигрыше - нет интерфейсов (зато есть множественное наследование со всеми его проблемами), объектная модель просто отсутствует.

Понятие метаинформации (а также reflection, introspection и т.п.) в С++ отсутствует полностью (а вся среда Smalltalk построена на ней).

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

А вот в Smalltalk'е или в Python'е таких библиотек полно.

А как дела у С++ с интеграцией со скриптовыми языками - Perl, Python, Tcl, Ruby и др ? Опять же очень плохо - надо ручками задавать всю необходимую метаинформацию. Есть правда генераторы интерфейсов, которые разбирают Ваш исходный код на С++ и по нему строят необходимые описания.

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

А вот Python умеет легко работать даже с такой кривой объектной моделью как СОМ, умеет сериализовать произвольные объекты, умеет на ходу добавлять объекту новые методы.

А как с программироваинем GUI - одна из распространенных кроссплатформенных библиотек Qt использует свой препроцессор языка С++ для выделения необходимой метаинформации.

Кроме того, С++ вообще не различает два существенно РАЗНЫХ понятия - абстрактнывй тип данных (АТД) и объект.

Классическим примером АТД яволяется класс Vector3D - фактически простая (зачастую inline-овая) обертка вокруг данных. Просто структура, но более удобная в обращении.

Возможно наследование (хотя редко), но только как структур. Никакого переопределения чего-нибудь вообще быть не может. Основной смысл - удобство работы (чтобы не надо было все векторные операции расписывать покомпонентно или наполнять код вызовами addVector, subVector и т.п.).

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

Поскольку типы довольно простые, то крайне важна эффективность компиляции (в противном случае зачем вообще нужны такие классы).

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

Для объекта важна максмальная гибкость, как в возможности наследования и переопределения, так и в возможности композиции.

Причем с легкой руки авторов книг по С++ объектную ориентированность обычно понимают только как наследование объектов. А теперь откройте Design Patterns и посмотрите на что там большинство паттернов. А они почти все на композицию объектов - возможность получать новую функциональность путем соединения объектов правильным образом между собой.

Причем это соединение может происходить прямо во время выполнения программы (и ее почему-то не надо перезагружать для этого :)) в отличии от широко известной операционной системы.

В этом плане очень интересна книга Андрея Александреску "Современное проектирование на С++". В ней автор просто чудеса творит, красиво реализуя паттерны и многие полезные вещи. Но все его чудеса относятся почему-то исключительно ко времени компиляции. И требуют кстати весьма немало этого самого времени.

А вот в Objective-C (другой вариант построения объектно-ориентированного языка на основе С, только в нем используется объектная модель языка Smalltalk) можно прямо на ходу узнать какие интерфейсы поддерживает объект, какие у него есть методы. Можно даже прямо на ходу добавить новый метод. И это компилируемый язык, весь графический интерфйес таких операционных систем как NeXTSTEP и Mac OS X построен именно на этом языке.

Сколько шума была из-за "острого" С (C#) в связи с делегированием - еще одним крайне важным элементом объектно-ориентированного программирования.

Делегирование - это возможность передать запрос другому объекту (делегату). Послушаешь сейчас мелкомягких о крутости делегирования в "остром" С - ну прямо они его и придумали и подарили миру.

А вот оказывается 15 лет назад делегирование было одни из краеугольных камней графического интерфейса NeXTSTEP'а. И было там крайне легко и красиво сделано. И была там 32-разрядная ОС, вся графика через Display PostScript (в частности, полная поддержка альфа-канала, появившаяся только в Windows XP), возможность вкладывания звуковых сообщений в любой документ и многое другое.

А в это самое время micro$soft только-только выпустил 16-битовый Windows 3.0.

С другной стороны, посмотрев на С++, становится понятно, почему делегирование замалчивалось. А как его можно реализовать на С++, как можно попросить какой-то объект вызвать какой-то метод (даже, если список входных параметров у него точно такой же) ?

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

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

Итак, с объектной ориентированнностью получается плохо - есть какая-то странная смесь АТД и объектов (половина от одного, половина от другого), объектной модели нет вообще, основная гибкость относится ко времени компиляции. Наиболее гибким элементом языка являются шаблоны. И именно на них А. Александреску и творит свои чудеса.
Аноним 05/06/16 Вск 00:40:36 #253 №761835 DELETED
>>761828
Да это протухшие пасты пятилетней давности, которые писались школьниками, дрочащами на такие перспективные технологии, как F# и WPF. Работали они, естественно, крудошлепами под дотнет.
Ты думаешь, что сосущий хуйцы на пару со своей мамашей, который пришел в тематический тред вбрасывать протухшие копипасты с целью потралить, способен родить что-то умное?
Аноним 05/06/16 Вск 00:44:18 #254 №761838 DELETED
Не так давно я узнал, когда именно г-ну Степанову пришла идея библиотеки STL - когда он находился в отделении интенсивной терапии (после отравления рыбой) в, как он сам написал, "delirium state", по-просту - в состоянии БРЕДА.

Этот малеьнкий фактик очень удачно вписался в мои собственные представления об STL и самом языка С++. В предельно короткой форме: STL - это просто болезненный бред.

Бред относится к авторам библиотеки, а болезненный - это состояние ее пользователей.

Уже с самого начала STL производит впечатление чего-то монстроидального и совершенно непонятного. Это нагромождение template'd классов (яязык не поворачивается называть их объектами, это просто АТД-переростки) с огромным количество параметров и морем методов с весьма непонятными названиями.

Например в классе std::list есть метод insert, позволяющий по итератору вставить значение в список. Только вот не понятно куда именно, поскольку можно вставить непосредственно перед тем местом, на которое указывает итератор, можно после него, а межно и непосредственно на него.

Из названия мочное место вставки никак не следует.

В том же классе методы begin и end возвращают указатели (точнее итераторы) на начало и конец списка). Казалось бы в названии методов для вставки объекта в начало и конец списка было бы естественно употребить те же слова (равно как и само слово insert для обозначения операции вставки).

Щас прямо ! Используемые методы называются push_front и push_back. При этом мало того, что для обозначения операции вставки в список было использовано слово, обычно обозначающее помещение элемента на вершину СТЕКА, так еще для обозначения начала и конца списка были использованы термины, отражающие обычно положение по отношению к наблюдателю (перед и назад) !

Как уже упоминалось, милейшим свойством STL является постоянное копирование объектов, что оказывается веьсма неприятным сюрпризом при хранении сложных объектов с контейнерных классах.

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

Еще одним весьма неприятным сюрпризом является то, что в класса std::string (пол крайней мере во многих реализациях) быблиотека пытясь минимизировать выделение/освобождние/компирования памяти в многих случаях использует общий бефер для строк с одинаковым значеним.

Рассмотрим пример:

std::string a = "abc";
std::string b = a;

Для многих реализаций обе переменные a и b будут оказывать на один и тот же буфер в памяти, по-возможности, отслеживая моменты, когда необходимо "расщепить" общий буфер, дав каждой переменной по своей копии.

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

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

И если STL нельзя использовать в многонитевых приложениях (а многие реальные приложения являются многонитевыми, много Вы видели общаний что callback выдет вызван на той же нити, на которой Вы его поставили ?

В данном случае попытка оптимизации приводит к скрытым и тяжело обнаруживаемым проблемам.

Еще одной милой чертой STL является заметное увеличение времени компиляции и объема выполнимого кода. Правда насчет последнего уверяют, что в правильном этого можно избежать. Ну и много Вы видели правильных (хотя бы полностью соответствующего стандарту языка) компиляторов ?

А как правило, каждый раз, когда Вы используете класс map, для него заново генерируется код и включатся в выполнимый файл.

А как Вам очень распространенное предупреждение компилятора в VC 6 о том, что длина идентификатора превысила 255 символов ?
Аноним 05/06/16 Вск 00:44:56 #255 №761839 DELETED
>>761838
Большинство книг по STL посвящего тому же, чему и большинство книг по С++ - чего и как не надо делать. Как на первый взгляд вполне нормальные конструкции либо не работают вообще, либо делают это очень медленно.

При этом самое интересное, что в большинстве случаев подобные проблемы вызываны желанием авторов библиотеки сделать получающийся код БОЛЕЕ ЭФФЕКТИВНЫМ (а вот про эффективность программиста при этом забыли напроч)!

А попробуйте как-нибудь пройтись отладчиком по коду, использующему STL.

Глядя на монстроидальную сложность STL возникает ощущение, что его авторы до сих пор находятся в состоянии бреда !.

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

Про эффективность подобных двух строк можно только гадать и молиться на компилятор.

Достаточно полное описание STL занимает свыше 400 страниц (к примеру, The C++ Standart Library. A tutorial and reference занимает почти 800 (!) страниц).

Фактически STL представляет собой безумных размеров черный ящик (причем макросов!), совершенно непонятно как работающий и с огромных количеством скрытых ловушек.

Сравните описание STL и работу с ним с работой в языке типа Python - крфйне небольшое число простых встроенных классов с понятными методами и операциями над ними.

При этом следует иметь в виду, что все эти встроенные классы и методы для работы с ними были написаны на чистом С и сильно соптимизированы, поэтому скорость работы может в ряде случаев оказаться даже выше чем у эквивалентной С++ программы (при несравненно меньшем объеме кода).

Анаолгичный код с использованием STL, как правило, гораздо менее понятен, отладка его крайне затруднительна. И при всем этом у Вас легко может получиться ограмных размеров выполнимый файл, крайне медленно работающий.

В определенном смысле STL можно воспринимать как доведенную до абсурда попытку дать пользователям С++ то, что сразу же доступно пользователям языком Python, Perl, Smalltalk, Ruby и т.п.

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

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

Лучше всего STL подходит для работы с атомарными типами (типа int, float и т.п.), где все операции создания/уничтожения/копирования крайне просты и эффективны.

Однако если же Вы хотите использовать STL для работы со своим классом, то необходимо привести его интерфейс к интефейсу атомарных типов (т.е. корректно, не полагаясь на компилятор, самому написать copy-конструктор, default-конструктор, деструктор, оператор присваивания). Причем все эти операции доложны быть реализовано максимально чисто и корректно.

Однако для достаточно сложных классов (хотя бы просто выделающих для себя какие-то ресурсы) перечисленные операции обычно оказываются довольно дорогостоящими.

Вполне возможно, что именно этим и объясняется странный факт использования экземплярами класса std::string общего буфера - это заметно снижает расходы на создание/копирование/уничтожение строк.

В результате для строк пришли к классическому reference counting'у (правда использовав его только для класса string и спрятав его глубоко внутрь класса).

Фактически STL неявно проповедует свою объектную модель (т.е. эквивлентность атомарным типам), но поскольку большинство реальных объектов намного сложнее атомарных и в эту модель укладываются с трудом (и большими накладными расходами).

Одно время в качестве панацеи считали (это легко прослеживается по годам написания книг) auto_ptr. Прошло немного времени и стало ясно, что от него проблем гораздо больше, чем пользы. Теперь панацеей объявляется уже reference-counted-ptr.

Весьма вероятно, что в конце концов удастся построить набор классов для "заворачивания" указателей и ссылок на объекты/память/ресурсы, чтобы реальные объекты можно было использовать в STL без слишком больших проблем.

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

А возврщаеясь к скриптовым яызкам - там почему-то все очень легко и просто, и внутри всего лежит именно reference counting.

А если взять библиотеку Foundation для платформ NeXTSTEP или Mac OS X, то она целиком написана на Objective-C и нет там подобных проблем. Наличие единой, простой и гибкой объектной модели позволило легко и просто реализовать работы с контейнерными классами почти так же легко и просто, как на скриптовых языках.

Возможно для работы с атомарными классами подход, использоанный в STL и окажется быстрее и экономнее (в Foundation как и в Java для хранения в контейнерах атомарные типы заворачиваются в объекты), но зато при работе с реальными классами (например, работа с распределенными объектами, которая там была реализована красиво и просто и за много лет до мелкомягких, или же работа с GUI-классами) проблем не возникает.

Статья, объсняющая почему С++ плохо подходит для написания графических пользовательских интерфейсов:
http://okmij.org/ftp/cpp-digest/CPP-GUI-mismatch.html
Аноним 05/06/16 Вск 00:46:57 #256 №761841 
>>761839
Ты заебал своей пастой спамить. Уёбывай уже.
Аноним 05/06/16 Вск 00:47:11 #257 №761842 DELETED
>>761835
Хорошо, покажи мне ORM уровня хотя бы Entity Framework на современном C++. Ну или веб-фреймворк с MVC архитектурой. Или аналог Qt с событиями без использования внешнего препроцессора, на чистом C++.
Аноним 05/06/16 Вск 00:48:07 #258 №761844 DELETED
>>761841
Уебал хуем тебе за щеку, проверяй.
Аноним 05/06/16 Вск 00:49:42 #259 №761846 DELETED
>>761842
Внимательно прочитай п. 5 памятки ньюфагу в оппосте.
Аноним 05/06/16 Вск 00:55:06 #260 №761849 DELETED
>>761846
Господа не читают, что там пишут вшивые петухи. Показывай рефлексию на своем говне или проследуй назад под шконку.
Аноним 05/06/16 Вск 01:40:18 #261 №761886 
>>761838
Степанов придумал идею generic algorithms еще в 80х. первая реализация была на языке Ada. Лишь в начале 90х появилась реализация на c++, который он выбрал за гибкость и мощь (указатели). и только в 1993 году, благодаря Коннингу, сумел впихнуть в стандарт как STL.
Современная реализация далека от первоначальной HP SGI версии из-за оптимизаций. да, код сложный, страшный, но эффективный. в подавляющем большинстве случаев нет нужды в отладке STL кода. тебе дают алгоритм, тебе дают универсальные термины и способы для работы с алгоритмами, компонования их без потери эффективности.
Позже Степанов признал некоторые проблемы и недостатки дизайна (относительно итераторов, отсутствие диапазонов). Сейчас это активно исправляется. но суть generic programming остается.
Пример со строками некорректен, так как STL string умеют в copy-on-write - смотри sgi реализацию и Майерса. MS как всегда отличился и запилил свою реализацию STL с блекджеком и ворохом проблем вплоть до несовместимости с sgi версией.
Аноним 05/06/16 Вск 01:56:09 #262 №761900 
>>761886
>string умеют в copy-on-write
Запретели то ли в c++11, то ли в c++14
Аноним 05/06/16 Вск 02:22:12 #263 №761912 
>>761900
мультитрединг проблемы?
Аноним 05/06/16 Вск 02:23:46 #264 №761913 
>>761912
stl - сплошная мультитрединг проблема
Аноним 05/06/16 Вск 02:44:53 #265 №761915 
>>761913
но в с++11 добавили всякие гарантии для контейнеров и алгоритмов. хотя все еще трудно использовать в несколько тредов. печаль.
Аноним 05/06/16 Вск 04:07:27 #266 №761924 
>>761915
c++, java, c#... всегда будет трудно использовать для мультитрединга
Аноним 05/06/16 Вск 05:37:21 #267 №761936 
>>761498
Спрашивал в питонотреде, там мне десять раз указали, что выбор хуевый и делать такую хуйню, как я хочу, на питоне - бредовая идея.
>>761507
Сформулировал же, ну:
> мне нужен язык, на котором я буду писать небольшие десктопные программки, а возможно, когда-нибудь, сяду за микруху.
> Но проблема в том, что мне нужно писать быстро, быстро видеть результат и быстро идти дальше. Программы небольшие (к примеру, полив автоматизировать, тексты определенной структуры обработать, гуй к консольной утилите запилить) и не слишком требовательные к производительности, но скорость разработки важна.
> Сделан специально чтобы заменить дэлфи и осталось возможно кодить мышкой.
> Блядь. Вот это вроде то, что нужно как раз (я что-то вроде современного делфи и хотел найти), но мне уж очень не нравится VS, Net и Мрикософт. Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?
Аноним 05/06/16 Вск 05:57:23 #268 №761937 
>>761915
Да не так уж и трудно. На конкурентный доступ к различным элементам есть все гарантии, а если хочешь и к одному конкурентный доступ, то просто делаешь контейнер атомиков, делов-то. Проблемы только со сложными многоэлементными алгоритмами типа сортировки, но это скорее уже проблемы архитектуры, если такое понадобилось делать с управляемой конкуретностью, а не через async, где все прекрасно.
Аноним 05/06/16 Вск 10:02:44 #269 №762004 
Анон, который помог мне с регуляркой определения класса в прошлом треде - ты мне очень нужен. Отзовись
Аноним 05/06/16 Вск 11:52:48 #270 №762063 
>>762004
В общем-то, пока его нет, может кто сможет помочь:
Есть регулярное выражение, http://ideone.com/rDcDre , которое по идее вытаскивает название класса и его зависимости. В онлайн чеккерах все заебись, но в плюсах не работает нихуя. Причем это весьма странно, даже если просто попытаться определись слово class - все окей. Но взяв слово class_пробел_ - сосу хуй. (class\s). В чем проблема?
Аноним 05/06/16 Вск 12:38:47 #271 №762096 
>>762063
Дай код и пример текста, на котором возникает ошибка.
Аноним 05/06/16 Вск 13:13:10 #272 №762113 
>>762096
http://ideone.com/jN39ak
Аноним 05/06/16 Вск 13:35:15 #273 №762132 
>>762113
>http://ideone.com/jN39ak
Уточни синтаксис, который использует данная конкретная реализация регекспов.
Аноним 05/06/16 Вск 13:36:14 #274 №762135 
>>762132
>http://ideone.com/jN39ak
А еще ты не экраниркешь обратные слеши
Аноним 05/06/16 Вск 13:36:43 #275 №762136 
>>762132
Немного не понял
Аноним 05/06/16 Вск 13:42:08 #276 №762142 
>>762136
>Немного не понял
Есть разные синтаксисы регэкспов. Ты вообще доку читал?
http://en.cppreference.com/w/cpp/regex/basic_regex
А вообще, ты не экранируешь "\", так ято поебать какой ты там синтаксис используешь - у тебя в любом случае не заработает
Аноним 05/06/16 Вск 13:56:06 #277 №762153 
>>762142
каким способом экранировать?
Аноним 05/06/16 Вск 13:58:50 #278 №762156 
>>762153
Охуел, бля?
https://www.google.ru/search?&q=%D1%81%2B%2B+%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
Аноним 05/06/16 Вск 14:07:16 #279 №762163 
Есть list с объектами моего класса. Как его отсортировать по значению инта, которое возвращает один из методов класса?
Аноним 05/06/16 Вск 14:20:46 #280 №762176 
>>762163
Сортировать список дурная затея.
Аноним 05/06/16 Вск 14:22:10 #281 №762179 
>>762176
Не согласен.
Использовать список дурная затея.
Аноним 05/06/16 Вск 14:32:09 #282 №762187 
>>762176
>>762179
Увы, в вузике сказали "надо". Неужели нет никакого вменяемого способа?
Аноним 05/06/16 Вск 14:33:40 #283 №762189 
>>762187
Ну ты мог бы потратить 20 секунд и загуглить.
http://stackoverflow.com/a/8121878
Аноним 05/06/16 Вск 14:39:20 #284 №762195 
>>762189
Хм, спасибо. Я гугли, но, видимо, плохо.
Аноним 05/06/16 Вск 14:40:59 #285 №762198 
>>762195
В C++14 можешь указывать const auto& как тип аргументов лямбды.
Аноним 05/06/16 Вск 14:43:58 #286 №762201 
>>762176
Тем не менее, у std::list есть метод sort
очевиндо, что std::sort не работает для list
Аноним 05/06/16 Вск 14:44:55 #287 №762204 
>>760938
>>since c++11
http://en.cppreference.com/w/cpp/utility/tuple
Аноним 05/06/16 Вск 15:39:02 #288 №762245 
http://ideone.com/J0NuqS
В каком виде тут хранится список смежности Edge? Как его организовать по данным, если данные являются текстовыми (обозначения вершин - слова)
Аноним 05/06/16 Вск 15:49:53 #289 №762253 
Как же заебали эти лабодауны. Нахуй вы им отвечаете, ананы?
sageАноним 05/06/16 Вск 16:02:04 #290 №762268 
>>762253
Нахуй иди, дегенерат. Алгоритмы - единственное, что интересно в ебаном ИТ.
Аноним 05/06/16 Вск 16:05:43 #291 №762277 
>>762268
Кто тебе сказал, что здешние аноны не подготовлены алгоритмически?
А тот факт, что делаешь в лабе аж целую топологическую сортировку тебе чести не делает. К тому же ты не осилил готовый пример. Хуевый, кстати. Можешь сказать своему преподу, что писать код он не умеет.
Аноним 05/06/16 Вск 16:10:08 #292 №762285 
>>762268
А мне нравится построение систем.
ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля.
У инженеров работа с железом, всякие расчёты, там нельзя взять и "просто придумать", этого недостаточно. А у нас можно.
Аноним 05/06/16 Вск 16:29:45 #293 №762301 
>>761937
> если хочешь и к одному конкурентный доступ, то просто делаешь контейнер атомиков
Что я только что прочитал...
Какую проблему должен решить контейнер из атомиков?
Аноним 05/06/16 Вск 16:30:12 #294 №762302 DELETED
>>761936
Бамп...
Аноним 05/06/16 Вск 16:30:15 #295 №762303 DELETED
>>762245
Бамп
Аноним 05/06/16 Вск 16:30:30 #296 №762304 
>>761937
>>762301
Особенно учитывая, что "std::atomic is neither copyable nor movable."
Аноним 05/06/16 Вск 16:36:51 #297 №762312 
>>762285
Аноним 05/06/16 Вск 17:21:16 #298 №762357 
14651364768830.jpg
>>762285
>ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля
Даун, твои миры - это просто абстракция над кучей говна, которая интерпретируется электронными цепями.
Аноним 05/06/16 Вск 17:31:24 #299 №762366 
>>762357
>это просто абстракция над кучей говна, которая интерпретируется электронными цепями
Но ведь работает! И для этого толком не нужны материалы, человеческие ресурсы, время. Составляй правильные команды, а машина всё выполнит.
Аноним 05/06/16 Вск 17:41:19 #300 №762377 
>>762301
Че ты до него доебался? Ну выделяй на куче свои атомики, хуле как этот.
Аноним 05/06/16 Вск 17:46:19 #301 №762382 
>>762374
>Мы разные аноны, но все равно )))))
>но все равно
>)))))
Пиздец, вот это ущербный к нам за зашел.

Ты, блядь, еще не понял, что никто не будет решать тебе твои лабы-высеры для того, чтобы тебя не выкинули на мороз из твоей шараги? Раньше надо было учиться, а теперь можешь страдать и идти нахуй.
Аноним 05/06/16 Вск 17:48:55 #302 №762386 
>>762377
Не встревай, лабодаун.
Аноним 05/06/16 Вск 17:53:40 #303 №762391 
>>762382
> к нам за зашел.
Аноним 05/06/16 Вск 17:54:40 #304 №762393 
>>762386
Пошел нахуй. Если контейнер не меняется, то вполне нормально хранить синхронизирующий элемент рядом с самим элементом данных.
Если же контейнер может меняться, то тот питух с stl гордо шагает нахуй, потому что написание thread-safe контейнеров с мелкогранулярными блокировками (а то и lock-free) очень сложно.
Аноним 05/06/16 Вск 17:55:49 #305 №762394 
>>762393
Сам понимаешь, что сказать пытаешься?
Аноним 05/06/16 Вск 18:03:16 #306 №762405 
>>762394
Если контейнер не меняется со временем - ты не прав, хранить атомики рядом с элементами можно без каких-либо проблем.

Если контейнер меняется, ты прав - stl пока что посасывает.
Аноним 05/06/16 Вск 18:07:38 #307 №762406 
>>762405
Пиздец. Я просто поинтересовался, какую проблему анон хочет решить, суя в вектор атомики. И вообще как он собирается это сделать, учитывая, что атомики некопируемые и неперемещаемые (и определены не для всех типов).

Тут влезли какие-то петухи и начали транслировать в тред свой /dev/urandom: атомики в куче, lock-free... Про что несут? Вообще охуешь.
Аноним 05/06/16 Вск 18:11:40 #308 №762410 
>>762301
Проблему синхронизации доступа по записи к элементам же. Под атомиками я подразумевал не только std::atomic, но вообще любые атомарные типы. Например, велосипедные обертки. И да, я не спорю, что это хуевая архитектура, но так можно сделать, так что пусть не пиздит, что КОКОКОК STL НИКАНКУРЕНТНАЯ.
Аноним 05/06/16 Вск 18:13:54 #309 №762412 
>>762405
Емнип, даже если не меняется, пихать в него некопируемые типы запрещено стандартом или как минимум ограничено какими-то костылями, типа emplace.
Аноним 05/06/16 Вск 18:19:10 #310 №762419 
>>762410
>Проблему синхронизации доступа по записи к элементам же.
И часто возникает такая задача?
Аноним 05/06/16 Вск 18:20:16 #311 №762424 
>>762419
У меня ни разу не возникала, например, лол. Но >>761915-кун возжелал вот.
Аноним 05/06/16 Вск 18:29:11 #312 №762433 
>>762424
> >>761915-кун
Обычный тролль или даун, который тут уже на протяжении десятков тредов скулит о том, что STL говно по каким-то надуманным причинам.
Аноним 05/06/16 Вск 18:33:06 #313 №762440 
>>762433
>STL говно по каким-то надуманным причинам
Они таки ненавидят все гусское.
Аноним 05/06/16 Вск 18:33:59 #314 №762442 
>>762440
Героям слава.
Аноним 05/06/16 Вск 18:58:20 #315 №762476 
Лабодауны это конечно понятно, НО ВСЕ ЖЕ. Как нахуй топологически отсортировать граф, имея список смежности, каждая вершина которого обозначается последовательностью символов (словом). Что-то вроде топологической сортировки зависимости файлов.
sageАноним 05/06/16 Вск 19:02:21 #316 №762479 
14651425418400.png
14651425418421.png
>>762476
Ты уже в конец охуел, мразь - уже в тупую копипастишь задания из своей лабы.
Аноним 05/06/16 Вск 19:02:36 #317 №762480 
>>762476
Переведи его в нормальный список смежностей и сортируй.
Аноним 05/06/16 Вск 19:06:46 #318 №762484 
>>762480
У меня есть всякие имена, типа: имя1, ..., имя10
Список смежности имеет вид: имя1 имя10, в общем стандартно.
Как я понимаю, надо присвоить именам какое-то значение. Типа имя1 = 1, имя 5 = 5 и тд
Правильно?
Аноним 05/06/16 Вск 19:09:25 #319 №762489 
>>762484
Нет. Создавай из них объекты и клади в список указатели на них.
sageАноним 05/06/16 Вск 19:10:33 #320 №762492 
>>762489
Блядь, во имя всех анонов, не помогай этому дебилу. Пусть идет книгу читает. Там всего 20 страниц надо осилить и потом он это задание не глядя сделает.
Аноним 05/06/16 Вск 19:47:14 #321 №762536 
14651452342010.png
>>759346
Бамп вопросу. Что, никак что ли?
Аноним 05/06/16 Вск 19:53:47 #322 №762540 
>>762536
Вот я не единого дня не программировал на Qt, но мне кажется я знаю как решить твой вопрос. Это же ООП-параша. Что надо сделать? Унаследовать говно и изменить в наследнике параметр. Полминуты в гугле:
http://doc.qt.io/qt-5/qtqml-referenceexamples-coercion-example.html
мимо-4-недели-в-с++-кун
Аноним 05/06/16 Вск 19:54:40 #323 №762543 
>>762540
ни единого дня-фикс
Аноним 05/06/16 Вск 19:57:57 #324 №762547 
>>762540
Чтобы размер шрифта изменить создавать 20 классов по 1 на каждый пункт разницы? Не, спасибо, мне бы как обычный параметр.
Аноним 05/06/16 Вск 19:58:02 #325 №762548 
14651458823610.gif
>>762540
>изменить в наследнике параметр
>виртуальность данных
>С++
>виртуальность
>данных
Аноним 05/06/16 Вск 21:49:09 #326 №762604 
>>761936
Бамп
Аноним 05/06/16 Вск 21:56:06 #327 №762608 
>>761936
>>762604

Манямирок. Иди к шарепрам. Кресты - не твой выбор.
sageАноним 05/06/16 Вск 21:56:21 #328 №762609 
>>762604
По голове себе побампай.
Аноним 05/06/16 Вск 21:56:24 #329 №762610 
>>762604
Тебе уже ответели.
Python/C#/Vala(если linux)
Аноним 05/06/16 Вск 21:59:04 #330 №762611 
>>762610
Но вала же мертва? Лучше уж жабу посоветовать.
Аноним 05/06/16 Вск 21:59:32 #331 №762612 
>>762611
>linux
>java
Nope
Аноним 05/06/16 Вск 22:00:28 #332 №762614 
>>761936
Хочешь дэльфи – иди скачай последний релиз дельфи. Кроме шарпа аналогов у него нету – совсем. C++ с Qt (как и с wx/gtk и тд) заметно сложнее, и "шлёпнул кнопку, даблкликнул, написал" – не получится.
Аноним 05/06/16 Вск 22:01:42 #333 №762616 
>>762612
Ну, на серверах она самая живая в мире, без преувеличений.
Переформулирую твой ответ – не тащите жяву на десктоп.
Аноним 05/06/16 Вск 22:02:39 #334 №762617 
>>762616
Я мало на ней писал. Но что не так с жабой на десктопе?
Аноним 05/06/16 Вск 22:04:21 #335 №762618 
>>762617
Ты пользовался программами на джаве?
sageАноним 05/06/16 Вск 22:04:55 #336 №762619 
>>762618
Да. i2p, например.
Аноним 05/06/16 Вск 22:06:10 #337 №762620 
>>762619
Доволен?
Аноним 05/06/16 Вск 22:06:17 #338 №762621 
>>762618
Матлаб. Иногда глючит, но претензий особо нет.
Знаю, что частично на жабе
sageАноним 05/06/16 Вск 22:07:18 #339 №762622 
>>762620
Как слон.
Аноним 05/06/16 Вск 22:07:26 #340 №762623 
Java вообще под десктоп не заточена
Аноним 05/06/16 Вск 22:07:59 #341 №762624 
>>762623
Только сервера в энтерпрайзе
Аноним 05/06/16 Вск 22:08:03 #342 №762625 
>>762617
Всё.
Компрессующе-перемещающие GC (хорошие для серверов работающих 24/7, но слишком оверхедно для десктопа), хэловорлды на 300 мб, требуется пол часа на запуск вм, жит ебёт средненькие десктопные процессоры.

В том же дотнете половина этого исправлено, и есть те же асинки для отзывчевого гуя и тд.
Аноним 05/06/16 Вск 22:08:27 #343 №762626 
>>762623
И это наверно самый скучный язык на котором я писал
sageАноним 05/06/16 Вск 22:09:13 #344 №762627 
>>762626
Это может быть. Заточено на неграмотных мартышек.
Аноним 05/06/16 Вск 22:11:07 #345 №762629 
>>762622
А теперь открой какой нибудь llvm в цлионе/эклипсе цдт, посмотри на графики оперативки и процессора которые при пустом старте 700+мб съедают без плагинов, и подумай что же не так.
Аноним 05/06/16 Вск 22:11:29 #346 №762630 
>>762626
Да, а в крестах столько веселья при переписывании математики с пиздона на кресты.
sageАноним 05/06/16 Вск 22:12:38 #347 №762631 
>>762629
О, ты напомнил. Ещё и слион использую.

Правда, ничего крупного в нём не открывал.
Аноним 05/06/16 Вск 22:13:08 #348 №762632 
>>762630
Переписывать всегда скучно.
Зато просто.
Аноним 05/06/16 Вск 22:14:42 #349 №762633 
>>762631
Не знаю как сейчас, но полгода назад clion был полным дерьмищем, даже если забыть про потребление ресурсов.
У меня половина кода была красная, и автодополнение тоже работало только для половины кода
Аноним 05/06/16 Вск 22:15:43 #350 №762634 
>>762630
Хотя бы на питоне весело. Разработка на джаве - сплошная серость
sageАноним 05/06/16 Вск 22:18:09 #351 №762636 
>>762633
А мне норм. Не идеально, но норм. Пробовал с gedit перелезть на QtKreakl, Code::Blocks, Eclipse и ещё на что-то, но всё не так. Не смог без долгого копания в настройках выдрессировать IDE под себя.

А у Clion поменял отступы пробелами на отступы табами и ещё пару опций стиля подтюнил — и всем доволен. Больше в настройки лазать нет необходимости.
Аноним 05/06/16 Вск 22:20:39 #352 №762637 
>>762636
>gedit
Ты профессиональный разработчик hello world'ов ?
sageАноним 05/06/16 Вск 22:22:19 #353 №762638 
>>762637
Ничего лучше не встречал до clion
Аноним 05/06/16 Вск 22:23:06 #354 №762639 
Смотрите, а макака мало того, что сохраняет все треды, так еще и выкладывает их в паблик:
https://2ch.hk/pr/arch/
наверное, все про это уже знают
Аноним 05/06/16 Вск 22:25:58 #355 №762640 
>>762638
Она же ничего не может. Там нет ни IDEшных фич, ни возможностей для эффективной манипуляции с текстом
Аноним 05/06/16 Вск 22:26:36 #356 №762641 
>>762638
Она же ничего не может. Там нет ни IDEшных фич, ни возможностей для эффективной манипуляций с текстом
sageАноним 05/06/16 Вск 22:26:52 #357 №762642 
>>762640
Приходилось жрать этот кактус, т.к. IDE больше мешали, чем помогали.
sageАноним 05/06/16 Вск 22:27:16 #358 №762643 
>>762641
Приходилось жрать этот кактус, т.к. IDE больше мешали, чем помогали.
Аноним 05/06/16 Вск 22:29:22 #359 №762644 
>>762642
Ну на мой взгляд в том при помощи чего ты пишешь код должно быть:
- Навигация по символам(семантическая)
- Переименование символа
- Автодополнение(семантическое)
- Шорткаты для быстрой работы с тесктом
Аноним 05/06/16 Вск 22:38:44 #360 №762647 
>>762433
тут ты промахнулся. недавно понадобилось код на шаблонах-алгоритмах в многопоточное окружение перевести. боль и страдание, особенно в с++03. хотя обмазывание мьютексами помогло. сейчас смотрю на локфри контейнеры
Аноним 05/06/16 Вск 22:41:15 #361 №762648 
>>762647
В любом языке импреративное многопоточное программирование на основе shared memory - боль.
Аноним 05/06/16 Вск 22:43:25 #362 №762649 
>>762636
>отступы
Ты опять шакалишь, сука? Мало тебе одного треда с троллеркоастером?
sageАноним 05/06/16 Вск 22:44:37 #363 №762650 
>>762649
Я просто написал, как было. По-умолчанию было пробелами, я люблю табами.
sageАноним 05/06/16 Вск 22:44:56 #364 №762651 
>>762649
Если кому-то от этого порвало сраку, это его проблемы.
Аноним 05/06/16 Вск 22:45:00 #365 №762652 
>>762647
и >>761886 я написал. я к stl нормально и отношусь и хорошо понимаю. но проблемы там есть
Аноним 06/06/16 Пнд 00:24:34 #366 №762696 
Привет парни.
Вот такой код:

int a=0;
int pointer=&a;
int &ref=
pointer;

И все работает, несмотря на то, что ссылка на неконст инт инициализируется литералом (а именно 0).
Как это понимать?
Аноним 06/06/16 Пнд 00:25:05 #367 №762697 
>>762696
int (звездочка еб ее мать)pointer=&a;
Аноним 06/06/16 Пнд 00:26:16 #368 №762698 
>>762696
int (звездочка еб ее мать)ref=pointer;

(И они еще пасскоды продают.)
sageАноним 06/06/16 Пнд 00:26:35 #369 №762700 
>>762696
>>762697
>>762698
Закинь уже на pastebin
Аноним 06/06/16 Пнд 00:28:46 #370 №762702 
>>762696
Короче вот http://ideone.com/KxuFKz
sageАноним 06/06/16 Пнд 00:29:30 #371 №762703 
>>762696
>>762702
Так. И что тут тебя смутило?
Аноним 06/06/16 Пнд 00:29:51 #372 №762704 
>>762696
А что не так.
Ты создал переменную. Записал адрес в pointer. И создал ссылку на указатель. Всё норм.
sageАноним 06/06/16 Пнд 00:33:46 #373 №762705 
>>762696
> ссылка на неконст инт инициализируется литералом (а именно 0).
Ты-таки не прав. °pointer это lvalue. Ты ведь можешь ему присваивать, типа "°pointer = 1;"

Так что всё в порядке с инициализацией неконстантной ссылки.
Аноним 06/06/16 Пнд 00:34:14 #374 №762706 
>>761461
Читаю книгу одну, за 400 страниц о классах не слова. Как можно понять это больше 40 часов.
Аноним 06/06/16 Пнд 00:38:14 #375 №762707 
>>762706
> Читаю книгу одну, за 400 страниц о классах не слова.
В романе "Мастер и Маргарита" Мастер появляется только в 13 главе.
Аноним 06/06/16 Пнд 00:38:49 #376 №762708 
>>762704
Там указатель разыменован, так что у него и указатель и ссылка на переменную.
Аноним 06/06/16 Пнд 00:40:24 #377 №762711 
>>762708
Ясно. Подумал, что у него int* &ref=p;
Аноним 06/06/16 Пнд 00:40:29 #378 №762712 
>>762705
Можешь кинуть ссылку или хотя бы примерног сказать где про это написано?

Что из себя представляет это lvalue - ссылка, переменная (типо как в питоне - функция объект), или еще что нибудь?

Хотя я тут итераторы вспомнил, можно же так делать ((звездочка)i).foo() , значит и правда lvalue
sageАноним 06/06/16 Пнд 00:42:36 #379 №762715 
>>762712
Если не хочется обмазываться канцеляритом стандарта, то можно смотреть здеся: http://en.cppreference.com/w/cpp/language/value_category
sageАноним 06/06/16 Пнд 00:44:31 #380 №762717 
>>762715
>канцеляритом
Хотя, это слово не очень подходит. Там скорее юридический язык.
Аноним 06/06/16 Пнд 00:45:22 #381 №762719 
>>762715
Спасибо
Аноним 06/06/16 Пнд 03:42:23 #382 №762751 
14651737436360.jpg
Надо определить ближайшие объекты к курсору. В флоате храню расстояние, по причине автоматической сортировки карты - будет ли нулевой элемент ближайшим к курсору?
Как записать map с float ключем, а в значении - ссылка на элемент вектора?
блять походу я тупой, даже с гуглом не нашел как в декларации записать ссылку на вектор
Аноним 06/06/16 Пнд 03:50:48 #383 №762753 
>>762751
Хоть твой алгоритм кажется мне неясным (почему не quadtree?), а идея использовать float как ключ — идиотской, всё же отвечу на
> Как … в значении - ссылка?
http://en.cppreference.com/w/cpp/utility/functional/ref
Аноним 06/06/16 Пнд 05:11:57 #384 №762757 
Есть некоторый проприетарный софт, я хочу к нему написать плагин также я ньюфаг. Но документация скудна и написана на отъебись. Есть header файлы и автоматически сгенеренные doxygen html-страницы.

Сгенерил uml-диаграмки по некоторым интересующим меня классам и стало немного легче разбираться. Есть ли еще какие-нибудь трюки, которые помогут быстрее разобраться?
sageАноним 06/06/16 Пнд 06:52:58 #385 №762761 
>>762696
> инициализируется литералом (а именно 0).
Ладно lvalues, но что такое "литерал" не знать нельзя. Литерал только в `int a=0;' справа от `=' присутствует.
Аноним 06/06/16 Пнд 09:25:17 #386 №762779 
А вам самим не кажется, что вот эти вот ваши типа советы:
>>762610
>>762610
противоречат не только моему вопросу, но и вашим же постам:
>>762625
>>762618
>>762616
?
К тому же, вы до сих пор не объяснили, ЧЕМ шарп будет лучше крестов.
Аноним 06/06/16 Пнд 09:26:54 #387 №762781 
>>762614
Но он не слишком производительный, не особо популярный и с работой будут проблемы, а уж перспективы совсем печальные. Чем шарп оказывается в данном случае ближе крестов, опять же? Тут тоже, насколько я знаю, "не тащи шарп на десктоп".
Аноним 06/06/16 Пнд 09:50:37 #388 №762786 
>>762779
Тебе джаву никто не советовал.
Java != C#. Последний умеет в дектоп. Даже под linux кое-что написано
Аноним 06/06/16 Пнд 11:17:44 #389 №762800 
В чём проблема джавы на десктопе? Вам что жалко лишних ссаных гигабайтов? Так как раз за счёт большого количества памяти нет проблем со сборщиком мусора.
Аноним 06/06/16 Пнд 11:25:48 #390 №762805 
>>762786
Умеет, но не используется. Умеет даже под линукс, но это боль + большие вопросы с Net framework.
Аноним 06/06/16 Пнд 11:27:22 #391 №762806 
>>762781
Хуёво знаешь. Шарп в отличии от жявы умеет в десктоп: там и специальный (не серверный) GC есть, и асинки для отзывчивого гуя, и крутые средства разработки этого самого гуя.

Попробуй сравнить например работу студии и идеи.

>>762800
Как раз из-за большого её кол-ва он останавливает мир на пол часа каждую итерацию.
Аноним 06/06/16 Пнд 11:41:20 #392 №762811 
>>762806
Чем идея хуже студии? Мне она таки не меньше нравится как минимум, но я нуб и не могу судить. Я знаю, что оно там есть, только это никто не использует, вакансии - веб, веб, хуеб, энтерпрайз, веб, юнити.
>>762786
Ок.
> вы до сих пор не объяснили, ЧЕМ шарп будет лучше крестов
Проще и быстрее - это общие слова, они не несут никакого смысла без раскрытия.
Аноним 06/06/16 Пнд 11:53:27 #393 №762815 
>>762806
Умеет. Есть. Крутые. Что, если человек не хочет воровать спермостудию, говноедствовать с моно, ебаться с винформами, впф и прочим шлаком, читать говеные спермодокументации и закругляться в юнити и ксамарине?
Это ж гной, блядь, говно, червь-пидор. Как вообще можно в плюсотреде такое советовать?
Аноним 06/06/16 Пнд 11:54:20 #394 №762817 
>>762811
>Чем идея хуже студии?
Скоростью работы. Хочешь сравнить наглядно – открой один и тото же большой проект в обоих, посмотришь чем ява от шарпа отличается.
>вакансии - веб, веб, хуеб, энтерпрайз, веб, юнити.
У явы - энтерпрайз, энтерпрайз, энтерпрайз.
>Проще и быстре
Ты нюфаг, тебе больше информации не нужно. Перестань ебать мозги и попробуй написать что-то там и сям, пока граблями ебало себе не пробьёшь - не поймёшь.
Аноним 06/06/16 Пнд 11:56:32 #395 №762819 
>>762817
> У явы - энтерпрайз, энтерпрайз, энтерпрайз.
Это с самого начала было понятно. Поэтому я тут, а не в треде по Java. Хотя там тоже веб, к слову.
>Проще потому что слишком сложно объяснить, чем
Ясно.
Аноним 06/06/16 Пнд 12:08:50 #396 №762824 
>>762285
>ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля.
Хуйня. Слишком много ограничений. То ли дело математика - можешь строить себе манямирки сколько влезет.
Аноним 06/06/16 Пнд 12:28:15 #397 №762827 
>>762824
Двачую. Самый кайф - заниматься исследованиями в алгебраической геометрии за рубежом. Читаю работы ученых и завидую им. Еще и финансируют науку значительно лучше, чем у нас.
Аноним 06/06/16 Пнд 13:47:31 #398 №762848 
14652100517630.png
14652100517631.png
>>761156
Пишу простенькую программу, которая складывает массивы и сравниваю с CPU-онли прогой.

Повторю вопрос: кто-нибудь здесь работал с OpenCL?
Аноним 06/06/16 Пнд 14:01:04 #399 №762855 
14652108646590.png
Решаю алгоритмическую задачу: https://www.hackerrank.com/challenges/icecream-parlor

https://ideone.com/u0i3jR

Она не проходит последний тест. Ввод и вывод такие:
http://rgho.st/7fjhjLV2c
http://rgho.st/76qDLrWF8

Что я делаю не так? Алгоритм такой: прохожу по массиву и для каждого элемента бинарным поиском определяю, есть ли в массиву такой элемент, который в сумме с текущим дает заданное число. Если такой элемент есть, нахожу его линейным поиском и возвращаю два индекса. Должно работать за O(nlog n).
Це зрада! Иван 06/06/16 Пнд 14:40:56 #400 №762874 
14652132568600.png
Оказывается, C++11 легализовал "no newline at end of file"
Аноним 06/06/16 Пнд 14:46:30 #401 №762875 
>>762874
Понадусеровый швайнокарась.
sageАноним 06/06/16 Пнд 15:00:32 #402 №762881 
>>762874
А вот и корпоративные юристы по ISO 14882 праву подъехали.
Аноним 06/06/16 Пнд 15:04:05 #403 №762883 
Ебаный C++. Какого хуя компилятор высирает такие длинные портянки ассемблерного кода для четырех строчек из нескольких операторов?
Аноним 06/06/16 Пнд 15:05:50 #404 №762886 
>>762883
Оптимизации включи.
Аноним 06/06/16 Пнд 15:07:18 #405 №762888 
>>762883
А что он тебе должен делать? Компьютер только и умеет, что взять говно из памяти и положить в регист, сложить два регистра, положить результат в память. Страдай.
Аноним 06/06/16 Пнд 15:17:13 #406 №762895 
>>762886
Нихуя. Потоки жутко раздувают код.
Аноним 06/06/16 Пнд 15:32:53 #407 №762911 
Эх, анон, как же хочется библиотечку для работы с excel файлами. Маленькую, бесплатную. Чтобы можно было вместе с ней свернувшись под пледиком читать .xls файлы без ole и com.
Может ты анон знаешь где мне найти такую библиотечку? Очень плохо без неё.
Аноним 06/06/16 Пнд 15:36:14 #408 №762913 
>>762911
Библиотечки нет, могу взамен отняшить тебя в пукан.
Аноним 06/06/16 Пнд 15:45:50 #409 №762920 
>>762913
Это еще лучше же.
sageАноним 06/06/16 Пнд 16:03:12 #410 №762933 
>>762855
Даже не вникая в задачу, я вижу, что у тебя сложность solution O(n^2), а не O(nlogn).
У тебя в худшем случае выходит O(n * (logn + n))
Аноним 06/06/16 Пнд 16:03:38 #411 №762934 
>>762933
линейный поиск он такой линейный
Аноним 06/06/16 Пнд 17:30:06 #412 №762986 
У bool 1 байт как и у char. Можно делать unsigned bool или использовать его вместо char?
Аноним 06/06/16 Пнд 17:32:34 #413 №762987 
>>762986
Зачем?
Аноним 06/06/16 Пнд 17:36:43 #414 №762989 
>>762987
Чтобы сделать счётчик который ещё и в if ложить можно и без проблем с выводом как у char.
Аноним 06/06/16 Пнд 17:39:53 #415 №762992 
>>762989
char и так в if ложить можно.
Аноним 06/06/16 Пнд 17:47:29 #416 №763002 
>>762992
Выводить не удобно. И bool в if красивее ложить.
Аноним 06/06/16 Пнд 17:49:22 #417 №763004 
>>763002
Ну тогда советую тебе сходить нахуй.
ISO1488-юрист в треде 06/06/16 Пнд 17:53:51 #418 №763006 
>>762986
>У bool 1 байт
5.3.3 Sizeof [expr.sizeof ]
1 <blah-blah-blah skipped> [ Note: in particular, sizeof(bool), sizeof(char16_t), sizeof(char32_t), and sizeof(wchar_t) are implementation-defined.⁷⁴ — end note ]

74) sizeof(bool) is not required to be 1.
Аноним 06/06/16 Пнд 17:55:51 #419 №763009 
>>762933
Не понял, откуда n^2? Линейный поиск там один раз вызывается.
Аноним 06/06/16 Пнд 17:58:08 #420 №763010 
>>763006
И сколько ещё может бэть bool если не 1?
Аноним 06/06/16 Пнд 17:58:47 #421 №763011 
>>763009
У тебя цикл внутри цикла, блядь. Если тот if фактически один раз срабатывает, то ты плохо написал код и иди переписывай.
Аноним 06/06/16 Пнд 18:00:18 #422 №763013 
>>763010
Знаешь почему bool на x86 равен 1 байту? Потому что процессор может адресовать минимум 1 байт.
Будет другая архитектура, на которой минимально адресуемая ячейка 4 байта, будет у тебя bool 4 байта.
Аноним 06/06/16 Пнд 18:00:37 #423 №763014 
>>763011
>Если тот if фактически один раз срабатывает, то ты плохо написал код и иди переписывай
Тот if срабатывает только один раз, когда бинарный поиск находит элемент, который в сумме с текущим дает нужное значение.
Как это переписать? Для таких случаев есть стандарты?
ISO1488-юрист в треде Аноним 06/06/16 Пнд 18:06:49 #424 №763022 
> Будет другая архитектура, на которой минимально адресуемая ячейка 4 байта, будет у тебя bool 4 байта.
В модели памяти C++ минимально адресуемая ячейка всегда называется байтом. Так что, "минимально адресуемая ячейка 4 байта" это нонсенс.
Аноним 06/06/16 Пнд 18:07:06 #425 №763023 
>>763013
>>763022
Аноним 06/06/16 Пнд 18:10:40 #426 №763027 
>>763022
А если процессор умеет работать только с 4ёх байтовыми ячейками? То все числовые типы в С++ будут
Аноним 06/06/16 Пнд 18:12:04 #427 №763029 
>>763027
>То все числовые типы в С++ будут
1 байт? Выходит sizeof вернёт 1, а на самом деле там 4 байта? Может 1 байт быть 32 бита?
не дописал случайно отправил
Аноним 06/06/16 Пнд 18:15:33 #428 №763034 
>>763029
>>То все числовые типы в С++ будут
>1 байт?
Ну, как минимум, long long требует 64 бит, так что sizeof(long long) будет равен двум (как минимум).

> Может 1 байт быть 32 бита?
В модели памяти C++ — да. char это синоним байта и sizeof(char) гарантировано равен одному. А CHAR_BIT будет равен 32
Аноним 06/06/16 Пнд 18:22:58 #429 №763036 
http://ru.stackoverflow.com/questions/532323/%D0%91%D0%BB%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B8%D0%B4%D0%B8%D0%BE%D1%82%D0%B0

Типичный дегенерат-программистишка, который даже не смог понять, что в теории кодирования используется алгебра и алгебраическая геометрия, а не матан.
Аноним 06/06/16 Пнд 18:24:27 #430 №763039 
>>763036
"Матан" это такой термин у даунов, означающий "там какие-то математические значочки, которые я не понял".
Аноним 06/06/16 Пнд 18:25:23 #431 №763041 
>>763039
А нас в школе так даже геометрию за 9ый класс называли.
Аноним 06/06/16 Пнд 18:36:01 #432 №763052 
Почему все говорят, что c++ сложный язык для начинающего? Разве за 1-2 года, я не выучу все основы, если действительно буду стараться? И раз он сложный, то потом будет проще.
Аноним 06/06/16 Пнд 18:37:46 #433 №763056 
>>763052
Слишком дохуя нюансов.
Аноним 06/06/16 Пнд 18:48:51 #434 №763070 
>>763052
Тогда почему на C++ может зарабатывать даже третьекурсник?
Аноним 06/06/16 Пнд 18:56:01 #435 №763078 
>>763070
В качестве джуна, но не сеньёра-помидора. Разницу чуешь?
Аноним 06/06/16 Пнд 18:59:15 #436 №763081 
>>762986
signed bool
Аноним 06/06/16 Пнд 19:05:57 #437 №763084 
>>762702
>>762696
Привет парни.
Вот такой код.
int a = 0;
a = 1;
И всё работает!
Как это понимать?
Аноним 06/06/16 Пнд 19:29:17 #438 №763099 
>>762883
код давай. может у тебя там вызовы к толстым функциям
Аноним 06/06/16 Пнд 19:32:43 #439 №763105 
14652307636250.png
>>763099
Аноним 06/06/16 Пнд 20:14:37 #440 №763126 
>>763105
>using namespace std
>какой-то петушиный редактор
Ясно.
Аноним 06/06/16 Пнд 20:27:57 #441 №763132 
>>763084
Он про то, что создается ссылка на 0. Но это нормально, это действительно способ сделать ссылку на nullptr.
Аноним 06/06/16 Пнд 20:33:42 #442 №763136 
>>763126
>using namespace std
Чем тебе это неугодило?
Аноним 06/06/16 Пнд 20:34:00 #443 №763137 
>>763136
>не угодило
быстрофикс
Аноним 06/06/16 Пнд 20:35:00 #444 №763139 
>>763137
using namespace - это моветон.
Аноним 06/06/16 Пнд 20:40:55 #445 №763142 
>>763084
Это C++ тред, если ты не заметил, мань. Такие вопросы тут и задают. Съебал отседа
Аноним 06/06/16 Пнд 20:44:41 #446 №763145 
>>763084

Привет парни.
Вот такой код:
vector<string> process(){
return {"A","B","C","D"};
}

vector<string> process2(){
return ({"A","B","C","D"});
}

Почему process2 компилируется, а process нет? Различие в скобках если что.
Как это понимать?
Аноним 06/06/16 Пнд 20:52:27 #447 №763157 
>>763145
Наоборот же со скобками не компилируется:
http://ideone.com/5yLwp6

Потому что компилятор считает, что ты возвращаешь функцию с сигнатурой void() вместо vector<string>.
Аноним 06/06/16 Пнд 20:55:17 #448 №763161 
>>763157
Хотя нет, с функцией я погорячился.
Аноним 06/06/16 Пнд 20:55:32 #449 №763162 
>>763157
Да, process2 не компилируется. Но там же нет названия функции рядом со скобками чтобы считать это вызовом
Аноним 06/06/16 Пнд 20:57:55 #450 №763164 
Программисты, а составьте-ка мне оптимальный алгоритм онанизма. Вы ж программисты.
Аноним 06/06/16 Пнд 20:58:43 #451 №763166 
>>763164
Уже и подрочить без компа не можешь?
Аноним 06/06/16 Пнд 21:04:45 #452 №763172 
14652362855390.jpg
>>763164
Не благодари
Аноним 06/06/16 Пнд 21:12:36 #453 №763178 
>>763172
Какая сложность у этого алгоритма по времени и памяти? Это важно для исследований
Аноним 06/06/16 Пнд 21:12:45 #454 №763179 
Аноны, знакомые с Qt, выручайте@помогайте!

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

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

Структура программы: main.cpp -- тут всё понятно, ui_gui.h -- графическая форма из Qt Designer, equation.h -- функции для решения уравнения, program.h и program.cpp относятся ко всему необходимому из Qt.

Ссылки:
main.cpp: http://pastebin.com/SxddZ1jf
ui_gui.h: http://pastebin.com/DS45ERZ2
equation.h: http://pastebin.com/qNimRMms
program.cpp: http://pastebin.com/xZLw91tq
program.h: http://pastebin.com/t34QitY9

Просто напишите, пожалуйста, как подать из GUI-окошка QPlainTextEdit число в аргумент функции set_a и как результат функции solution_1 вывести в QTextBrowser, например. Это надо, видимо, как-то вписать в конструктор в файле program.cpp. С остальным разберусь по аналогии.

Молю о помощи!
Аноним 06/06/16 Пнд 21:14:43 #455 №763180 
>>763179
Почему не выложил файл .pro? Там же самое важное
Аноним 06/06/16 Пнд 21:14:59 #456 №763181 
>>763178
O(2n), доказал деревом рекурсии!
Аноним 06/06/16 Пнд 21:28:28 #457 №763196 
>>763180
Вот он: http://pastebin.com/ZqyVKRe1
Хотя не понимаю его необходимость, он же сам автоматом возникает при сборке. Собираю так:
qmake -project
qmake file.pro
make

Вот .pro сам после qmake -project создаётся.
Аноним 06/06/16 Пнд 21:35:54 #458 №763203 
>>763196
>>763196
То есть ты хочешь сказать, что понял как собирать qt проекты, но непонял что такое сигналы/слоты? Подозрительно

Без задней мысли создаешь сигнал, возвращающий структуру где сохранено то что ввел пользователь и соедини его со слотом
принимающим на вход такую структуру и в нем же можно ответ вывести
Аноним 06/06/16 Пнд 21:37:14 #459 №763205 
>>763179
Ты не знаешь как устроить взаимодействие между элементами/виджетами? Или в чём проблема?
Аноним 06/06/16 Пнд 21:37:33 #460 №763207 
>>763179
QString text = QPlainTextEdit->text();
set_a(text);
Так не?
Аноним 06/06/16 Пнд 21:41:25 #461 №763215 
>>763179
Палю тебе охуенный лайфхак:
1) В классе элемента/виджета, в котором ты что-то там вычисляешь, создаешь член GWidget uiWindow; или что-нибудь похожее.
2) В конструктор этого элемента у тебя передаётся parent. Присваиваешь его тому члену, что ты создал.
3) Дальше обращаешься к любому элементу/виджету через:
QLineEdit
le1 = (QLineEdit)uiWindow->findChild<QLineEdit>("lineEditPosition");
std::string str = le1->text().toStdString();
Аноним 06/06/16 Пнд 21:42:22 #462 №763217 
>>763215
Ну, это пример из моего приложения и имена соответственно не дефолтные, но ты понял.
parent - я имел ввиду главное окно, на котором все остальные элементы.
Аноним 06/06/16 Пнд 21:52:57 #463 №763219 
Как сделать цвет букв красным, как в опшапке?
Аноним 06/06/16 Пнд 22:08:35 #464 №763226 
>>763207
>>763215
>>763217
Сижу сейчас, обдумываю, соображаю. Спасибо за подсказки! Потом отпишусь, если не дойдёт до мозгов.

>>763203
>То есть ты хочешь сказать, что понял как собирать qt проекты, но непонял что такое сигналы/слоты?
В общем-то да. Как собрать qt проект находится на первой же странице любого поисковика. Qt Designer у меня был по дефолту в системе предустановлен Slackware, но решил его и Qt только сейчас опробовать, там исключительно мышковозякания, много ума не надо, во всяком случае справился даже без мануалов.

>>763205
Да, я тупо запутался. Наверное надо чуть-чуть поосмыслить и в голове уложится. Когда смотрю примеры в документации, то всё вроде бы легко и понятно, например:
QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
тут connect соединяет кнопку quitButton и даёт сигнал при её нажатии в само приложение qApp на слот quit(), что закрывает программу. А вот как самому что-то подобное написать, почему-то теряюсь.
Аноним 06/06/16 Пнд 22:47:31 #465 №763241 
>>763226
Вариант без слотов/сигналов - вот >>763215
Аноним 06/06/16 Пнд 22:59:20 #466 №763251 
>>763219
Купи паскод
Аноним 07/06/16 Втр 01:04:57 #467 №763321 
бамп
Аноним 07/06/16 Втр 03:24:09 #468 №763337 
>>762883
Тебя это ебать не должно.
Аноним 07/06/16 Втр 03:24:42 #469 №763338 
>>763126
Может, ещё макросами и memcpy пользоваться запрещено в твоём манямирке?
Аноним 07/06/16 Втр 03:28:50 #470 №763339 
>>762883
-fno-exceptions -fno-rtti
Аноним 07/06/16 Втр 03:45:02 #471 №763341 
Внятное объяснение почему кресты такая параша:
http://stackoverflow.com/a/14589567
Аноним 07/06/16 Втр 03:49:12 #472 №763343 
>>763341
Похуй на синтаксис, всё равно все не-игрушечные компиляторы парсят с помощью рекурсивного спуска. А он отлично справляется с не контекстно-свободными грамматиками.
Аноним 07/06/16 Втр 03:53:35 #473 №763347 
>>763338
>2016
>использовать макросы вместо функций/инлайн функций
Аноним 07/06/16 Втр 12:45:49 #474 №763533 
//qt

QNetworkRequest request(url);
m_WebCtrl.get(request);
.....
this->data = pReply->readAll(); // QByteArray

На выходе получаем QByteArray, который хорошо интерпретируется под заданную страницу, если ее выводить прямо.
Мне нужен сам html код, как его выдрать?
Аноним 07/06/16 Втр 12:46:40 #475 №763535 
Можно ли как-то сделать так, чтобы в цикле 1 раз IF пропускал проверку?
Аноним 07/06/16 Втр 12:48:06 #476 №763538 
>>763535
да, сделай логическую переменную и вставь ее в условие
Аноним 07/06/16 Втр 12:53:58 #477 №763541 
>>763538
Cпасибо, с вашей помощью решил задачку на загадывание числа от 1 до 100, вы можете оценить решение: http://ideone.com/Y17Y1X
А помогли мне тут: >>760607
Аноним 07/06/16 Втр 12:56:33 #478 №763542 
>>763533
Отбой
Оказалось, оно и считывает в html-е, просто QTextBrowser html код преобразовывает в веб-страницу
Аноним 07/06/16 Втр 14:41:19 #479 №763617 
Привет парни.
Еще вопросов принес.
Вот такой код:

void foo(){
string a="string1",b="string2";
return a+b;
}

Какой объект возвратит foo? Результат сложения или копию результата сложения?
Аноним 07/06/16 Втр 14:44:27 #480 №763621 
>>763617
void ниче не вернет
Аноним 07/06/16 Втр 15:01:13 #481 №763629 
>>763621
Да блять, там string возвращаемый тип, я обосрался
Аноним 07/06/16 Втр 15:04:08 #482 №763633 
>>763629
вернет string1string2 тогда
Аноним 07/06/16 Втр 15:11:53 #483 №763641 
>>763633
Что вернет, это понятно.
Вопрос в другом: будет ли создаваться копия результата сложения или не будет
Аноним 07/06/16 Втр 15:14:37 #484 №763644 
>>763621
Ай попизди мне тут. void вернет prvalue типа void, это классика, блядь.
Аноним 07/06/16 Втр 15:33:12 #485 №763663 
>>763641
создаст одну конкатенированую строку и положит ее на стек. читай про rvo
Аноним 07/06/16 Втр 15:38:39 #486 №763665 
>>763663
Вообще говоря, это неправда.
>>763617
RVO/NRVO допустимы, но не обязательны. Имеет право вызвать конструктор перемещения, это unspecified behaviour.
Аноним 07/06/16 Втр 16:37:46 #487 №763695 
>>763665
RVO/NRVO это не undefined behavior, а compiler specific. Надо посмотреть доки компилятора или посмотреть на практике, что происходит.
Аноним 07/06/16 Втр 16:38:58 #488 №763696 
>>763665
И да, перемещение более затратно, чем RVO, поэтому ты только обосрешься, если так сделаешь, потому что почти все компиляторы сейчас поддерживают RVO.
Аноним 07/06/16 Втр 17:27:57 #489 №763714 
В случае [N]RVO, если компилятор не умеет его делать, он обязан сделать перемещение.
Аноним 07/06/16 Втр 18:09:57 #490 №763756 
>>763695
Нет. Есть три разные вещи: undefined behaviour, unspecified behaviour и implementation-defined behaviour. Первое это гроб гроб кладбище пидор, например, переполнение или несинхронизированный доступ к объекту из разных потоков. Может произойти что угодно, скажем, Уильямс в своей книге пилил, что он встречал случай, когда железо в буквальном смысле воспламенилось из-за UB, лол прохладная стори, но суть понятна. Implementation-defined означает, что в доках платформы должно быть написано, что произойдет, хотя на разных платформах может быть по-разному. Например, sizeof(int), поддержка conditionally-supported фич, в общем, то, что ты назвал compiler specific. А есть еще unspecified behaviour, это как бы промежуточное между ними. Плохого не произойдет, но документировать конкретное поведение платформа не обязана, и, более того, даже в пределах одной программы два одинаковых выражения с unspecified behaviour могут вычисляться по-разному. Яркий пример - порядок вычисления аргументов функции, в разных вызовах может быть разный порядок из-за оптимизаций.

Так вот, RVO/NRVO это формально часть copy elision, которое ради оптимизаций сделано unspecified. Компилятор волен сам решать, вызывать конструктор или нет для каждого конкретного случая, даже если возможность не вызывать есть всегда.
Аноним 07/06/16 Втр 19:29:39 #491 №763830 
>>763714
Никто ничего не обязан. В данном конкретном случае со std::string - да, будет перемещение, но в других случаях может и копирование случиться.

>>763756
Да, ты больше прав, наверное. Хотя я нигде так и не нашел, как классифицируется RVO
Аноним 07/06/16 Втр 20:08:11 #492 №763880 
Так что, unspecified behaviour?
Какой ответ, объясните пожалуйста
Аноним 07/06/16 Втр 20:18:30 #493 №763892 
>>763880
Да. 12.8/31
>When certain criteria are met, an implementation is allowed to omit the copy/move construction of a class object
Аноним 07/06/16 Втр 20:56:50 #494 №763930 
Ану-ка, байтоебы, обясните мне результат этой штукенции:
http://ideone.com/bObKB2
sageАноним 07/06/16 Втр 21:14:57 #495 №763959 
>>763930
Выравнивание.
Аноним 07/06/16 Втр 21:24:48 #496 №763972 
>>763959
хуита. Почему не 9?
Аноним 07/06/16 Втр 21:32:39 #497 №763978 
>>763972
Ты тупой, блядь? Выравнивание определяется максимальным среди агрегатов выравниванием. У первого агрегата это 4, ибо long. У последнего - 1. Поэтому структура выравнивается по четырем байтам, размер добивается от 9 вверх паддингом до минимального, кратного четырем, т.е. 12.
Аноним 07/06/16 Втр 21:36:57 #498 №763985 
14653246174050.jpg
Поцоны нужна помощь. Есть бинарник на асме. Как сделать так, чтобы процессор выполнил его при boot`e с флешки? Читал, что нужно в MBR флешки записать, но немогу приложить ума, как это сделать. Крч помоги анон
Аноним 07/06/16 Втр 21:44:09 #499 №763991 
>>763985
В венде с отключенным автозапуском - никак. Никто просто не станет выполнять твой код без явного указания пользователя. MBR это разметочная таблица, она интерпретируется как данные.
Аноним 07/06/16 Втр 21:46:36 #500 №763995 
>>763978
Ах ты пидор, все сходится. Спасибо.
Аноним 07/06/16 Втр 21:51:09 #501 №764004 
>>763991
Блять, при чём тут Форточка вообще? Я выключаю комп, включаю, захожу в биос-меню ставлю приоритет загрузки с флешки на макс, boot-аю с флешки. MBR - главная загрузочная запись, как-то так, 512 кб, вроде.С неё биос начинает считывать. В осях там загрузчик. ВОПРОС : как туда что-то записать?
Аноним 07/06/16 Втр 21:52:08 #502 №764006 
>>763991
HTML выучил, сына?
Аноним 07/06/16 Втр 21:55:02 #503 №764012 
Сап, байтоёбы. Какими упражнениями можно сохранить зрение за компьютером?
inb4: сокращать и расслаблять сфинктер
Аноним 07/06/16 Втр 22:01:29 #504 №764021 
>>764004
>Хочет записать PE файл в MBR
Обосрался c дауна
Аноним 07/06/16 Втр 22:02:36 #505 №764022 
>>764012
Поднятие мышки на бицепс
Аноним 07/06/16 Втр 22:07:18 #506 №764025 
>>764012
Не уверен, что это вообще научнодоказанная штука.
Я, например, провожу за ноутом последние шесть лет часов по 70 в сутки. Зрение хорошее.
Аноним 07/06/16 Втр 22:13:36 #507 №764030 
>>764025
в неделю, конечно, лол
Аноним 07/06/16 Втр 22:14:30 #508 №764031 
>>764021
А чё делать? Мне вообше предлагали com туда пихать? Мб тупо листинг? НО КАК?
Аноним 07/06/16 Втр 22:17:32 #509 №764036 
>>764021
Стоп, а bin это PE вообще? PE это ж типо exe и dll
sageАноним 07/06/16 Втр 22:21:45 #510 №764039 
>>764036
>типо
Скрываем школьника-вирмейкера.
Аноним 07/06/16 Втр 22:22:04 #511 №764042 
>>764025
Как поживают ваши геморрой и простатит, мсье?
sageАноним 07/06/16 Втр 22:23:33 #512 №764045 
>>764042
>геморрой и простатит
Кстати, говорят, что фапать сидя вредно. Лучше фапать стоя, лежа или в позе свечки, но не сидя. Фап сидя - простатит мерзкий.
Аноним 07/06/16 Втр 22:23:35 #513 №764046 
>>764039
О ещё и сажки подлил, спасибо за помощь,уёбок
sageАноним 07/06/16 Втр 22:24:31 #514 №764047 
Лично я предпочитаю фапать тяночкой, но могу только рукой вприсядку.
Аноним 07/06/16 Втр 22:24:57 #515 №764048 
А ТЕМ ВРЕМЕНЕМ ОП-СТИХОПЛЕТ ТАК И НЕ ВЕРНУЛСЯ. МОЖЕТ ОН УМЕР?
sageАноним 07/06/16 Втр 22:26:40 #516 №764052 
>>764048
Он просто открыл старые архивы двача и научился в туда постить. Теперь он на том дваче набигает, страдает от одиночества и угнетения черным битардом.
Аноним 07/06/16 Втр 22:32:41 #517 №764063 
>>764031
MBR хранится в самом начале диска.
При загрузке с этого диска MBR копируется по адресу 7c00 и туда же передается управление.
То есть нужно хуярить асм код прям в начало диска. И да его размер должен быть не больше 512 байт.
Аноним 07/06/16 Втр 22:33:50 #518 №764068 
>>764042
Я не он, но геморрой скоро наступит. Пока только жопа треснула. Со зрением все в порядке. Проблемы с жопой, думаю есть иили будут у любого войтишника/дальнобойщика. Еще у некоторых начинаются проблемы со спиной/шеей.
Аноним 07/06/16 Втр 22:34:44 #519 №764070 
>>764068
Геморрой наступает только у гетерастов.
Аноним 07/06/16 Втр 22:47:28 #520 №764081 
>>764042
Спорный вопрос.
Аноним 07/06/16 Втр 23:05:46 #521 №764097 
Кто-то может объяснить, чем занимаются std::align и std::aligned_storage. Читаю доку и охуеваю.
Аноним 07/06/16 Втр 23:08:24 #522 №764100 
>>764097
Нахуй оно вообще нужно, если выравнивание нужно только компилятору для генерации корректного кода, работающего с кастомно выровненными данными?
Аноним 07/06/16 Втр 23:09:37 #523 №764102 
>>764004
иди читай танненбаума про загрузчик. MBR показывает где лежат данные. дальше биос идет в указанный сектор и читает с первого или второго сектора (не помню). там специфический формат. например, для win nt, загрузчик загружает драйвера фс, ищет конфиг и передаёт управление указанному ядру. в Linux похоже. разве что grub умеет сразу запускать образ ядра.
тебе лучше не MBR дрочить, а подружиться с grub, который загрузит тебе хоть pe, хоть небо, хоть твою мамку
Аноним 07/06/16 Втр 23:10:53 #524 №764104 
>>764063
Чем хуярить?
Аноним 07/06/16 Втр 23:11:55 #525 №764105 
>>763985
>>764104
http://wiki.osdev.org/Main_Page

И съеби отсюда.
Аноним 07/06/16 Втр 23:13:03 #526 №764107 
>>764105
Спасибохуйло
Аноним 07/06/16 Втр 23:21:00 #527 №764114 
Короче этой командой через PARTCOPY надо записывать
partcopy boot.bin 0 200 -f0(только поменять аргументы для флешки)
Да сука, bin, никакой нахуй не листинг, а бинарникяжговорил
Аноним 07/06/16 Втр 23:35:21 #528 №764122 
>>764104
Хекс редактором например
Аноним 07/06/16 Втр 23:44:41 #529 №764128 
>>764122
уженашёл
Аноним 08/06/16 Срд 02:39:18 #530 №764223 
Возможно ли в VS както включить дизайнер нативных win32 форм? Как в билдере, чтоб перетескивать кнопочки мышкой и вот это вот все.
Аноним 08/06/16 Срд 04:34:59 #531 №764247 
Какая лучшая книга по теме многопоточности?
Аноним 08/06/16 Срд 04:36:48 #532 №764249 
>>764247
Также хочу отметить, что меня интересует только многопоточность через подключаемые библиотеки, а не через средства самого языка. Компилятор будет C++03.
Аноним 08/06/16 Срд 05:15:31 #533 №764258 
Бамплимит, кстати, а ОП-поэт убит.
Аноним 08/06/16 Срд 05:27:44 #534 №764261 
>>764258
Я ОП-пик не заготовил. Давайте кто-то другой перекатит.
Аноним 08/06/16 Срд 05:59:35 #535 №764265 
Можно ли заставить программу (бинарник под виндовс) писать файлы не на диск, а на псевдодиск, который будет распологаться сразу в памяти? Как такое лучше всго сделать?

Мне это нужно вот для чего. Я эту программу запускаю с ключами, она читает файл, декодирует его и пишет вывод в 3 файла на диск. Затем я эти 3 файла уже обрабатываю в своей программе. Очевидно тут лишний этап записи/чтения. Но т.к. исходников для этой программы у меня нет, то хотелось бы как-нибудь обойти это ограничение.
Аноним 08/06/16 Срд 06:00:22 #536 №764266 
>>764265
располагаться, всего-фикс
Аноним 08/06/16 Срд 06:15:55 #537 №764267 
>>764265
Нашел:
https://en.wikipedia.org/wiki/Tmpfs
https://en.wikipedia.org/wiki/RAM_drive
Как проснусь посмотрю, как оно устроено.
Аноним 08/06/16 Срд 11:42:43 #538 №764410 
Подскажите, а можно в while сделать множественный ввод?
While (std::cin >> a, b, c)
{

}
Как-то так.
Аноним 08/06/16 Срд 14:02:22 #539 №764536 
Где все?
Аноним 08/06/16 Срд 17:09:49 #540 №764693 
>>763644
сделал мой день
Аноним 08/06/16 Срд 17:40:22 #541 №764738 
ПЕРЕКАТ:
https://2ch.hk/pr/res/764736.html
https://2ch.hk/pr/res/764736.html
https://2ch.hk/pr/res/764736.html
https://2ch.hk/pr/res/764736.html
https://2ch.hk/pr/res/764736.html
Аноним 08/06/16 Срд 17:43:33 #542 №764741 
>>764247
>>764249
https://www.cs.kent.ac.uk/projects/ofa/c++csp/
Аноним 08/06/16 Срд 17:46:06 #543 №764743 
>>764738
Поясните ньюфагу: зачем нужны эти перекаты?
Аноним 08/06/16 Срд 18:44:45 #544 №764815 
>>764741
Спасибо.
Аноним 09/06/16 Чтв 03:04:52 #545 №765217 
14654306926370.jpg
>>762753
>http://en.cppreference.com/w/cpp/utility/functional/ref
не проще в аргументе прописать int &n? крч ниасилил

>алгоритм...
>float как ключ
ибо расстояние хранится в флоате
Планировалось так:
1. Сравниваю координаты всех объектов в квадранте с областью под курсором, тем самым нахожу все объекты под курсором.
2. Вычисляю расстояния этих объектов до курсора.
3. Контейнер map сам определяет ближайший объект.

Далее планировалось взаимодействие с этим объектом, через первый элемент map.

Только возникли проблемы:
1. как вызвать первый элемент map?
2. map<float, vector<Obj>& > Map; как заполнять такое?

3. Map вообще хранит индексы? Если нет, какая сложность обращения к элементу? Какой другой контейнер имеет индекс, при этом ассоативен и сортируем?

>почему не quadtree?
Пространство уже поделено на регионы-квадранты многомерными массивами, про quadtree тогда не знал.
comments powered by Disqus

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