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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
29 Кб, 630x300
Оффициальный™ традиционный® C++ тред #34 #759279 В конец треда | Веб
ОП не придет - его разорвали собаки,
Арматурой забили скинхеды,
Надломился предательский лёд.
Его руки, подготовлены не были к драке
И он не желал победы
Я теперь буду вместо него.

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

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

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


Старший брат: >>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: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.


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

2) Есть кнопка. Когда нажимаю кнопку, начинается в цикле выполнение некоторого кода. Цикл распараллеленн с помощью OpenMP. После завершения нужно вывести результат в лейбл на форме.
Как сделать так, чтобы во время этих вычислений, само приложение не подвисало? Такое возможно с OpenMP вообще?
Ну то-есть, я хочу, чтобы приложение просто висело и не крашилось от того, что пользователь по нему кликнет пару раз наугад куда-нибудь.
#3 #759325
>>759279 (OP)
наканецта
#4 #759346
Вопрос по qml. Вот написал я допустим кастомный стиль для кнопки и выделил ее как компонент.
Button {
  style: ButtonStyle {
    label: Text {
      font.family: "Lucida Console"
      font.pointSize: 20
      text: control.text
    }
  }
}
В другом файле я его использую и хочу при этом отдельно изменить font.pointSize. Как это сделать не проебав ничего остального?
>>762536
69 Кб, 1920x1080
27 Кб, 325x340
#5 #759372
Через сколько времени я смогу понимать чужие крупные программы, написанные на C++? Пока никак не могу.
учу уже 4 неделю
>>759374>>759384
#6 #759374
>>759372
3-4 года.
#7 #759384
>>759372
Ну, через годик где-то. Еще ж нужно понимать предметную область. Синтаксис - это как букварь: не гарантирует понимание речи.
>>759385
#8 #759385
>>759384

>не гарантирует понимание речи


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

http://pastebin.com/z4bbBiZh

Любой ньюфаг будет шокирован, когда посмотрит получившиеся значения z1 и z2, а в реальном коде может отстрелить себе даже не ногу, а всю нижнюю половину тела. А разгадка одна - изучение языка по нубским книгам и интуитивное псевдопонимание синтаксиса.
#9 #759394
>>759385

>Любой ньюфаг будет шокирован, когда посмотрит получившиеся значения z1 и z2


Вангую, всегда будет вызвваться f (signed int)
>>759400
#10 #759399
>>759385

> constexpr


C++11 не нужен
>>759405
#11 #759400
>>759394
Так и есть.
А я не понимаю, какого хуя.
>>759404
#12 #759403
>>759385

>Любой ньюфаг будет шокирован


Вот этим http://pastebin.com/GKFZHPWa тоже будет. Даже некоторые не-ньюфаги будут шокированы.
>>759409
#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
>>759406
#14 #759405
>>759399
Как там, в 2003?
#15 #759406
>>759404
Он не понимает небось, почему using не подставляется.
#16 #759409
>>759403
Да не, про это как раз во всех книгах почти написано. Что знаковость char implementation defined, а типы вообще всегда считаются различными у всех трех.
>>759414
#17 #759414
>>759409

> Что знаковость char implementation defined, а типы вообще всегда считаются различными у всех трех.


Многие знаю только про первую часть этого предложения.

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

я знаю объяснение, да
>>759423
#18 #759416
>>759385
Ньюфаги, не ведитесь. Такого не бывает в реальном коде и знать это не обязательно. С тем же успехом можно начать обсуждать особенности работы IOMMU и доказывать, что java-разработчик не разработчик.

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

Я, кстати, тоже не знаю ответа, хоть и пишу 3 года. Я, конечно, полез уточнять этот момент, но там читать на час, так что иди нахуй стандартоеб.
>>759418>>759419
#19 #759418
>>759416
Двачую
#20 #759419
>>759416

>IOMMU


>java


Какая связь вообще?

>читать на час


Кек. Ищешь в содержании Integral promotion и открываешь. В первом же абзаце ответ.
>>759421
#21 #759421
>>759419

>Какая связь вообще?


Вот и я спрашиваю, какая связь между ньюфагом и дрочевом правил overload resolution?
>>759426
#22 #759423
>>759414
Потому что применение различается же. unsigned char для работы с памятью, char для арифметики. Если их отождествить, то может быть неоптимально для части сценариев. Если отождествить со знаковым, то всплывают проблемы с отрицательными кодами, либо половина кодов не используется, это тоже не очень хорошо.
>>759430
#23 #759425
Анончики помогите разрулить жопную боль. Суть такова:
std::thread t([=](){
forever{
if(again){
t.sleep(1) //<<<-----Такова нету
std::count<<"function();";
emit nextImage();
}else
break;
}
});
t.join();

Суть такова, нужна задержка перед каждым выполнением функции. Какие могут быть варианты?
>>759427
#24 #759426
>>759421
Ew, пахнет неосиляторством.
>>759428
#25 #759427
>>759425
std::this_thread::sleep_for
>>759439
#26 #759428
>>759426
Когда последний раз ты использовал знание integral promotion в своей работе?
>>759429
#27 #759429
>>759428
На собеседовании же.
>>759431
#28 #759430
>>759423
Отдельные утверждения верные и вроде можно разглядеть объяснение (если сам знаешь его), но в общем как-то неуверенно и невнятно.
>>759434
#29 #759431
>>759429
Вся суть. Риал кейса, в котором это нужно и не нашлось.
#30 #759434
>>759430
Ну так я и не особо над этим задумывался раньше, если честно. Просвети штоле.
>>759440
185 Кб, 549x280
#31 #759437
Qt-проблемы
Ну так что, кто-нибудь может объяснить мне, как в QT из кода одного элемента изменить значения другого?
Ведь объект ui храниться в классе Window и он privite.
>>759441
#32 #759439
>>759427
Он стопит основную нить а не ту которая у меня весит отдельно.
>>759442
#33 #759440
>>759434
Стандарт определяет базовый набор символов и требует, чтобы его кодировка влезала в char и при этом числа, кодирующие базовый набор символов, были беззнаковыми.

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

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

означает int A; а не int int;
#40 #759452
>>759450
*typedef int A;

медленнофикс
#41 #759453
>>759450
А я не привык. И вообще, за такое натурально убивать надо. И за использование сокращенного определения типа. В общем, съеби кукаретик.
>>759459
#42 #759454
>>759440
Я не уверен, но мне кажется, что ты сейчас хуйню сказал. Согласно 3.9.1/1, все три занимают одинаковое количество байтов, согласно 5.3.3/1 это количество в точности 1. Согласно 1.7/1 байт может хранить восьмибитный юнит UTF-8. Соответственно, здесь не стоит вопрос места, только вопрос эффективности конкретных операций. Например, если надо поддерживать знаковость, то в некоторых двоичных представлениях надо применять другие операции, которые, вообще говоря, могут быть и более сложными. Такого нигде реально нет, конечно, но это, по крайней мере, хотя бы теоретически дает мотивацию, в отличие от размеров, которые гарантированно совпадают у всех трех.
>>759469
#43 #759458
>>759450
В той сигнатуре работает правило приоритета объявлений. unsigned x выглядит как объявление x, поэтому это оно и есть, хотя unsigned char бы тоже подошло. Это если неформально. А формально вроде этот случай с unsigned даже указан отдельно.
#44 #759459
>>759453

>за такое натурально убивать надо. И за использование сокращенного определения типа.


И за auto убивать надо?
>>759461
#45 #759461
>>759459
Порой надо.
>>759462
61 Кб, 300x300
#46 #759462
>>759461
[] (auto, auto) {return auto;}
>>759464>>759494
#47 #759464
>>759462
ЕХАЛ AUTO ЧЕРЕЗ AUTO
ВИДИТ AUTO - В AUTO AUTO
СУНУЛ AUTO AUTO В AUTO
AUTO AUTO AUTO AUTO!


Лучше, чем ОП-стих. Можно в следующий тхреад пихать не глядя.
#48 #759468
>>759441
>>759441
Ну типа того.
Допустим, я хочу при нажатии на кнопку изменить значение лейбла. Обычно, это сделалось бы с помощью сигнала/слота. А как сделать так, чтобы можно было именно из класса кнопки повлиять на другие элементы?

Вообще, в моём случае, это виджет, который находится на окне. В нём генерируется пикча и я хочу эту пикчу вывести на другой элемент.
>>759470
#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.
#50 #759470
>>759468
Законекти оба объекта в классе в котором находяться экземпляры этих обектов, ну или какой-нить ивентФильтр установи. Правда у нас за ивентФильтры по бошке бьют.
>>759493>>759516
#51 #759472
Почему вы в прошлом треде молчали, а тут так быстро посты строчите? Специально тред в бамплимит уносите?
>>759473>>759476
#52 #759473
>>759472

> ко-ко-ко

#53 #759476
>>759472
Месье удачно набросил, а мы обсудили. Все нормально.
#54 #759493
>>759470
А что это значит вообще? В смысле законнектить сигнал/слот? А сигнал можно кастить как-то из кода самому?
>>759516
#55 #759494
>>759462
бля что это такое
поясните отсталому дауну хелоувордщику застрявшему в 98году что это за хуйня и как её читать
>>759495
#56 #759495
>>759494
Как неверную конструкцию, т.к. "return auto;" невалидно.
>>759502
#57 #759502
>>759495
А как тип вернуть? Шаблоны вроде это могут. Может там return auto написать?
>>759504>>759991
#58 #759504
>>759502

>тип вернуть


Как ты это будешь использовать?
>>759505
#59 #759505
>>759504
Я не помню. Но как аргумент тип же можно использовать. Наверно и возвращать его можно.
>>759509
sage #60 #759509
>>759505
auto - это не тип, а конструкция языка. Есть еще такая интересная штука, как decltype(auto).
46 Кб, 720x439
#61 #759516
>>759493
>>759470
Всё, вроде бы решил проблему.
Ебал я все эти сигналы/слоты.
Вот решение проблемы для илиты:
[code]
// uiWindow - parent, который передаётся в конструктор
QLabel QO = (QLabel)uiWindow->findChild<QLabel*>("label1");
QO->setText("test");
[/code]
>>759923
617 Кб, 320x240
#62 #759546
КАК РАСПАРСИТЬ X, Y, Z ВЕКТОР?
Чёт не хочется писать самому парсер, проверять всякие там буквы, знаки, экспешены ловить.
Есть какое-нибудь решение уже готовое?

Постановка задачи.
Инпут: строка, вида 0.25, 0.12, 1.23
Нужно распарсить её в 3 float переменных + проверить на хуевые данные, чтобы эксепшен какой-нибудь потом не вылетел.
#63 #759547
>>759546
Любой вектор корректный. Что проверять?
>>759557
#64 #759557
>>759547
буквы, знаки
>>759559
54 Кб, 946x399
#65 #759559
>>759557
Ты строкой читаешь*
>>759564
#66 #759560
>>759546
Любой csv-парсер, тысячи их.
>>759564
#67 #759564
>>759559
да
>>759560
Не подскажешь какой-нибудь? Желательно без каких-нибудь стрёмных зависимостей.
>>759571
#68 #759566
>>759546
Вот тебе парсер, правда, он для C
https://github.com/orangeduck/mpc
#69 #759571
>>759564
Хз, сами обычно бустовским токенайзером парсим.
Первое, куда посылает гугль:
https://sourceforge.net/projects/cccsvparser/
https://code.google.com/archive/p/csv-parser-cplusplus/
#70 #759590
В ВАШЕМ СРАНОМ КЬЮТЕ ЕСТЬ ВООБЩЕ ТАКОЙ GUI ЭЛЕМЕНТ, КАК ЛИСТ???
Какие-то QListView, какие-то модели блять. Обычный сука лист нужен.
>>759595
#71 #759595
>>759590
Ну берёшь и используешь его (или виджет, я не помню какой там оптимальнее для анальных игр) без всяких MVC.
>>759599
#72 #759599
>>759595
Спасибо.
Виджет нормально работает, а именно QListView элемент - вообще дерьмо бесполезное.
2 Кб, 158x94
#73 #759675
Анон, возможно ты знаком с sfml. Не знаю как избавиться от белого квадрата. Новые объекты добавляются через emplace_back.

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

Спрайт и текстура храняться в каждом объекте. Похоже emplace_back переносит куда-то в памяти весь массив, в результате "старые спрайты" имеют не правильный указатель на текстуру. Как быть?
>>759685>>759711
sage #74 #759685
>>759675
Весь код давай, а не только отрезок класса.
>>759700
#76 #759703
Если программировать на Haskell одно удовольствие, а программировать на C++ сплошная пытка — то почему весь промышленный код пишется именно на крестах? Что это? Стокгольмский синдром? Мазохизм? Подсознательная жажда унижений?
#77 #759705
>>759703
Промышленности обычно нужно что-то большее, чем вычисление факториала.
#78 #759706
>>759700
Кинь пик с тем, что выводит
>>759710
#79 #759710
>>759711
#80 #759711
>>759710
На экран. Ну у тебя 2 спрайта. Позицию ты не задал. Размер не задал. Кидай пик как ты писал в >>759675
>>759723
#81 #759718
>>759546
Неужели написать велосипед с stringstream труднее чем использовать чужой код?
sage #83 #759727
>>759723
http://ideone.com/EvFEtk

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

>>759730
И где ты тут прав?
>>760217
sage #87 #759733
>>759728
А ну да, со спрайтом ты прав. Но по сути ты сказал то же самое, что и здесь >>759728, но у текстур нет подсчета ссылок.
>>759735
#88 #759734
>>759703
Шкорость выполнения.
#89 #759735
>>759733

>но у текстур нет подсчета ссылок


Ну ок. Просто выразил предположение.
#90 #759923
>>759516
ебать как все сложно
#91 #759986
>>759703

>программировать на Haskell одно удовольствие


>программировать на C++ сплошная пытка


У тебя обе посылки неверные. Например, и там блядь сука сраные монады хер проссышь ваще как сделать цикл и там пиздец оно должно работать какой нахуй сегфолт ну как так в самом начале бугуртил, но с увеличением опыта увеличивалось и удовольствие.
#92 #759991
>>759502
template <параметры метафункции> struct YourMomma { using res_type = вычисления на типах; }
#93 #760013
народ посоветуйте куда вкатиться, я года джва три лернил Стивена Прату, выполнил все задания в конце всех глав, но никаих технологий не освоил и как их найти, и где искать работы тоже не понимаю, усилий въебал дохерища, а отдачи ноль, я в жутком отчаянии что делать?
#94 #760015
>>760013
ХЗ знает, я сам безработный.
#95 #760018
>>760013
Выбирай область по душе. Изучай технологии. Иди работай.
>>760023
#96 #760023
>>760018
какую область? есть какой-нибудь гайд? я слабо представляю как всё обстоит. есть смысл например учить яву начинать, ведь там работы больше.
>>760031
#97 #760031
>>760023

>какую область?


Которая больше всего нравится.
>>760043>>760044
#98 #760043
>>760031
ты - мудак, есть такой типаж
>>760047
#99 #760044
>>760031
или долбоёб
>>760047
#100 #760047
>>760043
>>760044
Ну блин. Откуда я могу знать, что тебе больше всего нравится?
>>760048>>760049
#101 #760048
>>760047
мне нужна инфа, какие направления есть?
>>760052
#102 #760049
>>760047
А где список?
>>760052
#103 #760050
>>760013
Твоя главная проблема по жизни состоит в том, что ты мелкобуквенный.
#104 #760052
>>760048
>>760049
Иди в java тред. Кресты не для тебя.
>>760053>>760085
#105 #760053
>>760052
А как же 3 года дрочки крестов?
>>760054
#106 #760054
>>760053
Ну если ты 3 года учишь кресты и не смог найти работу, то кресты не для тебя. А может и программирование не для тебя.
>>760081
#107 #760081
>>760054
и жизнь не для меня, ответил ананас на вопрос который я не задавал.
#108 #760085
>>760052
в джава треде хотя бы шапка нормальная, тут просто хуита о синтаксисе, сразу видно что крестовое комьюнити состоит из долбаёбов, у вас весь тред о синтаксисе штоле блядь?
>>760128
492 Кб, 500x285
#109 #760128
>>760085

>шапка нормальная


>3.5 книги


>нет софта


>нет стихов


>есть реклама JavaRush

>>760141
#110 #760141
>>760128

>Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?


A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.

Это реклама JavaRush, ну я даже не знаю.
>>760250
#111 #760154
Подскажите, я тот ньюфаг что изредка тут спрашивает, я тут задачку пробую решить с ньюфагокниги, я её в тетради решил по числам, но в коде не могу.
>>760155>>760164
#112 #760155
>>760154
Ну кидай. Помогу чем смогу.
>>760158
#113 #760158
>>760155
Но я не хочу чтобы задачку кто-то решал за меня, тем более что это начальные простые задачи. Если до завтрашнего обеда не смогу решить, то напишу. У меня решение на уме вертится, надо проветриться.
>>760168
#114 #760164
>>760154
Удачи. У тебя получится. Всё можно решить если постараться.
#115 #760168
>>760158
И чего тогда тебе подсказать?
43 Кб, 298x397
#116 #760217
>>759728
>>759731
tnx помогло

>Сюда можно загружать скрины.


интернетов не хватает для картинок овер 1мб, за 2 минуты аплоада макаба сбрасывает загрузку. Да и с puush не нужно сохранять-искать-чистить, всегда прямые ссылки на любые файлы, словом удобнее да и уже привычнее
#117 #760250
>>760141
Да у вас семь пятниц на неделе, в каждом тренде кусок про джавараш меняется на диаметрально противоположный.
#118 #760353
Как быстро скопировать многомерный массив в многомерный вектор векторов?
Потипу копирования одномерного:
http://ideone.com/gOiVJP
>>760373>>760402
#119 #760373
>>760353
фором ручками каждый элемент копируй. Ну 1 вложенный вектор можешь конструктором по умолчанию заполнить. А все остальные форами.
>>760403
#121 #760403
>>760373

>1 вложенный вектор можешь конструктором по умолчанию заполнить


дык это 1 строка, а нужна "плоскость".

Для вектора можно пристроить memcpy? Все же высокий уровень все такое.
>>760411
#122 #760411
>>760403

>Для вектора можно пристроить memcpy?


Нет.
>>760451
#123 #760443
Почему это Qt под шинду с помощью vc2013 так говено собирается, в чем секрет? Или это норма больший сборки? Никогда ничего не собирал
sage #124 #760451
>>760402
методом тыка вроде дотыкался
http://ideone.com/dq8beD

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

Спасибо тебе, Антон.
>>760457
#125 #760457
>>760451

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


RAII же. В современных плюсах редко приходится вручную управлять ресурсами
#126 #760480
>>760402

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

может быть проблема в mvc13? вроде хуямды и авто доработали еще в 11м штандарте
>>760500>>760554
#127 #760500
>>760480
В mvc13 неочень поддержка С++11. Ставь mvc15
#128 #760554
>>760480
в лямбдах ставить auto можно с c++14
46 Кб, 560x129
#129 #760568
Программисты, я вчерашний нуб, в общем ситуация такая: 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
Оно.

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

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

Есть какие-нибудь идеи, ананасы?
#144 #760802
>>760800

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


The procedure entry point could not be located in the dynamic link library
#145 #760804
>>760800
не по Сеньке шапка!

почитай по компоновку и все поймешь
>>760842
#146 #760805
>>760800
Ну либа некоректная или нет ее.. задеплой нормально, ёпта!
>>760842
#147 #760814
>>760787
Не работает это т.к. он вывод первой программы подаёт на вторую, а второй в консоль. Нужно чтобы вывод второй подавался на первую. Нашёл решение в интернете. mkfifo fifo; ./1 < fifo | ./2 > fifo; rm fifo. Но он не показывает вывод. Файл fifo всегда пуст. Пытаюсь tail -f fifo делать, но он не показывает изменений и программы зависают запущены но бездействуют. Что делать?
>>760821
#148 #760816
арвар
#149 #760821
>>760814
Разве можно вот так просто пытаться читать пайп? Его же вроде только один раз прочитать можно, поэтому он и пустой.
>>760823
#150 #760823
>>760821

>Его же вроде только один раз прочитать можно


Скорее всего так. Но тогда я не понимаю что с ним происходит. Если tail не получает никаких данных, то эти данные должны были читать программы. Но они зависают как-будто ждут ввода.
#151 #760827
>>759279 (OP)
Пацаны, как в плюсах прикрутить таймер? Хочу узнать, на сколько с кудой быстрее считается массив
#152 #760829
>>760827
Проще таймер из ос использовать чем в программу вписывать.
>>760837
#153 #760837
>>760829
я уже так делал
>>760838
#154 #760838
>>760837
А зачем вторым вариантом хочешь попробовать?
>>760841
#155 #760841
>>760838
Нужны скриншоты в отчете
10 Кб, 499x202
#156 #760842
>>760804
>>760805
>>760800
У меня так и не вышло найти dll. Ничего даже не гуглится.
Я убрал OpenMP, посмотреть что будет и появился новый эррор.

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

Есть какой-нибудь альтернативный вариант?
#157 #760844
>>760842
И это вообще нормально, что он не пишет какая именно dll?
#158 #760846
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
>>760857
#159 #760847
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
>>760962>>760993
sage #160 #760848
>>760842
Как ты вообще умудрился что-то там напрограммировать с OpenMP, если не в состоянии решить такую проблему? Я хуею.
#161 #760849
>>759279 (OP)
Поясните нуфагу, почему каждый тред по ЯП напоминает секту, куда истеричный пидор сектант (оп) заманивает выкрикивая бессвязную хуету, размахивая худенькими кулаченками и брызжа слюну.
#162 #760850
>>760848
Двачую
#163 #760851
>>760848
И ещё этот >>760827
С кудой разорался, а как вывести время нагуглить не может
#164 #760853
>>760848
>>760848
Ладно, мне немного стыдно, что я не умею ебаться со всякими там библиотеками и сборками, но ты всё-равно пидор.
#165 #760854
>>760842
Расскажу тебе, как решить этот трабл, хоть я и ньюфак 4-недели в программировании, а ты параллелишь на OpenMP.
Идешь сюда:
http://www.dependencywalker.com/
Качаешь и сначала смотришь все либы и таблицы импорта. Библиотеки, которых не хватает там будут подсвечены (там есть некоторые проблемы с либами самой майкрософт из-за древности софта, но в целом он работает отлично).

Если это тебе не помогло, то пришло время ебаться с отладчиком. Тут гугли сам, как подключить исходники к твоему отладчику + как ставить брейкпоинты и т.д.
>>760887
#166 #760857
>>760846

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


>C++ это по-настоящему сложный язык


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



Да ты охуел, братец. Мы тут почти год жопу рвали, чтобы шапка была объективной. Насколько я могу судить, это сейчас единственный тред, в котором нет неаргументированных кукареков в духе НАШ ЯЗЫК ЛУЧШИ ВСЕХ!!!!111111.
>>760861
#167 #760858
>>760827
std::chrono же.
>>760899
#168 #760861
>>760857

>неаргументированных


Главное слово. Вы додумались ещё и аргументы придумать к своим кукарекам.
>>760862
352 Кб, 870x500
#169 #760862
>>760861
Опровергни.
>>760874
#170 #760874
>>760862

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


> забыл поставить точку с запятой


> заставляют читать 30 тредов


> не фанатизм



>Мощь


Такой аргумент к любому популярному языку можно отнести.
Потом одна вода уровня каждой задаче свой инструмент но наш язык решает больше задач и делает это лучше.
Потом талмуд книг у 4ёх из которых название "Язык программирования C++"
У вас даже блог алёны в шапке.
>>760892>>760901
#171 #760887
>>760854
Ты, рачила ньюфаговская, нахуя даешь how to советы, бля? В простонародье это зовется "медвежья услуга".

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

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

Вангую, что и все перечисленное ты нихуя не знаешь.
#173 #760892
>>760874
Просто, съеби. На входе так и написано: вопросы по синтаксису идут нахуй. Залетных ебланов, не способных осилить синтаксис, мы и не ждем.
36 Кб, 840x602
#174 #760899
>>760858
От души, братуха!
>>761156
#175 #760901
>>760874

>к любому популярному языку


Напомни мне, где еще есть полноценная поддержка шести парадигм?
>>760902
#176 #760902
>>760901
питон
>>760904
#177 #760904
>>760902

>процедурное


>ООП


>функциональное


Какие там еще?
>>760914
415 Кб, 1280x849
#179 #760915
Если нужо скачивать инфу с сайтов, к примеру, выводить текст первые 5 запросов по переменной типа стринг в гугле. В плюсах есть библиотеки для реализации этого? Что гуглить подскажите, буду весьма благодарен.
>>760919
#180 #760919
>>760915
Думаю requests сойдет.
>>760923
#181 #760923
>>760919
Нагуглил много библиотек, в бусте как с этим обстоят дела, известных проблем нет?
>>760944
#182 #760925
>>760914

>обобщенное программирование -/+


>функциональная -/+


Ну это толсто же, писано году в 2005.
>>760938
#183 #760937
>>760887
Я прочёл статью.
Но я всё-равно не понял, почему так происходит.
В чём разница между вызовом экзешника из qt криэйтора и просто даблкликом? Разница же только в установленных в Qt путях, нет?
#184 #760938
>>760925
Где-то так и есть, они там до сих пор кортежи ждут со дня на день.
>>762204
#185 #760939
>>760827
time laba2
>>760943
#186 #760943
>>760939
Уже разобрался.

Кстати, кто-нибудь пердолился с OpenCL? Где можно курнуть гайдов и как прикрутить всю эту хуйню к VS2012?
#187 #760944
>>760923
В бусте всё отлично, но "взять и скачать" там нечем.
>>760947
#188 #760947
>>760944
Ну, делается же запрос на файл, и файл передается по .ээ ftp еслим не ошибаюсь, имеешь ввиду что ftp нет в бусте?
Алсо, такой вопрос, если я делаю запрос на сайт loh.com/index.html
Если я делаю это через програмку - она выдает нме тонну текста, хотя сам сайт выглядит весьма просто.
Так вот вопрос, в сам БРАУЗЕР этот же index.html передается точно в таком же виде, или присутствует какая-либо конвертация?
#189 #760962
Я задал вопрос, пидоры >>760847
>>760964>>760965
#190 #760964
>>760962
Не знаю. Наверное какие-то компенсирующие ноулайферы.
Не думаю, что тут много кто плотно сидит.
>>760965
#191 #760965
>>760962
>>760964
Семен такой Семен...
>>760966
#192 #760966
>>760965
Но я правда не он.
>>760984
#193 #760984
>>760966
Ладно, шучу. Я вас просто затолстил, лол.
#194 #760993
>>760847
Потому что быдлокодеры и есть секта. Со своими конфессиями.
#195 #761060
Че по нейросетям, ген. алгоритмам, машинному обучение и прочему ии подобному почитать посоветуете?
Знаю, что такое уже есть, но мне бы книги с примерами кода на крестах
>>761065
#196 #761065
>>761060
Тут где-то тред с литрой и курсами по cs был, поскроль, поищи. С примерами кода на крестах точно не найдёшь, ибо там учат алгоритмам, а не языку.

В любом случае, насколько я знаю, в ирл все моделируют/прототипируют нейросети и пр на питонах, а потом уже готовые алгоритмы переносят на плюсы при нужде в перформансе.
>>761066
#197 #761066
>>761065

>все моделируют/прототипируют нейросети и пр на питонах, а потом уже готовые алгоритмы переносят на плюсы


Двачую. Либо юзают связку Python + C++.
#198 #761123
>>759279 (OP)
Студия на шиндовс хп, sp1 пойдет?
Или лучше не выебываться и продолжать сидеть на 8?
>>761126
#199 #761126
>>761123
2008 на xp ставь
>>761133
#200 #761133
>>761126
Да я уж как то к новой попривык.
#201 #761156
>>760899
Ты там че ОСь пишешь?
>>761161>>762848
#202 #761161
>>761156

>Програм.цэпэпэ


Рилтаймовую.
#203 #761248
Господауны, как найти максимум в std::deque?
max_element (deq.begin(), deq.end()) не компилится.
>>761250
#204 #761250
>>761248
Думаю, твоя проблема в том, что ты не способен прочитать текст ошибки компилятора.
>>761251
#205 #761251
>>761250
Я не могу ее понять.
>>761253
#206 #761253
>>761251
error: cannot convert 'std::_Deque_iterator<int, int&, int*>' to 'int' in assignment
max = std::max_element (deq.begin(), deq.end());
#207 #761257
>>761253
Я кароче нуфаг, но скажу свое мнение.
Deque, эт очередь, а max_element ищет в диапазоне, другими словами перебирает. А в deque, ты можешь обращаться ток к 1ому или последнему элементу.
Я прав или мне нахуй сходить?
>>761258>>761287
#208 #761258
>>761257
У очереди есть носитель (вектор или список), в котором можно искать максимум.
#209 #761268
>>761253
http://ideone.com/NRw2n5
Соглашусь со вторым аноном, учись читать ошибки компилятора.
>>761269
#210 #761269
>>761268
Пусть он лучше документацию научится читать.
#211 #761273
>>761253

> std::max_element


Почитай в документации что возвращает std::max_element. И раз это итератор то его нужно разименовать чтобы получить значение.
#212 #761287
>>761257

>Я прав или мне нахуй сходить?


Второе.
А лучше сходи сюда:
http://en.cppreference.com/w/cpp/container/deque
Вкат #213 #761422
Господа, я хочу вкатиться к вам, потому что мне нужен язык, на котором я буду писать небольшие десктопные программки, а возможно, когда-нибудь, сяду за микруху. С основами программирования знаком. С++ стилистически нравится. Но проблема в том, что мне нужно писать быстро, быстро видеть результат и быстро идти дальше. Программы небольшие (к примеру, полив автоматизировать, тексты определенной структуры обработать, гуй к консольной утилите запилить) и не слишком требовательные к производительности, но скорость разработки важна. И вот тут я не уверен, что С++ для меня. Можно к вам быстро вкатиться и быстро начать писать реальные продукты, пусть и сначала на нубоуровне? Java/Python не хотелось бы, потому как там интерпретатор нужен в том или ином виде, да и назначение немножко не то, C# поинтереснее, но мне он синтаксически не очень симпатичен + майкрософт, .NET и все в этом духе. Если я возьму вашего Липпмана из шапки + wxwidgets/Qt5 (собственно, что из них лучше и быстрее взять?), я смогу комфортно писать код, не отплевываясь от низкоуровневости и пещерности? Насколько быстро вообще вкат пойдет? Через 40 часов изучения смогу написать гуй-калькулятор? Если нет, то как быть?
#214 #761435
>>761422

>небольшие десктопные программки


C#

>микруху


C

>Можно к вам быстро вкатиться и быстро начать писать реальные продукты, пусть и сначала на нубоуровне?


Нет.

>Если я возьму вашего Липпмана из шапки + wxwidgets/Qt5 (собственно, что из них лучше и быстрее взять?), я смогу комфортно писать код, не отплевываясь от низкоуровневости и пещерности?


Да.

>Насколько быстро вообще вкат пойдет?


Год.

>Через 40 часов изучения смогу написать гуй-калькулятор?


Нет.

>Если нет, то как быть?


C#
>>761439>>761449
#215 #761436
>>761422
Приличная скорость разработки на крестах достижима, но для этого нужно лет пять опыта, плюс неплохо иметь опыт в других языках для развития навыков декомпозиции и дизайна кода (чистые кресты калечат мозг). Бери пистон или C#.
>>761439>>761449
#216 #761439
>>761435
>>761436
Двачую обоих.
#217 #761443
>>761422

> полив автоматизировать


Купить готовое решение на рынке и не ебать себе мозг.

> тексты определенной структуры обработать


Perl.

> гуй к консольной утилите запилить


wxPython.
>>761454
#218 #761447
Почему в коде decltype(a = b) d = a не выполняется присвоение a = b?
>>761455>>761710
#219 #761449
>>761436
Пистон - не то, что мне нужно. Шарп просто не нравки, как не нравки Visual Studio, .NET и прочая параша.
>>761435

>Нет.


Хуле нет-то? И чем C# столь лучше? Длина массива из коробки?
>>761461>>761485
#220 #761454
>>761443

>wxPython


Счетчик кликов мыши на 50 мб в памяти? Нет, спасибо.
>>761508>>761511
#221 #761455
>>761447
Потому что decltype выполняется на этапе компиляции, а не в рантайме.
#222 #761461
>>761449

>Пистон - не то, что мне нужно


Тебе видней.

>Шарп просто не нравки, как не нравки Visual Studio, .NET и прочая параша.


Мне тоже. Но у меня времени больше и задачи другие.

>Хуле нет-то?


За 40 часов ты только до классов дойдёшь.

>И чем C# столь лучше?


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

>Длина массива из коробки?


Сам понял что сказал?
>>761482>>762706
#223 #761465
>>761422
Можешь попробовать что нибудь из лиспов.
#224 #761481
>>761422
Завтра ищешь в интернете книжку Керниган, Ричи. Язык C. Похуй если ничего не поймешь. Затем идешь на http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию сишного кода - 1TBS, чтобы от зубов отскакивало. Когда напишешь свою первую сортировку Хоара, по пути изучив ассемблер инлайном, скачиваешь и изучаешь любую олдовую среду разработки, рекомендую Turbo C. Как переделаешь сортировку, чтобы была по меньшей мере итеративной, а не рекурсивной, можешь идти дальше - тебя ждет увлекательный мир байтоёбства. Хипсорт, сверхбыстрые асинхронные B-деревья, xor-связные списки. Отсос у хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-богов, которые работают в тёплом офисе за приличную зарплату не заставит себя ждать и уже через пол года ты будешь так редко мыться, что любая баба будет брезгливо закрывать нос платком при одном упоминании твоей одежды.
>>761486
#225 #761482
>>761461
Да, функция, возвращающая длину массива.

> Сделан специально чтобы заменить дэлфи и осталось возможно кодить мышкой.


Блядь. Вот это вроде то, что нужно как раз (я что-то вроде современного делфи и хотел найти), но мне уж очень не нравится VS, Net и Мрикософт.
Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?

> чтобы заменить дэлфи и осталось возможно кодить мышкой


До классов я побыстрее дойду, мне же
1) не надо все изучать досконально
2) основы программирования я все-таки понимаю
>>761507
#226 #761485
>>761449

> Через 40 часов изучения смогу написать гуй-калькулятор?


> Хуле нет-то?


http://www.williamspublishing.com/21-days.html
>>761490
#227 #761486
>>761481
Жирно.
#228 #761490
>>761485
Да хуле вы такие пафосные-то, блядь? У меня в текущий момент не стоит задачи НАУЧИТЬСЯ ПРОГРАММИРОВАТЬ за 10 лет, я хочу через неделю уметь написать годный гуевый калькулятор. Там из более-менее сложного, по сути, только парсер строки.
>>761496>>761507
#229 #761496
>>761490
а как же дерево синтаксического разбора?
#230 #761498
>>761422

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


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


Для твоего требования Python почти идеален.
Но если нужен компилируемый и быстрый - то бери go
>>761936
#231 #761507
>>761482

>не надо все изучать досконально


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

>Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?


Можно. Но ты хочешь быстро и просто. Это не кресты.
>>761490
А теперь тебе нужен питон.

Если вопросы по крестам кончились, то сформирую корректно задачи которые хочешь решать и иди в ньюфаготред искть для них язык.
>>761514>>761936
#232 #761508
>>761454
Застрял в 70-х?
#233 #761511
>>761454
На Qt/Gtk потребление памяти будет примерно таким же
#234 #761514
>>761507

>С крестами надо


Только если ты много работаешь с чужим кодом
#235 #761710
>>761447
В стандарте это называется невычисляемым контекстом. То же самое внутри sizeof, alignof, noexcept и тому подобного. Фактически не гарантируется, что-либо про compile-time, но гарантируется, что наблюдаемое поведение будет как если бы выражение не вычислялось. Поэтому можно разыменовывать nullptr и творить прочие непотребства внутри.
#236 #761718
>>761546
>>761563
Красиво расписал, братюнь, хоть я и не со всем согласен. На мой взгляд, здесь, как и везде, нужен баланс. Кроме того, пускай наивно сравнивать программирование с искусством, но что-то в этом сравнении все же есть, на мой взгляд. Мамкины нигилисты скатывают все в говно еще чаще, чем мамкины романтики.
#237 #761734
>>761563
Неосилятор порвался.
#238 #761758
>>761733
Что байтослесари, что функциональщики — и те, и те клоуны ещё те.
>>761809
#239 #761807
Изучаю эти ваши кресты 4 недели, дошел до виртуальных функций. Все это становится сильно запутанным, что я прям чувствую уже потребность в написании ТЕСТОВ, которые бы проверяли, что все работает как положено. Но ведь это пиздец. Программы буквально делают какую-то хуету, которая пишется на чистом Си в три строчки, а с вашими объектами, наследованием и виртуальными методами нужно писать ТЕСТЫ. Это же говно какое-то. Broken By Design.

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

В чем польза от ООП? Кроме лишних тонн говнокода и юнит-тестов?
>>761826
#240 #761809
>>761758
Хотя нет. Байтослесари не клоны. Никто не делает из байтослесарства религии, как из монад и прочих аппликативных функторов.
#241 #761815
>>761812
Я много чего застал. И дроч ассемблерщиков на то, что они урезали PE-файл до 50 байт, и дроч на C++. Последнее, собственно, никуда не делось. Просто слегка растворилось в потоке стартапов на раби.
#242 #761818
>>761816
Не осилил — так и напиши, кратко.
#243 #761826
>>761807
ООП в исполнении крестов - улучшает модулность и могут помочь создавать абстракции с удобным интерфейсом. Для маленьких программок, как ты правильно заметил, это не требуется.
#244 #761828
>>761821

>подобные симптомы с распространением java, C# и прочей "замещающей терапии" встречаются реже


Так Java и C# - императивные
#245 #761841
>>761839
Ты заебал своей пастой спамить. Уёбывай уже.
#246 #761886
>>761838
Степанов придумал идею generic algorithms еще в 80х. первая реализация была на языке Ada. Лишь в начале 90х появилась реализация на c++, который он выбрал за гибкость и мощь (указатели). и только в 1993 году, благодаря Коннингу, сумел впихнуть в стандарт как STL.
Современная реализация далека от первоначальной HP SGI версии из-за оптимизаций. да, код сложный, страшный, но эффективный. в подавляющем большинстве случаев нет нужды в отладке STL кода. тебе дают алгоритм, тебе дают универсальные термины и способы для работы с алгоритмами, компонования их без потери эффективности.
Позже Степанов признал некоторые проблемы и недостатки дизайна (относительно итераторов, отсутствие диапазонов). Сейчас это активно исправляется. но суть generic programming остается.
Пример со строками некорректен, так как STL string умеют в copy-on-write - смотри sgi реализацию и Майерса. MS как всегда отличился и запилил свою реализацию STL с блекджеком и ворохом проблем вплоть до несовместимости с sgi версией.
>>761900>>762652
#247 #761900
>>761886

>string умеют в copy-on-write


Запретели то ли в c++11, то ли в c++14
>>761912
#248 #761912
>>761900
мультитрединг проблемы?
>>761913
#249 #761913
>>761912
stl - сплошная мультитрединг проблема
>>761915
#250 #761915
>>761913
но в с++11 добавили всякие гарантии для контейнеров и алгоритмов. хотя все еще трудно использовать в несколько тредов. печаль.
#251 #761924
>>761915
c++, java, c#... всегда будет трудно использовать для мультитрединга
#252 #761936
>>761498
Спрашивал в питонотреде, там мне десять раз указали, что выбор хуевый и делать такую хуйню, как я хочу, на питоне - бредовая идея.
>>761507
Сформулировал же, ну:

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


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


> Сделан специально чтобы заменить дэлфи и осталось возможно кодить мышкой.


> Блядь. Вот это вроде то, что нужно как раз (я что-то вроде современного делфи и хотел найти), но мне уж очень не нравится VS, Net и Мрикософт. Разве все то же самое нельзя делать с С++ в code::blocks/QtCreator?

#253 #761937
>>761915
Да не так уж и трудно. На конкурентный доступ к различным элементам есть все гарантии, а если хочешь и к одному конкурентный доступ, то просто делаешь контейнер атомиков, делов-то. Проблемы только со сложными многоэлементными алгоритмами типа сортировки, но это скорее уже проблемы архитектуры, если такое понадобилось делать с управляемой конкуретностью, а не через async, где все прекрасно.
>>762301>>762304
#254 #762004
Анон, который помог мне с регуляркой определения класса в прошлом треде - ты мне очень нужен. Отзовись
>>762063
#255 #762063
>>762004
В общем-то, пока его нет, может кто сможет помочь:
Есть регулярное выражение, http://ideone.com/rDcDre , которое по идее вытаскивает название класса и его зависимости. В онлайн чеккерах все заебись, но в плюсах не работает нихуя. Причем это весьма странно, даже если просто попытаться определись слово class - все окей. Но взяв слово class_пробел_ - сосу хуй. (class\s). В чем проблема?
>>762096
#256 #762096
>>762063
Дай код и пример текста, на котором возникает ошибка.
>>762113
#257 #762113
>>762132
#258 #762132
>>762113

>http://ideone.com/jN39ak


Уточни синтаксис, который использует данная конкретная реализация регекспов.
>>762135>>762136
#259 #762135
>>762132

>http://ideone.com/jN39ak


А еще ты не экраниркешь обратные слеши
#260 #762136
>>762132
Немного не понял
>>762142
#261 #762142
>>762136

>Немного не понял


Есть разные синтаксисы регэкспов. Ты вообще доку читал?
http://en.cppreference.com/w/cpp/regex/basic_regex
А вообще, ты не экранируешь "\", так ято поебать какой ты там синтаксис используешь - у тебя в любом случае не заработает
>>762153
#262 #762153
>>762142
каким способом экранировать?
>>762156
#264 #762163
Есть list с объектами моего класса. Как его отсортировать по значению инта, которое возвращает один из методов класса?
>>762176
#265 #762176
>>762163
Сортировать список дурная затея.
#266 #762179
>>762176
Не согласен.
Использовать список дурная затея.
>>762187
#267 #762187
>>762176
>>762179
Увы, в вузике сказали "надо". Неужели нет никакого вменяемого способа?
>>762189
#268 #762189
>>762187
Ну ты мог бы потратить 20 секунд и загуглить.
http://stackoverflow.com/a/8121878
>>762195
#269 #762195
>>762189
Хм, спасибо. Я гугли, но, видимо, плохо.
>>762198
#270 #762198
>>762195
В C++14 можешь указывать const auto& как тип аргументов лямбды.
#271 #762201
>>762176
Тем не менее, у std::list есть метод sort
очевиндо, что std::sort не работает для list
#273 #762245
http://ideone.com/J0NuqS
В каком виде тут хранится список смежности Edge? Как его организовать по данным, если данные являются текстовыми (обозначения вершин - слова)
#274 #762253
Как же заебали эти лабодауны. Нахуй вы им отвечаете, ананы?
>>762268
sage #275 #762268
>>762253
Нахуй иди, дегенерат. Алгоритмы - единственное, что интересно в ебаном ИТ.
>>762277>>762285
#276 #762277
>>762268
Кто тебе сказал, что здешние аноны не подготовлены алгоритмически?
А тот факт, что делаешь в лабе аж целую топологическую сортировку тебе чести не делает. К тому же ты не осилил готовый пример. Хуевый, кстати. Можешь сказать своему преподу, что писать код он не умеет.
#277 #762285
>>762268
А мне нравится построение систем.
ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля.
У инженеров работа с железом, всякие расчёты, там нельзя взять и "просто придумать", этого недостаточно. А у нас можно.
#278 #762301
>>761937

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


Что я только что прочитал...
Какую проблему должен решить контейнер из атомиков?
#279 #762304
>>761937
>>762301
Особенно учитывая, что "std::atomic is neither copyable nor movable."
#280 #762312
43 Кб, 600x399
#281 #762357
>>762285

>ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля


Даун, твои миры - это просто абстракция над кучей говна, которая интерпретируется электронными цепями.
>>762366
#282 #762366
>>762357

>это просто абстракция над кучей говна, которая интерпретируется электронными цепями


Но ведь работает! И для этого толком не нужны материалы, человеческие ресурсы, время. Составляй правильные команды, а машина всё выполнит.
#283 #762377
>>762301
Че ты до него доебался? Ну выделяй на куче свои атомики, хуле как этот.
>>762386
#284 #762382
>>762374

>Мы разные аноны, но все равно )))))


>но все равно


>)))))


Пиздец, вот это ущербный к нам за зашел.

Ты, блядь, еще не понял, что никто не будет решать тебе твои лабы-высеры для того, чтобы тебя не выкинули на мороз из твоей шараги? Раньше надо было учиться, а теперь можешь страдать и идти нахуй.
>>762391
#285 #762386
>>762377
Не встревай, лабодаун.
>>762393
#286 #762391
>>762382

> к нам за зашел.

#287 #762393
>>762386
Пошел нахуй. Если контейнер не меняется, то вполне нормально хранить синхронизирующий элемент рядом с самим элементом данных.
Если же контейнер может меняться, то тот питух с stl гордо шагает нахуй, потому что написание thread-safe контейнеров с мелкогранулярными блокировками (а то и lock-free) очень сложно.
>>762394
#288 #762394
>>762393
Сам понимаешь, что сказать пытаешься?
>>762405
#289 #762405
>>762394
Если контейнер не меняется со временем - ты не прав, хранить атомики рядом с элементами можно без каких-либо проблем.

Если контейнер меняется, ты прав - stl пока что посасывает.
>>762406>>762412
#290 #762406
>>762405
Пиздец. Я просто поинтересовался, какую проблему анон хочет решить, суя в вектор атомики. И вообще как он собирается это сделать, учитывая, что атомики некопируемые и неперемещаемые (и определены не для всех типов).

Тут влезли какие-то петухи и начали транслировать в тред свой /dev/urandom: атомики в куче, lock-free... Про что несут? Вообще охуешь.
#291 #762410
>>762301
Проблему синхронизации доступа по записи к элементам же. Под атомиками я подразумевал не только std::atomic, но вообще любые атомарные типы. Например, велосипедные обертки. И да, я не спорю, что это хуевая архитектура, но так можно сделать, так что пусть не пиздит, что КОКОКОК STL НИКАНКУРЕНТНАЯ.
>>762419
#292 #762412
>>762405
Емнип, даже если не меняется, пихать в него некопируемые типы запрещено стандартом или как минимум ограничено какими-то костылями, типа emplace.
#293 #762419
>>762410

>Проблему синхронизации доступа по записи к элементам же.


И часто возникает такая задача?
>>762424
#294 #762424
>>762419
У меня ни разу не возникала, например, лол. Но >>761915-кун возжелал вот.
>>762433
#295 #762433
>>762424

> >>761915-кун


Обычный тролль или даун, который тут уже на протяжении десятков тредов скулит о том, что STL говно по каким-то надуманным причинам.
>>762440>>762647
#296 #762440
>>762433

>STL говно по каким-то надуманным причинам


Они таки ненавидят все гусское.
>>762442
#297 #762442
>>762440
Героям слава.
#298 #762476
Лабодауны это конечно понятно, НО ВСЕ ЖЕ. Как нахуй топологически отсортировать граф, имея список смежности, каждая вершина которого обозначается последовательностью символов (словом). Что-то вроде топологической сортировки зависимости файлов.
>>762479>>762480
230 Кб, 1210x1064
173 Кб, 1144x452
sage #299 #762479
>>762476
Ты уже в конец охуел, мразь - уже в тупую копипастишь задания из своей лабы.
#300 #762480
>>762476
Переведи его в нормальный список смежностей и сортируй.
>>762484
#301 #762484
>>762480
У меня есть всякие имена, типа: имя1, ..., имя10
Список смежности имеет вид: имя1 имя10, в общем стандартно.
Как я понимаю, надо присвоить именам какое-то значение. Типа имя1 = 1, имя 5 = 5 и тд
Правильно?
>>762489
#302 #762489
>>762484
Нет. Создавай из них объекты и клади в список указатели на них.
>>762492
sage #303 #762492
>>762489
Блядь, во имя всех анонов, не помогай этому дебилу. Пусть идет книгу читает. Там всего 20 страниц надо осилить и потом он это задание не глядя сделает.
99 Кб, 868x640
#304 #762536
>>759346
Бамп вопросу. Что, никак что ли?
>>762540
#305 #762540
>>762536
Вот я не единого дня не программировал на Qt, но мне кажется я знаю как решить твой вопрос. Это же ООП-параша. Что надо сделать? Унаследовать говно и изменить в наследнике параметр. Полминуты в гугле:
http://doc.qt.io/qt-5/qtqml-referenceexamples-coercion-example.html
мимо-4-недели-в-с++-кун
#306 #762543
>>762540
ни единого дня-фикс
#307 #762547
>>762540
Чтобы размер шрифта изменить создавать 20 классов по 1 на каждый пункт разницы? Не, спасибо, мне бы как обычный параметр.
2286 Кб, 320x384
#308 #762548
>>762540

>изменить в наследнике параметр


>виртуальность данных


>С++


>виртуальность


>данных

#309 #762604
>>761936
Бамп
#310 #762608
>>761936
>>762604

Манямирок. Иди к шарепрам. Кресты - не твой выбор.
sage #311 #762609
>>762604
По голове себе побампай.
#312 #762610
>>762604
Тебе уже ответели.
Python/C#/Vala(если linux)
>>762611>>762779
#313 #762611
>>762610
Но вала же мертва? Лучше уж жабу посоветовать.
>>762612
#314 #762612
>>762611

>linux


>java


Nope
>>762616
#315 #762614
>>761936
Хочешь дэльфи – иди скачай последний релиз дельфи. Кроме шарпа аналогов у него нету – совсем. C++ с Qt (как и с wx/gtk и тд) заметно сложнее, и "шлёпнул кнопку, даблкликнул, написал" – не получится.
>>762781
#316 #762616
>>762612
Ну, на серверах она самая живая в мире, без преувеличений.
Переформулирую твой ответ – не тащите жяву на десктоп.
>>762617>>762779
#317 #762617
>>762616
Я мало на ней писал. Но что не так с жабой на десктопе?
>>762618>>762625
#318 #762618
>>762617
Ты пользовался программами на джаве?
sage #319 #762619
>>762618
Да. i2p, например.
>>762620
#320 #762620
>>762619
Доволен?
>>762622
#321 #762621
>>762618
Матлаб. Иногда глючит, но претензий особо нет.
Знаю, что частично на жабе
sage #322 #762622
>>762620
Как слон.
>>762629
#323 #762623
Java вообще под десктоп не заточена
>>762624>>762626
#324 #762624
>>762623
Только сервера в энтерпрайзе
#325 #762625
>>762617
Всё.
Компрессующе-перемещающие GC (хорошие для серверов работающих 24/7, но слишком оверхедно для десктопа), хэловорлды на 300 мб, требуется пол часа на запуск вм, жит ебёт средненькие десктопные процессоры.

В том же дотнете половина этого исправлено, и есть те же асинки для отзывчевого гуя и тд.
>>762779
#326 #762626
>>762623
И это наверно самый скучный язык на котором я писал
>>762627>>762630
sage #327 #762627
>>762626
Это может быть. Заточено на неграмотных мартышек.
#328 #762629
>>762622
А теперь открой какой нибудь llvm в цлионе/эклипсе цдт, посмотри на графики оперативки и процессора которые при пустом старте 700+мб съедают без плагинов, и подумай что же не так.
>>762631
#329 #762630
>>762626
Да, а в крестах столько веселья при переписывании математики с пиздона на кресты.
>>762632>>762634
sage #330 #762631
>>762629
О, ты напомнил. Ещё и слион использую.

Правда, ничего крупного в нём не открывал.
>>762633
#331 #762632
>>762630
Переписывать всегда скучно.
Зато просто.
#332 #762633
>>762631
Не знаю как сейчас, но полгода назад clion был полным дерьмищем, даже если забыть про потребление ресурсов.
У меня половина кода была красная, и автодополнение тоже работало только для половины кода
>>762636
#333 #762634
>>762630
Хотя бы на питоне весело. Разработка на джаве - сплошная серость
sage #334 #762636
>>762633
А мне норм. Не идеально, но норм. Пробовал с gedit перелезть на QtKreakl, Code::Blocks, Eclipse и ещё на что-то, но всё не так. Не смог без долгого копания в настройках выдрессировать IDE под себя.

А у Clion поменял отступы пробелами на отступы табами и ещё пару опций стиля подтюнил — и всем доволен. Больше в настройки лазать нет необходимости.
>>762637>>762649
#335 #762637
>>762636

>gedit


Ты профессиональный разработчик hello world'ов ?
>>762638
sage #336 #762638
>>762637
Ничего лучше не встречал до clion
>>762640>>762641
#337 #762639
Смотрите, а макака мало того, что сохраняет все треды, так еще и выкладывает их в паблик:
https://2ch.hk/pr/arch/ (М)
наверное, все про это уже знают
#338 #762640
>>762638
Она же ничего не может. Там нет ни IDEшных фич, ни возможностей для эффективной манипуляции с текстом
>>762642
#339 #762641
>>762638
Она же ничего не может. Там нет ни IDEшных фич, ни возможностей для эффективной манипуляций с текстом
>>762643
sage #340 #762642
>>762640
Приходилось жрать этот кактус, т.к. IDE больше мешали, чем помогали.
>>762644
sage #341 #762643
>>762641
Приходилось жрать этот кактус, т.к. IDE больше мешали, чем помогали.
#342 #762644
>>762642
Ну на мой взгляд в том при помощи чего ты пишешь код должно быть:
- Навигация по символам(семантическая)
- Переименование символа
- Автодополнение(семантическое)
- Шорткаты для быстрой работы с тесктом
#343 #762647
>>762433
тут ты промахнулся. недавно понадобилось код на шаблонах-алгоритмах в многопоточное окружение перевести. боль и страдание, особенно в с++03. хотя обмазывание мьютексами помогло. сейчас смотрю на локфри контейнеры
>>762648>>762652
#344 #762648
>>762647
В любом языке импреративное многопоточное программирование на основе shared memory - боль.
#345 #762649
>>762636

>отступы


Ты опять шакалишь, сука? Мало тебе одного треда с троллеркоастером?
>>762650>>762651
sage #346 #762650
>>762649
Я просто написал, как было. По-умолчанию было пробелами, я люблю табами.
sage #347 #762651
>>762649
Если кому-то от этого порвало сраку, это его проблемы.
#348 #762652
>>762647
и >>761886 я написал. я к stl нормально и отношусь и хорошо понимаю. но проблемы там есть
#349 #762696
Привет парни.
Вот такой код:

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

И все работает, несмотря на то, что ссылка на неконст инт инициализируется литералом (а именно 0).
Как это понимать?
#350 #762697
>>762696
int (звездочка еб ее мать)pointer=&a;
>>762700
#351 #762698
>>762696
int (звездочка еб ее мать)ref=pointer;

(И они еще пасскоды продают.)
>>762700
sage #352 #762700
>>762696
>>762697
>>762698
Закинь уже на pastebin
#353 #762702
>>762703>>763084
sage #354 #762703
>>762696
>>762702
Так. И что тут тебя смутило?
#355 #762704
>>762696
А что не так.
Ты создал переменную. Записал адрес в pointer. И создал ссылку на указатель. Всё норм.
>>762708
sage #356 #762705
>>762696

> ссылка на неконст инт инициализируется литералом (а именно 0).


Ты-таки не прав. °pointer это lvalue. Ты ведь можешь ему присваивать, типа "°pointer = 1;"

Так что всё в порядке с инициализацией неконстантной ссылки.
>>762712
#357 #762706
>>761461
Читаю книгу одну, за 400 страниц о классах не слова. Как можно понять это больше 40 часов.
>>762707
#358 #762707
>>762706

> Читаю книгу одну, за 400 страниц о классах не слова.


В романе "Мастер и Маргарита" Мастер появляется только в 13 главе.
#359 #762708
>>762704
Там указатель разыменован, так что у него и указатель и ссылка на переменную.
>>762711
#360 #762711
>>762708
Ясно. Подумал, что у него int* &ref=p;
#361 #762712
>>762705
Можешь кинуть ссылку или хотя бы примерног сказать где про это написано?

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

Хотя я тут итераторы вспомнил, можно же так делать ((звездочка)i).foo() , значит и правда lvalue
>>762715
sage #362 #762715
>>762712
Если не хочется обмазываться канцеляритом стандарта, то можно смотреть здеся: http://en.cppreference.com/w/cpp/language/value_category
>>762717>>762719
sage #363 #762717
>>762715

>канцеляритом


Хотя, это слово не очень подходит. Там скорее юридический язык.
#364 #762719
>>762715
Спасибо
13 Кб, 300x225
#365 #762751
Надо определить ближайшие объекты к курсору. В флоате храню расстояние, по причине автоматической сортировки карты - будет ли нулевой элемент ближайшим к курсору?
Как записать map с float ключем, а в значении - ссылка на элемент вектора?
блять походу я тупой, даже с гуглом не нашел как в декларации записать ссылку на вектор
>>762753
#366 #762753
>>762751
Хоть твой алгоритм кажется мне неясным (почему не quadtree?), а идея использовать float как ключ — идиотской, всё же отвечу на

> Как … в значении - ссылка?


http://en.cppreference.com/w/cpp/utility/functional/ref
>>765217
#367 #762757
Есть некоторый проприетарный софт, я хочу к нему написать плагин также я ньюфаг. Но документация скудна и написана на отъебись. Есть header файлы и автоматически сгенеренные doxygen html-страницы.

Сгенерил uml-диаграмки по некоторым интересующим меня классам и стало немного легче разбираться. Есть ли еще какие-нибудь трюки, которые помогут быстрее разобраться?
sage #368 #762761
>>762696

> инициализируется литералом (а именно 0).


Ладно lvalues, но что такое "литерал" не знать нельзя. Литерал только в `int a=0;' справа от `=' присутствует.
#369 #762779
А вам самим не кажется, что вот эти вот ваши типа советы:
>>762610
>>762610
противоречат не только моему вопросу, но и вашим же постам:
>>762625
>>762618
>>762616
?
К тому же, вы до сих пор не объяснили, ЧЕМ шарп будет лучше крестов.
>>762786
#370 #762781
>>762614
Но он не слишком производительный, не особо популярный и с работой будут проблемы, а уж перспективы совсем печальные. Чем шарп оказывается в данном случае ближе крестов, опять же? Тут тоже, насколько я знаю, "не тащи шарп на десктоп".
>>762806
#371 #762786
>>762779
Тебе джаву никто не советовал.
Java != C#. Последний умеет в дектоп. Даже под linux кое-что написано
>>762805>>762811
#372 #762800
В чём проблема джавы на десктопе? Вам что жалко лишних ссаных гигабайтов? Так как раз за счёт большого количества памяти нет проблем со сборщиком мусора.
>>762806
#373 #762805
>>762786
Умеет, но не используется. Умеет даже под линукс, но это боль + большие вопросы с Net framework.
#374 #762806
>>762781
Хуёво знаешь. Шарп в отличии от жявы умеет в десктоп: там и специальный (не серверный) GC есть, и асинки для отзывчивого гуя, и крутые средства разработки этого самого гуя.

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

>>762800
Как раз из-за большого её кол-ва он останавливает мир на пол часа каждую итерацию.
>>762811>>762815
#375 #762811
>>762806
Чем идея хуже студии? Мне она таки не меньше нравится как минимум, но я нуб и не могу судить. Я знаю, что оно там есть, только это никто не использует, вакансии - веб, веб, хуеб, энтерпрайз, веб, юнити.
>>762786
Ок.

> вы до сих пор не объяснили, ЧЕМ шарп будет лучше крестов


Проще и быстрее - это общие слова, они не несут никакого смысла без раскрытия.
>>762817
#376 #762815
>>762806
Умеет. Есть. Крутые. Что, если человек не хочет воровать спермостудию, говноедствовать с моно, ебаться с винформами, впф и прочим шлаком, читать говеные спермодокументации и закругляться в юнити и ксамарине?
Это ж гной, блядь, говно, червь-пидор. Как вообще можно в плюсотреде такое советовать?
#377 #762817
>>762811

>Чем идея хуже студии?


Скоростью работы. Хочешь сравнить наглядно – открой один и тото же большой проект в обоих, посмотришь чем ява от шарпа отличается.

>вакансии - веб, веб, хуеб, энтерпрайз, веб, юнити.


У явы - энтерпрайз, энтерпрайз, энтерпрайз.

>Проще и быстре


Ты нюфаг, тебе больше информации не нужно. Перестань ебать мозги и попробуй написать что-то там и сям, пока граблями ебало себе не пробьёшь - не поймёшь.
>>762819
#378 #762819
>>762817

> У явы - энтерпрайз, энтерпрайз, энтерпрайз.


Это с самого начала было понятно. Поэтому я тут, а не в треде по Java. Хотя там тоже веб, к слову.

>Проще потому что слишком сложно объяснить, чем


Ясно.
#379 #762824
>>762285

>ИТ, наверное, единственная область где ты можешь строить целые "миры" с нуля.


Хуйня. Слишком много ограничений. То ли дело математика - можешь строить себе манямирки сколько влезет.
>>762827
#380 #762827
>>762824
Двачую. Самый кайф - заниматься исследованиями в алгебраической геометрии за рубежом. Читаю работы ученых и завидую им. Еще и финансируют науку значительно лучше, чем у нас.
8 Кб, 670x335
9 Кб, 670x336
#381 #762848
>>761156
Пишу простенькую программу, которая складывает массивы и сравниваю с CPU-онли прогой.

Повторю вопрос: кто-нибудь здесь работал с OpenCL?
46 Кб, 922x866
#382 #762855
Решаю алгоритмическую задачу: https://www.hackerrank.com/challenges/icecream-parlor

https://ideone.com/u0i3jR

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

Что я делаю не так? Алгоритм такой: прохожу по массиву и для каждого элемента бинарным поиском определяю, есть ли в массиву такой элемент, который в сумме с текущим дает заданное число. Если такой элемент есть, нахожу его линейным поиском и возвращаю два индекса. Должно работать за O(nlog n).
>>762933
36 Кб, 757x160
Це зрада! Иван #383 #762874
Оказывается, C++11 легализовал "no newline at end of file"
>>762875>>762881
#384 #762875
>>762874
Понадусеровый швайнокарась.
sage #385 #762881
>>762874
А вот и корпоративные юристы по ISO 14882 праву подъехали.
#386 #762883
Ебаный C++. Какого хуя компилятор высирает такие длинные портянки ассемблерного кода для четырех строчек из нескольких операторов?
#387 #762886
>>762883
Оптимизации включи.
>>762895
#388 #762888
>>762883
А что он тебе должен делать? Компьютер только и умеет, что взять говно из памяти и положить в регист, сложить два регистра, положить результат в память. Страдай.
#389 #762895
>>762886
Нихуя. Потоки жутко раздувают код.
#390 #762911
Эх, анон, как же хочется библиотечку для работы с excel файлами. Маленькую, бесплатную. Чтобы можно было вместе с ней свернувшись под пледиком читать .xls файлы без ole и com.
Может ты анон знаешь где мне найти такую библиотечку? Очень плохо без неё.
>>762913
#391 #762913
>>762911
Библиотечки нет, могу взамен отняшить тебя в пукан.
>>762920
#392 #762920
>>762913
Это еще лучше же.
sage #393 #762933
>>762855
Даже не вникая в задачу, я вижу, что у тебя сложность solution O(n^2), а не O(nlogn).
У тебя в худшем случае выходит O(n * (logn + n))
>>762934>>763009
#394 #762934
>>762933
линейный поиск он такой линейный
#395 #762986
У bool 1 байт как и у char. Можно делать unsigned bool или использовать его вместо char?
#396 #762987
>>762986
Зачем?
>>762989
#397 #762989
>>762987
Чтобы сделать счётчик который ещё и в if ложить можно и без проблем с выводом как у char.
>>762992
#398 #762992
>>762989
char и так в if ложить можно.
>>763002
#399 #763002
>>762992
Выводить не удобно. И bool в if красивее ложить.
>>763004
#400 #763004
>>763002
Ну тогда советую тебе сходить нахуй.
ISO1488-юрист в треде #401 #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.
>>763010
#402 #763009
>>762933
Не понял, откуда n^2? Линейный поиск там один раз вызывается.
>>763011
#403 #763010
>>763006
И сколько ещё может бэть bool если не 1?
>>763013
#404 #763011
>>763009
У тебя цикл внутри цикла, блядь. Если тот if фактически один раз срабатывает, то ты плохо написал код и иди переписывай.
>>763014
#405 #763013
>>763010
Знаешь почему bool на x86 равен 1 байту? Потому что процессор может адресовать минимум 1 байт.
Будет другая архитектура, на которой минимально адресуемая ячейка 4 байта, будет у тебя bool 4 байта.
>>763023
#406 #763014
>>763011

>Если тот if фактически один раз срабатывает, то ты плохо написал код и иди переписывай


Тот if срабатывает только один раз, когда бинарный поиск находит элемент, который в сумме с текущим дает нужное значение.
Как это переписать? Для таких случаев есть стандарты?
ISO1488-юрист в треде #407 #763022

> Будет другая архитектура, на которой минимально адресуемая ячейка 4 байта, будет у тебя bool 4 байта.


В модели памяти C++ минимально адресуемая ячейка всегда называется байтом. Так что, "минимально адресуемая ячейка 4 байта" это нонсенс.
>>763023>>763027
#408 #763023
#409 #763027
>>763022
А если процессор умеет работать только с 4ёх байтовыми ячейками? То все числовые типы в С++ будут
>>763029
#410 #763029
>>763027

>То все числовые типы в С++ будут


1 байт? Выходит sizeof вернёт 1, а на самом деле там 4 байта? Может 1 байт быть 32 бита?
не дописал случайно отправил
>>763034
#411 #763034
>>763029

>>То все числовые типы в С++ будут


>1 байт?


Ну, как минимум, long long требует 64 бит, так что sizeof(long long) будет равен двум (как минимум).

> Может 1 байт быть 32 бита?


В модели памяти C++ — да. char это синоним байта и sizeof(char) гарантировано равен одному. А CHAR_BIT будет равен 32
#412 #763036
http://ru.stackoverflow.com/questions/532323/Блочное-линейное-кодирования-для-идиота

Типичный дегенерат-программистишка, который даже не смог понять, что в теории кодирования используется алгебра и алгебраическая геометрия, а не матан.
>>763039
#413 #763039
>>763036
"Матан" это такой термин у даунов, означающий "там какие-то математические значочки, которые я не понял".
>>763041
#414 #763041
>>763039
А нас в школе так даже геометрию за 9ый класс называли.
#415 #763052
Почему все говорят, что c++ сложный язык для начинающего? Разве за 1-2 года, я не выучу все основы, если действительно буду стараться? И раз он сложный, то потом будет проще.
>>763056>>763070
#416 #763056
>>763052
Слишком дохуя нюансов.
#417 #763070
>>763052
Тогда почему на C++ может зарабатывать даже третьекурсник?
>>763078
#418 #763078
>>763070
В качестве джуна, но не сеньёра-помидора. Разницу чуешь?
#419 #763081
>>762986
signed bool
#420 #763084
>>762702
>>762696
Привет парни.
Вот такой код.
int a = 0;
a = 1;
И всё работает!
Как это понимать?
#421 #763099
>>762883
код давай. может у тебя там вызовы к толстым функциям
>>763105
131 Кб, 419x337
#422 #763105
>>763126
#423 #763126
>>763105

>using namespace std


>какой-то петушиный редактор


Ясно.
>>763136>>763338
#424 #763132
>>763084
Он про то, что создается ссылка на 0. Но это нормально, это действительно способ сделать ссылку на nullptr.
#425 #763136
>>763126

>using namespace std


Чем тебе это неугодило?
>>763137
#426 #763137
>>763136

>не угодило


быстрофикс
>>763139
#427 #763139
>>763137
using namespace - это моветон.
#428 #763142
>>763084
Это C++ тред, если ты не заметил, мань. Такие вопросы тут и задают. Съебал отседа
#429 #763145
>>763084

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

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

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

Потому что компилятор считает, что ты возвращаешь функцию с сигнатурой void() вместо vector<string>.
>>763161>>763162
#431 #763161
>>763157
Хотя нет, с функцией я погорячился.
#432 #763162
>>763157
Да, process2 не компилируется. Но там же нет названия функции рядом со скобками чтобы считать это вызовом
#433 #763164
Программисты, а составьте-ка мне оптимальный алгоритм онанизма. Вы ж программисты.
>>763166>>763172
#434 #763166
>>763164
Уже и подрочить без компа не можешь?
26 Кб, 539x454
#435 #763172
>>763164
Не благодари
>>763178
#436 #763178
>>763172
Какая сложность у этого алгоритма по времени и памяти? Это важно для исследований
>>763181
#437 #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. С остальным разберусь по аналогии.

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

Вот .pro сам после qmake -project создаётся.
>>763203
#441 #763203
>>763196
>>763196
То есть ты хочешь сказать, что понял как собирать qt проекты, но непонял что такое сигналы/слоты? Подозрительно

Без задней мысли создаешь сигнал, возвращающий структуру где сохранено то что ввел пользователь и соедини его со слотом
принимающим на вход такую структуру и в нем же можно ответ вывести
>>763226
#442 #763205
>>763179
Ты не знаешь как устроить взаимодействие между элементами/виджетами? Или в чём проблема?
>>763226
#443 #763207
>>763179
QString text = QPlainTextEdit->text();
set_a(text);
Так не?
>>763226
#444 #763215
>>763179
Палю тебе охуенный лайфхак:
1) В классе элемента/виджета, в котором ты что-то там вычисляешь, создаешь член GWidget uiWindow; или что-нибудь похожее.
2) В конструктор этого элемента у тебя передаётся parent. Присваиваешь его тому члену, что ты создал.
3) Дальше обращаешься к любому элементу/виджету через:
QLineEdit
le1 = (QLineEdit)uiWindow->findChild<QLineEdit>("lineEditPosition");
std::string str = le1->text().toStdString();
#445 #763217
>>763215
Ну, это пример из моего приложения и имена соответственно не дефолтные, но ты понял.
parent - я имел ввиду главное окно, на котором все остальные элементы.
>>763226
#446 #763219
Как сделать цвет букв красным, как в опшапке?
>>763251
#447 #763226
>>763207
>>763215
>>763217
Сижу сейчас, обдумываю, соображаю. Спасибо за подсказки! Потом отпишусь, если не дойдёт до мозгов.

>>763203

>То есть ты хочешь сказать, что понял как собирать qt проекты, но непонял что такое сигналы/слоты?


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

>>763205
Да, я тупо запутался. Наверное надо чуть-чуть поосмыслить и в голове уложится. Когда смотрю примеры в документации, то всё вроде бы легко и понятно, например:
QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
тут connect соединяет кнопку quitButton и даёт сигнал при её нажатии в само приложение qApp на слот quit(), что закрывает программу. А вот как самому что-то подобное написать, почему-то теряюсь.
>>763241
#448 #763241
>>763226
Вариант без слотов/сигналов - вот >>763215
#449 #763251
>>763219
Купи паскод
#450 #763321
бамп
#451 #763337
>>762883
Тебя это ебать не должно.
#452 #763338
>>763126
Может, ещё макросами и memcpy пользоваться запрещено в твоём манямирке?
>>763347
#453 #763339
>>762883
-fno-exceptions -fno-rtti
#454 #763341
Внятное объяснение почему кресты такая параша:
http://stackoverflow.com/a/14589567
>>763343
#455 #763343
>>763341
Похуй на синтаксис, всё равно все не-игрушечные компиляторы парсят с помощью рекурсивного спуска. А он отлично справляется с не контекстно-свободными грамматиками.
#456 #763347
>>763338

>2016


>использовать макросы вместо функций/инлайн функций

#457 #763533
//qt

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

На выходе получаем QByteArray, который хорошо интерпретируется под заданную страницу, если ее выводить прямо.
Мне нужен сам html код, как его выдрать?
>>763542
#458 #763535
Можно ли как-то сделать так, чтобы в цикле 1 раз IF пропускал проверку?
>>763538
#459 #763538
>>763535
да, сделай логическую переменную и вставь ее в условие
>>763541
#460 #763541
>>763538
Cпасибо, с вашей помощью решил задачку на загадывание числа от 1 до 100, вы можете оценить решение: http://ideone.com/Y17Y1X
А помогли мне тут: >>760607
#461 #763542
>>763533
Отбой
Оказалось, оно и считывает в html-е, просто QTextBrowser html код преобразовывает в веб-страницу
#462 #763617
Привет парни.
Еще вопросов принес.
Вот такой код:

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

Какой объект возвратит foo? Результат сложения или копию результата сложения?
>>763621>>763665
#463 #763621
>>763617
void ниче не вернет
>>763629>>763644
#464 #763629
>>763621
Да блять, там string возвращаемый тип, я обосрался
>>763633
#465 #763633
>>763629
вернет string1string2 тогда
>>763641
#466 #763641
>>763633
Что вернет, это понятно.
Вопрос в другом: будет ли создаваться копия результата сложения или не будет
>>763663
#467 #763644
>>763621
Ай попизди мне тут. void вернет prvalue типа void, это классика, блядь.
>>764693
#468 #763663
>>763641
создаст одну конкатенированую строку и положит ее на стек. читай про rvo
>>763665
#469 #763665
>>763663
Вообще говоря, это неправда.
>>763617
RVO/NRVO допустимы, но не обязательны. Имеет право вызвать конструктор перемещения, это unspecified behaviour.
>>763695>>763696
#470 #763695
>>763665
RVO/NRVO это не undefined behavior, а compiler specific. Надо посмотреть доки компилятора или посмотреть на практике, что происходит.
>>763756
#471 #763696
>>763665
И да, перемещение более затратно, чем RVO, поэтому ты только обосрешься, если так сделаешь, потому что почти все компиляторы сейчас поддерживают RVO.
#472 #763714
В случае [N]RVO, если компилятор не умеет его делать, он обязан сделать перемещение.
>>763830
#473 #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. Компилятор волен сам решать, вызывать конструктор или нет для каждого конкретного случая, даже если возможность не вызывать есть всегда.
>>763830
#474 #763830
>>763714
Никто ничего не обязан. В данном конкретном случае со std::string - да, будет перемещение, но в других случаях может и копирование случиться.

>>763756
Да, ты больше прав, наверное. Хотя я нигде так и не нашел, как классифицируется RVO
#475 #763880
Так что, unspecified behaviour?
Какой ответ, объясните пожалуйста
>>763892
#476 #763892
>>763880
Да. 12.8/31

>When certain criteria are met, an implementation is allowed to omit the copy/move construction of a class object

#477 #763930
Ану-ка, байтоебы, обясните мне результат этой штукенции:
http://ideone.com/bObKB2
>>763959
sage #478 #763959
>>763930
Выравнивание.
>>763972
#479 #763972
>>763959
хуита. Почему не 9?
>>763978
#480 #763978
>>763972
Ты тупой, блядь? Выравнивание определяется максимальным среди агрегатов выравниванием. У первого агрегата это 4, ибо long. У последнего - 1. Поэтому структура выравнивается по четырем байтам, размер добивается от 9 вверх паддингом до минимального, кратного четырем, т.е. 12.
>>763995
85 Кб, 628x460
#481 #763985
Поцоны нужна помощь. Есть бинарник на асме. Как сделать так, чтобы процессор выполнил его при boot`e с флешки? Читал, что нужно в MBR флешки записать, но немогу приложить ума, как это сделать. Крч помоги анон
>>763991>>764105
#482 #763991
>>763985
В венде с отключенным автозапуском - никак. Никто просто не станет выполнять твой код без явного указания пользователя. MBR это разметочная таблица, она интерпретируется как данные.
>>764004>>764006
#483 #763995
>>763978
Ах ты пидор, все сходится. Спасибо.
#484 #764004
>>763991
Блять, при чём тут Форточка вообще? Я выключаю комп, включаю, захожу в биос-меню ставлю приоритет загрузки с флешки на макс, boot-аю с флешки. MBR - главная загрузочная запись, как-то так, 512 кб, вроде.С неё биос начинает считывать. В осях там загрузчик. ВОПРОС : как туда что-то записать?
>>764021>>764102
#485 #764006
>>763991
HTML выучил, сына?
#486 #764012
Сап, байтоёбы. Какими упражнениями можно сохранить зрение за компьютером?
inb4: сокращать и расслаблять сфинктер
>>764022>>764025
#487 #764021
>>764004

>Хочет записать PE файл в MBR


Обосрался c дауна
>>764031>>764036
#488 #764022
>>764012
Поднятие мышки на бицепс
#489 #764025
>>764012
Не уверен, что это вообще научнодоказанная штука.
Я, например, провожу за ноутом последние шесть лет часов по 70 в сутки. Зрение хорошее.
>>764030>>764042
#490 #764030
>>764025
в неделю, конечно, лол
#491 #764031
>>764021
А чё делать? Мне вообше предлагали com туда пихать? Мб тупо листинг? НО КАК?
>>764063
#492 #764036
>>764021
Стоп, а bin это PE вообще? PE это ж типо exe и dll
>>764039
sage #493 #764039
>>764036

>типо


Скрываем школьника-вирмейкера.
>>764046
#494 #764042
>>764025
Как поживают ваши геморрой и простатит, мсье?
sage #495 #764045
>>764042

>геморрой и простатит


Кстати, говорят, что фапать сидя вредно. Лучше фапать стоя, лежа или в позе свечки, но не сидя. Фап сидя - простатит мерзкий.
#496 #764046
>>764039
О ещё и сажки подлил, спасибо за помощь,уёбок
sage #497 #764047
Лично я предпочитаю фапать тяночкой, но могу только рукой вприсядку.
#498 #764048
А ТЕМ ВРЕМЕНЕМ ОП-СТИХОПЛЕТ ТАК И НЕ ВЕРНУЛСЯ. МОЖЕТ ОН УМЕР?
>>764052
sage #499 #764052
>>764048
Он просто открыл старые архивы двача и научился в туда постить. Теперь он на том дваче набигает, страдает от одиночества и угнетения черным битардом.
#500 #764063
>>764031
MBR хранится в самом начале диска.
При загрузке с этого диска MBR копируется по адресу 7c00 и туда же передается управление.
То есть нужно хуярить асм код прям в начало диска. И да его размер должен быть не больше 512 байт.
>>764104
#501 #764068
>>764042
Я не он, но геморрой скоро наступит. Пока только жопа треснула. Со зрением все в порядке. Проблемы с жопой, думаю есть иили будут у любого войтишника/дальнобойщика. Еще у некоторых начинаются проблемы со спиной/шеей.
>>764070
#502 #764070
>>764068
Геморрой наступает только у гетерастов.
#503 #764081
>>764042
Спорный вопрос.
#504 #764097
Кто-то может объяснить, чем занимаются std::align и std::aligned_storage. Читаю доку и охуеваю.
>>764100
#505 #764100
>>764097
Нахуй оно вообще нужно, если выравнивание нужно только компилятору для генерации корректного кода, работающего с кастомно выровненными данными?
#506 #764102
>>764004
иди читай танненбаума про загрузчик. MBR показывает где лежат данные. дальше биос идет в указанный сектор и читает с первого или второго сектора (не помню). там специфический формат. например, для win nt, загрузчик загружает драйвера фс, ищет конфиг и передаёт управление указанному ядру. в Linux похоже. разве что grub умеет сразу запускать образ ядра.
тебе лучше не MBR дрочить, а подружиться с grub, который загрузит тебе хоть pe, хоть небо, хоть твою мамку
#507 #764104
>>764063
Чем хуярить?
>>764105>>764122
#508 #764105
>>764107
#509 #764107
>>764105
Спасибохуйло
#510 #764114
Короче этой командой через PARTCOPY надо записывать
partcopy boot.bin 0 200 -f0(только поменять аргументы для флешки)
Да сука, bin, никакой нахуй не листинг, а бинарникяжговорил
#511 #764122
>>764104
Хекс редактором например
>>764128
#512 #764128
>>764122
уженашёл
#513 #764223
Возможно ли в VS както включить дизайнер нативных win32 форм? Как в билдере, чтоб перетескивать кнопочки мышкой и вот это вот все.
#514 #764247
Какая лучшая книга по теме многопоточности?
>>764249>>764741
#515 #764249
>>764247
Также хочу отметить, что меня интересует только многопоточность через подключаемые библиотеки, а не через средства самого языка. Компилятор будет C++03.
>>764741
#516 #764258
Бамплимит, кстати, а ОП-поэт убит.
>>764261
#517 #764261
>>764258
Я ОП-пик не заготовил. Давайте кто-то другой перекатит.
#518 #764265
Можно ли заставить программу (бинарник под виндовс) писать файлы не на диск, а на псевдодиск, который будет распологаться сразу в памяти? Как такое лучше всго сделать?

Мне это нужно вот для чего. Я эту программу запускаю с ключами, она читает файл, декодирует его и пишет вывод в 3 файла на диск. Затем я эти 3 файла уже обрабатываю в своей программе. Очевидно тут лишний этап записи/чтения. Но т.к. исходников для этой программы у меня нет, то хотелось бы как-нибудь обойти это ограничение.
>>764266>>764267
#519 #764266
>>764265
располагаться, всего-фикс
#520 #764267
>>764265
Нашел:
https://en.wikipedia.org/wiki/Tmpfs
https://en.wikipedia.org/wiki/RAM_drive
Как проснусь посмотрю, как оно устроено.
#521 #764410
Подскажите, а можно в while сделать множественный ввод?
While (std::cin >> a, b, c)
{

}
Как-то так.
#522 #764536
Где все?
#523 #764693
>>763644
сделал мой день
#526 #764743
>>764738
Поясните ньюфагу: зачем нужны эти перекаты?
#527 #764815
>>764741
Спасибо.
82 Кб, 583x480
#528 #765217
>>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 тогда не знал.
Тред утонул или удален.
Это копия, сохраненная 29 июня 2016 года.

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

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