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

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

 Аноним 12/09/16 Пнд 23:46:21 #1 №840964 
14737131811630.jpg
Белеет парус одинокий
В тумане моря голубом!..
Что ищет он в стране далекой?
Что кинул он в краю родном?...
Играют волны — ветер свищет,
И мачта гнется и скрыпит...
Увы! Он счастия не ищет
И не от счастия бежит!
Под ним струя светлей лазури,
Над ним луч солнца золотой...
А он, мятежный, просит бури,
Как будто в бурях есть покой!
C++


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


Аноним 12/09/16 Пнд 23:49:21 #2 №840967 
Отметился.
Аноним 13/09/16 Втр 02:32:13 #3 №841027 
как засунуть unique_ptr в вектор?
Аноним 13/09/16 Втр 02:37:33 #4 №841029 
>>841027
vector<unique_ptr<MyType>> v;
v.push_back( unique_ptr<MyType>( new MyType() ) );

Например.
Аноним 13/09/16 Втр 05:21:40 #5 №841050 
14737333008030.jpg
14737333008041.jpg
14737333008052.jpg
14737333008053.jpg
>>841029
Аноним 13/09/16 Втр 05:28:47 #6 №841051 
>>841050
Им смешно или больно?
Аноним 13/09/16 Втр 05:33:32 #7 №841053 
>>841051
both
Аноним 13/09/16 Втр 10:02:56 #8 №841125 
>>841029
И потом вы будете говорить, что C++ лучше C.
Аноним 13/09/16 Втр 11:12:18 #9 №841155 
Хочу перекатиться в кресты с явки. С чего начать?
Аноним 13/09/16 Втр 12:25:55 #10 №841171 
>>841027
std::move
 Аноним 13/09/16 Втр 14:02:14 #11 №841214 
14737645345270.jpg
>>841155
Начни с установки Gentoo.
 Аноним 13/09/16 Втр 14:16:31 #12 №841220 
>>841155
Там осиливай make, gcc, gprof, gdb, clang.
Потом читай писанину Страуструпа, после прочтения ознакомся с текущим стандартом C++ 2017 и GNU разширениями.
Готово, теперь читай код GCC, приводи в порядок, было бы хорошо разбить его на куски отдельно для каждого языка компилятор, общее в отдельный модуль запихнуть.
После этого если хочешь разрабатывать GUI apps то изучай Wayland API (оно короткое, 100 Пунктов, да и не обязательно знать все.) и QT5/6 с wayland.
Вот и все.
Аноним 13/09/16 Втр 15:06:40 #13 №841250 
>>841220
Не слушай еблана. Выучи вектор и пихай его везде.
Аноним 13/09/16 Втр 15:07:55 #14 №841251 
>>841214
У меня центос 7


>>841220
Мне бы сразу после в кутэ вкатиться.
Аноним 13/09/16 Втр 15:09:56 #15 №841253 
>>841250
Вектор это такая недоколлекция?
А есть чтоли как в явке коллекции?
Хешмапы, связные списки, очереди, иммутабельные версии?
Или все пихать в вектор?
 Аноним 13/09/16 Втр 15:50:16 #16 №841279 
>>841253
В плюсах все есть маньк, все.
Выбирай то что быстрее работать будет, если конечно не надо поддерживать говнокод и писать в стиле говнокода чтобы другим говнокодерам небыло "Неприятно".
Аноним 13/09/16 Втр 15:56:56 #17 №841282 
С,С+, С++, С# это все разные вещи? Нахуя?
 Аноним 13/09/16 Втр 15:57:09 #18 №841283 
>>841251
>В куте
Ну так учи куте ебана врот, плюсы во многом как джава, так что справишься.
Только под Xorg не пиши, пиши сука под Wayland, сноси центось и ставлий Генту, установи Weston без xwayland для тестировки и Sway или любой современный оконный менеджер с xwayland для работы.
 Аноним 13/09/16 Втр 15:58:19 #19 №841284 
>>841282
Это совершенно разные языки маньк.
Стоит внимания только C и С++ причем C предпочтительнее.
 Аноним 13/09/16 Втр 15:59:04 #20 №841286 
>>841251
Кстати для куте программирование знать не нужно.
Аноним 13/09/16 Втр 16:02:45 #21 №841288 
>>841283
Ну я тип хочу под сайлфишОС пилить qml+ c++ аппы.
Аноним 13/09/16 Втр 16:04:00 #22 №841290 
Ананы, как мне теперь бабло зарабатывать? Ну, вот допустим, я прочитал все книги Страуструпа, Мейерса, Саттера и др.. Что мне теперь изучать, чтобы, скажем, через пару лет не остаться с голой жопой и все еще программировать на плюсах? Что читать, какие фреймворки/либы учить?
Аноним 13/09/16 Втр 17:23:06 #23 №841338 
>>841290
Писюны посасывать и анусы подлизывать начальству?
Аноним 13/09/16 Втр 17:57:37 #24 №841358 
>>841290
Странный вопрос.
Устраивайся на люблю работу, спустя год ее меняй, потом еще раз спустя год меняй - и вуаля, ты чувак, который немножко всякого разного умеет. Дальше уже занимайся тем, чем нравится.

В случае конкретно крестов - читать надо либо про qt, либо про алгоритмы всякие, либо про пекасети.
 Аноним 13/09/16 Втр 18:05:27 #25 №841362 
>>841288
Мудачье блядь, опять велосипед какой-то придумали?
Вам что существующих дистрибутивов не хватает? Ну бздя, ну план9, нет сука, хотим говно жрать.
 Аноним 13/09/16 Втр 18:06:27 #26 №841363 
>>841338
Мне бы такую работку.
Аноним 13/09/16 Втр 18:19:37 #27 №841366 
>>841358
А что нужно знать, кроме голого C++, чтобы устроиться на работу?
Аноним 13/09/16 Втр 18:48:24 #28 №841378 
>>841366
В надо знать хорошо С++, понимать, что есть в бусте и знать, чем nlogn отличается от n^2.
В качестве бонуса - очень полезно поковырять qt.

Но ты сам понимаешь, что "знание голого С++" это очень обширная область и так.

Я в своей жизни проходил 5 собеседований на С++ программиста, почти все спрашивали за сам язык\STL и алгоритмы. Предметной области разработки конторы не было (ну, я нихуя и не сениор с 300к в наносекунду, чтобы еще и область знать). Области разработки учили сами уже на месте. Делай проекты, используй клевые фишки 11\14 стандарта, обязательно используй эксепшены (чтобы понять, как с ними работать) - и все будет хорошо.
Аноним 13/09/16 Втр 20:44:29 #29 №841470 
>>841279
>В плюсах все есть маньк, все.
Долго ржал.

Когда^W Если выберешься из своего плюсоманямирка, поржёшь тоже.
Аноним 14/09/16 Срд 00:42:51 #30 №841568 
>>841029
std::vector<std::uniquer_ptr<Type>> vector;
vector.emplace_back(new Type());
Аноним 14/09/16 Срд 05:57:07 #31 №841612 
>>841362
Ты даун?
Это мобильная ос. Потомок миго и мера.
 Аноним 14/09/16 Срд 13:17:51 #32 №841724 
>>841612
Есть блядь GNU - мобильная ос, нет, хотят говно жрать, говорю же.
Тем более ты на с++ пишешь, там тоесть нативные приложения, или ты IDE с костылями пользуешься что в яву превращает все?
Говорю же есть нормальные платформы, которых более чем достаточно, мейнстрим это GNU/Linux оно сейчас везде, и если под это разрабатываешь то не пропадешь, а андроид, мак, салфиш - хипсторская хуета. В мобильных устройствах критично важно время работы, чего интерпритируемое говнище никак обеспечить не может, дисплей протоколов нормальных туда тоже хуй завезли, там вообще хуй что поменяешь, часто с каким ведроидом брал телефон с таким он и здохнет. Ну если там нативные апы, то еще норм, лучше андроида.
Аноним 14/09/16 Срд 14:14:25 #33 №841734 
>>841724
Натив.
Аноним 14/09/16 Срд 18:29:09 #34 №841866 
Есть один map который использую только внутри одной из функций членов класса. В ней я его объявил и инициализировал. Но при каждом вызове функции он заново создаются. Выносить из функции и засорять глобальное пространство имён я не хочу. Что же делать?
Аноним 14/09/16 Срд 20:36:25 #35 №841945 
>>841866
> Что же делать?
Давай свой класс и функцию сюда.
Аноним 14/09/16 Срд 20:46:12 #36 №841949 
>>841945
Я только планирую. Но нормально же условие описал.
Аноним 14/09/16 Срд 21:09:35 #37 №841966 
>>841866
сделать мап мембером класса
Аноним 14/09/16 Срд 21:24:28 #38 №841976 
>>841966
И чтгбы любая функция его видела?
sageАноним 14/09/16 Срд 21:37:17 #39 №841995 
>>841866
static
Аноним 14/09/16 Срд 21:41:32 #40 №842004 
>>841866
>>841976
Ну ты эти функции можешь сделать константными и тогда они не будут модифицировать твою мапу.
Аноним 14/09/16 Срд 23:14:08 #41 №842066 
НЬФАГ ЗДЕСЬ
Ладно, на самом деле не совсем ньюфаг.
Хочу спросить вот что: Можно ли как-то менять значения объектов в рантайме, обращаясь к ним по имени?
Ну, то-есть, есть у меня, например, какое-то гуи приложение. На нём есть текстбокс. Я хочу ввести в чекбокс имя объекта (скажем, money_value) и во второй чекбокс значение (скажем, 199) и чтобы значение money_value стало 199. Типа, как с RTTI, но имя инстанса, а не тип.
Что-то вроде рефлекшна в джаве.
Я могу, конечно, для моего юзкейса просто парсить команды и потом что-то чему-то присваивать, но хочу узнать, есть ли какие-то механизмы для этого.
Аноним 14/09/16 Срд 23:18:16 #42 №842070 
https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers

Блять, за такой уёбищный дизайн языка надо комитет, его создавший, объявить профнепригодным и распустить. Что это блять за хуйня? Почему они не могли ввести тип универсальных ссылок? Почему мне приходится ТАК извращаться?
Аноним 14/09/16 Срд 23:35:18 #43 №842074 
>>842066
нет.
Можешь сделать глобальную unordered_map<std::string, YobaWidget*> и к ней обращаться.
Аноним 14/09/16 Срд 23:38:05 #44 №842077 
>>842074
>нет
Хуево. Это точно?
>>842074
>Можешь сделать глобальную unordered_map<std::string, YobaWidget*> и к ней обращаться.
Окей, костылей таких я могу и сам напридумывать.
Аноним 14/09/16 Срд 23:59:14 #45 №842085 
>>842066
Рефлекшен в жяве он такой, неповторимый.

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

Такие костыли тебя больше устраивают?
Аноним 15/09/16 Чтв 00:07:42 #46 №842088 
>>842077
тебе нужен по строке получать указатель на обьект. Как еще ты это собираешься делать, кроме костылей в рантайме?
Аноним 15/09/16 Чтв 05:30:57 #47 №842108 
14739066571940.jpg
14739066571961.jpg
Итак, Аноны, нужна ваше помощь.

Впервые столкнулся в QT, нужно работать с MySQL.
Узнал, что в этой хуйне нужно ставить дрова, чтобы с базой работать. Откомпилировал дрова без ошибок, поместил, вроде бы, куда нужно, но при запуске уже моего приложения - ошибка, блядь. Причем при построении - все ок. Как это фиксить?

Алсо, SQLBrowser. из примеров КьюТи, выдает ту же ошибку.
Я нарукожопил, или КьюТи пидор?
Аноним 15/09/16 Чтв 05:34:48 #48 №842109 
14739068887860.jpg
>>842108
ебусь с этим уже часов 5, так что пойду посплю пока. Надеюсь вы что-то подскажите
Аноним 15/09/16 Чтв 06:54:18 #49 №842125 
>>842109
А в крестах драйвер субд инстанцировать по классу не нужно?
Мимо Ява примат
Аноним 15/09/16 Чтв 10:34:47 #50 №842172 
>>842108
подложи в папку с программой по пути .\plugins вроде
Аноним 15/09/16 Чтв 12:01:03 #51 №842201 
>>841171
>>841029
не пашет.
Аноним 15/09/16 Чтв 16:17:57 #52 №842369 
Умею кодить немного на C(самые основы), Джве(тоже), знаю начала ООП. Какую книгу из списка выбрать, чтобы изучить ООП в плюсах?
Аноним 15/09/16 Чтв 16:22:47 #53 №842373 
>>842369
Thinking in C++.
Аноним 15/09/16 Чтв 16:28:06 #54 №842379 
>>842373
А почему ее в шапке нет? И вообще на ангельском моя скорость чтения сильно упадет.
Аноним 15/09/16 Чтв 16:30:00 #55 №842383 
>>842379
На русском она "Философия С++" называется. Я не знаю, почему ее нет в шапке.
sageАноним 15/09/16 Чтв 16:35:12 #56 №842391 
>>842373
Звучит как диагноз.
Аноним 15/09/16 Чтв 16:49:58 #57 №842412 
>>842383
Наверно потому, что это высер распиаренного яваиндуса, который особой ценности не несёт.
Аноним 15/09/16 Чтв 16:50:11 #58 №842413 
>>842383
Прочитал описание, вроде идеально для меня.
Аноним 15/09/16 Чтв 16:50:30 #59 №842414 
>>842412
Так мне читать или нет?
Аноним 15/09/16 Чтв 18:50:56 #60 №842497 
>>842414
не читай, наверни страуструпа
Аноним 15/09/16 Чтв 19:22:22 #61 №842513 
>>842108
Я вернулся.

Сходил к другу, попробовал на его лэптопе провернуть такое же - все так же, значит я даун. ЧЯДНТ?

>>842125
Не совсем, в QT его нужно еще и отдельно установить, как я понял.

>>842172
Нихуя. Даже пробовал насильно указывать директории библиотек - один хуй.


Какова вероятность того, что скачанная мной папка с дровами MySQL - фуфло, и лучше перекачать?

Аноны, помогайте. Жутко не хочу пилить клиент для работы с БД на той же Джаве, где у меня что-то да получалось, и потом настраивать передачу данных между процессами.
Аноним 15/09/16 Чтв 21:21:22 #62 №842591 
Как вызвать компилятор через cmd? Какой путь к этому cl.exe на 14 студии?
Аноним 15/09/16 Чтв 21:26:10 #63 №842594 
>>842591
Бляя, плюсы в студии отдельно устанавливаются оказывается.
Аноним 16/09/16 Птн 08:15:00 #64 №842773 
>>842513
Итак, все было пофикшенно.

Дело в том, что КьюТи подхватывал библиотеке, но не мог найти их у Венды. Инсталятор с офф сайта МуСкл, почему-то, нихуя не поставил мне свои дровки, он их просто в папочку сохранил. Вручную кинул ДЛЛку в папку /windows/ - все ОК.
Аноним 16/09/16 Птн 19:14:03 #65 №842996 
Господа, как решить проблему с неполнотой типа в этом коде?
Есть класс массива строк, и есть дружественный ему указатель на этот массив строк. Но из-за того, что указатель определяется ниже, нихуя не работает.

https://ideone.com/GyN8lE
Аноним 16/09/16 Птн 19:22:31 #66 №843002 
>>842996
Сам увидел.
Аноним 16/09/16 Птн 19:24:51 #67 №843004 
>>843002
А, нет, после изменения StrBlobPtr(StrBlob &a, std::size_t sz) на StrBlobPtr(StrBlob &a, std::size_t sz = 0) ничего не изменилось.

https://ideone.com/tUwlRp
Аноним 16/09/16 Птн 20:53:25 #68 №843038 
Нужен getch а conio.h компилятор не находит. Что делать?
Аноним 16/09/16 Птн 21:30:28 #69 №843065 
>>843038
Мне нужно 1 символ считать не показывая его на экране. Как ещё это можно в крестах сделать?
Аноним 16/09/16 Птн 21:32:35 #70 №843071 
>>843065
getchar
Аноним 16/09/16 Птн 21:44:42 #71 №843088 
>>843071
У cin такого метода нет. И он показывает введёный символ
Аноним 16/09/16 Птн 21:53:35 #72 №843098 
>>843088
http://melpon.org/wandbox/permlink/lT1ADoUggC66r3tV
Аноним 16/09/16 Птн 22:01:50 #73 №843106 
>>843098
Нужно ентер нажимать и поэтому если 2 раза подряд читать, то сначала прочитает букву, а потом ентер
Аноним 17/09/16 Суб 10:08:52 #74 №843280 
>>841250
Это что-то из вредных советов? Чем плох вектор?
Аноним 17/09/16 Суб 11:57:56 #75 №843320 
>>843280
Самый лучший контейнер. Легко добавлять новый элемент, произвольный доступ быстрый, можно в сишечку передавать дату :3. Везде использую его (зависимость уже), брат пока жив.
Аноним 17/09/16 Суб 15:16:23 #76 №843389 
Пишу класс матриц. Хочу сделать конструктор, чтобы можно было передавать initializer_list вот так: { {1, 2, 3}, {4, 5, 6} }
Как из него выделить строки, чтобы получилась матрица типа:
1 2 3
4 5 6?
Аноним 17/09/16 Суб 15:47:31 #77 №843403 
>>843389
Класс матриц неудачный вариант для новичка. Класс сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник пишет класс матриц, а потом не знает что делать с ним. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Аноним 17/09/16 Суб 15:50:23 #78 №843405 
>>843403
Кстати, зачем вообще нужно функциональное программирование? У него же нет прикладных задач. И через 20 лет вряд ли появятся.
Аноним 17/09/16 Суб 16:04:33 #79 №843410 
>>843405
Чтобы прикладные языки вроде плюсов и явы с отставанием в 20 лет тащили к себе по паре фишек из фп раз в 5 лет и хомячка восторженно пищали.
Аноним 17/09/16 Суб 16:15:23 #80 №843415 
>>843389
struct biba {
int a; int b; int c;
}

Matrix(std::initalizer_list<biba> list);
Аноним 17/09/16 Суб 16:24:35 #81 №843422 
Где можно почитать стандарт c++14? в интернете одни драфты(черновики) находятся
Аноним 17/09/16 Суб 16:26:14 #82 №843426 
>template<typename T, std::size_t ... dimensions>
Как найти произведение чисел из списка аргументов dimensions?
Аноним 17/09/16 Суб 16:32:18 #83 №843428 
>>843410
Пиздец ты тупой. Ни одной фишки из фп в жабу перетащено не было.

мимохомяк
Аноним 17/09/16 Суб 16:36:36 #84 №843432 
Почему студия не компилирует этот кодес? https://ideone.com/wO7wen

>'_Size': invalid template argument for 'std::array', expected compile-time constant expression
Аноним 17/09/16 Суб 16:53:01 #85 №843440 
>>843428
Лямбды же
Аноним 17/09/16 Суб 17:08:03 #86 №843447 
>>843428
Своим незнанием откуда в языке есть эти пару фишек ты сам себя позоришь своим безкультурием. Все равно что приехать во Францию и орать "хуй ахах ресторан жир русское слово))))".
sageАноним 17/09/16 Суб 17:49:29 #87 №843468 
>>843432
constexpr doesn't mean const
Аноним 17/09/16 Суб 17:50:38 #88 №843469 
>>843468
Тогда как поправить мой код, чтобы он работал?
sageАноним 17/09/16 Суб 17:51:09 #89 №843471 
>>843468
>>843469
А может и не поэтому.

Но добавь const к size()
sageАноним 17/09/16 Суб 17:52:17 #90 №843472 
>>843469
>>843471
А. Это же static. Какой ещё const.
sageАноним 17/09/16 Суб 18:08:06 #91 №843479 
>>843426
рекурсивно.
Аноним 17/09/16 Суб 18:57:30 #92 №843513 
>>843432
В твоем ideone все же компилится, выходит, что студия не нужна.
Аноним 18/09/16 Вск 01:58:39 #93 №843741 
>>843426
http://ideone.com/V1n9tX

Тебе ещё следует узнать про Universal References и Perfect forwarding, чтобы была возможность умножать объекты с перегруженным оператором без копирования.
Аноним 18/09/16 Вск 15:15:13 #94 №843911 
https://www.appone.com/MainInfoReq.asp?R_ID=1350800&B_ID=44&fid=1&Adid=&ssbgcolor=&SearchScreenID=2285&CountryID=3&LanguageID=2
Ну что посоны, сколько лет к такому надо идти жабамакаке? помимо 2 лет геймдевелопмент опыта
Или к этому?
https://www.appone.com/MainInfoReq.asp?R_ID=1286133&B_ID=44&fid=1&Adid=&ssbgcolor=&SearchScreenID=2290&CountryID=3&LanguageID=2
sageАноним 18/09/16 Вск 16:17:58 #95 №843974 
>>843911
Твоё говно даже не открывается. Так или иначе, репорт.
Аноним 18/09/16 Вск 16:44:28 #96 №843997 
Так, ананасы, решил я тут поиграться с системами сборки анусом, и нашел WAF. Пуфон, все дела, очень удобно, после богомерзкого cmake, но вот проблема в том, как сгенерировать проект для Eclipse или какой еще поебистики того рода, чтобы нормально работать, а не в блокнотиках собирать всякое говно. Может сталкивался кто с таким?
Аноним 18/09/16 Вск 22:52:43 #97 №844180 
так двоч начал вкатываться в с++ и тут такой трабл в методичке никак не могу разобраться как взаимодействуют функции а конкретнее как реализовать данный пример y = (x + 1)(x + 2)(x + 3)(x + 4) ... (x + n) рекурсивной функцией, можно без кода но желательно на пальцах пояснить за каждую строку чтоб тупице вроде меня было понятно
Аноним 18/09/16 Вск 23:09:57 #98 №844193 
>>844180
http://melpon.org/wandbox/permlink/TDlHsL63zdAvU3ku
Аноним 18/09/16 Вск 23:18:20 #99 №844200 
>>844193
спасибо ,пойду разбираться
Шапку читай скотина блядь Аноним 18/09/16 Вск 23:21:06 #100 №844202 
>>844180
> Лабы идут на хуй
Аноним 18/09/16 Вск 23:23:07 #101 №844204 
>>844200
Только там небольшой косяк я допустил.
Должен быть return 1, а не return 0
Аноним 18/09/16 Вск 23:37:18 #102 №844214 
>>844202
это не лаба а для себя
Аноним 19/09/16 Пнд 15:28:19 #103 №844485 
Кто нибудь уже осилил мок произвольного абстрактного класса в компайлтайме?
Аноним 19/09/16 Пнд 21:35:45 #104 №844678 
Я не хочу каждый раз когда мне надо узнать размер структуры вызывать для этого функцию. Я хочу переменную где это значение будет хранится. Но тогда нужно обновлять значение это переменной в каждой функции которая размер структуры меняет. Можно ли сделать такую переименую которая высчитывается при обращении к ней? А можно так чтобы она была доступна для чтения извне класса, но не доступна для изменения.
sageАноним 19/09/16 Пнд 21:57:33 #105 №844692 
>>844678
> Я не хочу каждый раз когда мне надо узнать размер структуры вызывать для этого функцию.
Какую ещё функцию?
Аноним 19/09/16 Пнд 22:39:55 #106 №844722 
>>844692
Которая высчитывает его размер. В структуре массив указателей
Аноним 19/09/16 Пнд 22:40:33 #107 №844723 
>>844722
Бля, давай код.
Аноним 19/09/16 Пнд 23:04:30 #108 №844740 
>>844723
завтра тогда. он не на моём компе
anon 20/09/16 Втр 15:04:31 #109 №844909 
посоны
ток что создал тред по Google Moc
Кто разбирается может помочь чуть?
https://2ch.hk/pr/res/844903.html
Аноним 20/09/16 Втр 16:53:55 #110 №844971 
Няши, покидайте книжек/видео по Qt и в частности QML. Никогда с ним не работал, и сейчас не совсем понятно, куда даже копать.
Есть один webView, и он умеет открывать ссылки. Как открывать ссылку по нажатию кнопки я понял, но мне надо, чтобы ссылка открывалась автоматически из когда. В первом случае в QML не надо ничего подключать, но при попытке вызвать id webView из другого класса компилятор ругается на отсутствие. Есть какие-нибудь мысли?
Аноним 20/09/16 Втр 16:58:56 #111 №844976 
14743799363020.png
>>844971
Отклеилось
Аноним 20/09/16 Втр 17:47:05 #112 №844998 
Господа плюсисты, подскажите, пожалуйста, как можно использовать строготипизированный енум в конструкции свитч-кейс? Конпелятор ругается на неявное приведение типов.

class enum foo : uint8_t { bla1, bla2, ... blablabal ...};

switch (x) {

case foo::bla1:
case foo::bla2:
...
blablalba
...
}
Аноним 20/09/16 Втр 18:40:56 #113 №845031 
14743860571260.jpg
Проблема - если я ввожу не "text" , а другое слово, либо число, не выполняется else. Подскажите, пожалуйста, в чём причина? Он не может из inc_used(increase used) попасть в get_object(any,other) ? Неправильная нагрузка? Или что. Прошу помочь( includeы все имеются).

template <typename Any>
void get_object(Any object)
{
std::cout << object << std::endl;
}
template <typename Any, typename other>
void get_object(Any object,other number)
{
for (int i = 0;i < number-1;i++) { std::cout << object << std::endl; }
}
void inc_used(int used, std::string text)
{
used++;
get_object(text,used);
}
int main()
{
int
used = new int;
used = 1;
std::string
x = new std::string;
std::cout << "What do you want to run?" << std::endl;
getline(std::cin, x);
if (
x == "text")
{
get_object(x);
}
else {
inc_used(used,
x);
}
delete x;
delete used;
system("pause");
return 0;
}

Аноним 20/09/16 Втр 18:44:57 #114 №845035 
<script src="http://ideone.com/e.js/c4fDPV" type="text/javascript" ></script>
Аноним 20/09/16 Втр 18:51:51 #115 №845043 
Сверху не смотрите(там где моя простыня кода) - там у всех разымёнываний *(звёздочки) потеряны, переходите по моей кривой ссылке, там код правильный
Аноним 20/09/16 Втр 19:19:24 #116 №845060 
>>845031
>>845035
>>845043
Разобрался. Там used++ для увеличения значения на 1 нельзя было использовать, надо used= *used+1
Аноним 20/09/16 Втр 21:12:28 #117 №845130 
>>845060
Можно определить приоритет скобками: (*used)++
Аноним 20/09/16 Втр 21:14:16 #118 №845132 
>>844998
x не енум что ли?
Аноним 21/09/16 Срд 03:44:20 #119 №845275 
Сап пр, есть один код, и сука он падает https://ideone.com/j5vxGl. Это примерный набросок участка кода, который вызывает проблемы. Объясните где я обосрался? Проблема, что в момент выделения памяти в функции программа падает с сегментейшен фолт, насколько я понимаю какого-то хуя в момент выделения памяти я перезаписываю стек, никогда такого небыло и вот опять.(Причем на идеоне все работает) Как фиксить то?
Аноним 21/09/16 Срд 04:14:08 #120 №845279 
>>845275
http://stackoverflow.com/questions/4255598/delete-vs-delete
Аноним 21/09/16 Срд 04:25:19 #121 №845280 
>>845279
Спасибо, с делитом действительно нехорошо получилось, но падения вызывал не он. Нашел я ошибку, я выделял под первый массив(тот который в мейне) память через new(), на идеоне я выделял нормально, а вот у себя не заметил.
Аноним 21/09/16 Срд 09:54:42 #122 №845324 
>>845132
Подпарвил.

class enum foo : uint8_t { bla1, bla2, ... blablabal ...};

foo x = something_return_foo();

switch (x) {

case foo::bla1:
case foo::bla2:
...
blablalba
...
}
Аноним 21/09/16 Срд 12:05:36 #123 №845366 
>>844180
дай ссылку на методичку, если есть
Аноним 21/09/16 Срд 12:58:23 #124 №845381 
>>845324
Хуй знает, все должно работать.
https://ideone.com/Mr96Vc
Аноним 22/09/16 Чтв 15:59:12 #125 №846101 
Здравствуйте, господа крестоводы. Скажите, кто-нибудь сталкивался с таким зверем, как OpenFOAM?
Аноним 22/09/16 Чтв 16:05:18 #126 №846103 
Здрасте, прикладной дектопный говнокодинг мелких приложух под себя - это к вам?
Аноним 22/09/16 Чтв 20:43:47 #127 №846266 
Какой самый простой и элегантный способ "вырезать" кусок из файла? И какой правильный?
Допустим, есть у меня файл с текстом:
>aaa bbb ccc ddd
А я хочу получить
>aaa ccc ddd
То есть вырезать символы 4-7 (иил 5-8)

Есть идея открыть два fstream'а (in и out), затем, поставив курсоры куда надо (out.seekg(3); in.seekg(7)), просто писать то, что читаю, ворде
while (in.read(block, block_size)){
    out.write(block, block_size);
}
Предположим, что размеры идеально совпадают и последний блок будет прочитан как раз перед eof и т.д.
И затем в конце truncate'ить файл, чтобы размер уменьшился до нужного.

Это нормально или умные люди делают как-то иначе?
sageАноним 22/09/16 Чтв 20:47:24 #128 №846274 
>>846266
>умные люди делают как-то иначе?
Ага. sed-ом, например.
Аноним 22/09/16 Чтв 21:38:57 #129 №846327 
>>846266
"вырезать" заменять на "отфильтровать" - пишут что нужно оставить во временный файл, потом удаляют старый и временный на его место
так быстрее всего
по сути происходит посимвольный ввод-вывод 2мя системными функциями, в потрохах которой рантайм и система все нужные буферицаии-оптимизации делает незаметным образом для тебя
Аноним 22/09/16 Чтв 23:16:53 #130 №846441 
Ананас, в последнее время unique_ptr не даёт покоя.
Вот, например, у меня есть массив (внутри unique) и я хочу его передать функцию для какой-то обработки, но терять им владение не хочу и поэтому передаю по константной ссылке.
Та же ситуация и с возвратом из функции.
Стоит ли так делать?
sageАноним 22/09/16 Чтв 23:57:41 #131 №846458 
>>846327
>рантайм и система все нужные буферицаии-оптимизации делает незаметным образом для тебя
Ой, ладно тебе, "все оптимизации делает". Что, и sendfile вызывает, когда возможно?
Аноним 23/09/16 Птн 01:18:48 #132 №846486 
>>846441
В такой ситуации ты спокойно можешь использовать сырой невладеющий указатель.
HUESOS 23/09/16 Птн 03:20:57 #133 №846504 
14745900578110.png
Посмотрел толк от Страуса на CppCon 2016, по поводу нового стандарта, ебать я подлетаю на стуле. Хочется плакать и писать на расте...
Аноним 23/09/16 Птн 03:49:55 #134 №846507 
>>846327
>"вырезать" заменять на "отфильтровать" - пишут что нужно оставить во временный файл, потом удаляют старый и временный на его место
Ну, то есть, никакой магии "указания на разрыв" нет (типа, вот файл отсюда и до сюда, а следующий кусок там, как получается при фрагментации на диске), и если мне нужно из гигабайтного файла убрать пару килобайт, то нужно пересмотреть архитектуру хранения данных прочитать с диска гигабайт и записать на диск почти гигабайт, да?
Аноним 23/09/16 Птн 05:31:45 #135 №846516 
>>846507
Если размер удаляемых данных кратен кластеру, то, в теории, можно пошаманить на уровне файловой системы. Но абстракция "файл" не для того была придумана.
Аноним 23/09/16 Птн 09:59:03 #136 №846540 
>>846504
все нововведения в последних стандартах крестов - это добавление синтаксического сахарка и расширение библиотек, входящих в стандартную поставку
те семантика языка не меняется, а значит шарящего чувака все эти нововведения не пугают и не волнуют
Аноним 23/09/16 Птн 10:12:23 #137 №846542 
>>846507
а как еще то? то что я тебе предложил - наглядно и просто, можно сделать на стандартных getc и putc, потоковым (с внутренней буферизацией) вводом-выводом
Аноним 23/09/16 Птн 18:32:02 #138 №846815 
14746447222620.jpg
Аноны, поделитесь книгами по сетевому программированию на плюсах
Аноним 23/09/16 Птн 19:21:49 #139 №846849 
Сегодня впервые понял профиты от наследования. Это наследование GUI формочек. До этого всякий раз наследование выглядело таким лютым говнищем, что хотелось всех убить. С формочками согласен -- норм. Но в остальном OOP это ебучий рак.
Аноним 23/09/16 Птн 20:51:06 #140 №846914 
Не могу установить на винду 15-ю студию, потому что система засрана. Поэтому установил Code::Blocks и прописал в настройках компилятор clang++. Исходники компилируются, но возникает ошибка линковки. Какой линкер можно использовать?
Аноним 23/09/16 Птн 21:40:05 #141 №846950 
>>846540
Вот именно, что там ровным счетом нихуя.
Аноним 23/09/16 Птн 21:43:54 #142 №846954 
14746562346420.jpg
Подскажите пожалуйста!
У меня windows 7 а я поставил себе visual Studio community 2015,проблема в том, что при выборе типа проекта выдает "could not find a suitable sdk to target" что делать? окна 10-ые ставить не охото..
Аноним 24/09/16 Суб 16:21:16 #143 №847353 
>>846914
>Не могу установить на винду 15-ю студию
Что за ошибки выдаёт? Накати на винду последние обновления
sageАноним 24/09/16 Суб 16:22:17 #144 №847355 
>>846954
В /s/
Аноним 24/09/16 Суб 16:22:47 #145 №847357 
>>846954
гуглить совсем никак?
http://stackoverflow.com/questions/36330630/could-not-find-a-suitable-sdk-to-target
Аноним 24/09/16 Суб 16:30:38 #146 №847361 
>>847353
>Что за ошибки выдаёт? Накати на винду последние обновления
Да в пизду ее, у меня винда совсем убитая, надо переустанавливать. Пока что меня устроит и Code::Blocks.
sageАноним 24/09/16 Суб 16:32:20 #147 №847363 
>>846914
Ставь линакс
Аноним 24/09/16 Суб 16:39:29 #148 №847368 
>>847363
И так стоит на ноуте, но в нем отвалилась земля. Пока не сделаю заземление, буду на винде. Посоветуйте, как исправить ошибку error: linker command failed with exit code 1104 (use -v to see invocation)|
Аноним 24/09/16 Суб 17:25:00 #149 №847399 
>>840964 (OP)
Хочу высрать окошко с кнопкой, доставьте готовый хэлловорлд
Аноним 25/09/16 Вск 00:33:33 #150 №847569 
14747528136020.png
Не устанавливается IDE, антуаны. Скоро останусь без интернетов, хотел занять себя кодингом, но у меня пиратская винда, которая никак не обновляется и похоже из-за этого мне не поставить эту хуйню. Вот так и висит. Скачал отдельно эту обнову - не хочет ставиться.
Аноним 25/09/16 Вск 01:10:29 #151 №847580 
>>847569
Не задумывался о том, что проще скачать бесплатно без смс wxDev-C++ ?

С таким подходом к решению задач ты далеко пойдешь не только в С++, но и в программировании в целом
Аноним 25/09/16 Вск 01:17:55 #152 №847581 
>>847580
опять какую-то красноглазую ненужную залупу форсят

>>847569
Не слушай его, гугли как поставить обнову, и ставь студию. Шиндовс переставь в конце концов
Аноним 25/09/16 Вск 01:22:44 #153 №847582 
>>847581
>морочиться с обновой
>переустанавливать Шиндовс
>потом искать для студии кряки с троянами

И это все ради IDE, имеющей идентичный функционал
Аноним 25/09/16 Вск 01:29:15 #154 №847584 
>>847582
Нет, с студией ни одна иде до сих пор и близко не стоит.

Кряки не нужны – полноценная студия давным давно бесплатна.
Аноним 25/09/16 Вск 01:31:50 #155 №847586 
>>847584
А что после 30 дней делать с ней?
Аноним 25/09/16 Вск 01:34:08 #156 №847587 
>>847586
Зарегестрироваться на сайте майкрософта, авторизоваться в студии и всё. Внезапно, да?
Аноним 25/09/16 Вск 02:01:45 #157 №847596 
14747581055550.png
Пацаны, что делать с этой шляпой? Вин10, CodeLite, g++ в качестве компилятора
Аноним 25/09/16 Вск 02:03:30 #158 №847597 
>>847596
Как хотя бы описать проблему гуглу?
Аноним 25/09/16 Вск 02:35:02 #159 №847602 
14747601028810.png
>>847596
А это блядь что за хуйня в настройках? Почему в одном случае слеши в пути левые, а во втором -- правые? И как правильно всё это заполнять на винде?
sageАноним 25/09/16 Вск 13:39:42 #160 №847605 
>>847569
>>847363
sageАноним 25/09/16 Вск 13:40:35 #161 №847606 
>>847596
>>847363
Аноним 25/09/16 Вск 15:04:07 #162 №847640 
>>840964 (OP)
Поставил C::B, mingw, wx. Сделал хэлловорлд для работы с wx, при билде получил ошибку:
>.\wx_pch.h|14|fatal error: wx/wxprec.h: No such file or directory|
Где и как я обосрался? Помогите ньюфагу.
Аноним 25/09/16 Вск 15:07:19 #163 №847642 
>>847640
Просто юзай Qt Creator
Аноним 25/09/16 Вск 15:09:36 #164 №847643 
>>847587
Возможно, ты действительно лучше меня осведомлен касаемо лицензионной политики MS, но

>Зарегестрироваться

я бы тебе все же посоветовал подтянуть русский язык перед будущим ЕГЭ
Аноним 25/09/16 Вск 15:12:40 #165 №847644 
>>847642
У меня на него, не поверишь, памяти не хватает. В ВУЗе сказали, что для C будем C::B использовать, поэтому на его основе и начал делать, так как предустановлен уже. На диске меньше 1гб осталось, даже под иные нужды не хватает, за неделю, конечно, подрасчищу, но мне бы уже сейчас начать всё это делать.
Аноним 25/09/16 Вск 15:22:36 #166 №847648 
>>847644
> для C
Может тогда юзать tcc и просто текстовый редактор?
Аноним 25/09/16 Вск 15:45:17 #167 №847653 
>>847648
Тут компилятор встроенный и много всякого важного. Но мне сейчас плюсы нужны и грофен от wx.
sageАноним 25/09/16 Вск 16:34:36 #168 №847688 
>>847640
>>847363
sageАноним 25/09/16 Вск 16:35:47 #169 №847691 
>>847653
> компилятор встроенный
Ничего себе спермачи терминологию выдумали. "Встроенный компилятор".
Аноним 25/09/16 Вск 17:08:49 #170 №847718 
>>847691
Лол. Встроенный в ту версию ide, что я скачал.
Аноним 25/09/16 Вск 18:37:18 #171 №847764 
Аноны, подскажите, как в Visual Studio подключать библиотеки(тот же boost), не используя абсолютный путь, т.е. чтобы не было проблем с компиляцией на другом компе, например
Аноним 27/09/16 Втр 01:08:16 #172 №847785 
анон, допустим у меня есть string "name values : 1, 44, 53, 23"
Как мне прочитать intы из нее в соответствующие переменные типа int?
Аноним 27/09/16 Втр 09:19:08 #173 №847793 
>>847785
stringstream
Аноним 27/09/16 Втр 13:41:17 #174 №847810 
Аноны, в вузе да, я студент заставляют делать CLR приложение окошко на плюсах. Так кто-нибудь в реальных проектах делает?
Аноним 27/09/16 Втр 14:22:28 #175 №847812 
>>847810
> Так кто-нибудь в реальных проектах делает?
Конченный дауны, например.
Аноним 27/09/16 Втр 14:38:05 #176 №847813 
>>847812
Значит я о нём правильного мнения. Добра тебе
Аноним 27/09/16 Втр 15:46:25 #177 №847819 
Плюсаны, а у вас есть конфа или другое место обитания, на этой гнилой доске что-то не оч. хочется сидеть.
Аноним 27/09/16 Втр 16:43:17 #178 №847822 
>>847819
Жри что дают.
Аноним 27/09/16 Втр 17:13:05 #179 №847824 
Ананасы, поделитесь книгами по OpenMP. Мх ублюдошная спецификация меня просто раздражает...
Аноним 27/09/16 Втр 22:59:59 #180 №847906 
>>847363
Согласен с этим пидором, хоть и презираю его.

Думаешь, я тебя забыл, моя родная внимание-блядь?
Аноним 27/09/16 Втр 23:03:46 #181 №847907 
>>846504
Ебал слушать эту хуйню 1:40. Че там вкратце?
Аноним 27/09/16 Втр 23:54:05 #182 №847917 
>>840964 (OP)
помогите найти ошибку
#include <locale>
#include <cmath>
#include <iostream>


using namespace std;
int mai()
{
setlocale(LC_ALL, "Russian" );
int x,y,x1,x2,x3,y1,y2,y3;
int s,s1,s2,s3;
cout <<" Введите координаты треугольника:" ;

cout <<"x1=" ;
cin >> x1;
cout <<"y1=" ; cin >> y1;
cout <<"x2=" ; cin >> x2;
cout <<"y2="; cin >> y2;
cout <<"x3="; cin >>x3;
cout <<"y3="; cin >> y3;
cout << "Введите координату точки";
cout <<"x="; cin >> x;
cout <<"y="; cin >> y;

if (x1==x2==x3 || y1==y2==y3)
{
cout<<"Треугольник задан не верно";
}
{
s = 1/2 abs((x2 - x1) (y3 - y1) - (x3 - x1) (y2 - y1));
s1 = 1/2
abs((x2 - x1) (y - y1) - (x - x1) (y2 - y1));
s2 = 1/2 abs((x - x1) (y3 - y1) - (x3 - x1) (y - y1));
s3 = 1/2
abs((x2 - x) (y3 - y) - (x3 - x) (y2 - y));

if(s == s1 + s2 + s3){

cout<<"Точка в треугольнике";}
else
{

cout << "Точка не принадлежит треугольнику" ;}
}
return 0 ;
}
Аноним 28/09/16 Срд 00:07:16 #183 №847921 
14750104365010.jpg
>>847917
А вот и лабодауны оттаяли
Аноним 28/09/16 Срд 13:23:59 #184 №848022 
Братики мои родненькие. Есть что почитать по com'у и mfc'у?
Аноним 28/09/16 Срд 14:02:13 #185 №848031 
>>848022
По COM:
Троелсен / Troelsen - Модель COM и применение ATL 3.0 .
Аноним 28/09/16 Срд 15:12:11 #186 №848046 
>>847917
> помогите найти ошибку
Ты пошёл учиться на программиста.
Вот твоя ошибка.
Аноним 28/09/16 Срд 18:03:57 #187 №848097 
>>848046
Парни, в чем причина такой хуйни:
QtCreator 3.6.1, создаю проект, накидываю файлы, делаю билд, cpp и h видит нормально, а qml он не копирует в директорию билда. Run qmake тыкал, не помогает.
Аноним 28/09/16 Срд 18:09:29 #188 №848100 
>>847917
Ебаааааать
Аноним 28/09/16 Срд 19:38:19 #189 №848127 
14750806994740.png
Первокурсник итт. Посоветуйте, пожалуйста, как сделать визуальную интерпритацию сортировки массива? Нужно, чтобы после каждого нажатия на кнопку Ентер показывалось в консоли, как элемент массива меняется с другим. Хоть убей, не знаю как это сделать. Дайте советов. Саму сортировку я написал, пикр.
Аноним 28/09/16 Срд 19:58:31 #190 №848135 
Ребята, я совсем тупой.
Есть код:

#include <iostream>
#include <string>
#include <vector>
#include <cctype>
using std::cin; using std::cout; using std::endl;
using std::string;
using std::vector;

int main() {
string (word);
vector<string> strings;
while (cin>>word)
strings.push_back(word);
for (auto i: strings)
if (islower(strings)==true)
strings=toupper(strings);
for (auto i=0; i!=strings.size(); i++)
cout<<strings;
cout<<strings.size();
}

При выполнении выдаёт ошибку "no matching function for call to 'islower" и дальше страшные буквы. Поможете разобраться?
Аноним 28/09/16 Срд 20:13:27 #191 №848141 
Вот тенденции крестотреда:
- Полгода атакуют лабодауны
- Полгода скорость постинга 2 поста в неделю
- Два раза в год разгорается какой-то технически сложный срач
- Раз в два месяца происходит вялое набрасывание за любимую IDEшечку.

/thread

P.S. >>848135 - нахуй иди, педрила безграмотная
Аноним 28/09/16 Срд 20:18:33 #192 №848142 
>>848141

> безграмотная
Извини, не знал, что табы не обрабатываются.
Аноним 28/09/16 Срд 20:32:12 #193 №848150 
>>848135
код просто кишит обшибками. Иди читай методичку.
sageАноним 28/09/16 Срд 22:29:53 #194 №848197 
>>848141
Дело даже не в крестотреде. Это же два.ч, форум для (недавних) школьников. Что ты хочешь от него?
Аноним 29/09/16 Чтв 08:25:39 #195 №848268 
pkg-config не говно, мс цпп говно, шланг идеален.
Аноним 29/09/16 Чтв 08:26:03 #196 №848269 
>>848135
$ man man
Аноним 29/09/16 Чтв 10:38:47 #197 №848298 
>>840964 (OP)
Анон, доставь проект хэлловорлда с гуи, а то у меня его собрать не получается, так хоть ясно будет по какой причине.
Аноним 29/09/16 Чтв 12:56:24 #198 №848313 
При билде хэлловорлда на wxWidgets происходят ошибки.
Анон, что не так?

<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_richtext
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_xrc
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_aui
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_dbgrid
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxbase28ud_odbc
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_media
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxbase28ud_net
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_gl
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_qa
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxbase28ud_xml
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_adv
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_html
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw28ud_core
<ДЕАНОНЮЩИЙ ПУТЬ ДОК IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: cannot find -lwxbase28ud
collect2.exe: error: ld returned 1 exit status
Аноним 29/09/16 Чтв 13:04:28 #199 №848314 
14751434683050.jpg
>>848313
Аноним 29/09/16 Чтв 13:18:03 #200 №848315 
>>848313
> Анон, что не так?
> cannot find
Сам-то как думаешь?
Аноним 29/09/16 Чтв 13:59:21 #201 №848322 
>>848022
дейл роджерсон "основы com"
румянцев "mfc изнутри"
Аноним 29/09/16 Чтв 15:19:52 #202 №848353 
>>848314
Чтобы попробовать гуй, очевидно же.
>>848315
Я незнаю, когда я прохожу по <ДЕАНОНЮЩИЙ ПУТЬ ДО IDE>/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/, то я вижу ld.exe. Оно там есть. Как я понимаю, -lwxmsw28ud_richtext - флаг с которым оно пытается запустить этот ld.exe. Поэтому я не знаю почему оно так и прошу твоей помощи, анончик. Я не знаю как проверить работоспособность флага и же узнать почему он не работает.
Аноним 29/09/16 Чтв 15:35:10 #203 №848359 
>>848353
> Я не знаю как проверить работоспособность флага и же узнать почему он не работает.
Ну блять, потому, что это какая-то либа которой не хватает.
Аноним 29/09/16 Чтв 15:40:14 #204 №848362 
>>848359
Но ведь я установил wxWidgets и прописал путь до неё в визард? Или я установил как-то не так?
Аноним 29/09/16 Чтв 16:11:20 #205 №848369 
>>848362
Понятия не имею что там не так.
Если уж нужны гуи, то я бы пару дней подрочил с# и сделал на формах.
Ну или если плюсы, то Qt.
Аноним 29/09/16 Чтв 16:25:49 #206 №848371 
А мог бы код писать, а не ебаться с иде и протухшим фреймворком.
Аноним 29/09/16 Чтв 17:12:59 #207 №848383 
>>848362
Аргументы линкера гуся в студию, мне кажется, у тебя -L не прописан
Аноним 29/09/16 Чтв 17:19:33 #208 №848384 
>>848383
Куда нажать, чтоб узнать аргументы линкера?
Аноним 30/09/16 Птн 00:46:29 #209 №848503 
Хелп, не могу вдуплить как реализовывать классы. Чтоб с перегрузкой стандартных операторов, в три файла и пространством имен, что это за магия?Можете пример какой-нибудь накидать?
Аноним 30/09/16 Птн 14:49:50 #210 №848553 
>>848503
http://pastebin.com/HesVejmT
Аноним 30/09/16 Птн 15:00:24 #211 №848565 
>>848384
Покажи, что у тебя прописано в Project build options -> Debug / Release -> Search directories. Там указываются пути для ббилиотек, похоже.
Аноним 30/09/16 Птн 19:57:15 #212 №848666 
Нормально ли что маленький pomodoro таймер на C++/Qt5 ест 50 метров памяти?
Там ничего такого нет: сохранение/применение настроек (QSettings, пока что существует всегда, а не только когда нужен), звуковой сигнал (QMediaPlayer, объект создаётся только при необходимости и сразу же после использования удаляется), окно настроек (также создаётся лишь при необходимости) и иконка в трее с меню из 2 пунктов.
Ну и естественно, объект-таймер, наследник QObject.
+стоят обработчики событий на нажатия в главном окне чтобы его можно было перемещать (рамка окна отключена)

Valgrind молчит.
Linux (openSUSE Tumbleweed), x64

Как серьёзно уменьшить потребление памяти не урезая прогу?
Аноним 30/09/16 Птн 20:09:05 #213 №848671 
>>848666
Пересобрать Qt с только нужными тебе модулями.
Ну или подождать пару месяцев Qt lite.
Аноним 30/09/16 Птн 20:16:04 #214 №848674 
14752557642220.jpg
Не бейте только, в ньюфаго-треде мне не ответили.
>>848203
Аноним 30/09/16 Птн 20:43:22 #215 №848686 
Нид хелп, имеется класс полиномов(многочлены от одной переменной)
http://pastebin.com/trnA03AP это тестовый файл.
http://pastebin.com/9ndn2jQ4 polynom h файл
http://pastebin.com/mbseYCdJ polynom cpp файл
Все компилируется, но во фразе
polynom m3;
m3=polynom(m1+m2);
Вызывается конструктор, а не оператор копирования(который возвращает ссылку на объект типа полином).
Аноним 30/09/16 Птн 20:43:48 #216 №848687 
>>846954
в общем как решил проблему, при повторной установке отметил язык С++ и все стало норм.
Аноним 30/09/16 Птн 22:28:14 #217 №848729 
>>848686
> http://pastebin.com/trnA03AP это тестовый файл.
polynom m1(2,x);
...
m1.~polynom();

> http://pastebin.com/mbseYCdJ polynom cpp файл
polynom::polynom()
{
std::cout<<"emtyconst\n";
double x[1]={0};

polynom(0,x);

}
Аноним 30/09/16 Птн 22:28:59 #218 №848730 
14752637398200.jpg
>>848686
>>848729
Отклеился пик.
Аноним 30/09/16 Птн 22:33:00 #219 №848732 
>>848729
Ничего не понял. При чем тут вообще деструктор?
Аноним 30/09/16 Птн 22:33:50 #220 №848734 
>>848732
У меня тот же вопрос.
Аноним 30/09/16 Птн 22:35:16 #221 №848736 
>>848734
Создали объект, удалили его. Что не нравится в конструкторе пустом? При том, что вызывается не он, а обычный конструктор, вместо копирования. Ты помочь можешь?
Аноним 30/09/16 Птн 22:36:11 #222 №848738 
14752641719730.jpg
>>848736
>Создали объект, удалили его.
Аноним 30/09/16 Птн 22:36:40 #223 №848739 
>>848736
> Ты помочь можешь?
Да. Вам сюда: https://2ch.hk/pr/res/839462.html
Аноним 30/09/16 Птн 22:37:55 #224 №848740 
>>848738
То есть деструктор не нужно самому вызывать. А почему срабатывает не тот конструктор?
Аноним 30/09/16 Птн 22:38:06 #225 №848741 
Чо он не создаëтся на g++ и бионике? Ведродаун, ну вы поняли

vector < vector < int > > numbers (10, vector < int >);
Аноним 30/09/16 Птн 22:42:14 #226 №848742 
>>848666
Вангую статическую линковку, дружище.
Аноним 30/09/16 Птн 22:45:08 #227 №848744 
>>848740
>То есть деструктор не нужно самому вызывать.
Нет.
> А почему срабатывает не тот конструктор?
Приведи уже лог, чтобы я мог увереннее тебя отхуесосить
Аноним 30/09/16 Птн 22:47:37 #228 №848746 
>>848741
vector < vector < int > > vec (10,vector < int > (10) );
Вот так, конечно наверное, но тоже не работает
Аноним 30/09/16 Птн 22:48:41 #229 №848747 
>>848742
Её быть не должно.
Toolchain дефолтный, релизный бинарник чуть больше 100КБ весит
Аноним 30/09/16 Птн 22:50:26 #230 №848748 
>>848666
>Нормально ли что маленький pomodoro таймер на C++/Qt5 ест 50 метров памяти?
Да. https://www.opennet.ru/base/sys/pmap_memory.txt.html
Аноним 30/09/16 Птн 22:50:40 #231 №848749 
>>848744
Какой лог, я в это не умею, каутами(остатки которых ты можешь наблюдать) обнаружил, что в строке
m3=polynom(m1+m2);
вызывается polynom(int n, double *x)
Хотя m1+m2 возвращает объект и по идее должен вызываться конструктор копирования polynom(&O)
Где O – объект класса полином.
Насчет деструктора да, если вырезать, то ничего не поменяется.
Аноним 30/09/16 Птн 22:54:42 #232 №848752 
>>848747
тогда память течет, как советский смеситель.
А если нет - юзай allocation profiler
Аноним 30/09/16 Птн 23:05:10 #233 №848754 
>>848749
У тебя там (если не считать возврата по значению) вообще нет мест, где может вызваться конструктор копий.
Аноним 30/09/16 Птн 23:07:15 #234 №848756 
>>848749
>>848754
Хотя не, пизжу. Есть, эти вот и polynom(m1+m2) polynom(m1*m2)

Сдаётся мне, компилятор соптимизировал это и сразу подал результат сложения/умножения на вход оператору присваивания.
Аноним 30/09/16 Птн 23:08:54 #235 №848757 
>>848686
А вообще

Error in `./a.out': double free or corruption (fasttop): 0x0000000000749050
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7f2f12242725]
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7f2f1224af4a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f2f1224eabc]
./a.out[0x400e2a]
./a.out[0x400bfb]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f2f121eb830]
./a.out[0x4008e9]
Аноним 30/09/16 Птн 23:15:44 #236 №848758 
>>848756
Я сомневаюсь, что он так делает, это слишком непредсказуемо и умно для с++.
Аноним 30/09/16 Птн 23:18:21 #237 №848760 
>>848758
>непредсказуемо
NRVO — это более чем предсказуемо.

Class a;
Class b;

a = Class(b); <-- выкинуть тут Class и превратить это в a = b — более чем предсказуемо.
Аноним 30/09/16 Птн 23:26:44 #238 №848765 
>>848760
А какой тогда вообще смысл в конструкторе копирования, если его нельзя применить? Только перегружать равенство, но это несколько иное.
Аноним 30/09/16 Птн 23:28:25 #239 №848766 
>>848765
>А какой тогда вообще смысл в конструкторе копирования
Копировать объект.
> если его нельзя применить?
В смысле?
Аноним 01/10/16 Суб 00:15:02 #240 №848779 
>>848766
Вот у меня есть конструктор копирования, приведи пример, как я должен его применять.
Синтаксис конкретно этого куска взят, кстати, с сайта мелкомягких.
Аноним 01/10/16 Суб 00:18:35 #241 №848782 
>>848779
>Вот у меня есть конструктор копирования, приведи пример, как я должен его применять.
Чего ты хочешь? Чтобы он гарантированно вызвался?

> Синтаксис конкретно этого куска взят, кстати, с сайта мелкомягких.
К чему ты это написал?
Аноним 01/10/16 Суб 00:26:02 #242 №848783 
>>848782
Да, я хочу чтобы он вызвался. Иначе зачем мне функция, которую не вызвать. Объяснять к чему это я не буду.
Аноним 01/10/16 Суб 00:26:42 #243 №848784 
>>848783
polynom(m1+m2);
Аноним 01/10/16 Суб 00:28:06 #244 №848785 
>>848784
И куда он, извините, копирует?
Аноним 01/10/16 Суб 00:30:06 #245 №848786 
>>848785
Да, не то.
polynom m4(m3);
Аноним 01/10/16 Суб 00:54:11 #246 №848791 
>>848786
Уникальнейший синтаксис, ранее не встречаемый мною.
m4.polynom(m3);
Мне кажется что вот так.
Аноним 01/10/16 Суб 00:56:24 #247 №848792 
>>848791
Конструкторы нельзя вызывать, у них нет имён.
Аноним 01/10/16 Суб 00:58:01 #248 №848793 
>>848792
Ок, переправлю.
Аноним 01/10/16 Суб 10:57:16 #249 №848841 
>>848792
Но это же не объясняет почему вызывается конструктор.
Аноним 01/10/16 Суб 12:09:00 #250 №848872 
>>848792
Конструкторы можно вызывать (гугли placement new)
Аноним 01/10/16 Суб 12:47:28 #251 №848887 
Сап, аноны. Пришла в голову идея учить на C++ геймдев.
Имеется не до конца прочитанная книга Шилдта "Базовый курс" 2014-го. Почему не читаю до конца? Потому-что заебался и просто читать без практики нудно. Решил просто начать делать что-нибудь и, если будет непонятно, курить мануалы, книгу и гугл.
Посему вопрос: с чего вообще начать в этом?
Алсо, скажу, я не долбоеб и понимаю, что сразу начать с "мнагамилеоныхтридэигртипагэтэа" я не смогу, поэтому надеюсь на ссылки мини-игр, типа тетриса, 2д и прочего.
Аноним 01/10/16 Суб 13:39:09 #252 №848912 
>>848872
Я имею в виду по имени.

ТАК-ТО ДА, КОГДА ТЫ СОЗДАЁШЬ ОБЪЕКТ, ВЫЗЫВАЕТСЯ КОНСТРУКТОР. ОХУЕТЬ ТЫ МЕНЯ ПРОСВЕТИЛ.
Аноним 01/10/16 Суб 14:18:01 #253 №848921 
>>848887
Читай Доусона(Dawson) для основ, по делу - гугли и учи SDL или SFML, можешь для первого загуглить Remaking Cave Story in C++, хоть там много говнокода и неосвобожденной памяти, но для новичка сойдет
Аноним 01/10/16 Суб 14:46:53 #254 №848933 
Напомните мне название плагина для vim, в котором охуительный комплит от шланга есть. Уже кто-то советовал, но никак не могу найти в архиве.
Аноним 01/10/16 Суб 15:03:25 #255 №848937 
>>848933
Visual Studio
Аноним 01/10/16 Суб 15:15:54 #256 №848940 
>>848933
Youcompletememe.
sageАноним 01/10/16 Суб 15:17:46 #257 №848943 
>>848933
Как это ни странно, он называется clang_complete
Аноним 02/10/16 Вск 14:52:45 #258 №849335 
Сап ананасы. Я сейчас ковыряюсь с проектом, который весь из себя шаблон через шаблон а-ля метода из книжки Александреску. В итоге, дело идет неебически медленно.

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

Для новичка это все выглядит пиздецки ебануто.

Подскажите, может есть какая метода, позволяющая как-то в подобном коде разобраться?
Аноним 02/10/16 Вск 16:15:43 #259 №849396 
Анон, а есть что почитать про заполнение формы отчёта по шаблону в ворд на вижуал си++?
Аноним 02/10/16 Вск 16:19:46 #260 №849397 
>>849335
Я, обычно, беру чистый файлик в блокноте, и пишу туда стек вызовов, кусочки кода и тд.

Чтобы потом четко и ясно на 1 экране была полная картина что и как работает, и где что править
Аноним 02/10/16 Вск 16:20:47 #261 №849399 
>>849335
Нету никаких методик. Это называется write-only код. Не факт что его автор хорошо помнит что тогда выражал этим.

Лучше возьми другие исходники, тем более что ты нюфаг — не тарть время на бесполезную хуйню.
Аноним 02/10/16 Вск 17:28:25 #262 №849432 
Пишет чмо в крестах, помогите.

В конструкторе класса Game
vector<Player*> players;
for (int i=0; i<8; i++) player.push_back(new Player());

В теле одного из методов класса Game
for (int i=0; i<8; i++) player.someMethod(some_arg);

Компилируется, но на третью строку при запуске ругается Debug assertion failed. C++ vector subscript out of range. Что я делаю не так?
Аноним 02/10/16 Вск 17:44:06 #263 №849445 
>>849432
>Компилируется, но на третью строку при запуске ругается Debug assertion failed. C++ vector subscript out of range. Что я делаю не так?
Непонятно как такой код вообще скомпилировался, учитывая что ты обращаешься к элементу не по индексу и через точку вытаешься вызвать метод указателя...

А вообще — для уёбищ вроде тебя, которые не в состоянии перебрать вектор без эксепшена, сделали range based for.
Аноним 02/10/16 Вск 17:55:37 #264 №849453 
>>849445
Опечатался.
for (int i=0; i<8; i++) players.someMethod(some_arg);

Я проверил players.size(), он оказался равен нулю. Пробовал и вот так наполнять:

vector<Player> players(8, Player())

Все равно он пустой. Кстати players это член класса Game.
Аноним 02/10/16 Вск 17:56:24 #265 №849454 
>>849453
Весь код выложи куда-нибудь, заебал.
Аноним 02/10/16 Вск 17:58:00 #266 №849456 
>>849399
Хех, если бы я мог взять другие исходники. Это на работе, а я типа юный подаван.

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

Еще этот чудесный код собирается только в 2008-й студии. Соотв., ни std::thread тебе, ни nullptr и т.д.
Аноним 02/10/16 Вск 17:59:05 #267 №849457 
>>849453
Какого хуя ты обращаешься к указателю, как к объекту?! Ежели эта хуйня каким-то магическим образом собралась у тебя, очевидно, что ты пытаешься обратиться вне вектора (очевидно, sizeof(Player) > sizeof(size_t))
Аноним 02/10/16 Вск 18:02:03 #268 №849461 
>>849457
>> проебал твой фикс
быстрофикс

Посмотри, в каких местах еще используется players.
Аноним 02/10/16 Вск 19:06:03 #269 №849526 
>>849461
Все оказалось до неприличия просто. У меня уже было определение players в заголовочном файле, и я зачем-то переопределил его в local scope метода.
Аноним 02/10/16 Вск 19:32:33 #270 №849542 
>>849396
Решил свой вопрос на шарпе, лол. Оказывается после плюсов эта фигня оказывается легче
Аноним 02/10/16 Вск 21:05:28 #271 №849624 
Очередной идиотский вопрос от нафани. Чем чистый си отличается от с++?
Аноним 02/10/16 Вск 21:06:20 #272 №849626 
Нужно сделать api к базе данных(mysql).
Посоветуйте что можно использовать для сервера, какие есть годные фреймворки.
В проритете - готовые решения.
Нагуглил связку nginx + fastcgi daemon, но хотелось ещё вариантов.
Аноним 02/10/16 Вск 21:29:20 #273 №849647 
>>849624
ключевыми словами class и template
Аноним 02/10/16 Вск 22:29:03 #274 №849691 
>>849624
С++ же просто надстройка над си. Даже крестовые классы это просто запутанная функция на си
Аноним 02/10/16 Вск 22:39:27 #275 №849697 
>>849691
С же просто надстройка над ассемблером. Даже сишные функции это просто запутанные CALL/RET.
Аноним 02/10/16 Вск 22:44:59 #276 №849699 
>>849697
Ассемблер же надстройка над машинными кодами. Даже CALL/RET - какие-то там циферки опкодов. А те в свою очередь надстройка над логическими элементами, которые в свою чоередь надстройка над току бегающему по камушку. Он в свою очередь надстройка над атомами и молекулярной сеткой. И эта рекурсия конца не имеет.
Аноним 02/10/16 Вск 23:03:04 #277 №849713 
>>849699
где-то в районе кварков кончается жи все
Аноним 02/10/16 Вск 23:08:22 #278 №849719 
>>849713
Этого наука точно ещё не установила.
Аноним 03/10/16 Пнд 00:34:02 #279 №849752 
>>849719
Вот и доказали что количество отличий си от с++ стремится к бесконечности пополам. Почему пополам,хз, в математике не силен может надо квадратный корень
Аноним 03/10/16 Пнд 10:26:22 #280 №849859 
Сап крестач! В общем дело такое, я понемножку вкатываюсь в мир сисиплюса, ранее не программировал, занимаюсь с ментором! Дали задание на дом: сделать с помощью массива [3][3] - матрицу, при чем чтобы элементы матрицы запрашивались с клавиатуры, а в конце консоль выдавала полностью матрицу в правильном виде! По сколько я тупой ньюфаг, я решил создать 9 переменных и каждой из них с помощью scanf присваивать значение, ментор обоссал меня (полагаю что и вы сейчас сделаете тоже самое, но срашивать не у кого) и сказал что это тупо, и что нужно делать с помощью операторов for и while, подскажи легион как пральна?
Аноним 03/10/16 Пнд 11:04:39 #281 №849873 
>>849626
Бамп
пратаёб 03/10/16 Пнд 12:46:32 #282 №849914 
Изучил главу с пространствами имён - нормально пошла.
sageАноним 03/10/16 Пнд 13:27:04 #283 №849937 
>>849914
Держи нас в курсе, блядь.
Аноним 03/10/16 Пнд 17:00:02 #284 №850054 
>>849859
http://g.zeos.in/?q=%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0%20%D0%BD%D0%B0%20c%2B%2B

как же вы заебали
Аноним 03/10/16 Пнд 17:01:29 #285 №850055 
>>849914
Теперь можешь навернуть Александреску
Аноним 03/10/16 Пнд 17:30:52 #286 №850067 
>>850055
И пойти писать на D.
Аноним 03/10/16 Пнд 17:32:59 #287 №850069 
В порыве прокрастинации начал читать 4 издание "The C++ Programming Language" в оригинале.
Запилил игру "Жизнь" на коленке. Обоссыте: https://github.com/TatriX/ai/blob/master/game-of-life/main.cpp
Аноним 03/10/16 Пнд 17:35:47 #288 №850076 
Какой мудак додумался в шапке стишки писать, совсем охуели поэты блять
Аноним 03/10/16 Пнд 17:44:20 #289 №850082 
14755058604810.png
Подскажите, почему в данном случае работать с указателями, а не напрямую. То есть если запустить так, то всё работает прекрасно, а если разкомментировать в main кусок, а другой закомментировать, то он будет выдавать совсем не то, что нужно. Возможно вопрос очень глупый, но я пока только разбираюсь в указателях и почему они нужны.
http://ideone.com/uluMMf
Аноним 03/10/16 Пнд 17:47:13 #290 №850085 
>>850082
Потому что у тебя slicing происходит.
Аноним 03/10/16 Пнд 17:52:33 #291 №850089 
>>850082
long n = 4;
int a = n;
a = 3;
и ты хочешь, чтобы у тебя n тоже стало 3? вся суть твоего вопроса
Аноним 03/10/16 Пнд 17:58:19 #292 №850095 
>>850082
Как там этим вашим полиморфизмом пользоваться? Так типа: http://ideone.com/mb84jS
Аноним 03/10/16 Пнд 18:00:02 #293 №850099 
>>850085
Буду гуглить, спасибо.
>>850089
То есть нужно работать именно с тем объектом, который хранится именно по данному адресу, а не с тем, что находится где-то ещё?
Аноним 03/10/16 Пнд 18:01:30 #294 №850102 
>>850069
ссаными тряпками за такое https://github.com/TatriX/ai/blob/master/game-of-life/main.cpp#L6
Using Pattern = std::vector<Point> или дваже std::array<N, Point> https://github.com/TatriX/ai/blob/master/game-of-life/main.cpp#L27

constexpr Pattern block = {...}; https://github.com/TatriX/ai/blob/master/game-of-life/main.cpp#L32
зачем нужны w, h; если есть уже size() в векторе? https://github.com/TatriX/ai/blob/master/game-of-life/main.cpp#L57
Аноним 03/10/16 Пнд 18:03:15 #295 №850105 
>>850099
> То есть нужно работать именно с тем объектом, который хранится именно по данному адресу, а не с тем, что находится где-то ещё?
У тебя есть два петуха. Ты отрубил голову одному, но хочешь, чтобы сдохли два. Два разных объекта никак вообще друг с другом не связаны.
Аноним 03/10/16 Пнд 18:07:50 #296 №850111 
>>850102
> ссаными тряпками за такое
Ой, ладно, ну лень мне было в программе на сто строк везде писать std::
> Using Pattern
> constexpr Pattern block = {...};
Про это еще не читал.
> зачем нужны w, h; если есть уже size() в векторе?
Затем что вектор это про хранение клеток, а не про размер поля. Да и за высотой тогда неудобно ходить будет. Или решу я поменять вложенные вектора на один длинный.
Аноним 03/10/16 Пнд 18:09:09 #297 №850113 
>>850105
На словах я конечно понимаю, попытаюсь ещё раз осознать на деле. Спасибо.
Аноним 03/10/16 Пнд 18:13:06 #298 №850119 
>>850102
>ссаными тряпками за такое
Ой иди нахуй пидор, using для этого и придумано, всегда так делаю. Книжечку какую-нибудь модную прочитал, что за это надо чморить? Нацики охуели.
Аноним 03/10/16 Пнд 19:20:09 #299 №850157 
>>850085
>>850099
Да, чёт я погнал про slicing.
Аноним 03/10/16 Пнд 19:39:59 #300 №850165 
>>849397
Стек вызовов там, кстати, угарно отображается. Завтра скрин сделаю.
Аноним 03/10/16 Пнд 19:48:30 #301 №850169 
14755133107480.jpg
Анон, помоги пожалуйста. Если пользователь вводит строку "A build 2 : 3,3 : 1,2,3,4,5,6", как мне то, что между доеточий засунуть в 1 вектор, а то, что после второго двоеточия - во второй?
Аноним 03/10/16 Пнд 19:49:38 #302 №850170 
>>850169
И еще, коммы убрать нужно между цифр
Аноним 03/10/16 Пнд 22:21:55 #303 №850213 
>>850067
Так, с Александреску я прикол понял. А вот про D нет. Может кто объяснить?
Аноним 03/10/16 Пнд 23:11:43 #304 №850233 
>>850169
std::string::find_first_of
Аноним 04/10/16 Втр 07:16:28 #305 №850298 
Решил посмотреть Куду и не понимаю, почему не считается.
http://pastebin.com/jYi3siLX

Аналогичный код на C++ AMP считается без проблем.
http://pastebin.com/qyakqxq2
Аноним 04/10/16 Втр 08:37:09 #306 №850310 
>>850213
Он сейчас его развитием занимается, это такие "плюсы без костылей".
Аноним 04/10/16 Втр 11:05:39 #307 №850354 
>>849691
У меня от этого SSL_METHOD
Аноним 04/10/16 Втр 15:44:28 #308 №850487 
>>850298
>> cudaMalloc((void)&CU_POSR, *2);
что за указатель?!
>> N
в каком месте он установлен, это дефайн?
он не превышает число допустимых тредов, случайно?
Аноним 04/10/16 Втр 15:50:34 #309 №850497 
>>850487
>> for (int next = 0; next < N; next++) {
>> if (first != next) {
>> cuAX_M[first] = 0.1 (cuPOSX[next] - cuPOSX[first]) / sqrt((cuPOSX[next] - cuPOSX[first])(cuPOSX[next] - cuPOSX[first]) + (cuPOSY[next] - cuPOSY[first])(cuPOSY[next] - cuPOSY[first]));
>> cuAY_M[first] = 0.1 (cuPOSY[next] - cuPOSY[first]) / sqrt((cuPOSX[next] - cuPOSX[first])(cuPOSX[next] - cuPOSX[first]) + (cuPOSY[next] - cuPOSY[first])(cuPOSY[next] - cuPOSY[first]));
>> }
>> }
Что это за хуйня? Зачем ты сначала пишешь в память, причем в одну и ту же много раз подряд и получаешь оттуда значение после последней записи, если уж оно так и должно быть (хотя я крайне в этом сомневаюсь), то какого черта ты не использовал локальные переменные (которые хранились бы в регистрах)
Аноним 04/10/16 Втр 17:33:01 #310 №850550 
14755915811620.png
Под линукс в qt-паке идет только gcc.
Допустим мне нужно собирать экзешники и под gcc, и под msvc (под линуксом, да, собирать экзешники, почему-то в гугле ничего подобного нет, будто нельзя сидя под одной осью делать софт под другую)
Как сделать это, как замутить киты ?
Аноним 04/10/16 Втр 17:44:40 #311 №850559 
>>850550
Плохо гуглишь, по запросу "qt crosscompilation".
Аноним 04/10/16 Втр 18:04:42 #312 №850565 
>>850550
Не видел, чтобы такую хуйню вообще кто-то вытворял, знаю, что когда собирают софт под мак, виндусь и линупс под каждую выделяется хотя бы виртуальная машина с отдельным сборочным сервером.
Аноним 04/10/16 Втр 18:18:26 #313 №850576 
>>850565
>850550
>Не видел, чтобы такую хуйню вообще кто-то вытворял, знаю, что когда собирают софт под мак, виндусь и линупс под каждую выделяется хотя бы виртуальная машина с отдельным сборочным сервером.
А разгадка одна - тестирование. Ничего не мешает конпилить все где-то на линупсе, а потом раскидывать бинарники по воркерам и тестить. Но это хуйня, потому что билдеров и так должно быть много, а значит там уже есть виртуалки
Аноним 04/10/16 Втр 19:37:01 #314 №850616 
14755990212790.png
>>849397
Вот так выглядит там стек вызовов. К слову, прога из ИДЕ не запускается, разваливается с какой-то ебанутой ошибкой доступа.
Делал путем аттача к запущенному процессу.

Длина одной такой строчки порядка 800 символов, хех.
Аноним 04/10/16 Втр 20:19:36 #315 №850661 
>>850616
Чёт какой-то пиздец
Аноним 04/10/16 Втр 20:27:52 #316 №850669 
>>850661
это С++, С++ это пиздец
Аноним 04/10/16 Втр 20:36:05 #317 №850675 
>>850669
>>850661

Я все же больше склоняюсь к тому, что у аффтара что-то с головой было не так.
Аноним 04/10/16 Втр 20:37:12 #318 №850678 
>>850616
В хуяндексе работаешь?
Аноним 04/10/16 Втр 20:43:38 #319 №850687 
>>850678
Нет, в госконторе. Правда, ебля с этим проектом сильно бьет по мотивации. Я даже сроков не могу предсказать, когда я закончу внесение правок в него (предполагая, что я смогу это сделать за конечное время).
Аноним 04/10/16 Втр 23:05:26 #320 №850786 
14756115261820.png
Как из этого понять в какой строке у меня лишняя память выделяется?
Аноним 04/10/16 Втр 23:14:57 #321 №850789 
>>850786
Где вот такая хуита написана, там точно течет
ip = static_cast<int *>(malloc(sizeof(int)));
Аноним 04/10/16 Втр 23:29:53 #322 №850800 
>>850789
Да я вроде везде где так делаю потом free пишу... И это не зависит от количества входных данных, всегда одинаковое кол-во памяти висит.
Аноним 05/10/16 Срд 00:26:10 #323 №850815 
>>850576
как ты будешь линковать с виндовыми DLLками, ирод?
Аноним 05/10/16 Срд 00:27:49 #324 №850816 
>>850661
Держись, анон. Это правда какая-то лють. Но, вполне вероятно - без этого говна было бы еще сильно хуже

Анон-посоветовавший-тебе-почитать-Александреску
Аноним 05/10/16 Срд 00:28:35 #325 №850818 
>>850800
ну у тебя валгринд не нашел утечку, если што
обосравшийся 05/10/16 Срд 09:06:20 #326 №850902 
Как сделать доступными переменные из некого пространства имён объявленные в другом файле многофайлового проекта? Надо ли так делать
Аноним 05/10/16 Срд 09:45:41 #327 №850912 
>>840964 (OP)
Здратити)
Подскажите что нибудь по бекенду на с++, хочу запилить свой хоумпедж
Аноним 05/10/16 Срд 10:26:22 #328 №850926 
Поянице вкратце плиз. Вот я хочу сделать функцию-метод, которая вызывает другие функции-методы, которые вызывают другие функции методы. Как это сделать на крестах?
То есть мне нафиг не нужны параметры-аргументы, мне просто нужна отсылочка так сказать. По базовым запросам по теме функции такого не объясняется, только с параметрами. Какую тему мне вообще погуглить?

ПС насколько помню, в яве я запросто это делал, а в крестах чет не получается
Аноним 05/10/16 Срд 10:30:07 #329 №850927 
>>850902
static
>Надо ли так делать
нет
Аноним 05/10/16 Срд 10:38:32 #330 №850931 
>>850550
Это все хуита, как минимум заводи виртуалку. У меня прямо сейчас прекрассно работающий на CLang проект не линкуется на MSVC
Аноним 05/10/16 Срд 11:35:30 #331 №850947 
>>850926
>я хочу сделать функцию-метод, которая вызывает другие функции-методы, которые вызывают другие функции методы.
А как ты из main() вызываешь обычную func1(), которая вызывает другую обычную func2()?
Аноним 05/10/16 Срд 11:46:01 #332 №850955 
>>850947
//f1 мне нужна не столько как функция. а просто как отсылка к началу цикла, других отсылок, кроме как вызова функции я не знаю, если знаешь-подскажи
//одна из функции функции, которая вызывает функции
void f1() {
if (bla){
bla;
bla;
..}
};

//функция с функциями, логично, вызывает функции
void f() {
f1();
f2();
};


//если условие такое-то, делает то-то и вызывает функцию с функциями
if (bla) {
bla;
bla;
..
f();
};

обосравшийся 05/10/16 Срд 12:20:52 #333 №850967 
>>850927
>> static
Это значит что данные из пространства имён имеют доступность только в одном файле? Ещё видел что делают заголовочный файл с обьявлениями без инициализации в пространстве имён. И суют этот хедерфайл где требуется. Так нужно? Или надо по другому строить программу(парадигма?)
Аноним 05/10/16 Срд 12:44:57 #334 №850981 
Плюсач, вот поясни, почему unordered_set нельзя изначально было назвать hash_set? Последний короче и как бэ в любом случае намекает, что элементы неупорядочены. Поклонники стандарта говорят, мол unordered подразумевает, что каждый желающий может реализвать свою версию контейнера, и не обязывает основываться на хэшъ таблице.

Но тогда НАХУЯ у unordered_map наружу торчат методы rehash(), bucket_count(), load_factor()? Вот я работаю в фирме, которой захотелось сделать заточеный под свои нужды unordered_map, внутри которого массив и линейный поиск. Как я тогда должен сделать rehash() и bucket_size()?

И второе, если слово unordered умышленно скрывает внутреннее устройство, то зачем метод rehash() раскрывает его?
Аноним 05/10/16 Срд 13:13:35 #335 №850998 
Парни, я кажется вкурил.
Я просто забил на матчасть.

1)В .h файле я должен написать декларацию функции(по параметрам), которую собираюсь создать. То есть в моем случае без параметров это будет просто void f();

2)В .cpp файле я должен написать определение функции, то есть что она делает. То есть void Class::f () { }; (могу ли я записать это в .h файле сразу под декларацией?)

3)И затем уже в самом классе я могу вызывать функцию просто написав f(); -верно? (нужно ли при вызове писать void?)

>>850959
>>850939
То есть вызов функции здесь будет :
код...
код...
checkEN();
dead();
код...
код...



Верно?


И еще вопрос уже о другом немного.

У меня есть определенные данные. Потоки, функции и тд.
У меня есть куча .cpp с разными классами.
Мне нужно как-то по-простому включить эти данные в в .cpp файлы, чтобы ясен пень не копировать каждый раз.
Как это сделать?

Вот в любой .cpp файл я включаю(#include) data.h.
data.h декларикует класс в data.cpp.
Как сделать так, чтобы класс data 'слился' с любым другим классом .cpp? То есть если я просто сделаю #include то с точки зрения комплиятора это будет выглядеть как разные классы, идущие поочередно, без зависимостей от друг друга.

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


ПС и самый неважный косметический вопрос, у с++ есть паки, в которые можно складывать классы?
Я ява допустим есть Проект->Паки->классы-файлы. Можно в один класс включить другой import.packagename.classname.
Можно также сделать с с++?
Аноним 05/10/16 Срд 13:17:32 #336 №851001 
>>850487
> cudaMalloc((void)&CU_POSR, size*2);
Там так, опечатался.
> N
Это const int
http://pastebin.com/XwfVxBsG

>>850497
Спасибо, поправил.
Аноним 05/10/16 Срд 14:16:47 #337 №851035 
>>850998
1. да, но если у тебя класс будет использоваться ИСКЛЮЧИТЕЛЬНО ЕДИНОЖДЫ, например, как скрытая реализация, то можно его определить в файл сорцов (cpp)
2. да, например
class C {
void f() {
printf("f()\n");
}
}
3. не нужно

Какие данные, их разве нельзя уместить в один заголовочный (h) файл и потом везде, где нужно, инклюдить?
Аноним 05/10/16 Срд 15:24:58 #338 №851080 
>>850981
1) Легаси блять. У майкрософта вроде уже была такая хуитка в стандарте;
2) Чтобы созвучно было, лол. Так же хорошо помогает забыть об обосрамсе комитета с hash_map.
Аноним 05/10/16 Срд 15:52:31 #339 №851100 
>>850967
>Это значит что данные из пространства имён имеют доступность только в одном файле?
Это значит что переменная доступна до окончания программы
>Ещё видел что делают заголовочный файл с обьявлениями без инициализации в пространстве имён. И суют этот хедерфайл где требуется. Так нужно?
Так можно. Так например настройки программы реализуются которые нужны во всех ее частях. Но вообще, объявлять переменную и не инициализировать это моветон.
>Или надо по другому строить программу(парадигма?)
Понимаешь, если ты будешь всюду пихать глобальные переменные бездумно, то нахуя ты вообще плюсы изучаешь? Можешь джаву например попробывать, или там дотнет какой.
Аноним 05/10/16 Срд 16:05:38 #340 №851108 
подскажите пожалуйста!

В общем как сосчитать с бинарника динамический массив, подскажите как это сделать пожалуйстаа..

или куда посмотреть, а то способов много а у меня не получается ни один
Аноним 05/10/16 Срд 16:20:30 #341 №851113 
>>851108
mmap
Аноним 05/10/16 Срд 16:36:44 #342 №851121 
>>851113
ты крут конечно,
но там еще всё страшнее..

есть что по проще?:)
размер файлика примерно 1Mb
Аноним 05/10/16 Срд 16:38:21 #343 №851124 
>>851121
и да, я изучаю язык с помощью vs
Аноним 05/10/16 Срд 16:40:40 #344 №851127 
>>851035
Спасибо.


На счет данных.

Вот есть у меня декларация класса HelloWorld в .h

Затем у меня есть иницилизация элемента класса HelloWorld в .cpp


У меня есть данные: переменные и функции. Все это надо чтобы было включено в иницилизацию класса, любого, а не только HelloWorld.


Проблема еще в том, что в data есть осылки к текущему объекту класса( то бишь this).

В итоге я сейчас ломаю голову как это сделать.
Надо создать функцию void Data(), но тогда её надо полноценно декларировать, да я еще хз надо ли пихать класс.
Ууу, как с непривычки запутанно.







Аноним 05/10/16 Срд 16:50:45 #345 №851133 
>>851001
Вот неокончательный вариант.
http://pastebin.com/BD0p1XaK

Если создать CUDA-аналог, по большей части void APM_Math() заменить на:
http://pastebin.com/YZYf8qv3
То ничего не считается, но компилируется нормально.
Аноним 06/10/16 Чтв 09:49:53 #346 №851426 
>>851127
Запутанно потому что ты, мудило, даже не можешь открыть книжку и почитать про наследование, зато уже наспамил на сосач и выебал всем мозги.
Аноним 06/10/16 Чтв 10:34:50 #347 №851439 
Если у меня есть написанная вручную либа .lib, и она находится в одном солюшне с проектом, куда ее нужно линковать, как это сделать с помощью cmake?
Аноним 06/10/16 Чтв 10:53:24 #348 №851443 
>>851080
А что за история с обосрамсом hash_map была?

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

Никак не можем придумать название обволакивающего интерфейса, UnorderedSet слишком длинно и напоминает СТЛ, а HashъSet слишком конкретно и намекает на внутренние детали имплементации.
Аноним 06/10/16 Чтв 10:55:28 #349 №851444 
>>851108
можно паре итераторов ofstream следать copy в вектор через back_inserter, получится в три строчки
Аноним 06/10/16 Чтв 10:56:02 #350 №851445 
Устроился на работу чтобы кодить на vhdl, а посадили за плюсы на билдер шестой. Ни плюсов ни билдера не знал. Помыкавшись чутка освоился и мне дали задание - найти причину вылета программы с синим экраном. Точнее не так.
Есть прога на плюсах, которое что то отсылает и принимает с оборудования через пси плату с которой прога работает через драйвер по прерываниям. Данную плату надо сначала открыть, проиницилизировать, а по окончанию остановить и закрыть.
Когда отключаешь оборудование, выходишь из программы и включаешь оборудование обратно, возникает синий экран смерти.
Вопрос - что мне рассмотреть в первую очередь в коде программы? Есть подозрение, что тут косячит неправильное закрытие пси платы. Или какая то бабуйня с потоками или что-то с динамической памятью. Я вообще без понятия. Помогите братцы!
Аноним 06/10/16 Чтв 13:59:35 #351 №851535 
>>851445
наверняка какой-нибудь дискриптор не чистится, или обращение к нему идет после чистки.
Аноним 06/10/16 Чтв 14:26:45 #352 №851549 
>>851535
Надо зачекать. Именно после выключения оборудования и после выхода из программы, а потом включении оборудования выходит синий экран. Почитал про ошибку, что то про обращение аппаратуры к запрещенным участкам памяти
сокеты Аноним 06/10/16 Чтв 15:55:06 #353 №851579 
Понимаю, что вопрос про сети, а не язык C++.
Учусь программировать на C++, потому вопрос сюда.
Есть сервер, сервер запускает поток ожидания подключения клиента, поток ожидания получает сокет клиента и создает для него новый поток обмена данными.
Общение с клиентом происходит через recv() и send(), которые блокируют поток до send() и recv() со стороны клиента.
Поток обмена клиента будет иметь доступ к recv_buff, recv_buff_len, send_buff,send_buff_len. К этим же объектам будет иметь доступ код работы с клиентом, который будет просто знать, что если в recv_buff_len что-то отличное от нуля, то надо считать recv_buff_len байт из recv_buff. Так же и с send_buff.
Но тогда потребуется 2 потока, так как recv() и send() блокируют поток и не могут независимо обрабатываться в одном потоке, скорее всего и для кода обработки клиента еще поток понадобится.
В общем чувствую что что-то я не так делаю в организации своей программы, подскажите плз, как обычно обрабатывается обмен клиент-сервер. Предполагается что я не знаю когда клиенту приспичит что-то отправить, а когда серверу. Хочется универсальности.


Аноним 06/10/16 Чтв 15:56:16 #354 №851580 
>>851426
Еее, то самое, спасибо. Мне и надо было просто указать на тему.

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

В яве сидишь, просто хуячь функции только так, хоть рекурсую пили-и так сойдет. А в крестах мне пришлось уточнять как это делать. Хотя подумаешь, функция, она и в Африке функция.
Аноним 06/10/16 Чтв 16:05:25 #355 №851584 
>>851579
Читац исходники вебсерверов и прочего, читац статьи про асинхронность, ивентлупы, очереди сообщений и всё остальное.
Аноним 06/10/16 Чтв 16:11:22 #356 №851586 
1 поток на приём, он спавнит на каждого нового клиента свой поток. В этом потоке хэндлится recv. Если в recv есть что-то интересное, кидай в очередь ивент. Ивенты обрабатывай отдельным потоком своими хэндлерами. На пример, если у тебя один из клиентов хочет всем другим разослать сообщение, то он отправляет его на сервер. Поток клиента считывает его, определяет тип ивента и кидает его в очередь. Поток на очереди применяет соответсвтующий хэндлер, проходится по мапе с объектами и рассылает всем сообщение.
Аноним 06/10/16 Чтв 16:11:48 #357 №851587 
>>851579
>>851586
Аноним 06/10/16 Чтв 16:13:38 #358 №851589 
>>851584
>Читай исходники вебсерверов
Я только учу cpp, то что сам написал с трудом понимаю
>читац статьи про асинхронность
Я работаю с синхронными сокетами
> ивентлупы,
Да там что-то про то чтобы не плодить кучу потоков.

Вобщем реализую как могу криво, а потом буду изучать всякие технологии, я прост пока что язык изучаю, а чтобы было интересно пишу делаю свой™ класс для работы с клиент-сервер. Думал, что все как-то проще.
Аноним 06/10/16 Чтв 16:19:04 #359 №851593 
>>851586
Пока что ясно и интересно, надо обдумать.
Аноним 06/10/16 Чтв 17:07:37 #360 №851615 
Неужто та пресловутая CodeLite из шапки есть лучшая среди бесплатных и кроссплатформенных?
мимо в поисках нормальной ide под unix
Аноним 06/10/16 Чтв 17:11:17 #361 №851617 
>>851615
Культякреэйтор, кдевелоп, если есть мощная пока — экипаж с цдт.
Аноним 06/10/16 Чтв 17:11:41 #362 №851618 
>>851617
Пека *
Аноним 06/10/16 Чтв 17:16:16 #363 №851624 
>>851617
>экипаж
Эклипс *
Аноним 06/10/16 Чтв 17:37:18 #364 №851629 
>>840964 (OP)
Поясните за std::string, что это за тип и чем от обычного string отличается? Нахуй он нужен и почему без этого std:: не выходит насрать в гуй?
Аноним 06/10/16 Чтв 17:52:40 #365 №851641 
>>851629
std::string для кирилицы тоже подходит, просто string так не может. для азиатских языков нужен ::string
Аноним 06/10/16 Чтв 19:28:53 #366 №851708 
>>851629
Что за обычный string?
У std::string размер элемента - sizeof(char), то есть 1 байт, естественно, без игры локалями, больше двух языков выдавить из него ничего не удастся, а из азиатских алфавитов - то вообще нехуй делать с таким типом (для этого есть std::wstring - тут уже два байта на элемент), как и сказал уважаемый господин выше.
Аноним 06/10/16 Чтв 20:50:00 #367 №851766 
Можете ответить на пару вопросов? Программирую на PHP, сейчас учусь программированию на C++, как я понимаю строки тут нужно помещать в массив char, к примеру char string[] = "Lorem ipsum dolor sit amet" т.е. одна буква будет равняться одному элементу массива string, а из скольки тогда максимум элементов может состоять массив? Или сколько максимальное количество символов может содержать строка string[]?
И ещё как помещать много строк в переменную? В php это бы выглядело просто
$string = "
Lorem ipsum dolor sit amet
consectetur adipiscing elit.
Ut a dui est. Fusce lobortis luctus augue a
onvallis. Vestibulum ante ipsum primis
...
"
Аноним 06/10/16 Чтв 21:05:41 #368 №851775 
>>851445
Прога не при чём, рушит всё драйвер в ядре.
Аноним 06/10/16 Чтв 21:45:27 #369 №851790 
>>851617
и что из этого все же лучше/удобней?
эй, почему intellij идею сделали фри, а лиона - нет :с
Аноним 06/10/16 Чтв 22:18:11 #370 №851814 
>>851790
vim
Аноним 06/10/16 Чтв 23:19:44 #371 №851874 
>>851766
std::string смотри. char* используют сишники, мамонты, и в редких случаях экстремальной производительности
Аноним 06/10/16 Чтв 23:21:29 #372 №851876 
>>851874
мне нежен char
Аноним 07/10/16 Птн 04:00:09 #373 №852001 
>>851790
кряк есть, работает под 2016.2.2 нормально
Но, у него проблемы с распознаванием имен и еще куча багов, я заебался уже багрепортить им.
Аноним 07/10/16 Птн 11:06:59 #374 №852083 
Поясните за наследованность, я кучу всего перечитал, но все не то.

Есть класс A, который наследует суперкласс. Есть класс B, который наследует тот же суперкласс.

Мне нужно чтобы в одной из функции класса A была функция класса B.

Мои действия:
Наследую в A класс B. Убираю наследование суперкласса в A, так как наследование есть в B.

Затем я в одной из функции класса А вызываю функцию из В, то есть просто пишу void Func();

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

Что я делаю не так?
Аноним 07/10/16 Птн 11:18:21 #375 №852091 
>>852083
http://ideone.com/LB0HR2
Что ты там прочитал, пидор? Ты даже загуглить не пробовал.
Аноним 07/10/16 Птн 11:41:51 #376 №852099 
>>851641
>>851708
Что за хуйню я только что прочитал?
Аноним 07/10/16 Птн 11:52:05 #377 №852103 
>>852091
Вот это вот что?:
A a;
a.foo();

Как это понимать? Что такое a?
Аноним 07/10/16 Птн 11:56:06 #378 №852106 
>>852091
ПС, у меня все заработало, я просто при вызове функции писал void.

Но все равно объясни плизки вот это >>852103
Аноним 07/10/16 Птн 12:27:19 #379 №852119 
14758324393800.png
>>851641
>>851708
Аноним 07/10/16 Птн 12:42:40 #380 №852126 
Учу c++, что нужно учить чтобы делать gui приложения на windows?
Аноним 07/10/16 Птн 12:46:37 #381 №852130 
>>852126
Графический класс. йоба
Аноним 07/10/16 Птн 12:55:01 #382 №852133 
Как через цикл создать несколько 10 файлов?

#include <fstream>
#include <windows.h>

using namespace std;

int main()
{
LPCWSTR szDirPath = L"testdir";
CreateDirectory(szDirPath, NULL);

for (int i = 0; i < 10; i++)
{
ofstream file;
file.open("testdir/text file.txt");
file << "Работа с файлами в С++";

return 0;
}
}
Аноним 07/10/16 Птн 13:29:17 #383 №852168 
>>852126
Qt5_если_ты_хочешь_нативный_гуй,_или_всякие_опенгл_релейтед_вещи_типа_SDL_если_игровой
Аноним 07/10/16 Птн 13:40:01 #384 №852176 
14758368013170.png
Пожалуйста, помогите дебилу, не могущему в ООП
Если конечный класс наследует один интерфейс с чистой виртуальной функцией, и один класс в котором эта функция реализуется, что нужно исправить, чтобы ReB можно было инстанцировать?
http://pastebin.com/sHWFhG8g
Аноним 07/10/16 Птн 13:45:38 #385 №852181 
>>852176
ReB::A() override { ReA::A() };
Аноним 07/10/16 Птн 13:55:56 #386 №852188 
>>851775
В другой проге, использующий данный драйвер и плату, ничего не крашится.
Я смог выловить ошибку на синем экране IRQL_NOT_LESS_OR_EQUAL. Погуглив выяснил, что или драйвер обращается к запрещенному участку памяти то ли ещё хуй знает что.
Надеюсь, что поможешь мне навестись в правильном направлении, а то я совсем нихуя не умею и не знаю.

Пока что решил сделать клон куска программы, как новую прогу, дабы точно локализовать место косяка в коде.
Аноним 07/10/16 Птн 14:07:46 #387 №852197 
>>852181
Спасибо,
Еще один вопрос, если в ReA вместо override - final, это уже никак не исправить, нужно уже разделять интерфейсы, чтобы ImB не содержал ту функцию, которая финализируется в ReA ?
Аноним 07/10/16 Птн 14:57:10 #388 №852230 
>>852197
Тогда, по идее, поможет ReA* biba = new ReB;
Аноним 07/10/16 Птн 16:51:16 #389 №852295 
>>852188
Тебе совсем не понятно, что драйвер не должен крашиться кто бы его ни использовал?

Если его используют некорректно (суют неверные адреса, дескрипторы и любые другие параметры), он должен уметь это обрабатывать и сообщать об ошибке, а не валить систему в BSOD.
Аноним 07/10/16 Птн 17:25:39 #390 №852305 
>>852295
Ну это же шиндовс. Хуяк Хуяк и в продакшен, всё дела.
Аноним 07/10/16 Птн 17:28:39 #391 №852308 
>>852305
Ну так проблема не в программе, а в драйвере.
Аноним 07/10/16 Птн 17:45:22 #392 №852320 
Можно ли настроить переменные среды для студии 2015, чтобы не надо было в каждом проекте прописывать пути к boost? Как это сделать?
Аноним 07/10/16 Птн 18:42:02 #393 №852367 
>>851444
Спасибо.
Я решил не париться с С++.
Лучше в паскале попробую, тот хоть чутка знаю.
Аноним 07/10/16 Птн 18:42:10 #394 №852368 
>>852119
Бля, а ведь точно, про литералы давно не вспоминал.
Аноним 07/10/16 Птн 19:46:28 #395 №852408 
>>852368
А при чём тут литералы?
Аноним 07/10/16 Птн 20:25:53 #396 №852430 
void mem = malloc(sizeof(Header));
mem = ( void
) packet->getHeader().packet_size;
boost::asio::write(*this->m_socket, boost::asio::buffer(mem, sizeof(Header)) );

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

this->m_socket->write_some( boost::asio::buffer(mem, sizeof(Header)) );

Тот же эффект.

>>852320
Каждый раз нужно прописывать вручную через гуи, либо ..
Попробуй освоить cmake, там весь солюшн с либами, путями и прочими долгонастраевыми через гуи вещами генерируется за 2 секунды через батник или сх, если все правильно написал.
Аноним 07/10/16 Птн 20:28:19 #397 №852432 
>>852430
сука
std::cout << packet->getHeader().packet_size << "\n";
void mem = malloc(sizeof(Header));
mem = ( void
) packet->getHeader().packet_size;
Аноним 07/10/16 Птн 20:29:31 #398 №852435 
>>852432
сука
std::cout << packet->getHeader().packet_size << "\n";
void (POINTER)mem = malloc(sizeof(Header));
mem = ( void (POINTER)) packet->getHeader().packet_size;
Аноним 07/10/16 Птн 23:03:10 #399 №852544 
Анон, а есть какие-то библиотеки, чтобы с док-файлами работать?
Что нужно: заполнение по шаблону, подчёркивание и зачёркивание слов.
Аноним 07/10/16 Птн 23:06:14 #400 №852546 
>>852544
https://www.google.com.ua/search?client=opera&q=c%2B%2B+doc+file&sourceid=opera&ie=UTF-8&oe=UTF-8
http://stackoverflow.com/questions/145573/creating-opening-and-printing-a-word-file-from-c
Аноним 07/10/16 Птн 23:12:58 #401 №852549 
>>852546
так, а теперь немного странного: это всё будет работать на ведре? Хочу мультиплатформу замутить.
Аноним 07/10/16 Птн 23:18:25 #402 №852554 
>>852549
У тебя голова на плечах есть? апи под ведро есть - будет, нет апи - не будет.
Аноним 07/10/16 Птн 23:25:44 #403 №852560 
>>852546
> .ua
Някни.
Аноним 07/10/16 Птн 23:27:44 #404 №852562 
>>852560
nya
Аноним 07/10/16 Птн 23:37:01 #405 №852567 
>>852562
Хуйnya
Аноним 08/10/16 Суб 11:28:08 #406 №852723 
>>850816
Прикол в том, что Александреску я быстренько пробежался. Ну да, типа уловил кое-каие принципы. Но код от этого читабельнее не стал, лол.

Ну, пока ковыряюсь в этом гавне. Будет возможность съебать в другое место, где хотя бы будут люди, могущие что-то подсказать и объяснить (или задачи близкие моему уровню), съебусь.
Ибо скилл от ковыряния в этом гавне ни на йоту не растет. Скилл, очевидно, растет когда ты пишешь код в первую очередь. А тут я три месяца пописал код и вручили эту парашу.
Аноним 08/10/16 Суб 12:32:22 #407 №852749 
>>852408
Я через минуту как запостил почитал, что я сказал, и понял, что обосрался.
Аноним 08/10/16 Суб 13:51:57 #408 №852807 
>>852723
На самом деле - скилл растет как раз тогда, когда ты читаешь код. Ты пропускаешь сквозь себя работу других программистов, и постоянно узнаешь что-то новое (и плохое, и хорошее). Когда ты сам пишешь код - ты ничего нового не узнаешь.

тот же анон
Аноним 08/10/16 Суб 15:08:21 #409 №852844 
>>840964 (OP)
Где в шиндовс держать репозиторий третьих вечеринок?
Вот допустим, скачал я проект, которому нужен буст, небо и аллах. Можно ли как-то указать вижал сдудии глобально, где находится папка со всеми собранными либами и заголовками? И чтобы все новые проекты, которые я пытаюсь собрать, сразу смотрели зависимости том, и не сношали мне мозг? и чтобы его можно было просто расширять
Аноним 08/10/16 Суб 16:07:54 #410 №852874 
>>852807
>На самом деле - скилл растет как раз тогда, когда ты читаешь код. Ты пропускаешь сквозь себя работу других программистов, и постоянно узнаешь что-то новое (и плохое, и хорошее). Когда ты сам пишешь код - ты ничего нового не узнаешь.
Пиздеж бессовестный. Скилл повышается именно при написании кода, когда ты сталкиваешься со всеми проблемами и мелочами, с которыми сталкивались те самые хорошие программисты.
Писать свой код с нуля лучше, чем читать чужой. А еще лучше писать свой и читать в процессе чужой, сравнивая свои решения с чужими.
Аноним 08/10/16 Суб 16:15:41 #411 №852881 
>>852844
/usr/lib /usr/include
Аноним 08/10/16 Суб 16:17:35 #412 №852882 
>>852435
ты совсем дурак или толсто траллишь? чем malloc/calloc от new отличается?
Аноним 08/10/16 Суб 16:25:51 #413 №852895 
>>852844
endzhoy your шindows
Аноним 08/10/16 Суб 16:26:17 #414 №852896 
>>852882
Ничем.
Аноним 08/10/16 Суб 18:55:14 #415 №852976 
>>852807
>На самом деле - скилл растет как раз тогда, когда ты читаешь код.
Может у опытных пацанов и так. Для новичков наверное лучше все-таки руку понабивать, освоиться и все такое.
Аноним 08/10/16 Суб 20:22:12 #416 №853011 
Позвольте вам поднасрать.
Почему, когда я использую серийный for, то код ниже перестаёт работать?

[CODE lang="C++"]int main() {
int array[3];
for (auto i=0; i<=3; i++) // или for (auto i : array);
array=i;
for (auto i=0; i<=3; i++) // или for (auto i : array);
std::cout << array;
}[/CODE]
Аноним 08/10/16 Суб 20:24:25 #417 №853015 
>>853011
Звиняюсь за закравшийся табик,
Аноним 08/10/16 Суб 20:41:17 #418 №853021 
>>853011
И за проёбаное в конце предпоследней строчки.
Аноним 08/10/16 Суб 20:57:21 #419 №853028 
Сжирание квадратных скобок - фича программача? Тест: [] [f] [fdfdg]
Аноним 08/10/16 Суб 21:05:41 #420 №853031 
>>853011
ты какую-то хуйню написал полную.
i в одном случае это число от 0 до 3, во втором - это содержимое array
Аноним 08/10/16 Суб 21:21:29 #421 №853036 
>>853031
Хуйня получилась из-за того, что скобочки съелись у array. Просто в книжке аналогичный код, и я сделал тютелька в тютельку. А при вы полнении выскакивает ошибка сегментации.
Аноним 08/10/16 Суб 21:43:22 #422 №853045 
>>853011
Индексы проебал, i < 3 должно быть либо array размером 4.
Аноним 08/10/16 Суб 22:00:51 #423 №853058 
>>853045
Индексы почему-то сжираются при постинге, а <= я давно поправил. Суть-то в том, что обыкновенный for работает, а серийный for - нет (при исполнении - ошибка сегментирования).
Аноним 08/10/16 Суб 22:05:33 #424 №853066 
>>853058
http://ideone.com/xWkEvj
Аноним 08/10/16 Суб 22:18:15 #425 №853085 
>>853066
Ай, точно же. Серийный for возвращает ссылку на элемент. Спасибо, дошло наконец.
Аноним 09/10/16 Вск 00:05:16 #426 №853126 
Насколько это (не) нормально — наследоваться от STL-контейнеров?
Аноним 09/10/16 Вск 01:20:35 #427 №853151 
>>853126
"нормальность" -- это всего-лишь показатель используемости того или иного метода. если ты ориентируешься по этому показателю, то съеби. а так, всё зависит от твоей задачи и о того, перевесят ли плюсы того или иного метода его минусы. обычно от стльных контейнеров не наследуются из-за отсутствия у оных виртуального деструктора, что пускает по шляпе полиморфность и ведёт к ликам. в стль практикуется разделение контейнеров и алгоритмов (те обычно выделены в свободные функции). попробуй сделать на подобии этого. иной вариант сделать так:
template<typename T>
class Yoba {
std::vector<T> vec;
...
};

или, в принципе, вот так
template<typename T>
class Yoba : private std::vector<T>
{
using vector = std::vector<T>;
public:
using vector::push_back;
using vector::operator[];
using vector::begin;
using vector::end;
Yoba operator*(const Yoba & ) const;
Yoba operator+(const Yoba & ) const;
Yoba ();
virtual ~Yoba ();
};
Аноним 09/10/16 Вск 04:50:22 #428 №853194 
14759778222230.png
Антоны, кто тут гуру GCC?

Обьясняю ситуацию. Есть проект, древний, собирается под старые (очень) Винды на новом MiinGW-w64. К бинарнику libstdc++ линкуется статически. Libstdc++ в свою очередь динамически тянет из msvcrt.dll функции. Прикол в том что на говне мамонта под которое надо компилить проект в msvcrt.dll нету всех необходимых экспортов.

Ок. Я взял в руки HIEW и IDA, покопался в таблице импортов получившегося бинарника, посмотрел что же использует эти отсутствующие импорты и понял что их использует функции из libstdc++ которые моим кодом никогда не вызываются. Из таблицы импортов я вынес нахуй эти ненужные импорты, занопил от греха подальше их вызовы и... все заработало. Какой я блядь молодец.

Теперь стоит вопрос об автоматизации этих костылей:

1) Вариант крайний, не предпочтительный. Написать патчер (хоть блядь на шелле с использованием dd или еще какого говна, всеравно под cygwin'ом компилю), который потом в мейке вызывать. Просто и сурово.

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

3) Заставить на этапе линковки ld подменить импорты у статически приделываемой libstdc++. Вот тут я вовсем хз, возможно ли в принцыпе такое провернуть? Правда еще остается вопрос с кодом который вызывает эти импорты. Как я говорил, он в принципе никогда вызываться не должен, но его присутствие всеравно мне не нравится.

Собственно, гуру пикапа GCC и MinGW - подскажите по 2-му и 3-му пункту. Что из этого реально и где про такое почитать?
Аноним 09/10/16 Вск 09:25:20 #429 №853210 
>>853194
Может проще сделать dll-прокладку, которая будет дергать системные функции из msvcrt, где они доступны, или заглушки, если системной функции нет.
Аноним 09/10/16 Вск 11:46:59 #430 №853247 
>>852844
Может все-таки есть у кого идеи по данному поводу?
Аноним 09/10/16 Вск 12:50:14 #431 №853270 
>>853126
Нельзя. У всех STL контейнеров невиртуальный деструктор, соотв-но бибу соснешь.
Если тебе надо как-то что-то кастомизировать - напиши обертку.
Аноним 09/10/16 Вск 13:28:14 #432 №853287 
>>853247
чому бы не использовать cmake?
Аноним 09/10/16 Вск 13:40:43 #433 №853302 
>>853194
Может ты просто поставишь на те машины более-менее свежий пакет Visual C++ Redistributable?
Аноним 09/10/16 Вск 14:38:59 #434 №853323 
>>853210
Ты имеешь в виду подсунуть проксевый MSVCRT, в котором будут сквозные экспорты существующих функций и заглушки для не-существующих? Мне не хочется поставлять еще одну DDL'ку с проектом, да и вариант такой-же топорный как и первый мой предложенный с патчером. Лучше уж патчер тогда.

>>853302
Я проверял этот вариант. Более новые MSVCRT импортят из KERNEL32 и прочих системных DLL функции которых на некроговне нет. И чем новее, тем больше неудвлетворенных зависимостей. Так что приходится работать с дефолтным MSVCRT. Да, проект KernelEx я тоже проверял, но увы оно эмулит далеко не все экспорты KERNEL32 которые нужны новым MSVCRT.
Аноним 09/10/16 Вск 15:06:16 #435 №853338 
>>853323
Тогда собирай на таком же старом mingw, как и твоя винда.
Аноним 09/10/16 Вск 19:13:46 #436 №853455 
>>853287
А что я с ним буду делать? Либы как им собрать я понимаю, а куда бы разместить кучку собранных либ или симлинков на них, чтобы студия автоматом от туда все брала.
Аноним 09/10/16 Вск 19:19:40 #437 №853461 
>>853455
Ну посмотри ты блять в настройках сборки, чё как маленький.
Аноним 10/10/16 Пнд 03:35:06 #438 №853740 
>>853461
Не, ему надо, чтобы они автоматически добавлялись в левые проекты, насколько я понимаю. Начиная с VS2010 убрали возможность делать общие настройки для всех проектов, в общем-то, теперь будешь сосать лапу.
Аноним 10/10/16 Пнд 15:08:54 #439 №853939 
>>852295
Но не переписывать же мне заводской драйвер поставляемый к оборудованию :(
Аноним 10/10/16 Пнд 18:45:08 #440 №854035 
>>851445
развлекайся https://msdn.microsoft.com/en-us/library/windows/hardware/dn745912(v=vs.85).aspx
Аноним 11/10/16 Втр 00:40:48 #441 №854303 
Ананасы, хочу десктопить на крестах (фриланс). Встал вопрос о выборе гуев. MFC почти ничего не дает из коробки + целевая платформа только шиндовс. На QT нужно покупать дорогую лицензию + громоздкость, хоть он и прекрасен. Какие еще стулья есть? wxWidgets ведь для совсем отбитых, зато швабодка и windows/unix/osx в таргетных платформах. Должны быть еще какие-то швабодные кавайные гуи, подскажите пожалуйста.
Аноним 11/10/16 Втр 00:46:13 #442 №854304 
>>854303
>QT нужно покупать дорогую лицензию + громоздкость
лицензия только на статическую линковку, статический кьют +10 мб к экзешнику, максимум.
Аноним 11/10/16 Втр 00:48:55 #443 №854307 
>>854304
То есть я могу в инсталлер класть qt.dll и продавать так программу, не покупая лицензии? Откуда токая инфа?
Аноним 11/10/16 Втр 00:54:44 #444 №854308 
>>854307
>класть qt.dll и продавать так программу, не покупая лицензии
да
>Откуда токая инфа
учи матчасть
Аноним 11/10/16 Втр 01:02:33 #445 №854311 
>>854308
Почитал, понял. Спасибо за инфу, анончик.
Аноним 11/10/16 Втр 04:37:21 #446 №854357 
Есть число, и это число нужно получить прибавляя 6 или отнимая 7 минималтным количествлэом действий. Как это сделать?
Аноним 11/10/16 Втр 05:17:56 #447 №854359 
14761522769110.png
Котаны, умоляю, помогите.
Нужно настроить sdl, sdl_draw и sdl_ttf в visual studio.
Всю ночь сижу, не могу уже, спасайте
sageАноним 11/10/16 Втр 13:03:27 #448 №854538 
>>854359
Ставь линакс.
Аноним 11/10/16 Втр 13:25:56 #449 №854555 
Анон, а почему ты ещё не перешёл на божественный code::blocks?!
Аноним 11/10/16 Втр 13:46:10 #450 №854573 
>>854359
cmake изучи или еще что-нибудь, что позволит тебе генерировать проекты без заебов (хотя смаке мне не очень нравится, но что поделать)
Аноним 11/10/16 Втр 14:11:13 #451 №854583 
>>854573
>cmake
Да лучше самому скрипты сборки писать чем это жрать.
Аноним 11/10/16 Втр 14:36:02 #452 №854601 
>>854359
А SDL есть встроенные возможности рисовать простые фигуры (круги, квадраты, треугольники)?
Аноним 11/10/16 Втр 14:54:27 #453 №854621 
>>854555
Потому-что это кусок говна
Аноним 11/10/16 Втр 14:55:56 #454 №854624 
>>854359
#undef main перед main(), выстави форсированно консольный проект в опциях, и гугли про "SDL stdio_legacy_definition", если начнет гундеть про какое-то говно типа iob_file
Аноним 11/10/16 Втр 15:03:19 #455 №854632 
>>854621
Обоснуй, маня
Аноним 11/10/16 Втр 15:13:17 #456 №854637 
>>854632
Для кроссплатформы есть qtcreator, для шиндовс есть Visual Studio. Какие приемущества у твоей залупы по сравнению с этим?
Аноним 11/10/16 Втр 16:34:42 #457 №854685 
>>854601
Только линии.
Аноним 11/10/16 Втр 17:37:15 #458 №854725 
>>854583
Ну да, я бы и сам не против, только ни одна нормальная IDE не может жрать ни мейкфайлы ни какие-либо другие, кроме своих (за исключением clion'a, который проекты делает на основе cmake). Я бы и сам, конечно, рад перейти на WAF или SCons, только вот ни автокомплита, нихуя тебе не будет, а ебаные полу-редакторы типа VIM или emacs не могут мне позволить жрать громадный проект, при этом следя за вложенными проектами, такие дела.
Вот теперь и приходится жрать, что дают.
Аноним 11/10/16 Втр 19:35:56 #459 №854819 
>>854601
Тогда не пойму, чому его всем советуют. Это локальный мемчик?
Аноним 11/10/16 Втр 19:36:14 #460 №854820 
>>854685
>>854819
быстрофикс
Аноним 11/10/16 Втр 19:46:49 #461 №854832 
>>854601
Читай OpenGL, тебе SDL нужен будет в том случае только для создания контекста. А в OpenGL минимальный набор - полторы функции, которые даже Сталин бы освоил (без расстрела Khronos'а, естественно).
Аноним 11/10/16 Втр 19:47:33 #462 №854835 
>>854819
А в чем проблема написать функцию для рисования квадратов\треугольников самому?

SDL неплохая вещь. я во всех своих уебанских проектах использую
Аноним 11/10/16 Втр 19:51:05 #463 №854838 
14762046659190.png
Посоветуйте ide для линуха, чтобы типа visual studio. Вместо Clion у меня пикрилейтед.
Аноним 11/10/16 Втр 19:52:44 #464 №854840 
>>854838
qtcreator
Аноним 11/10/16 Втр 21:01:05 #465 №854897 
>>854838
Прямо сейчас форматируешь жесткий диск и укатываешься обратно на винду, обмазываясь VS. Глупо в 2k + 2^4 думать, что есть годные IDE кроме VS
Аноним 11/10/16 Втр 21:59:01 #466 №854933 
>>854897
Но vs говно
Аноним 11/10/16 Втр 22:56:43 #467 №854977 
>>854933
VS это лучшее, что случалось с C++, прыщеблядок
Аноним 11/10/16 Втр 23:04:18 #468 №854979 
>>854977
Но вс это тормозящее говно.
другойанон
Аноним 12/10/16 Срд 00:48:28 #469 №855028 
>>854979
vs не тормозит, отличная ide
но всё равно проприетарное зонданутое говно
Аноним 12/10/16 Срд 01:22:33 #470 №855043 
Code::Blocks
Аноним 12/10/16 Срд 01:27:24 #471 №855044 
>>854725
>за исключением clion'a, который проекты делает на основе cmake
И в этом он ничем не отличается от других IDE, использующих свои собственные форматы проектов, т.к. cmake-файлы он переваривает только им созданные.
Аноним 12/10/16 Срд 01:52:07 #472 №855046 
C++. Аноны, срочно.
Есть функция
float huy (float x1, float x2)
{
float X;
X = x1 + x2;
return X;
}
Она считает X.
Мне нужно из другой функции обратиться к этой и вывести X.
Бля, надеюсь понятно.
Я пытался вывести результат посредством
float X1 = huy ();
Но нихуя.
Аноним 12/10/16 Срд 01:53:13 #473 №855048 
>>855046
Короче: как из одной функции вывести результат, посчитанный в другой функции?
Аноним 12/10/16 Срд 02:16:50 #474 №855061 
>>855046
Чё бля нихуя? Ты параметры пробовал функции передавать?
Аноним 12/10/16 Срд 07:41:25 #475 №855118 
>>855044
По сути да, но хотя бы поддерживает хоть какой-то генератор.
Вообще, там очень много просят люди, но жид-брэйнс не спешат реализовывать поддержку, скажем automake или makefiles, потому что других багов достаточно.
Аноним 12/10/16 Срд 12:54:55 #476 №855223 
Кто выдаст ошибку, если не определена функция main и если определено 2 функции main?
В обоих случаях компоновщик когда уже в exeшнике из библиотек будут ссылаться на main, правильно? Потому что компиллятору похер, он не формирует автоматически эту функцию.
Аноним 12/10/16 Срд 13:29:20 #477 №855233 
>>854979
Друг, пора выбросить свой семилетний Атлон
Аноним 12/10/16 Срд 14:24:05 #478 №855251 
Почему stl такая маленькая?
Аноним 12/10/16 Срд 14:29:40 #479 №855259 
>>855251
Потому что там куча больших костылей.♿️
Аноним 12/10/16 Срд 14:58:14 #480 №855285 
14762734943170.png
14762734943171.png
Не могу понять почему так происходит в выделенной строке.
Сначала а присваивается b, потом c присваивается d,
а потом вдруг резко a присваивает d. Почему так ?
Аноним 12/10/16 Срд 15:43:26 #481 №855312 
>>855251
В комитете одни старики, комитет очень забитит производительность и принятием очередного стандарта они пытаются выдавить максимум говна из старых вещей, зачастую не добавляя каких-либо в корне новых. Спустя только 6 лет после появления ЦоПэ11 в библиотеку приехали функции для работы с файловой системой, ну, конечно, всякие ништяки тоже есть (особенно для шаблоноебов полезные, например, сворачивание выражений). Сторонних либ, конечно, итак полно, но самый основной вопрос для меня, где, вашу мать, сериализация?! Мне бы статической за глаза хватило бы, но, блять нет же. Году к 2026, наверно, родят.
Аноним 12/10/16 Срд 15:51:30 #482 №855320 
>>855312
Зачем в ЦоЖоПэ17 добавили if constexpr(), конпеляторы ведь издревне умеют выкидывать неиспользуемые операции при включенных оптимизациях.
Аноним 12/10/16 Срд 15:55:26 #483 №855322 
>>854835
Тащемта нарисовать наклонную линию с антиалайсингом непросто, нужно изобретать велосипед, за что принято расстреливать.
Только готовые либы, например, SDL_gfx.
Аноним 12/10/16 Срд 16:06:11 #484 №855331 
У меня глупый такой вопрос. А вот все эти нововведения, стандарты и добавления в язык/компиляторы, оно ведь только на уровне, так сказать, программиста делается? То есть, можно ли было в 80-ых написать всё то же самое (добиться выполнения некоторых действий/получения результата), что есть сейчас, или есть что-то, что по каким-то причинам именно невозможно, какое бы количество костылей не использовалось? Если есть такое, было бы интересно пример увидеть.
Аноним 12/10/16 Срд 16:32:54 #485 №855345 
>>855285
А ты что ожидал? Что а присвоится с? Так оно уже d.
Аноним 12/10/16 Срд 16:54:01 #486 №855358 
>>855285
Потому что (a = b) возвращает a: http://ideone.com/nP6mv9
(a = b) = c = d -> (выполняются скобки, значение b присваивется a) -> a = c = d -> (значение d присваивается c) -> a = c -> (значение c (равное d) присваивается a) -> a.
Аноним 12/10/16 Срд 17:03:12 #487 №855362 
>>855320
Чтобы вынести что-то там в компайлтайм. Самое смешное, что constexpr не даёт вообще никаких гарантий, лол, это всё такая же услужливая просьба компилятору как inline.
>>855331
Абсолютно всё было реализуемо, просто большинство всё ещё писало на асме/коболе/алголе/обоссаном диалекте лиспа и хотелки были совсем другие. Ну и ограничения на самих компиляторах были другие — попробуй сделать неоднопроходную залупу с всевозможными выводами типов, дедукцией шаблонов, компайлтайм хуитой и тд когда у тебя 640кб (те самые знаменитые, лол) оперативки в лучшем случае. Явно не очередным рекурсивным спуском дело заканчивалось.
Аноним 12/10/16 Срд 17:45:34 #488 №855392 
>>855320
> Зачем в ЦоЖоПэ17 добавили if constexpr(), конпеляторы ведь издревне умеют выкидывать неиспользуемые операции при включенных оптимизациях.
>>855362
> Самое смешное, что constexpr не даёт вообще никаких гарантий, лол, это всё такая же услужливая просьба компилятору как inline.

Вот так выглядит беседа двух олигофренов.
Аноним 12/10/16 Срд 17:51:35 #489 №855395 
>>855392
>constexpr guarantees compile-time evaluation is possible if
https://isocpp.org/blog/2013/12/constexpr
А вот так по-олигофренски работает constexpr, щито оделать, какой язык такая аудитория.
Аноним 12/10/16 Срд 18:28:50 #490 №855416 
>>855395
Шестой гусь уже нормально делает, на 4.8 не смог проверить - сломал библиотеки, лол. Даже без constexpr создает, так что да, constexpr он, вроде как и интересен, но и одновременно бесполезен оказался.
Аноним 12/10/16 Срд 18:37:49 #491 №855419 
>>855395
Ты третьим к ним присоединился, что ли?

В constexp if допускаются только константные выражения (вычисляемые на этапе компиляции). constexpr if ОБЯЗАН отрабатывать в compile-time, т.к., например, в выкидываемой ветке может оказаться вызов несуществующего метода или какие другие конструкции которые не то, что вычислить в рантайме нельзя, но и просто скомпилировать код с ними.
Аноним 12/10/16 Срд 18:55:45 #492 №855426 
>>855419
Я вообще не читал коммент про constexpr if(а просто увидел кейворд и решил набросить о том, как оно работает) но один хуй это чуть расширенная версия ifdef без задач.

Конкретно наброс такой: constexpr, если ему дать не константу просто молчаливо отработает в рантайме, без ошибки и нихуя => юзабельно пока проект пишет 1 человек (и без таймскипов).

Хотя в плюсах вообще все через такой вот анус реализовано, чему удивляться.
Аноним 12/10/16 Срд 19:09:50 #493 №855433 
>>855426
>пок-пок ни как в Ди, ко-ко-ко
>добавляют compile-time if из D
>пок-пок говно без задач, ну хватит уже переусложнять, коко
Вся суть
Аноним 12/10/16 Срд 19:18:55 #494 №855441 
>>855433
При чём тут это мертворожденное говно вообще, поехавший? Нахуя вообще статическая типизации и прочее кококо, если по прежнему нужно искать подобные детские косяки в рантайме?
Аноним 12/10/16 Срд 20:46:36 #495 №855498 
>>855441
>При чём тут это мертворожденное говно вообще, поехавший?
Ну так скажи где сделано нормально.

>>855441
>Нахуя вообще статическая типизации и прочее кококо, если по прежнему нужно искать подобные детские косяки в рантайме?
Вот есть например const методы у классов. Они гарантируют что метод не изменяют состояние объекта к которому применены. Однако, их можно вызвать и для не константного объекта. Т.е. const условно говоря означает что методу хватает для работы и константного объекта. Примерно такая же аналогия работает и для constexpr функций. Модификатор означает что функции "хватит для работы" и компайл-тайма. Это не значит что она будет работать исключительно в компайлтайм, точно также константные методы могут применяться и для неконстантных объектов. Все по аналогии.
Однако для constexpr функций у компилятора шире возможности по оптимизации кода. Если для const функций компилятор зна Кроме того, можно использовать constexpr вычисления в качестве параметров шаблона или в качестве размерности массива, что раньше можно было достаточно геморно.
>если ему дать не константу просто молчаливо отработает в рантайме, без ошибки и нихуя
Так дай ему constexpr константу, даун тупой, будет тебе ошибка.
Аноним 12/10/16 Срд 20:49:37 #496 №855501 
>>855233
ПК не работает без процессора.
Аноним 12/10/16 Срд 21:13:44 #497 №855509 
>>855498
>Так дай ему constexpr константу, даун тупой, будет тебе ошибка.
Что ты за хуйню написал?
>Кроме того, можно использовать constexpr вычисления в качестве параметров шаблона или в качестве размерности массива, что раньше можно было достаточно геморно.
Костыль моего костыля - мне вообще не костыль?
>Однако для constexpr функций у компилятора шире возможности по оптимизации кода
Чем же они отличаются для рантаймового constexpr от const? Занитриговал.
>Ну так скажи где сделано нормально.
В любом диалекте лиспа. Только это вообще не язык, а строительный материал это другие языки, с другими требованиями, и тащить породию на подобный функционал в, блядь, плюсы да и ещё с такой реализацией - веселуха полная.

Кстати, пока знающий шизоид в треде - почему в 11-х плюсах constexpr настолько кастрированные? Причём совсем до сумашествия - тот же тернарный оператор вместо if else.
Аноним 12/10/16 Срд 21:30:48 #498 №855519 
>>855426
> один хуй это чуть расширенная версия ifdef без задач.
Гениев (буду политкорректен) полон тред...

На этапе препроцессинга у тебя нифига кроме токенов нет, а на этапе constexpr if есть доступ к информации о типах, можешь type traits использовать на полную катушку.
Optical character recognition Аноним 12/10/16 Срд 22:03:57 #499 №855553 
Подскажите, какие существуют открытые библиотеки для распознавания текста с изображений с возможностью подключения в С++? Помимо OpenCV и TesseractOCR
Аноним 12/10/16 Срд 22:11:58 #500 №855556 
>>855519
Раньше точно так же мог с шаблонными костылями, лол, гений.
Аноним 12/10/16 Срд 22:19:53 #501 №855563 
>>855556
Для того и ввели constexpr if, чтобы было удобнее, чем с шаблонными костылями. Об этом в proposal написано.

Но местные гении proposal-ов не читают, а предпочитают изображать капитана К.О.
Аноним 13/10/16 Чтв 16:08:22 #502 №855943 
Задание написать функцию, суммирующую все аргументы. Темплейт, варьируемое количество аргументов. http://ideone.com/jv4Li9 не накостылял ли я? Три typename'а смущают, хотя и по-другому, вроде бы, никак.
Аноним 13/10/16 Чтв 17:33:41 #503 №856006 
>>855943
http://ideone.com/jIDu1b
Так лучше, по-моему, тут вывод типов общий, если ты решищь запихать float или double вместе с впереди идущими целочисленными, значения не обкастрируются
sageАноним 13/10/16 Чтв 18:39:48 #504 №856080 
14763731880950.png
>>855943
http://en.cppreference.com/w/cpp/language/fold
на пикрел почти то, что нужно (не знаю, зачем они обозвали sum то, что им не является)
Аноним 13/10/16 Чтв 18:43:35 #505 №856082 
>>856080
Це-ж 17, шо ты!
sageАноним 13/10/16 Чтв 18:44:15 #506 №856084 
>>856082
Удивит препода и одноклассников.
Аноним 14/10/16 Птн 04:26:28 #507 №856309 
>>856006
Так у меня, вроде, тоже ничего не кастрируется. Ведь при операциях над разными типами оно само к "наивысшему" приводит, если не указано другого.

>>856080
Что-то я не понял, что это и как связано с моей задачей. И фраза
>an operator with precedence below cast at the top level
Оператор находится на топ левеле и его приоритет ниже каста или приоритет оператора ниже "каста на топ левеле"? И что вообще под топ левелом подразумевается, та часть выражения, которая вне всех скобок?
Аноним 14/10/16 Птн 05:43:13 #508 №856312 
>>856309
>> Так у меня, вроде, тоже ничего не кастрируется. Ведь при операциях над разными типами оно само к "наивысшему" приводит, если не указано другого.

У тебя на выходе получается в любом случае long double вне зависимости от типов, поданных на вход. Если ты передашь два char'а, скажем, он сначала их сложит, а потом сконвертирует в long double, что само по себе уже затраты. Само по себе такое сложение двух целых чисел не даст существенного снижения производительности, но когда ты начнешь складывать уже три целых числа, то у тебя вторым шагом будут складываться два long double, что, само по себе, очень затратная операция (относительно сложения целых чисел).
Аноним 14/10/16 Птн 06:25:25 #509 №856317 
>>856312
>У тебя на выходе получается в любом случае long double вне зависимости от типов
А, так это по условию так надо. Получается, самый оптимальный и отвечающий условиям вариант это функции с args... возвращать common_type, а в функции с одним аргументом — long double, так?
Аноним 14/10/16 Птн 06:39:34 #510 №856318 
>>856317
Смотря на то, что ты желаешь получить на выходе. Если ты желаешь выхлоп в виде long double, то можно не париться с выводом общего типа, если хочешь, чтобы было быстрее, делай вывод общего типа для аргументов.
Если ты делаешь суммирование одного значения, то используй тип аргумента как тип возвращаемого значения.
Аноним 14/10/16 Птн 12:27:32 #511 №856379 
>>856318
Отлично, спасибо.
Аноним 14/10/16 Птн 18:44:26 #512 №856597 
14764598669120.jpg
>>840964 (OP)
Крестаны, хелп.
Есть QQuickWindow, как определить, когда оно частично или полностью закрыто другими окнами? visibility подходит только для свёрнутого окна. Попробовал со стороны window() подцепиться к exposeEvent, но isExposed() всегда (кроме сворачивания) выдаёт true, соснулей.
Аноним 14/10/16 Птн 20:01:06 #513 №856659 
>>856597
Qt::WindowFlags flags = mainWindow.windowFlags();
mainWindow.setWindowFlags(flags | Qt::WindowStaysOnTopHint);
Аноним 14/10/16 Птн 20:39:07 #514 №856681 
Что за флаг -l ? -lGL -lGLEW, например. Это ведь хэдеры, которые (у меня) в /usr/include лежат. Почему нельзя написать -I/usr/include ? И чем определяется имя библиотеки? Почему GL, а не OPENGL?
Аноним 14/10/16 Птн 21:38:38 #515 №856707 
>>856681
С ПОДКЛЮЧЕНИЕМ, ДОРОГОЙ! ПОПРОБУЙ СПРОСИТЬ НА ФОРУМЕ GOOGLE.COM
Аноним 14/10/16 Птн 21:51:27 #516 №856725 
>>856681
Петух сраный. Больше не заходи сюда.
Аноним 14/10/16 Птн 21:52:30 #517 №856726 
>>856725
>>856707
почему бы тебе самому не съебаться?
Аноним 15/10/16 Суб 07:32:24 #518 №856869 
>>856659
Но это же хуевый костыль.
Я так понимаю, без дрочева с винапи для получения всех окон, сравнивания позиций вручную, описанную проблему не решить.
Аноним 15/10/16 Суб 15:22:49 #519 №857026 
Выбивает heap corruption detected after normal block в чем может быть проблема ?
http://pastebin.com/RUhdduse
Аноним 15/10/16 Суб 16:32:59 #520 №857059 
>>857026
Дохуя в чём.
==12073== Memcheck, a memory error detector
==12073== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==12073== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==12073== Command: ./govno
==12073==
==12073== Invalid write of size 8
==12073== at 0x400A69: main (govno.cpp:12)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid write of size 4
==12073== at 0x400ADD: main (govno.cpp:15)
==12073== Address 0x5ab5cf0 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400AA0: main (govno.cpp:15)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 4
==12073== at 0x400B31: main (govno.cpp:18)
==12073== Address 0x5ab5cf0 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid read of size 4
==12073== at 0x400B80: main (govno.cpp:19)
==12073== Address 0x5ab5d40 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid write of size 4
==12073== at 0x400B8D: main (govno.cpp:19)
==12073== Address 0x5ab5d40 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400B21: main (govno.cpp:18)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400B4B: main (govno.cpp:19)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400B70: main (govno.cpp:19)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 4
==12073== at 0x400BDF: main (govno.cpp:23)
==12073== Address 0x5ab5cf0 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
-33 -36 -27 1 -43
1 -36 -42 0 1
-12 1 -40 -9 -13
==12073== Invalid read of size 8
==12073== at 0x400BCF: main (govno.cpp:23)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
1 1 1 -22 1


==12073== Invalid read of size 8
==12073== at 0x400C71: main (govno.cpp:37)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400C9B: main (govno.cpp:38)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 4
==12073== at 0x400C81: main (govno.cpp:37)
==12073== Address 0x5ab5cf0 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid read of size 4
==12073== at 0x400CAB: main (govno.cpp:38)
==12073== Address 0x5ab5cf0 is 0 bytes after a block of size 16 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A68: main (govno.cpp:12)
==12073==
==12073== Invalid write of size 8
==12073== at 0x400CDC: main (govno.cpp:39)
==12073== Address 0x5ab6280 is 0 bytes after a block of size 32 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400C2D: main (govno.cpp:29)
==12073==
-45 -72 -109 -31
==12073== Invalid read of size 8
==12073== at 0x400D7F: main (govno.cpp:48)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073== Invalid read of size 8
==12073== at 0x400D9B: main (govno.cpp:48)
==12073== Address 0x5ab5c98 is 0 bytes after a block of size 24 alloc'd
==12073== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12073== by 0x400A38: main (govno.cpp:10)
==12073==
==12073==
==12073== HEAP SUMMARY:
==12073== in use at exit: 72,704 bytes in 1 blocks
==12073== total heap usage: 8 allocs, 7 frees, 73,848 bytes allocated
==12073==
==12073== LEAK SUMMARY:
==12073== definitely lost: 0 bytes in 0 blocks
==12073== indirectly lost: 0 bytes in 0 blocks
==12073== possibly lost: 0 bytes in 0 blocks
==12073== still reachable: 72,704 bytes in 1 blocks
==12073== suppressed: 0 bytes in 0 blocks
==12073== Rerun with --leak-check=full to see details of leaked memory
==12073==
==12073== For counts of detected and suppressed errors, rerun with: -v
==12073== ERROR SUMMARY: 58 errors from 18 contexts (suppressed: 0 from 0)
Аноним 15/10/16 Суб 16:35:50 #521 №857062 
>>857026
Если словами, а не логом: ты везде лезешь за границы выделенной памяти.
Аноним 15/10/16 Суб 16:41:00 #522 №857063 
>>857062
Спасибо
Аноним 15/10/16 Суб 17:10:57 #523 №857075 
>>857059
>> ==12073== Command: ./govno
У меня были сомнения по этому коду и ты их подтвердил
Аноним 15/10/16 Суб 17:46:53 #524 №857093 
>>857075
Да ничего там ужасного нет, кроме индексации за пределами массивов.
Аноним 15/10/16 Суб 20:20:48 #525 №857179 
14765520486050.jpg
>>840964 (OP)
>Анончик молю ,помоги пожалуйста!!

Постpоить класс для pаботы с многочленами. Класс должен включать соответствующие поля: порядок, набор коэффициентов.
Класс должен обеспечивать пpостейшие функции для pаботы с данными классами: вычисление значения многочлена для данного параметра, вывод многочлена в удобной форме и т.д.
Аноним 15/10/16 Суб 20:23:07 #526 №857181 
>>857179
>>840964 (OP)
>Памятка ньюфагу
>
>Вопросы по синтаксису идут на хуй
>Лабы идут на хуй
Читать умеешь, говно?
Аноним 15/10/16 Суб 20:24:24 #527 №857184 
>>857181
создать тредик?
Аноним 15/10/16 Суб 20:24:58 #528 №857185 
>>857184
https://2ch.hk/pr/res/855030.html
Аноним 16/10/16 Вск 03:38:00 #529 №857396 
нуфаня
шин10
установил куте
не могу открыть новый проект, пишет то что сборщика нет.
Что делать то?(переустановлю qt скину скрины)
Аноним 16/10/16 Вск 03:43:16 #530 №857398 
>>857396
пишет: Необходимо в настройках комплекта задать компилятор для сборки.
Аноним 16/10/16 Вск 06:42:06 #531 №857419 
>>857396
Чего блять?
Ти MinGW или MSVC хотя бы выкачал для этого дела?
Аноним 16/10/16 Вск 13:19:29 #532 №857552 
>>857419
да всё, спасибо, разобрался. msvс криво встал как то, переустановил и всё норм стало. Теперь бы разобраться как делать кросскомпиляцию.
Microsoft использует clang/llvm внутри компилятора? Аноним 16/10/16 Вск 14:10:16 #533 №857587 
14766162164470.png
14766162164491.png
Смотрю тут cppconчиту 2016. Преодолев отвращение, решил глянуть на доклад "Latest and Greatest from the Visual Studio Family for C++ Developers".

У них охуенный прогресс: в 2016-м году они узнали об SSA и теперь их компилятор выдаёт не совсем говнокод. См. пик. 1. Кстати, откуда берутся сперманьки, которые вопят, что компилятор от MS самый лучший? Стоит только глянуть на результаты старого оптимизатора, как понимаешь,что все восхвалятели MSVC — ебанутые.

Ладно. Решил я глянуть, а что же там выдаёт шланг. Смотрим на пик. 2.
Но погодите!!! Это ведь почти тот же код, что сейчас выдаёт студия! Разница ECX и EDI из-за разных calling conventions. В MSABI первый аргумент идёт в RCX, в SYSVABI — в RDI. Ну и разница в LEA. rcx*2 против rdi+rdi. Скорее всего MS проходятся по асму peephole-обфускатором и делают замену второго на первое, чтобы никто не догадался о заимствованиях.

Вот так вот. Предупреждали вас, господа llvm-щики, что заигрывание с пермиссивными лицензиями добром не кончится. Спиздят ваш код и спасибо не скажут.

Видимо, так оно и вышло.
Перекат Аноним 16/10/16 Вск 14:26:51 #534 №857605 
>>855030 (OP)
>>855030 (OP)
>>855030 (OP)
>>855030 (OP)
>>855030 (OP)
>>855030 (OP)
Аноним 16/10/16 Вск 17:26:31 #535 №857744 
>>857605
Ты куда нас перекатить пытаешься, хитрец?
Аноним 16/10/16 Вск 17:26:50 #536 №857745 
>>857744
Туда, где вам всем и место.
Аноним 18/10/16 Втр 22:19:19 #537 №859270 
//Кто-нибудь может объяснить, что значит строчка int& y = x;????????????????????????????

#include <iostream>
#include <locale.h>
#include <conio.h>

using namespace std;

void main (void)
{

int x;
cin >>x;
int& y = x;
int z = y;
cout << y;

_getch();
}

Аноним 18/10/16 Втр 22:43:38 #538 №859316 
>>859270
http://www.cprogramming.com/tutorial/references.html
Грубо говоря, ярлык для другой переменной.
Аноним 18/10/16 Втр 22:45:00 #539 №859321 
>>859316
Хотя, не, ярлык не самое верное слово, это больше для ссылки подошло бы, ну да пофиг, прочитаешь на той странице.
sageАноним 18/10/16 Втр 23:20:06 #540 №859357 
>>859321
>это больше для ссылки подошло б
А это не ссылка, что ли?
Аноним 19/10/16 Срд 03:01:34 #541 №859443 
>>859357
Это не ссылка на x, скажем так.
Аноним 19/10/16 Срд 05:06:14 #542 №859457 
14768427744110.jpg
http://pastebin.com/dWg1Njc9

Есть инжектор функции в память процесса, и четыре функции, которые я пытаюсь заинжектить. Проблема в том, что инжект каждой из них происходит успешно, но приводит к крашу приложения.
В чем тут проблема, почему даже пустая функция крашит все?
Аноним 19/10/16 Срд 10:40:53 #543 №859522 
>>859457
Стек поди ломается
Аноним 19/10/16 Срд 15:08:07 #544 №859712 
>>859522
Как он ломается? Что я в коде неправильно написал?
Аноним 19/10/16 Срд 16:22:23 #545 №859774 
>>859712
Например,
void zeroFWithRet() {
__asm RET
}
скомпилируется примерно в следующее при выключенных оптимизациях:
push rbp
mov rbp, rsp
ret
pop rbp
ret
Аноним 19/10/16 Срд 16:43:41 #546 №859790 
14768846219770.png
>>859774
Почему тогда

void zeroF() {
__asm {
}
}

Тоже крашит, там же будет

push rbp
mov rbp, rsp
pop rbp
ret

Скрин дампа
Аноним 19/10/16 Срд 17:07:41 #547 №859804 
>>859270
Фактически, это то же самое, что и указатель, только константный (если ты сослался единожды на какой-то объект, то уже не можешь сменить место, на которое ты ссылаешься). Естественно, применение ссылок не освобождает от выстрелов в ногу.
Ссылка:
>> int a = 10; int b = 20;
>> int &x = a; // единожды взяв ссылку ты остаешься с ней навеки
>> x = b; // записывает в переменную a значение из переменной b
То же самое, только в виде указателя:
>> int a = 10; int b = 20;
>> int const x = &a;
>> x = b;
Аноним 19/10/16 Срд 17:08:55 #548 №859805 
>>859804
во втором примере:
>> int a = 10; int b = 20;
>> int const ЗДЕЗДОЩКА x = &a;
>> ЗВЕЗДОЩКА x = b;
Аноним 19/10/16 Срд 17:13:45 #549 №859809 
>>859457
250 -- что за магическое число?
sageАноним 19/10/16 Срд 18:09:04 #550 №859863 
>>859804
>Фактически, это то же самое, что и указатель
Лол.
Аноним 19/10/16 Срд 18:10:52 #551 №859869 
>>859809
Олдскул. Статья старая. Записать все что есть.
Конечно, изменить нужно, но думаю ключевая проблема не в этом
Аноним 19/10/16 Срд 18:46:25 #552 №859892 
>>859863
http://pastebin.com/UqdV80N7
Хуй знает, с чего ты там проиграл. Оптимизацию, естественно, не включал, потому что это бы потерло все к чертям.
Аноним 19/10/16 Срд 18:50:56 #553 №859900 
>>859804
>>859805
константу не туда припер, извиняюси, после звездощки надо
sageАноним 19/10/16 Срд 19:03:11 #554 №859916 
14768929915380.png
>>859892
> ассемблерный высер вместо пунктов стандарта
Да все знаю, как реализуются ссылки.
Вопрос в том, что с ТЗ языка это не указатели.
Аноним 19/10/16 Срд 19:23:48 #555 №859936 
>>859916
Ну так я и написал, что фактически, естественно, синтаксис и правила там немного другие. Различий у них, как в структуры и класса.
sageАноним 19/10/16 Срд 20:03:19 #556 №859971 
>>859936
Пиздеть-то завязывай.
sageАноним 19/10/16 Срд 21:57:25 #557 №860090 
>>847764
>>852320
https://github.com/Microsoft/vcpkg
Аноним 19/10/16 Срд 23:57:06 #558 №860212 
14769106269770.jpg
Меня скорее всего пошлют нахуй, но попытать счастья стоит. Можно матрицу заполнить рандомными числами? Чтобы указывать только столбцы, строки и вектор. Пробовал вставлять разные штуки в разные места, компилятор или не работает или работает странно.
sageАноним 20/10/16 Чтв 00:17:34 #559 №860241 
>>860212
> Пробовал вставлять разные штуки в разные места
Боюсь представить что и куда ты себе вставлял.
sageАноним 20/10/16 Чтв 00:23:04 #560 №860246 
>>860212
Попробуй выпить спрайта.
Аноним 20/10/16 Чтв 01:41:05 #561 №860317 
>>860246
не помогло
Аноним 20/10/16 Чтв 01:41:41 #562 №860318 
>>860241
сё так.

Скачал книжки которые предоставил ОП. Может смогу написать код заново.
Аноним 20/10/16 Чтв 11:43:58 #563 №860454 
Посоветуйте пожалуйста, где можно почитать (ну или посмотреть) на русском о cmake, чтоб понятно и доступно.
В ангельский тоже можно само собой, но родной язык приятнее.
Аноним 20/10/16 Чтв 12:05:59 #564 №860471 
>>859869
то есть, то, что ты можешь выходить за границы отведённой тебе памяти тебя не коробит?
Аноним 20/10/16 Чтв 12:17:59 #565 №860484 
>>860471
511 выделено, по 250 записано, в чем проблема?
Аноним 20/10/16 Чтв 13:22:17 #566 №860528 
>>860212
в этом дерьме даже разбираться не хочется
Аноним 20/10/16 Чтв 18:44:22 #567 №860809 
На степике есть курс по С++ goo.gl/CxhzOj стоит время тратить или лучше с Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ вкатиться?
sageАноним 20/10/16 Чтв 18:45:38 #568 №860812 
>>860809
Если ты чего-то не понимаешь, то да, стоит читать все, что только можно
Аноним 20/10/16 Чтв 18:46:56 #569 №860813 
>>860812
Спасибо. Добра тебе!
Аноним 21/10/16 Птн 11:30:01 #570 №861230 
>>860454
На гитхабе проекты смотри, или еще где, там, в принципе, все понятно будет со временем. Непонятная инструкция - в мануал, вот так я разбирался. Если уже в файлы пилить (например, мне надо было qt.conf формировать), то уже в документацию, потому что там, как правило, такое не часто используется.
Ну и флаги компилятора надо бы знать.
Аноним 21/10/16 Птн 11:37:04 #571 №861234 
>>861230
Да у меня и в проектах компании хватает проектов на cmake, понятно, что можно смотреть всё непонятное (95%) в мануале, но можно же и поискать вариант поудобнее вкатиться. Видимо не судьба.
Аноним 21/10/16 Птн 14:54:26 #572 №861357 
Бамп
Аноним 21/10/16 Птн 19:09:42 #573 №861545 
>>859804
>>859316
>>859316
СПС БРАТЮНИ
Аноним 21/10/16 Птн 20:46:28 #574 №861607 
Посоны, а что за указатели такие? Никак не пойму что это такое и зачем нужно. По-братски объясните. Если чё, работаю грузчиком дверей, решил стать программистом.
Аноним 22/10/16 Суб 05:26:36 #575 №861752 
>>861607
http://en.cppreference.com/book/pointers
Аноним 22/10/16 Суб 08:14:39 #576 №861766 
>>861752
Чтоб тебе так по-братски помогали, чертила.
test Аноним 22/10/16 Суб 09:37:09 #577 №861773 
[code]
int main()

{
std:: cout << "Hello, world!";
return 0;
}
[/code]
Аноним 22/10/16 Суб 09:40:32 #578 №861775 
[code int a(0);] aaaa [/code]
Аноним 22/10/16 Суб 11:34:12 #579 №861790 
14771252527660.jpg
>>861766
Не брат ты мне, гнида черножопая
Аноним 22/10/16 Суб 22:08:53 #580 №862062 
14771633336390.png
14771633336401.png
Не могу понять, почему сначала происходит a = a*b,
ведь совмещенные операторы имеют одинаковый приоритет и ПРАВОАССОЦИАТИВНЫ
Аноним 22/10/16 Суб 23:08:27 #581 №862082 
>>862062
Чему равно (2 + 2) * 2?
Аноним 23/10/16 Вск 01:18:14 #582 №862181 
Хочу вкатиться в многопоточность.
Посоветуйте книг\мануалов по этому поводу.
Аноним 23/10/16 Вск 11:43:51 #583 №862277 
Кресты требуют знания матана?
Аноним 23/10/16 Вск 16:23:32 #584 №862428 
>>862277
Для обработки изображений, машинного обучения и еще много чего, но, в целом, можно и без него жить.
Аноним 23/10/16 Вск 17:55:50 #585 №862485 
Няши, не уверен, что мне в этот тред, но всё равно ничего ближе не нашел. Собственно, проблема: изучаю QT и соответственно плюсы неплохо знаю ObjC, но надоело писать по иос. Суть в том, что мне нужно сделать всплывающее окно, но не по нажатию на кнопку, а из кода. В гугле ничего не нашел, все вызывают по кнопке, а как это сделать я и так знаю.
Аноним 23/10/16 Вск 19:12:20 #586 №862514 
>>862485
http://doc.qt.io/qt-5/qmessagebox.html
Если я тебя правильно понял.

Например диалог yes/no будет как:
QMessageBox::question(nullptr, tr("C++ faggs"), tr("Are you fagg?"));
Аноним 23/10/16 Вск 19:37:18 #587 №862521 
>>862514
Не совсем то, нет. Суть в том, что мне нужно не диалоговое окно, а окно поверх основного, типа QWidget. В него уже надо запихнуть браузер через webView.
Аноним 23/10/16 Вск 19:49:11 #588 №862528 
В общем реквестирую какой-нибудь не очень большой материал для повторения по С++. Потому как 2 года до этого писал на С++, сейчас пишу на Objective-C(пришлось временно перейти из-за нехватки проектов, а потом на работе С++ отдел развалился) и хочу перейти на другую работу чтобы писать на С++. И каждый раз на собеседованиях сталкваюсь с проблемами связанными с тем что на С++ давно не писал и то не помню как инициализировать char * строки и какая библиотека нужна чтобы использовать функции strcpy и strlen, то не помню как определять шаблоны, то не помню как определять операторы. Нет, начни я кодить - сразу бы загуглил, но вот с ходу вспомнить не всегда могу.
Аноним 24/10/16 Пнд 00:45:33 #589 №862712 
Мне интересно когда создаёшь массивы объектов, методы классов тоже занимают память прямо пропорционально количеству объектов, или создаётся по одному методу на всех?
Аноним 24/10/16 Пнд 03:39:43 #590 №862755 
>>862712
Медоты все в текстовом сегменте лежат. Если виртуальных функций нет, тогда оверхеда не будет, если есть - будет, но только на таблицу переходов.
Аноним 24/10/16 Пнд 14:24:41 #591 №862876 
>>862181
Могу посоветовать не читать книгу из ОП-поста (Уильямса). Говно какое-то. Ни толком кода, ни хотя бы тривиальнейших задач или идей для задач — всё самому придумывать надо; никакого объяснениz о том, зачем вообще то или иное сделано, про промисы даже код не полный и не сказано, что запускать это всё нужно вручную отдельным тредом, да и нахуй они вообще нужны тоже (сначала вообще может показаться как просто лишний код: например, http://en.cppreference.com/w/cpp/thread/future просто future в одну строку, а с промисом мы сначала создаём промис, а потом достаём из него тот же future).
Про атомарные типы глава вообще тыковка: лишь спустя 17 страниц описания и использования операций над атомарными типами, принимающими упорядочение доступа к памяти (memory_order_xxx) и активного выделения этого аргумента, что тут принимает то и это, в таком-то случае такие-то виды доступа недоступны, а тут по-дефолту такой, наконец доходит до описания, что это вообще такое.
Да и в общем иногда попадаются какие-то громоздкие и корявые предложения (вот прямо как два моих предыдущих), прочитав которые в голове крутится только "что, блядь?" и желание перечитать. Не знаю, проблема ли это автора или перевода (отмажусь сразу: как ленивая мразь просто скачал по ссылке из шапки, а там русик оказался).
Впрочем, сравнить мне не с чем, может они все такие.
Аноним 24/10/16 Пнд 14:32:33 #592 №862880 
14773087536110.png
Почему я не вижу отображения этого выражения,
по идее же if(-1) должно иметь значение true
Аноним 24/10/16 Пнд 14:56:15 #593 №862884 
>>862880
Какого выражения? У тебя не выражения после if'а, тебе даже ошибка об этом говорит.
Аноним 24/10/16 Пнд 15:03:50 #594 №862886 
>>862884
ну в принципе ладно, я просто хотел убедиться, что if будет тру, но сейчас я и так это понял.
Аноним 24/10/16 Пнд 18:22:17 #595 №862971 
Вопрос по многопоточности, собственно по книге этого Уильямса.

В разговоре об атомиках и памяти, там есть такой код - http://ideone.com/s9msQ7
И говорится, что при порядке доступа memory_order_relaxed, assertion этот может иногда и выкинуть, потому что нет никакой гарантии, что функция
void write_x_then_y(){
    x.store(true, memory_order_relaxed);
    y.store(true, memory_order_relaxed);
}

запишет сначала x, а потом y, вполне может и наоборот.
Заставить свой компилятор так сделать у меня ен получилось, поэтому, собственно, вопрос:
А если между записью вставить чтение x'а, то есть
x.store(true, memory_order_relaxed);
int z = x.load();
y.store(true, memory_order_relaxed);

как сделано там же в функции write_x_read_y_write_y, гарантирует ли это запись y после x'а, или и тут assert может не пройтись?
Аноним 25/10/16 Втр 09:20:08 #596 №863270 
>>862521
Что-то сложно тебя понять. Но если я тебя правильно понял, то тебе надо просто в своём окне сделать QWidget или QFrame, в качестве родителя запихнуть в него это своё главное окно и указать флаг setWindowFlags(Qt::Popup).
Аноним 25/10/16 Втр 09:20:49 #597 №863272 
>>862528
>какая библиотека нужна чтобы использовать функции strcpy и strlen
Пиздец днищевопрос от долбоёба какого-то.
Аноним 25/10/16 Втр 16:43:07 #598 №863424 
Как сделать таймер в C++? То есть ставишь значени в 50 сек и функция исполняется эти 50 сек.
Изучал std::chrono, дошло не сразу что это не то. Это не обратные отсчет, а секундомер. То есть он может посчитать промежуток только когда программа отметила конец промежутка, ну и соответственно цикл таким образом не сделаешь.
Аноним 25/10/16 Втр 16:49:07 #599 №863426 
>>863424
> Изучал std::chrono
Блядь, хули там изучать можно?
Аноним 25/10/16 Втр 16:54:33 #600 №863428 
>>863426
Хроно разве имеет такую возможность, лалка?
Разве отрезок имеет какую-либо другую функцию, кроме как now()?
sageАноним 25/10/16 Втр 18:25:22 #601 №863477 
>>863424
http://en.cppreference.com/w/cpp/thread/sleep_for
Аноним 25/10/16 Втр 18:32:43 #602 №863484 
>>863477
Уже загуглил похожие советы, но спасибо огромное за ответ.
Аноним 25/10/16 Втр 21:20:47 #603 №863556 
Чем измерять время из плюсов с точностью до микросекунд?
clock_gettime из time.h и CPU'шный таймер дают время вроде до наносекунд, но при этом почему-то время всё равно меняется большими шагами и реальная точность около миллисекунды получается.
Или я что-нибудь делаю не так?
sageАноним 26/10/16 Срд 02:20:16 #604 №863737 
>>863556
> Или я что-нибудь делаю не так?
Да, ты хочешь функционала ОС реального времени от ОС общего назначения.
Аноним 26/10/16 Срд 17:51:34 #605 №864049 
Щас бы перекатик
Аноним 27/10/16 Чтв 07:50:24 #606 №864350 
>>864049
После принятия стандарта.
Аноним 27/10/16 Чтв 12:19:14 #607 №864467 
Почему такой ебанутый синтаксис?
Почему когда я перегружаю оператор "круглые скобки" функцией от 1 аргумента, иногда приходится писать kek(x), а иногда kek()(x)?
Аноним 27/10/16 Чтв 16:14:56 #608 №864645 
14775740965370.png
Сап, программисты. Есть один вопрос:
Имеется декартова система координат и какая-то нарисованная функция на ней. Предположим синус х.
Нужно перейти от декартовой системы к эллиптической.

ВТФ?
Все рисуется с помощью мувту, лайнту.
Имеется формула перехода, но что-то все это запилить в плюсах не получается. Так же в наличии два аргумента posX, posY определяющие соответственно Х и У.
Собственно вопрос и заключается в том, как нарисовать элементарный график с переходом в эти координаты
Аноним 27/10/16 Чтв 16:41:35 #609 №864660 
>>864645
Возьми какой-нибудь FLTK и рисуй там, примеров навалом.
Аноним 27/10/16 Чтв 20:45:45 #610 №864858 
14775903455990.jpg
>>840964 (OP)
Здарова, петуханы, есть sqlite3 бд, нужен орм под неё, чтоб умел классы генерировать прям по схеме бд из файлика со связями, методами и всякой малафьей. Существует такой?
Я нагуглил QxOrm, у него есть QxEntityEditor, который пидор требует лицензии за сотни долларов или там ограничение на 5 таблиц. А мне 200 таблиц нужно, пиздец короче.
Аноним 27/10/16 Чтв 21:36:42 #611 №864887 
14775934020620.png
Не хочет решаться




// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "iostream"
#include "Math.h"
#include "iomanip"
using namespace std;



int _tmain(int argc, _TCHAR argv[])
{
double b;
double x, y, z;
cout << "x=";
cin >> x ;
cout << "\n";
cout << "y=";
cin >> y ;
cout << "\n";
cout << "z=";
cin >> z;
cout << "\n";
b = 1 +( pow(z, 2) / (abs(3 - y) + (pow(z, 2) / 5))) + pow(1 / 3, (x - 5
y)) + exp(2*x - y);
cout << setprecision(2) << "b=" << b;
system("Pause");
return 0;
}

Аноним 27/10/16 Чтв 22:53:49 #612 №864921 
>>864887
>Лабы идут на хуй
Аноним 28/10/16 Птн 12:07:39 #613 №865071 
>>864660
нужно именно через мувту лайнту нарисовать. в этом и проблема
Аноним 28/10/16 Птн 16:45:20 #614 №865255 
Как в Qt Creator сделать так, чтобы таб представлялся в виде таба, а не 4-8 (указанных в настройках) пробелах, я заебался стирать их при необходимости вручную.
Аноним 29/10/16 Суб 04:02:15 #615 №865562 
>>865255
shift+tab не работает?
Аноним 29/10/16 Суб 11:32:55 #616 №865622 
Есть убунта и я хочу вкатиться в с++. На чем писать код и чем помпилировать? Слышал про gcc и g++: они нормальные?
Скачал вторую из шапки книгу: Стэнли Липпман, Жози Лажойе и Барбара... - она подойдет для новичка, если я собираюсь программировать на линуксе. Могу я из-под прыщей кодить программы для виндоуса?
Аноним 29/10/16 Суб 11:34:13 #617 №865623 
>>865622
Точно, первый опыт хелоувордов был на в10 с вс, поэтому я не понимаю, как писать в блокноте, чтобы потом в отдельном компиляторе скомпилировать программу.
Аноним 29/10/16 Суб 14:45:26 #618 №865717 
Создал в дезигнере QVBoxLayout, в который динамично добавляю несколько QHBoxLayout-ов, в которых по две кнопки. Как теперь эти QHBoxLayout-ы удалять? Всегда что-то остается на заднем фоне.

Оба варианта не работают, если что.
http://pastebin.com/9ji2LSet
Аноним 29/10/16 Суб 19:44:34 #619 №865895 
>>862876
Просто не читай на русском.
Аноним 29/10/16 Суб 21:22:28 #620 №865964 
>>865895
К языку там лишь одна претензия, тащемта.

Вообще, вероятно, я просто рано её начал и она не для въезжающих в параллелизм. С другой стороны, там многое прямо вот с нуля и даже мне было лениво читать подробнейшие описания. Как-то под всех сразу попытались, видимо, подстроиться, чтобы читатель сам пропускал то, что сложно/известно/скучно.
Аноним 29/10/16 Суб 21:24:54 #621 №865967 
>>865964
> не для въезжающих в параллелизм.
Да. Она про средства и модель памяти C++.
Аноним 29/10/16 Суб 21:34:39 #622 №865971 
>>865967
Там лишь одна глава про это целенаправленно. Но там ведь и про треды всякие тоже с нуля говорится, так что я вообще не знаю, странная книга. Вообще, вроде и понятно всё, лишь практики маловато, как мне кажется.
За целую главу (~50 страниц) разбирают пример одного thread-safe стэка и и и всё. Как справочник не поиспользуешь — длинно. За одно прочтение всё это не запомнится, только какие-то отрывки (тоже полезные, разумеется) останутся. А материалов для закрепления и отрабатывания нет. Как-то так, что ли.
Аноним 30/10/16 Вск 16:38:39 #623 №866368 
http://ideone.com/wq8IIW
Где ошибка?
Аноним 30/10/16 Вск 17:06:30 #624 №866391 
>>866368
Инициализируй константу m вне описания класса.
http://ideone.com/9LURLp
Аноним 30/10/16 Вск 17:21:36 #625 №866406 
>>866391
А мне обязательно надо внутри класса. И статическую
Аноним 30/10/16 Вск 18:03:30 #626 №866432 
>>866406
Статическая инициализируется при запуске программы, ЕМНИП, и, в общем, я не сделал ее нестатической.
В объявлении класса разрешается инициализировать (только char, int и им подобные целочисленные типы, в том числе и беззнаковые), но, например double или сложные типы (скажем, std::vector) запрещено.
Аноним 30/10/16 Вск 18:07:26 #627 №866436 
>>866432
А что мне делать если я этот класс буду инклюдом подключать? Эту инизиализацию каждый раз заново делать?
Аноним 30/10/16 Вск 18:12:42 #628 №866439 
>>866436
Выдели отдельный файл исходника для инициализации статических констант/переменных да и все.
Аноним 30/10/16 Вск 18:28:53 #629 №866450 
>>866432
>> В объявлении класса можно инициализировать литеральные типы (LiteralType), но только с constexpr или интегральные без обязательного его применения, естественно начиная с C++11, если стандарт уебищный (то, что вышло до c++11), то придется довольствоваться инициализацией только интегральных типов, как я и написал ранее.
Фикс
К слову, о плюсах constexpr
Аноним 30/10/16 Вск 21:17:02 #630 №866535 
ПЕРЕКОТ
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
https://2ch.hk/pr/res/866503.html
Аноним 30/10/16 Вск 21:18:40 #631 №866538 
>>866436
>>866368
Вроде для этого inline-переменные завезли в C++17. Чтобы можно было инициализировать их в хедере.
Аноним 30/10/16 Вск 21:30:38 #632 №866545 
>>866436
>>866368
>>866538
Впрочем, с -std=c++1z оно и так работает.
Аноним 30/10/16 Вск 22:36:36 #633 №866580 
Господа, помогите. Пишу в Qt 5.6, использую библиотеку для отображения оффлайн карты https://github.com/raptorswing/MapGraphics
Подскажите, как реализовать в ней геолокацию ?
Аноним 31/10/16 Пнд 00:45:20 #634 №866662 
Перекат: https://2ch.hk/pr/res/866503.html
comments powered by Disqus

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