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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
160 Кб, 1024x669
Оффициальный™ традиционный® C++ тред #35 #764736 В конец треда | Веб
На смерть поэта.

На фирме "GalleySollution"
Однажды случился обвал...
На баги, фреймворки сырые
Мой верный товарищ упал...

Скажи мне, Галера Крутая,
Ужель это смерть настает?
Я молод, а где-то работа
Меня в Калифорнии ждет.

Но вышел приказ из конторы --
На помощь спускаться не сметь!
Сказал управляющий людям
Нет дела до этого мне.
За смерть С++-ОПа-поэта
Я выдам полтинник жене...

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

TL;DR

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

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

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

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


FAQ

Мотивация

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

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

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

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

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


Литература

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

  • Для нюфань

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


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

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


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

  • Best practices

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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


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

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

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

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


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

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


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

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

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

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

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

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

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

  • boost

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

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

    Литература:


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

  • Qt

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

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

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

    Литература:


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

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

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

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

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


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


#2 #764759
Подскажите, а можно в while сделать множественный ввод?
Т.е. есть 3 int'a, и в одном while надо все 3 std::cin >> сделать.
#3 #764773
Чтобы вкатиться в Qt без знаний плюсов, достаточно будет прочитать книгу для нюфань по плюсам(Страуструп) и потом уже целенаправленно читать книги по Qt или есть варианты оптимальнее?
>>766832>>766882
#4 #764783
>>764793
#5 #764785
>>764759
Лол. Неправильно прочитал что тебе надо.
#6 #764791
>>764793
#7 #764793
>>764791
>>764783
Может я неправильно сказал, я где-то видел примерно такую конструкцию:
while (std::cin > a, b, c)
{}
Примерно так, чтобы в 1 строчке был ввод в разные переменные.
>>764797>>765046
#9 #764823
QT-ПРОБЛЕМЫ
Можно как-то во время дебага смотреть значения переменных, указателей, членов классов кароче говоря?
Чёт не могу совладать с интерфейсом кутэ криэйтора.
>>764868>>764871
#10 #764868
>>764823
Можно. Это почти студия.
>>764888
#11 #764871
>>764823
Откуда вы такие лезете только. С поинтерами и классами он смог совладать, а с гуглом и настройкой кутэ нет.
>>764888
#12 #764873
Если у меня переменная не поинтер, есть ли альтернатива Foo bar = *(new Foo()) ? А то как-то не красиво получается. Хотелось бы привычный синтаксис Foo bar = new Foo().
>>764875
#13 #764875
>>764873
Что за наплыв джавадаунов. Ты как потом эту память будешь освобождать? Выделяй просто на стеке. Foo bar;
>>764886>>764890
#14 #764886
>>764875
Она тогда сама удалится, а мне потом надо ее использовать.
#15 #764888
>>764871
>>764868
Всё, нашёл уже, но у qt реально не очень юзабельный интерфейс.
#16 #764890
>>764875
Ок, а если я не сохраняю объект, а сразу передаю его в конструктор?

Foo foo = new Bar(*(new Baz()))
>>764894
#17 #764894
>>764890

>fix


Bar bar = new Bar(*(new Baz()))
>>764896>>765143
85 Кб, 331x417
#18 #764896
>>764900
#19 #764900
>>764896
Короче все, я понял. По-любому надо поинтеры юзать.
Сделаю тогда typedef Foo * FooPtr.
>>764902>>765349
#20 #764902
>>764900
https://isocpp.org/wiki/faq/csharp-java
Прочитай сначала, лалка.
#21 #764912
Зачем нужен decltype, если есть auto?
>>764913>>764919
#22 #764913
>>764912
Иди нахуй.
>>764932
#23 #764919
>>764912
Контексты разные же. Например, ты не можешь проверить существование метода с определенной сигнатурой в типе, который имеет заданное выражение, пользуясь одним только auto.
#24 #764924
Как такое может быть?
Есть структура. В ней декларированы только члены этой структуры. То-есть, нету ни конструкторов, ни деструкторов.
Сейчас я получаю segfault в деструкторе этой структуры(дефолтный).
Почему такое происходит/как чинить?
#25 #764925
>>764924

> нету ни конструкторов, ни деструкторов


они всегда есть)0))
>>765111
#26 #764927
>>764924
Кидай код
#27 #764929
>>764927
Разве на словах не понятно?
Я же всё подробно объяснил.
>>764930>>764940
#28 #764930
>>764929
>>764924
Вангую хуевые базовые классы.
>>764931>>764936
#29 #764931
>>764930
Но там простые инты и нет наследования!
>>764932>>764940
#30 #764932
>>764931
Ну тогда тебе сюда >>764913
>>764933
#31 #764933
>>764932
Спасибо! Я пошёл!
>>764940
#32 #764936
>>764927
Там много кода.
Могу сказать, что динамически там ничего не создаётся.
>>764930
Ты имеешь ввиду, что там может быть где-нибудь один и тот же указатель/массив или что?
>>764940
#33 #764940
>>764929
>>764931
>>764933
>>764936

>>764927
Это всё не я постил! Вот код: http://ideone.com/fVpjM8
#34 #764945
>>764940
Ты заебал.
>>765200
#35 #764946
>>764940
Кто поведется на толстоту, тот петух.
>>765200
#36 #764947
Какой смысл троллить такой тупостью?
>>764953
#37 #764953
>>764947
Хейтеры же.
#38 #765046
>>764793
Это ввод только в одну переменную, даунито
>>765048
#39 #765048
>>765046
Да и он нихуя не правильный изза > вместо >>
#40 #765111
>>764925
но зачем сраному инту конструктор!
>>765116>>765128
#41 #765116
>>765111
Затем, чтобы в шаблонах можно было одинаковый код писать, не боясь, что на инте все сломается.
#42 #765128
>>765111
Затем что оператор приведения типа.
#43 #765143
>>764894
Ссылки используй.
http://ideone.com/wTdD4c
#44 #765151
Не знал где спрашивать, спрошу тут.
Система Ubuntu 14.04
IDE Eclipse.
Проект внезапно C++.
Каким образом в этой IDE подключать библиотеки к проекту. Какое расширение у библиотеки должно быть .a или .so ?
Кроме подключения хедеров и библиотеки в свойствах проекта нужно ли что-то ещё?
В этой библиотеке определено пространство имен. Когда вызываешь из контекста при наборе кода, IDE его видит, а при компиляции нет.
90 Кб, 604x579
#45 #765167
Антуаны, вкатился в кресты совсем недавно сейчас мой уровень - написание калькулятора через кейсы или подобные небольшие задачи.
Сейчас появилась необходимость написать код, который работает с небольшими POST и GET запросами сайта обновление страницы, получение каких то числовых данных - попробовал погуглить, но по запросу "POST GET запросы C++" нихуяшеньки нет, либо речь идёт о каких то библиотеках.
Раньше писал подобное, но на Delphi.
Собственно, ткните носом, что читать по этому вопросу.
#46 #765178
>>765167
Python
>>765207
#47 #765196
>>765207
#48 #765199
>>765167
На qt наверняка есть. А вообще тебе в пхп тред, но оттуда мало кто возвращался
>>765207
#49 #765200
>>764946
>>764945
Семён, ты толст, съеби уже!
#50 #765207
>>765199
>>765178
Но я же в тред по крестам написал, значит мне не нужен питон.
>>765196
А с помощью встроенных библиотек никак?
Или curl просто устанавливаешь и через инклюды подключаешь потом?
>>765449
#51 #765218
проебал перекат
>>765217
#52 #765242
>>765167
Vibe.d
#53 #765244
>>765167
google:// простой веб сервер на c++
#54 #765282
а есть книжки по плюсам на украинском? хочу знакому дать что-нибудь почитать, а он по русски почти никак не читает.
>>765346>>765359
#55 #765346
>>765282

>он по русски почти никак не читает.


Передай ему, что мол нехер выпендриваться, патриот конченный.
#56 #765349
>>764900

>Короче все, я понял. По-любому надо поинтеры юзать.


Выучи сишку сначала, потом в кресты лезь. Кресты не шарп, или откуда ты там прикатился.
#57 #765359
>>765282
Пусть читает Страуса в оригинале, на английском.
>>765452
#58 #765449
>>765207

>Или curl просто устанавливаешь


Не надо устанавливать, просто кидаешь в ту же папку, там в гайде все описано. Алсо, если у тебя VS, то через NuGet от в один клик подключается.
#59 #765452
>>765359
Страус неплох, но его нужно читать вместе со стандартом, ибо весьма много неточностей, недомолвок и даже ошибок мелких, даже в 4 издании. Не говоря уже о ранних.
>>765488>>765622
#60 #765488
>>765452

>ибо весьма много неточностей, недомолвок и даже ошибок мелких


СТРАУСА УНИЖАЕТ СОБСТВЕННЫЙ ЯЗЫК!!1 А ЧЕГО ДОБИЛСЯ ТЫ?
#61 #765576
>>764736 (OP)

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


Ответил на всё с одной ошибкой в красном вопросе ЧЯДНТ?
>>765589
#62 #765589
>>765576
Читай стандарт, блджад, там же все вопросы изи.
>>765594
#63 #765594
>>765589
Ты, видимо, не понял что я написал, болезный. Я сказал, что из 69 вопросов на cppquiz допустил только одну ошибку. Что мне дальше читать? :D
>>765597
#64 #765597
>>765594
Там не 69 вопросов, лалка, а несколько сотен как минимум.
>>765621
#65 #765621
>>765597
Лалка ето ти. Их не более 200 и я ответил на все практически.
#66 #765622
>>765452
Написал этому дауну недавно на почту письмо с обнаруженными опечатками в 4 издании. Даже спасибо не написал, пидор.
>>765671
Technical writing #67 #765663
Читал несколько лет назад документацию, которую писали в Apple. Господи, до чего же она была прекрасно написана. Ясно, легко читалась по 100 страниц в день. Стиль, слог, верстка, подобранные примеры -- все изумительно.

А теперь читаю документацию к одной либе. Каждый день как пытка. Иногда получается прочитать не более одной-двух страниц настолько уебански все написано. Верстки, системы, оглавления нихуя нет. Видно, что писал тот же мудель, что и саму либу. Косноязычный аутист. Сука, ненавижу.
>>765693
#68 #765671
>>765622
У меня такая же хуйня с опечатками в ISO'шном FAQ недавно была. Но и похуй, главное, что исправили быстро.
#69 #765693
>>765663
Щас бы документацию верстать заместо проганья
>>765746
#70 #765696
Привет парни.
Код:

int foo(int a){
return a?1:2;
}
const int c2=foo(0);

foo не constexpr, тогда почему это работает?
Как это понивать?
#71 #765699
>>765696
При чём тут constexpr?
#72 #765705
>>765696

>foo(0)


>a?1:2


Похоже оптимизация компилятора.
#73 #765708
>>765696
У тебя и c2 не constexpr же, просто инициализируется в рантайме неконстантным выражением.
#74 #765736
Поясните за assert.
Зачем нагружать и без того сложный язык этой хуйней, если я и сам могу написать что то типа

void assert(bool a){
if(!a){
exit(1);
}
}
#75 #765742
>>765736
Чтобы в больших проектах не городить дохуя своих assertов.
10 Кб, 320x180
#76 #765746
>>765693
Именно поэтому в конторе должны быть надсмотрщики над программистишками. Чтобы пиздить их беспощадно и постоянно.

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

Дай программистишке волю он насрет кучу кода и скажет: "Документацию мне писать лень, ебитесь сами. Если че непонятное — то прямо в коде посмотрите там. А я пошел писать новый говнокод."
#77 #765752
>>765736
Ты не понимаешь сути C++. Он не призван сделать жизнь программиста легче или лучше. Он призван наполнить стандарт всем говном, которое только придумали. Это легко наблюдать по плавному переносу всего boost-говна прямо в стандарт. Сделать так, чтобы проекты разрабатывались годами и требовали для своего поддержания орды высокооплачиваемых макак, которые постоянно лепят ассерты и ебутся с отладчиком. Если софт будет писать легко, он не будет не иметь проблем с освобождением памяти — то кто в здравом уме будет платить кодерам их сегодняшние зарплаты? С++ идеальный после Java язык, для развода инвестора на бабки.
#78 #765759
>>765736
assert не так прост. Это макрос, он отключается в релизной сборке, когда N_DEBUG не определен.
>>765768
#79 #765768
>>765759
#define NAHOOI_ASSERT

void assert(bool a){
#ifdef NAHOOI_ASSERT
if(!a){
exit(1);
#endif
}
}

Тоже так могу.
Прихожу к решению, что он нахуй не нужен
>>765801>>765840
35 Кб, 921x149
#80 #765771
В чем польза такого объявления индексной переменной по сравнению с auto?
>>765779
#81 #765779
>>765771
Если указать auto выведестя инт
Если деклтайп to вектор::сайз_тайп
>>765796
#82 #765796
>>765779
То есть просто защита от возможных отрицательных индексов?

А почему с auto выведется int? Ведь size() возвращает size_type.
>>765802>>765811
#83 #765801
>>765768
Предусловие. Нельзя работать если скажем:

assert(boost::algorithm::all_of(values, less_then(threshold)));
#84 #765802
>>765796
У индекса вектора тип - size_t, а не int. Технически, это неверно.
По умолчанию тип целых чисел - int, поэтому auto ix = 0 выдаст int. auto выводит тип из правой части.
>>765923
#85 #765811
>>765796
ты не можешь написать auto(vec.size_type())
#86 #765840
>>765768
Нет, дружочек. Для assert еще гарантируется, что в случае ошибки диагностика будет содержать текст строки, которую ты вторым аргументом укажешь, а также номер строки с ошибкой, имя объемлющей функции и единицы трансляции. И вызывает оно не exit, а abort, это существенно в плане вызова деструкторов.
#87 #765923
>>765802
Можно явно писать тогда:
https://ideone.com/Ww0aNX
>>765930
#88 #765930
>>765923
Не совсем понял, в чем суть кода, но decltype и auto используются для того, чтобы меньше приходилось менять код в нескольких точках одновременно и уменьшить касты между типами везде, где только можно.
>>765955
#89 #765955
>>765930
Завместо деклтайпа, можно написать: auto i = 0u;
Да и вообще, лучше завести для себя такое правило: если переменная всегда будет равна нулю или больше нуля, то использовать size_t
>>765957
#90 #765957
>>765955
И у тебя будет unsigned вместо size_t. Это разные типы, они могут иметь разный размер, если что.
#91 #766017
Скажите, я хотел переписать пример, который тут был >>764940
для безопасности. Выполняется, но что-то в коде не то.
https://ideone.com/pSk805
Тут виртуальный деструктор нужен? Помогите пожалуйста.
>>766022
#92 #766022
>>766017
А у тебя есть виртуальный конструктор?
>>766029
#93 #766029
>>766022
Не знаю, но я слышал что для безопасности надо чтобы в каждом классе деструктор был определен, это правда?
opencv #94 #766063
вот есть функция cvPutText которая накладывает на изображение текст. А как нанести другой тип допустим int или double&
#95 #766073
>>766063
Создай string из любого другого типа с помощью stringstream.
Или просто загугли int to string.
>>766085
#96 #766085
>>766073

>stringstream


Сложно.

>загугли int to string


Говорит to_string есть, но с++ почему-то его не находит.
Но я написал свою. Спасибо.

А вообще это какая-то неудобная штука opencv. Как будто дли си писали. Нет бы сделать эту функцию методом класса изображение. Всё было бы в разы удобнее. Почему так не сделали?
>>766130
#97 #766130
>>766085

>но с++ почему-то его не находит.


Может потому что ты проебался и не подключил <string>/забыл про неймспейс?
#98 #766137
Проблема такая. Сделал базовый класс, от него производный по типу "является". Затем в программе хочу к указателю на базовый класс присвоить адрес переменной производного класса, а он не разрешает. Visual Studio выдает "не допускается преобразование в недоступный базовый класс "Cd"".
>>766171
#99 #766171
>>766137
Код бы хоть накидал, не понятно как ты наследуешься, как приводишь
>>766196
#100 #766196
>>766171

>как ты наследуешь


class Classic : Cd {...};

>как приводишь


Classic c1;
Cd * pcd = &c1;
>>766202
#101 #766202
>>766196

>является


Нихуя у тебя не является, у классов по умолчанию приватное наследование, ты реализацию только унаследовал. Пиши Classic : public Cd { ...
>>766207
#102 #766207
>>766202
Точно. Не заметил эту деталь. Благодарю за помощь и потраченное время.
STUN #103 #766223
БРАТЦЫ! КРЕСТОНОСЦЫ!
делаю децентрализованный игорь на андройд ndk.
вроде графика и физика изи но сетка это вообще пиздец. но это не важно
Вопрос по STUN.
Я понял что мне нужен stun уже успех
но http://ideone.com/knBvgP почему не рабит?
гайды за 2 дня гугловки не нашел и действовал в идеоне по логике. На локал хосте рандомный порт открывется сокетом и листится. но ответки с Stun не приходит. Q3 работает. поэтому думаю проблемы в NAT нет. В чем косяк?
10 Кб, 398x44
#104 #766231
>>766223
порт рандомный листится. работает. может я не знаю чего о STUN запросах?! выручайте аноны
#105 #766238
Парни, простите, я тупой.

Как подключить библиотеку к CodeLite/CodeBlocks чтобы он ее видел как <Libname>?
>>766244
#106 #766244
>>766238
Никак. Пользователт говно-IDE должны страдать.
>>766246
#107 #766246
>>766244
Ну будьте же вы людьми, хотет автокомплит и прочие преслести промышленного программирования.
>>766247
#108 #766247
>>766246

>преслести промышленного программирования


Так нахуй брать эти школоподелки?
Серьезные люди в продакшене юзают:
- MS VS
- Eclipse CDT
- XCode
- Qt Creator
- CLion
- Vim

Всем, кто советует иное, можешь плевать в лицо без раздумий.
#109 #766251
>>766247
А как же оп-пост?
>>766253>>766254
#110 #766253
>>766251
Оп хуй
харкни ему в лицо
#111 #766254
>>766251
Какой-то фанбой Codelite его пили, а всем остальным лень отправлять pull-реквест в репу шапки
256 Кб, 2134x1366
#112 #766257
>>766247

> Eclipse CDT


арчюю тут
>>766223
ну ребят помогие!
#113 #766262
>>766247
Eclipse CDT
Qt Creator
Vim
они вроде все на vim нет? просто обвесы ide в qt заточены на qt а в eclipce на всё, я прав?
>>766270
#114 #766270
>>766262
Нет, конечно. Что за бред? vim - это отдельный консольный редактор, не связанный ни с одной другой IDE.
>>766275
#115 #766275
>>766270
вроде текстовые редакторы в qtcreator и eclipce это vim и открою тайну vim бывает гуёвым
>>766279>>766281
#116 #766279
>>766275
Ебать, и ведь даже не поймёшь – это жирный траль или залётный вася из /б/.
>>766285
#117 #766281
>>766275

>766270


>вроде текстовые редакторы в qtcreator и eclipce это vim и открою тайну vim бывает гуёвым


Лалка, они поддерживают режим ввода текста, как в vim и не больше. Код из vim они не используют. Особенно Eclipse, которая написана на Java.
А называть gui версию vim настоящим gui текстовым редактором - это вообще охуеть.
>>766285
#118 #766285
>>766281
ну да, с eclipce ступил.
ну про режим ввода как vim я понял
пробовал guivim тоже охуел. но думал кто-то юзает
>>766279
я думал ты залетный с /b и жирно тралил
#120 #766315
>>766223
Аноны! ну что вы знали о peer to peer
>>766334
#121 #766334
>>766315
Тут лабы решают и IDE обсуждают.
>>766343
#122 #766343
>>766334
Какое отношение peer-to-peer имеет к цепепе?
>>767260
#123 #766361
>>766223
1. Подними stun на виртуалке и потести в виртуальной сети.
2. Почитай доку к сокетам
3. Почитай подробнее у Таненбаума про протоколы, с которыми собрался работать.
>>767237>>767260
373 Кб, 1536x2048
#124 #766375
>>766309
Кекус. Будущий войтишник подрастает.
>>766382
#125 #766382
>>766375
Вот это просто уровень Илюши, так деанониться.
#126 #766386
Школота в треде, нужно сравнить несколько чисел с одним, так же где то читал, что возможен такой вариант кода
if (x1, x2, y1, y2 > 7)
Это будет работать?
inb4: Иди на хуй
>>766429
#127 #766387
>>766247
сидеть под 15 визуалкой с вимовым анальным расширением. полёт заебись. нахуй мне ваши ответы не нужны
#128 #766429
>>766386
Попробуй
if ((x1 + x2 + y1 + y2) / 4 > 7)
>>766431
sage #129 #766431
>>766429
Тонко.
66 Кб, 401x604
57 Кб, 604x403
113 Кб, 604x604
28 Кб, 237x604
#130 #766502
>>766309
Не хватает только надписи "типичный обитатель кретотреда" на каждой фотке.
>>766527>>766553
19 Кб, 690x260
#131 #766527
>>766502
Ну разве что с намеком на лабодаунов. Не надо хороших крестанов так шкварить.

Спасибо Абу, за удобную капчу.
>>766534
#132 #766534
>>766527
В тематике есть капча?
>>766545
#133 #766545
>>766534
иногда
#134 #766553
>>766502
Надо это в /b скинуть, там парни разберутся
>>766561
21 Кб, 686x356
#135 #766561
>>766553
И что мы им напишем? Задал глупый вопрос в тематике? Надо просто каждый тред напоминать кто тут сидит и что делать с лабадаунами.
#136 #766595
Социобляди, социобляди everywhere.
Грег.жпг
>>766642
#137 #766599
Если посмотреть на дату оригинального поста с опенсиви, то можно заметить,что он написал намного раньше появления этого треда. Следовательно Олежку решил подставить какой-то зависник, который вероятно вместе с ним учится. Осталось выйти на связб с Олежкой и спросить не травил ли кого-нибудь недавно. Лошара и будеь автором вброса.
>>766601>>766641
#138 #766601
>>766599
Тебе настолько скучно? Ему там нихуя не ответили вот он и пришёл сюда спрашивать.
>>766641
#139 #766641
>>766599
>>766601

Пиздец, вам делать нехуй, выяснять мотивы очередного лабодауна.
>>766649
#140 #766642
>>766595

>Грег.жпг


Последний раз слышал о нем на 0-льчaне в 2009 году лол.
>>766697
#141 #766649
>>766641

> лабодауна


Сам то кто будешь?
>>766665
#142 #766665
>>766649
ОП-не-стихоеб.
#143 #766697
>>766642
Если бы он тебе вставил меч в жопу или хотя бы киберунизил, ты бы до сих пор следил за ним.
#144 #766728
Подскажите, а нет ли какого-нибудь простенького портативного компилятора на шинде для С++?
Я на линуксе пользуюсь консольными командами с г++, а на шинде, я смотрю, только 20 гигобайтный вижуал?
>>766734>>766756
#145 #766734
>>766758
#146 #766756
>>766728
Можешь cygwin накатить, если тебе нужен не только компилятор, но и более-менее POSIX-окружение.
#147 #766758
>>766734
Он же в 64 bit не может.
>>766760
27 Кб, 1337x463
#148 #766760
>>766767
#149 #766767
>>766760
И где брать эту версию? На сайте у них инсталлятор только под 32 bit.
>>766768
#150 #766768
>>766773
#151 #766773
>>766768
Попробую. Я с mingw.org качал. Там старая версия что ли?
>>766776
12 Кб, 1054x39
#152 #766776
>>766773

> Там старая версия что ли?


Пиздец. Читать не умеют — уже к компилятору тянутся.
https://sourceforge.net/p/mingw-w64/wiki2/History/

И это C++-тред...
#153 #766832
>>764773

Ты так или иначе всё равно будешь работать с плюсами. Qt нужен для написания гуи, но логика какая-то же тоже должна быть. Сначала набей руку в плюсах, а потом немножко почитай Шлее или Саммерфилда по Qt и кури доки по Qt, они у них хорошо написаны.
#154 #766882
>>764773
В плюсах вкатиться куда-либо невозможно, не зная сами плюсы. Для Qt надо очень хорошо владеть адванцед понятиями, типа pointer ownership, построением хорошей архитектуры и тд.
>>766970
#155 #766970
>>766882

>pointer ownership, построением хорошей архитектуры


>Qt



Тут человеку плохо, забирайте
>>766972
#156 #766972
>>766970
мне как раз заебись
>>767088
#157 #767085
Что лучше: использовать std::thread или писать отделано свой класс для win thread и posix thread?
#158 #767087
>>767085
Why not both? std::thread дает доступ к хэндлу оси, можно использовать его со своими классами.
#159 #767088
>>766972
Что же в КТ такого, что там нужно интенсивное использование pointer ownership?
>>767180
#160 #767100
>>767085
std::thread, раз ты не знаешь, как тебе пригодятся нативные средства.
#161 #767180
>>767088
надо это понимать, иначе ты будешь память выливать на каждый чих
#162 #767181
>>767085
std::thread, если нужно большее - boost::thread
#163 #767213
Если я создам класс
class A
{
int arr[100];
};

и вызову
A * instance = new A;
Массив arr у меня будет в куче?
>>767243
#164 #767237
>>766361
вроде по доку сокет сделал. он листит rnd порт на 0.0.0.0
#165 #767243

>>7671>>767213


Ясен хуй
#166 #767260
>>766361

>Подними stun на виртуалке и потести в виртуальной сети.


мне нужно обойти nat, как мне поможет виртуалка? на ней тестовый nat собрать?
>>766343
я делаю реализацию peer-to-peer на цпп и там надо на листинг сокеты ставить в тредики ченить собирать... а какое отношение лабы имеют к цпп треду?
>>767299
#167 #767270
Ребят, у кого-нибудь есть скокпилированный PDcurses?
Пытался вот этот http://sourceforge.net/projects/pdcurses/files/latest/download?source=files
собрать. Ниасилил, компилятор пишет "Точка входа в процедуру libintl_setlocale не найдена в библиотеке DLL: (дальше идет путь к компилятору)".
>>767291>>767323
#168 #767291
>>767318
#169 #767299
>>767260

>на ней тестовый nat собрать?


this. Должна быть контролируемая среда для тестирования.
>>767313
#170 #767310
Ананасы, для вкатывания в кресты нужно учить сишку?
#171 #767312
>>767310
Ну сишка это облегченные кресты, так что можешь начать с нее, да.
#172 #767313
>>767299
понял вас.. Таненбаум и собрать nat. и stun сервак. буду работать
#173 #767318
>>767291
Это тот который с pdcurses.lib?
Не догнал как его ставить.
#174 #767323
>>767270
Недавно собирал, всё нормально собиралось.
>>767330
#175 #767324
>>767310
нет
#176 #767330
>>767323
Можешь pdcurses.a и panel.a вытащить?
>>767344
#177 #767338
потсоны что делать если твой код выглядит как
c::foo(int const const a, const std::vector<const int const const> const * const b, const const const const const const c) const ? const : const
>>767342>>767345
#178 #767342
>>767338
Не ебу что делают эти консты потому как никогда их не использовал.
Ну если ты уверен что они тебе нужны, то, боюсь, ничего.
#179 #767344
>>767330
У меня студия собирает .lib
>>767350
#180 #767345
>>767338
class TvoyaMamka;
using pTvoyaMamka = * TvoyaMamka;
using cpTvoyaMamka = const pTvoyaMamka;
Ну ты понел.
>>767348>>767372
#181 #767348
>>767345
точняк спс
#182 #767350
>>767344
А в студии он через .h нормально добавляется?
Я в mingw пишу и как туда добавить .lib понятия не имею, весь гугол перерыл уже.
Если просто закинуть .lib и .dll в папку с проектом и добавить в код заголовочный файл, ничего не работает.
#183 #767362
>>767350
Вроде-бы просто так работает. И если ты собираешь его в .lib то никакого .dll нет.
Тебе нужно только кинуть curses.h и pdcurses.lib в папку проекта, добавить pdcurses.lib в зависимости твоего проекта и #include "curses.h", тащемта всё.
>>767406
#184 #767372
>>767345

>cpTvoyaMamka


WINAPI-мразь не заметна.
>>767403>>767418
#185 #767398
>>767310
Выучи си , а кресты не учи
#186 #767400
>>767350

>Я в mingw пишу и как туда добавить .lib понятия не имею


Никак, у mingw .a вместо .lib. Или собирай либы сам под mingw, или ищи уже собранные в дистрах линукса.
>>767565
#187 #767403
>>767372
Хомячок, никогда не писавший вирусы, детектед.
>>767417
#188 #767406
>>767362

>добавить pdcurses.lib в зависимости твоего проекта


В этом-то и проблема. Как его добавить?
>>767512
#189 #767417
>>767403
нахуй мне этим днищем заниматься? Я предпочитаю хуярить что-нибудь полезное. на *nix
>>767419>>767420
97 Кб, 668x444
222 Кб, 900x506
#190 #767418
>>767372
Как что-то плохое.
15 Кб, 157x200
#191 #767419
>>767417

>на *nix


>полезное

#192 #767420
>>767417
как там 0.5% среди десктопов? вас не видно
#193 #767510
Время выебонов
Сколько человек из желающих ВКАТИТЬСЯ в плюсы и/или сишку реально вкатилось хоть на уровень джуна?
Судя по борде, то у каждого второго планы изучать сие.
#194 #767511
>>767510
>>767510

>в плюсы и/или сишку


огромная разница
#195 #767512
>>767406
поищи настройки линкера и добавь туда. либо полный путь, либо добавь путь в настройки проекта/солюшна и тогда только имя либы линкеру
>>767565
#196 #767513
>>767510
если не долбоеб, то за пару лет можно в миддла вкатиться.
>>767533
#197 #767517
>>767350
В мингв ты писать не можешь.
Какая у тебя IDE?
>>767565
#198 #767519
>>767510
Я в феврале первый раз зашел в этот тред.
В апреле уже нашел работу. Но на плюсах для себя пишу уже давно.
#199 #767527
Может кто что подскажет. У меня есть менеджер задач. Каждая задача выполняется на отдельном потоке. Задач много. И тут я хочу одну в одной из задач вызвать sleep. И не хочу терять зря время потока, и дать выполнять ему другую задачу. А когда время пройдет, то то свободный поток подхватит ее и продолжит выполнение. Пока только придумал создавать новый поток, добавлять его в менеджер задач. А тому, который уснул не посылать потом новую задачу и отдавать дескриптор ОС. Норм решение или стоит ещё подумать?
#200 #767529
>>767527

>Каждая задача выполняется на отдельном потоке.


Неправильно выразился. Каждый поток выполняет одну задачу. Пул потоков короче.
#201 #767533
>>767513
Хуй там. На миддла надо больше пахать. За пару лет только макакой станешь.
#202 #767544
>>767527

> терять зря время потока


Время ты не теряешь. Система поставит на выполнение другой поток вместо остановленного и все. Ебаться есть смысл только если количество остановленных задач может приближаться к размеру пула потоков - тоесть проблема в том что могут кончиться потоки в пуле. Если я правильно тебя понял (каждая остановленая задача приведет к созданию нового потока) то твое решение так себе. Проще увеличить размер пула.
>>767558
#203 #767558
>>767544

>Время ты не теряешь.


Ну как не теряю. Изначально я создаю n потоков по количеству ядер (допустим 4). Нагружаю все 4 ядра. В одном вызываю sleep(3) нагрузка на CPU - 75%, пока поток спит.

> Проще увеличить размер пула.


Это я и хочу сделать, но в риалтайме. Создал новый поток, а старый после завершения освободил. Одновременно рабочих у меня будет столько, сколько у цп аппаратных потоков.
>>767619
#204 #767565
>>767512
Вот этот >>767400 анон прав, видимо, подружить mingw и .lib не получится. Там в папке lib все сплошь с расширением ".а".

>>767517
Да знаю я что это компилятор.
Есть еще и одноименная IDE - MinGW developer studio.
>>768553
#205 #767619
>>767558
Имелось ввиду что у тебя есть некоторое количество заранее созданых потоков (пул). Ты не создаешь и освобождаешь потоки (это тяжелая операция), а переиспользуешь старые. Когда задача отработает поток не уничтожается, а возвращается в пул. Когда нужно запустить задачу то из пула берется уже готовый свободный поток. Когда нужно приостановить задачу ее поток останавливается и на выполнение отдается другая задача. Когда можно продолжить то вместо запуска новой задачи снимается с паузы старая задача.
#206 #767696
Как можно быстро распространить криптолокер? Заливать в интернет как быть независимой женщиной и эксплуатировать мужчину.fb2.exe?
(Автор этого поста был предупрежден.)
>>767780
#207 #767770
Обосрите меня, пожалуйства. Очень хочется.
#208 #767780
>>767696
Ахахахахахах, блять.
#209 #767799
Чем плохо using namespace std и как тогда делать доступным определенные типы и функции? Для каждого объекта писать using std::name?
>>767804>>767825
29 Кб, 550x550
#210 #767803
Крестаны, собираюсь обмазаться C++, потому что в целом хочу подтянуть базисные знания по программированию и попробовать запилить небольшую 2D игру в детстве жутко мечтал сделать свою игру, так сказать совместить приятно с полезным, чтобы не сорваться в процессе изучения. Вопрос этот наверное платиновый, но правильно ли я делаю? Или тут только драйвера байтоебят, а мне дорога в C# с Юнити?
Хочется поставить себе долгосрочную задачу с конкретным результатом, поебаться с разными сложностями и алгоритмами как в детстве, когда решал задачки на тимусе.
>>767810>>767825
#211 #767804
>>767799
Если тебе один раз нужно вызвать std::какая-то_срань, то вовсе необязательно using.
#212 #767810
>>767803
Берешь sfml и пилишь, всё необходимое уже за тебя зделано.
14 Кб, 420x310
#213 #767820
Пора выходить из зоны комфорта!

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

Удали все контакты из телефона, продай всё, кроме самого необходимого и обратись в веру. Благодаря вере ты сможешь искупить свои грехи и возможно поможешь обратиться другим.

Начни прямо сейчас!
#214 #767825
>>767803
Можно и то и то. Если не смущает юнити (например фактический вендорлок на виндоуз, хотя с этим пытаются бороться, может даже поборют) то лучше в юнити пойти - ты там быстрее к результату сможешь прийти. А так-то и на плюсах можно, если есть желание именно ими заниматься.
>>767799
Глобальное пространство имен раздувается кучей идентификаторов которые все не упомнишь - появляется вероятность конфликтов.
#215 #768133
Пишу программу, которая по целому числу N создаёт массив, который случайным образом заполнен числами от 0 до N-1.

Вот код: http://pastebin.com/fdcNPYb9

Почему-то иногда в получающемся массиве представлены не все числа по разу, а дважды повторяется 0. Помогите отловать ошибку.
>>768136
#216 #768136
>>768133
std::vector<int> v(N);
for(size_t i = 0; i!=v.size(); ++i)
v = i;
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(v.begin(), v.end(), g);
#217 #768153
Когда надо применять constexpr, а когда const? Часто вижу, что даже литералы стали объявлять как constexpr/
#218 #768188
>>768153
constexpr ненужное гавно, очень редко используемое.
Вот изза таких вещей как constexpr, prvalue и так далее изучение новых крестов превращается в ад
>>768468
#219 #768209
>>766247
Включил vim, но не включил Emacs. Ох лол.
>>768228
#220 #768226
>>768153
почитай Мейерса, нахуй он книжку писал, если ты не читаешь, бля?
#221 #768227
Анон, первым языком лучше учить Си или С++?
>>768229>>768254
#222 #768228
>>768209
ну забыл учесть эту парашу, ну и что? Один хуй, что vim'ом, что emacs'ом мало кто пользуется.
#223 #768229
>>768227
питон, потом C, потом C++
>>768295
#224 #768254
>>768227
Зависит от того, на чем преимущественно ты хочешь писать в итоге. Вкатываясь в кресты после няшной, довольно трудно избавиться от навязчивого чувства, что 80% фич крестов — ненужное (и даже вредное) говно. Так что если твоя цель кресты, то лучше с них сразу и начать, не набирая вредных (для крестопрограммера) привычек из сишечки.
>>768283>>768293
#225 #768283
>>768254

>навязчивого чувства, что 80% фич крестов — ненужное (и даже вредное) говно


Охуительные истории. Надо быть совсем упоротым утенком, чтобы так думать.

"Ух епт, теперь не надо высчитывать размер для маллока? Говно, нинужно".

"Ух епт, теперь не нужно ебаться с макросами для обобщенных функций и типов? А нее, говно, нинужно".

"Ух епт, теперь не нужно каждый раз городить vptr вручную? А нее, говно. Не жили хорошо, неча начинать".
#226 #768293
>>768254
Вообще везде пишут, что кресты надо очень долго учить, и лучше все-таки начинать с С. Ты уверен в своих словах, анон?
>>768295>>768302
#227 #768295
>>768293
не слушай того пидора, слушай этого >>768229
>>768300
#228 #768298
Как начать работать, если я ленивый уебок? Иногда бывают продуктивные месяцы, когда не отвлекаюсь ни на что. А иногда я такой ленивый пидор, что самому стыдно.
>>768430
#229 #768300
>>768295
Питон пробовал, он какой-то охуительно простой. С ним точно все в порядке?
>>768430
#230 #768302
>>768293
Ну иди пойди уже поучи что-нибудь. Если ты ньюфаг, что 80% инфы для тебя будет одинаково новой, что в учебнике по си, что в учебнике по крестам.
#231 #768430
>>768298
В новом стандарте С++100500 будут такие возможности, что ты не будешь отвлекаться.

>>768300
Он для того и делался чтоб любой непрограммист мог что-то написать. Бэйсик современный.
#232 #768456
Аноны, подскажите.
Есть сущность скилла (умения). У скиллов есть эффекты, некоторые со сложной логикой. Метод "use" получает все необходимые данные (id, player, world).
Где мне описывать логику эффектов? Делать нагромождение if (id == 1) ... else if (id == 2) ... ?
#233 #768467
>>768456
Finite-state machine
#234 #768468
>>768188
Охуел что ли. Если ты не понимаешь, для чего нужна фича, то это не значит, что она не нужна.
Если сложна, то иди учи бейсик.

>>768153
const может быть просто фиксацией любого значения, типа "Вот это пользователь не должен менять".
constexpr показывает, что выражение может быть рассчитано во время compile-time, если ему переданы constexpr. В ином случае выражение будет рассчитано в рантайме.
const, например, нельзя использовать, как параметр шаблона, а constexpr можно.
>>768529>>768765
#236 #768486
>>768456

> Делать нагромождение if (id == 1) ... else if (id == 2) ...


Когда ты сталкиваешься с ситуацией "нужно сделать нагромождение ифов" это верный признак что можно применить ООП. Это конечно не значит что его нужно пименять. В конечном счете нагромождение ифов может оказаться более простым и понятным вариантом.
#237 #768529
>>768468

>во время compile-time


Во время compile-time компиляции.
Медленнофикс.
>>768560>>768584
#238 #768553
>>767565
MinGW w64 отлично линкует x32 *.lib
Вот даже микропруфы: https://sourceforge.net/p/mingw-w64/wiki2/Answer 64 bit MSVC-generated x64 .lib/

Интересно, что на работе у меня без задней мысли линкуются .lib x64. При этом почти никаких проблем. Но там используется чистый Си.
#239 #768560
>>768529
А у нас бывает runtime-компиляция? Она-то бывает, конечно, но смысл constexpr это никак не меняет.
>>768584
#240 #768562
>>764736 (OP)
А что с ОПом то случилось?
#241 #768584
>>768529
>>768560
Что вы употребляете, больные?
>>768607
#242 #768607
>>768584
Вы только посмотрите: лалка не знает про llvm, позор-то какой!
>>768610
#243 #768610
>>768607
Ну так это молодёжное хипстерское говно.
В моё времечко-то объёбывались gcc и bcc.
>>768612
#244 #768612
>>768610
Как там в 2000? llvm уже 16 лет пилят, хотя JIT для С++ не так давно делать начали. Да и то, всем похуй на него.
>>768615
#245 #768615
>>768612
LLVM довели до юзабельного состояния только 5-6 лет назад (как начали спонсировать). До этого легче было писать самому кодогенерацию.
#247 #768765
>>768468

>В ином случае выражение будет рассчитано в рантайме.


>const, например, нельзя использовать, как параметр шаблона, а constexpr можно


Ты путаешь понятия "constexpr" и "constant expression". Второе может храниться и в const (например, если ты пишешь const int x = 1) и прекрасно использоваться для размеров массива и параметров шаблона, ибо тоже рассчитывается в compile-time. Но не любой const хранит constant expression, поэтому ввели constexpr, который это форсирует.
>>768770
#248 #768770
>>768765
Ничего не путаю, но да, с const я промахнулся.
На тебе покушать про рантайм с constexpr-функциями:
http://ideone.com/STL0Xm
>>768774
#249 #768774
>>768770
У constexpr для функций вообще другая семантика же. Там даже константность не гарантируется для методов.
constexpr-данные ~ гарантированно константное выражение литерального типа
constexpr-функция ~ функция над литеральными типами, которая вычислится в константное выражение при условии, что аргументы будут константными выражениями.
>>768775
#250 #768775
>>768774
Хотя ты это уже написал, я в глаза долблюсь.
#251 #768867
>>764736 (OP)
Хелпаните. Вот простейший расчет времени, вот по идеи он должен мне больше 24 часов не выводить.
Подскажите гуру чему деление часов с остатком работает через жопу?

cin >> sek;
day = sek / (86400);

hour = (sek % (60 60)) / 24; //здесь надо //sek /3600
min = (sek % (60
60))/60;
SEKONDS = sek % 60;
>>768874>>768881
#252 #768874
>>768867
http://ideone.com/I2FQOJ
Запилил для удобства.
#253 #768881
>>768867

> он должен


Кому должен? Ты берешь остаток от деления на 3600, что может оставлять от 0 до 3599 и делишь на 24. Что дает результат от 0 до 149.
>>768930>>768931
#254 #768883
>>764736 (OP)
Чтобы ОС написать нужно знать только с++ и ассемблер?
>>768886>>769182
#256 #768890
>>768886
Но я могу просто взять 16 битник с хабра за основу и просто глянуть в код. Или ядро от пингвина посмотреть.
>>768893>>768897
#257 #768893
>>768890
Да бери уж пингвина и компилируй.
Будешь у мамки настоящий ос-писатель.
>>768895
#258 #768895
>>768893
Ну, а смысл пердолится? Я имею ввиду, если глядя на ядро системы ты быстрее поймешь что к чему?

Хотя, не напрягайся, понятно что ты очередной шутник про Попова.
>>768899>>768902
#259 #768897
>>768890
смотри на Minix. специально для обучения создан. с него начинался Linux
#260 #768899
>>768895

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


Ха-ха-ха, блядь. Быстрее всего ты поймешь, если будешь читать умные книжки и писать свою недосистему ради ознакомления с основными тонкостями.
>>768903
#261 #768902
>>768895
Иди почитай, сразу поймешь что к чему https://github.com/torvalds/linux/blob/master/mm/memory.c
#262 #768903
>>768899
Посоветую умную книжку
Design and implementation of 4.4 BSD
>>768909>>768929
#263 #768909
>>768903
Я бы начал с Танненбаума все же.
>>768912
#264 #768912
>>768909
Категорически протестую. Эти теоретики со своими концепциями придумали Minix, MULTICS и стек OSI (да блджад, это не просто "модель OSI", которую в универчиках изучают, ни сделали работающую имплементацию - но работает TCP-IP вместо их красивых построений).
Практики сделали UNIX, TCP-IP и оно работает.
>>768928>>768932
491 Кб, 768x1516
614 Кб, 2212x1328
#265 #768928
>>768912
Я надеюсь ты так тралишь. Танненбаум описывает работу с памятью на 90 страницах, а дока к freebsd на двух.

Seems legit.
>>768937
35 Кб, 319x400
#266 #768929
>>768903
Посоветую умную книжку чтоб не делать такого говна как Unix
>>768956
21 Кб, 361x431
#267 #768930
>>768881
БЛять ну ты и пидорас! Ура получилось, не зря я ебался час с с лишним.

http://ideone.com/SlrlDR
Рапортую, посоны.
>>769349
#268 #768931
>>768881
Ну ты понел, добра тебе анон. Вот что я хотел сказать.
#269 #768932
>>768912

>да блджад, это не просто "модель OSI", которую в универчиках изучают, ни сделали работающую имплементацию - но работает TCP-IP вместо их красивых построений



Они-то теоретики, а ты - самый настоящий кукаретик. В OSI только TCP-IP реализованы, ну охуеть теперь.
>>768939
#270 #768937
>>768928
Я же сказал книжку а не огрызки с энторнетов.
Работе с памятью посвящены страницы со 117 по 190
#271 #768939
>>768932

>В OSI только TCP-IP реализованы


TCP, IP и примкнувший к ним ICMP реализованы сами по себе, OSI-модель вместе с нихуя не работащим OSI-стеком от теоретиков к ним не относится НИКАК.
#272 #768954
>>767527
Используй асинки, а не потоки.
#273 #768956
>>768929
Почти любая ОС лучше чем Unix

Not organized to be able to just throw out a reference and many disappeared over time as old web faded. It's more something you see relative to other OS's than an absolute. I really need to try to integrate all the examples sometime. Here's a few, esp from past, that give you an idea.

Historical look at quite a few http://brinch-hansen.net/papers/2001b.pdf

Note: A number were concurrency safe, had a nucleus that preserved consistency, or were organized in layers that could be tested independently. UNIX's was actually a watered down MULTIC's & he's harsh on it there. I suggest you google it too.

Burrough's B5000 Architecture (1961-) http://www.smecc.org/The Architecture of the Burr...

Note: Written in ALGOL variant, protected stack, bounds checks, type-checked procedure calls dynamically, isolation of processes, froze rogue ones w/ restart allowed if feasible, and sharing components. Forward thinking.

IBM System/38 (became AS/400) https://homes.cs.washington.edu/~levy/capabook/Chapter8.pdf

Note: Capability architecture at HW level. Used intermediate code for future-proofing. OS mostly in high-level language. Integrated database functionality for OS & apps. Many companies I worked for had them and nobody can remember them getting repaired. :)

Oberon System http://www.projectoberon.com/ http://www.cfbsoftware.com/modula2/Lilith.pdf

Note: Brilliance started in Lilith where two people in two years built HW, OS, and tooling with performance, safety, and consistency. Designed ideal assembly, safe system language (Modula-2), compiler, OS, and tied it all together. Kept it up as it evolved into Oberon, Active Oberon, etc. Now have a RISC processor ideal for it. Hansen did similar on very PDP-11 UNIX was invented on with Edison system, which had safety & Wirth-like simplicity.

OpenVMS https://en.wikipedia.org/wiki/OpenVMS

Note: Individual systems with good security architecture & reliability. Clustering released in 80's with up to 90 nodes at hundreds of miles w/ uptime up to 17 years. Rolling upgrades, fault-tolerance, versioned filesystem using "records," integrated DB, clear commands, consistent design, and great cross-language support since all had to support calling convention and stuff. Used in mainframe-style apps, UNIX-style, real-time, and so on. Declined, pulled off market, and recently re-released.

Genera LISP environment http://www.symbolics-dks.com/Genera-why-1.htm

Note: LISP was easy to parse, had REPL, supported all paradigms, macro's let you customize it, memory-safe, incremental compilation of functions, and even update apps while running. Genera was a machine/OS written in LISP specifically for hackers with lots of advanced functionality. Today's systems still can't replicate the flow and holistic experience of that. Wish they could, with or without LISP itself.

BeOS Multimedia Desktop http://birdhouse.org/beos/byte/29-10000ft/ https://www.youtube.com/watch?v=BsVydyC8ZGQ

Note: Article lists plenty of benefits that I didn't have with alternatives for long time and still barely do. Mainly due to great concurrency model and primitives (eg "benaphors"). Skip ahead to 16:10 to be amazed at what load it handled on older hardware. Haiku is an OSS project to try to re-create it.

EROS http://www.eros-os.org/papers/IEEE-Software-Jan-2002.pdf

Note: Capability-secure OS that redid things like networking stacks and GUI for more trustworthyness. It was fast. Also had persistence where a failure could only loose so much of your running state. MINIX 3 and Genode-OS continue the microkernel tradition in a state where you can actually use them today. MINIX 3 has self-healing capabilities. QNX was first to pull it off with POSIX/UNIX compatibility, hard real-time, and great performance. INTEGRITY RTOS bulletproofs the architecture further with good design.

SPIN OS http://www-spin.cs.washington.edu/

Note: Coded OS in safe Modula-3 language with additions for better concurrency and type-safe linking. Could isolate apps in user-mode then link performance-critical stuff directly into the kernel with language & type system adding safety. Like Wirth & Hansen, eliminates all the abstraction gaps & inconsistency in various layers on top of that. JX OS http://www4.cs.fau.de/Projects/JX/publications/jx-sec.pdf

Note: Builds on language-oriented approach. Puts drivers and trusted components in Java VM for safety. Microkernel outside it. Internal architecture builds security kernel/model on top of integrity model. Already doing well in tests. Open-source. High tech answer is probably Duffy's articles on Microsoft Midori.

So, there's a summary of OS architectures that did vastly better than UNIX in all kinds of ways. They range from 1961 mainframes to 1970-80's minicomputers to 1990's-2000's desktops. In many cases, aspects of their design could've been ported with effort but just weren't. UNIX retained unsafe language, root, setuid, discretionary controls, heavyweight components (apps + pipes), no robustness throughout, GUI issues and so on. Endless problems many others lacked by design.
#273 #768956
>>768929
Почти любая ОС лучше чем Unix

Not organized to be able to just throw out a reference and many disappeared over time as old web faded. It's more something you see relative to other OS's than an absolute. I really need to try to integrate all the examples sometime. Here's a few, esp from past, that give you an idea.

Historical look at quite a few http://brinch-hansen.net/papers/2001b.pdf

Note: A number were concurrency safe, had a nucleus that preserved consistency, or were organized in layers that could be tested independently. UNIX's was actually a watered down MULTIC's & he's harsh on it there. I suggest you google it too.

Burrough's B5000 Architecture (1961-) http://www.smecc.org/The Architecture of the Burr...

Note: Written in ALGOL variant, protected stack, bounds checks, type-checked procedure calls dynamically, isolation of processes, froze rogue ones w/ restart allowed if feasible, and sharing components. Forward thinking.

IBM System/38 (became AS/400) https://homes.cs.washington.edu/~levy/capabook/Chapter8.pdf

Note: Capability architecture at HW level. Used intermediate code for future-proofing. OS mostly in high-level language. Integrated database functionality for OS & apps. Many companies I worked for had them and nobody can remember them getting repaired. :)

Oberon System http://www.projectoberon.com/ http://www.cfbsoftware.com/modula2/Lilith.pdf

Note: Brilliance started in Lilith where two people in two years built HW, OS, and tooling with performance, safety, and consistency. Designed ideal assembly, safe system language (Modula-2), compiler, OS, and tied it all together. Kept it up as it evolved into Oberon, Active Oberon, etc. Now have a RISC processor ideal for it. Hansen did similar on very PDP-11 UNIX was invented on with Edison system, which had safety & Wirth-like simplicity.

OpenVMS https://en.wikipedia.org/wiki/OpenVMS

Note: Individual systems with good security architecture & reliability. Clustering released in 80's with up to 90 nodes at hundreds of miles w/ uptime up to 17 years. Rolling upgrades, fault-tolerance, versioned filesystem using "records," integrated DB, clear commands, consistent design, and great cross-language support since all had to support calling convention and stuff. Used in mainframe-style apps, UNIX-style, real-time, and so on. Declined, pulled off market, and recently re-released.

Genera LISP environment http://www.symbolics-dks.com/Genera-why-1.htm

Note: LISP was easy to parse, had REPL, supported all paradigms, macro's let you customize it, memory-safe, incremental compilation of functions, and even update apps while running. Genera was a machine/OS written in LISP specifically for hackers with lots of advanced functionality. Today's systems still can't replicate the flow and holistic experience of that. Wish they could, with or without LISP itself.

BeOS Multimedia Desktop http://birdhouse.org/beos/byte/29-10000ft/ https://www.youtube.com/watch?v=BsVydyC8ZGQ

Note: Article lists plenty of benefits that I didn't have with alternatives for long time and still barely do. Mainly due to great concurrency model and primitives (eg "benaphors"). Skip ahead to 16:10 to be amazed at what load it handled on older hardware. Haiku is an OSS project to try to re-create it.

EROS http://www.eros-os.org/papers/IEEE-Software-Jan-2002.pdf

Note: Capability-secure OS that redid things like networking stacks and GUI for more trustworthyness. It was fast. Also had persistence where a failure could only loose so much of your running state. MINIX 3 and Genode-OS continue the microkernel tradition in a state where you can actually use them today. MINIX 3 has self-healing capabilities. QNX was first to pull it off with POSIX/UNIX compatibility, hard real-time, and great performance. INTEGRITY RTOS bulletproofs the architecture further with good design.

SPIN OS http://www-spin.cs.washington.edu/

Note: Coded OS in safe Modula-3 language with additions for better concurrency and type-safe linking. Could isolate apps in user-mode then link performance-critical stuff directly into the kernel with language & type system adding safety. Like Wirth & Hansen, eliminates all the abstraction gaps & inconsistency in various layers on top of that. JX OS http://www4.cs.fau.de/Projects/JX/publications/jx-sec.pdf

Note: Builds on language-oriented approach. Puts drivers and trusted components in Java VM for safety. Microkernel outside it. Internal architecture builds security kernel/model on top of integrity model. Already doing well in tests. Open-source. High tech answer is probably Duffy's articles on Microsoft Midori.

So, there's a summary of OS architectures that did vastly better than UNIX in all kinds of ways. They range from 1961 mainframes to 1970-80's minicomputers to 1990's-2000's desktops. In many cases, aspects of their design could've been ported with effort but just weren't. UNIX retained unsafe language, root, setuid, discretionary controls, heavyweight components (apps + pipes), no robustness throughout, GUI issues and so on. Endless problems many others lacked by design.
#274 #769175
Подскажите дебилу, как работают автоматические объекты в цпп. Если они создаются на стеке, то как к ним потом обеспечивается доступ?
Вот объявил я, к примеру, несколько переменных:
int chislo = 42;
double pi = 3.14;
MyYoba xui("pizda");

Как потом достаются значения переменных? Выталкиваются в обратном порядке, а потом снова запихиваются? Или просто указатель стека перемещается?
>>769177>>769352
#275 #769177
>>769175
При вызове каждой функции она берет себе от стека столько памяти, сколько нужно для локальных переменных. В этой памяти переменные и инициализируются. При выходе из функции память возвращяется.
>>769179
#276 #769179
>>769177
Это ясно. А как переменные достаются из стека?
>>769184
#277 #769182
>>768883
Можно даже без С++.
https://github.com/organix/pijFORTHos
#278 #769184
>>769179
В смысле "достаются"? Переменные достаются чтением учатска памяти. Разницы в чтении памяти между кучей и стеком нет. Стек автоматически освобождается, а куча - нет, и все.
#279 #769349
>>768930
Вот бы тебя избить за говнокод. Физически неприятно читать.
http://ideone.com/z8RHhX
>>769471
#280 #769352
>>769175
Запусти дизасм хоть раз в жизни и посмотри как все устроено.
#281 #769471
>>769349
Да ладно тебе, кефирщик. Погрешности нет, ошибок нет, все работает.
>>769870
#282 #769489
>>764736 (OP)
А как мне завести цикл на повторение программы?
Ну, понятно что черед do while.
Вот например,
do{
cout" Повторить выполнение,(y/n)?"
while( cin quit&& quit =='y')
}
А как на начало всей программы будет перевести выполнение ?
#283 #769496
>>769489
Берешь и все тело main () обрамляешь этим циклом, очевидно же. Тащемта, это единственный в хостовых реализациях, в каком-нибудь freestanding типа Arduino есть init () и loop () вместо main () вариант сделать повторения, ибо управлять рантаймом до и после работы main () ты не можешь, и вызывать ее вручную тоже запрещено.
>>769515
#284 #769515
>>769496
О как спасибо, анончик. Боббра тебе.
#285 #769584
Крестосы, кто нибудь пишет код без new? Вот совсем. Как еду без соли. Я пишу под арм, надоел мне чистый си, иногда классы удобно, но естественно размер раздувается, а иногда нужно укладываться в 64K. В результате пооткусывал все что можно, чтобы libstd++ не тащить. Могу жить без rtti и исключений, они в ембеде не нужны. А вот к new все таки привык. В результате изворачиваюсь двумя способами: локальные объекты создаю на стеке перед вечным циклом, и уже их адреса передаю во вложенные объекты, зная что из цикла никогда не выходим. Естественно бывает неудобство, если вложенные объекты нужно тоже вкладывать или внутри них нужно создавать другие объекты и их передавать во вложенные классы. Тогда я инициализирую члены в конструкторе через : но это неудобно, иногда хочется несколько строк еще добавить, приходится инициализацию прятать в сами вложенные классы, внутри их конструкторов и тд
>>769659>>770152
#286 #769591
Хелп, анон. Сегодня решил попробовать хардкорно покодить на линуксе, в терминале. Ввожу я значит vim example.c, открывается редактор быдлокода, все хорошо, а как переключаться между редактором кода и вводом команд? Например тот же makefile запустить.
И еще, этот файл example.c хранится в недрах оперативной памяти или сохраняется на диск? Как его сохранить на диск?
sage #287 #769599
>>769591
:w
:!gcc -oexample example.c && ./example
#288 #769605
>>769591
>>769599
или открой второй терминал а то замучаештся постоянно эти крючки вбивать.
>>769608>>770009
sage #289 #769608
>>769605
В vim хистори есть на вверх/вниз. Ну или можно на ctrl+z сворачивать vim и через fg разворачивать.
#290 #769632
>>769591
Хелп, анон. Сегодня решил попробовать хардкорно попердолить консольку, в терминале. Ввожу я значит emacs example.c, открывается редактор быдлокода, все хорошо, оборачивайся сучара я тут голый стою сосать у тебя хочу а ты к этому еблану идёшь наркаман штоле ща перееду камазом мозги прах выпотрошу вытащу селезёнку и съём ах не идешь пидорас ну погоди сука я как дам по ебалу ахуеешь хуй ебанный какашку свою в жопу засунь как высунул все задыхаются смотрят на нас и ржут а я стою тебе в рот сру сука тупорылая иди нахуй чтоб я не видел тебя на моей улице уёбок блять ах ты бить будешь ну всё сучонок пизда тебе я тебе череп оближу выебу трахпну дурак и сделаю из него скворечник нахуй потом вытащу киши кровь говно расчленёнка оргия чёрный властелин айдар печёнка селезёнка вылезла и по жопе ползает хуйло блять лучше раздразнить собаку, нежели бабу а собака блять тебя за ногу хуяк оторвала кровищща хлещёт ты орёшь бегаешь к бабе прибежал а та там с мужиком в постели ебётся ты её бах нахуй из пестика везде кровь баба обосралась а собака прибежала и начала говно жрать а говно то сука радиактивное собаку разорвало на куски на лает пиздёшится всю на куски распидорасчило а ты её по жопе на сука за то што меня кусала мужик стал в окно вылезать бабы увидели защекотали нудиста до смерти а я их всех выебал кишки в супе сварил съел в помойму выбосил бомж увидеел выпрыгнул орёт ты чё пидарас охуел ко мне в дом дерьмо всякое кидать изнасиловал меня в жопу кончил на спину облизал и….блевать сука мозги искры из глаз кровь говно кишки хуй пизда джигурда оргии крловавые негры саус парк гомер симпсон трахнул мо а сайдшоу мел смотрел и аплодировал а я ему хуяк кость в жопу нехуй орать всё правильно сделал так ему пидорсу повар.итог моралевый блеыять дразните баб а то ебутся с кем попало шмары вонючие ненавижу сук
#291 #769640
>>766247
Нет ничего более уебищного чем qtcreator.
#292 #769641
>>766063
Пиздец как можно быть настолько отбитым дауном, чтобы не догадаться загуглить блять библиотечный перевод чисел в строки.
#293 #769646
>>769599
Ууу, я в линуксе немного нью фаг, поясни, пожалуйста, что происходит в этой строке :)
А как между редактором и вводом команд то переключаться?
>>769647
sage #294 #769647
>>769646
Первая команда сохраняет файл, как переключаться здесь >>769608
Раз ньюфаг, иди читай доки терминала.
>>770107
#295 #769659
>>769584
Эмбедовка же ж. Глобальные переменные (синглетоны) решают. А ещё темплейты. Включаешь оптимиздатор и он режет всё говно и код становится маленьким. Без нью спокойно - это ж не гуйню хуярить.
>>770170
#296 #769671
>>766247
emacs забыл
#297 #769868
>>769489
int main()
{
while(Run())
{
//do nothing
}

}

В Run пишешь всю хуйню и ретурн труе/фалсе
#298 #769870
>>769471
Halo ser, may i halp u?
Mai naem is Radjawan Gownoshalan, i am a from a teknikal supporta
#299 #770009
>>769599
>>769605
>>769608
Мышки плакали, кололись...
48 Кб, 705x392
52 Кб, 707x403
#300 #770107
>>769608
>>769647

Что-то не работает ctrl+z...
В видео уроке чувак пишет пишет код, а потом как-то вдруг прописывает :wq и дальше как в обычном терминале vim Makefile...
Скрины приложил. Как он это делает?
>>770120
#301 #770120
>>770107
в виме вводишь :wq и нажимаешь enter. Он там из вима вышел, просто он остался на виду как и предыдущие команды терминала. Ты это на степике проходишь курс, я так понял.
Вот тебе по виму туториал https://ru.wikibooks.org/wiki/Vim
А вообще в виме есть внутренний свой мини-туториал хороший vimtutor
тоже этот курс прохожу, параллельно с линупсом
>>770136
#302 #770136
>>770120

Спасибо, анон, я разобрался наконец. А что за курс линукса там, поделись ссылкой, пожалуйста.
>>770138
#303 #770138
>>770136
https://stepic.org/course/Основы-программирования-для-Linux-548/syllabus эти русскоязычные ссылки...
Там же не так много курсов в принципе чтобы все проскроллить
>>770490
#304 #770152
>>769584
Если у тебя libc слинкована, навелосипедь свой new через маллок:
http://ideone.com/5YXsTX
>>770170
#305 #770170
>>770152
Хм я пробовал тупо заменить new mallocoм но не сработало - начало все сыпаться. Может в твоем линке что-то дополнительное происходит, надо попробовать
>>769659
да, синглтоны юзаю в большом кол-ве, ведь они естественным образом возникают с переферией - порт есть порт, он один такой.
>>770174>>770199
#306 #770174
>>770170

>Может в твоем линке что-то дополнительное происходит


Тупо gcc собираю (не g++, он плюсовую либу линкует). Вот ldd
linux-vdso.so.1 (0x00007ffc29954000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f303cf94000)
/lib64/ld-linux-x86-64.so.2 (0x00007f303d335000)
>>770184
#307 #770184
>>770174
Я тоже раньше юзал gcc. Кажется под coocox'ом. Как только переключался на g++ код раздувался на лишних килобайт сто из-за stdlibc++.

Однако! Перешел на eclipse, казалось бы какая разница, но может наконец правильные опции подобрал, но теперь компилю и линкую честным g++ и код все равно маленький. Я на армовских МК на голом железе.

arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -flto -Wall -Wextra -g3 --std=gnu++11 -fabi-version=0 -fno-exceptions -fno-use-cxa-atexit -fno-threadsafe-statics

ну и естественно нанолиб вместо libc.

Все работает отлично, код компактный, надо только попробовать запилить туда new.
#308 #770199
>>770170

>но не сработало - начало все сыпаться


Ты конструкторы не забываешь вызывать через placement new?
>>770208
#309 #770208
>>770199
хм, первый раз слышу про placement new. в чем фишка для моего случая? быстрогугл не прояснил.
>>770216
#310 #770216
>>770208
а, ну понятно, сам указываю где аллоцировать. не понятно правда почему обычный new не сработает, если его на malloc зарутить, malloc то нормально работает, он знает где heap и тд
>>770278
#311 #770223
keil сам знает, а gnu надо указывать в линкер скрипте, у меня вот так

._user_heap_stack :
{
. = ALIGN(4);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
. = ALIGN(4);
} >RAM

поэтому по идее malloc из libc должен правильно работать? зачем placement new?
#312 #770278
>>770216
Placement new только конструктор вызывает по переданному адресу. Обычный new видимо что-то еще делает, что от сислибы зависит. Надо стандарт ботать.
#313 #770285
Сап, все никак не могу вытащить классы из файла с помощью регулярки.

http://ideone.com/vYMETm

Первая версия - с ней помог анон, но она громоздкая и много лишнего. Вторую написал я, но она все равно не вытаскивает и делает это даже хуже, чем писал анон. Что не так бля? Косяк возникает на классах из которых надо вытащить 3 имени. Т.е. более двух зависимостей
>>770362>>770681
#314 #770353
Поставил дистрибутив линуха. Что дальше? Как мне написать свой первый хеллоуворд на прыщах? Где писать, чем компилировать и как? Предложите все, что есть со своими плюсами и минусами.
>>770362
sage #315 #770362
>>770285
http://ideone.com/7wA5C8

>>770353
Ставь build-essential, затем идешь курить g++ или ставишь ide. На твой выбор.
#316 #770365
>>770362
Языком ошибся, но думаю, ты понял.
>>770390>>770391
#317 #770378
>>770362
А если чистым паттерном? Никак?
>>770448
#318 #770388
>>769489
а можно бат файл запилить
#319 #770390
>>770365
Суть в том, что много лишних действий. Мне надо за один шаг вытащить имена из строки. Не надо разбираться где кто и кем приходится. Достаточно просто вырвать имена и все. Моя просьба была в том, чтобы анон пояснил что не так с моим выражением и почему оно не берет 3 имени и более
>>770448
#320 #770391
>>770365
Суть в том, что много лишних действий. Мне надо за один шаг вытащить имена из строки. Не надо разбираться где кто и кем приходится. Достаточно просто вырвать имена и все. Моя просьба была в том, чтобы анон пояснил что не так с моим выражением и почему оно не берет 3 имени и более
>>770448
#321 #770448
>>770378
>>770390
>>770391

Капчуриться будет только одна группа. То есть ты сможешь выбрать либо только первый, либо только последний класс, от которого идет наследование.
>>770845
#322 #770490
#323 #770500
Смотрите, петуханы.

Есть классы, которые образуют сраную иерархию. Т.е. даже не иерархию, есть один базовый класс и от него 50 отнаследованных. Это нужно только для того, чтобы запихивать эти классы в один список и дёргать у них с пяток функций.

А в остальном классы довольно сильно различаются набором параметров, которые я оставил торчать наружу public.

Короче, мне не нравится. Говнистая архитектура.

Что можно сделать?
>>770517
#324 #770517
>>770500
Конкретнее
>>770521
#325 #770521
>>770517
Иногда параметры хочется доставать, приходится кастовать объекты.
>>770694
#326 #770550
Даун с потоками возвращается. Допустим у меня есть 4 потока. Каждому из них я даю задание считать мне файл из жесткого диска. Имеет ли смысл так делать или в один поток будет лучше(не будем пидорасить HDD и прочее)? И в чем тут разница между HDD и SSD?
>>770555>>770562
#327 #770555
>>770550
Возможно имеет. Файлы могут на разных винтах лежать например. Или с рэйда-зеркала читаться. Либо вообще с сетевой СХД.
>>770556
#328 #770556
>>770555
Ну если много дисков, то это понятно. А если один?
>>770586
#330 #770579
>>769599
:w
:!make
автоправила же
#331 #770582
>>770362

> Ставь build-essential


Что это такое?Про g++ все понятно.
>>770845
#332 #770586
>>770556

>Ну если много дисков, то это понятно. А если один?


А если одни, то сперва тебя будет синхронизировать арбитр шины dmi, а потом - арбитр шины sata, а затем - средства ОС, которые маппят диск в адресное пространство. Так что можешь забыть про параллельность здесь.
>>770608
#333 #770608
>>770586

>арбитр шины sata


А ничего что у шины SATA есть зачем-то своя очередь и у SATA-диска довольно нетривиальная прошивка, которая почему-то очень сильно влияет на его производительность?
Как ты думаешь, зачем они существуют и не связано ли это каким-то образом с поставленным вопросом?
#334 #770681
>>770285
Бампну вопрос
>>770845
#335 #770694
>>770521
Я имел ввиду конкретнее что за объекты и что за задача. Слишком абстрактно сейчас.
#336 #770845
>>770681
Тебе уже ответили >>770448

>>770582
build-essential - это пакет для кнопилирования.
#337 #771130
Пацаны, а кто сколько крестовиком зарабатывает?
Я вот в ДС получаю 125к, и не знаю много это или мало. Походил по собесам - сразу 120 легко дали.
#338 #771281
>>771130
Че знаешь? Как примерно выглядит резюме?
>>771378
#339 #771300
>>771130
Тоже дс, си/плюсы, криптография. Тоже 125к, считаю пиздецки мало, пока скидываю на свой возраст (23 лвл). Куда дальше идти - хз. Думаю стать начальством в своей шаражке, нежели прыгать из фирмы в фирму.
>>771378>>771509
#340 #771378
>>771281
Ну у меня опыта полтора года всего. Но мне кажется, будь у меня опыта поболее - денег бы больше не стало

>>771300
Мне 28, и я бугурчу, что в 23 у кого-то ЗП 125к. Потому-что я это время бездумно проебал на WoW
#341 #771413
Юзает кто mingw?
>>775342
#342 #771421
>>771378

> Мне 28, и я бугурчу, что в 23 у кого-то ЗП 125к. Потому-что я это время бездумно проебал на WoW



Все будет, няш. Я вот, например, не смог нормально насладиться ммошками. О чем жалею. Максимум это 42 лвл в пв, в вов и подавно 12.
#343 #771489
>>771378

>время бездумно проебал на WoW


Это же мечта лол. Мечтаю иногда играть в WoW и еву.
#344 #771509
>>771300

>Тоже 125к, считаю пиздецки мало


Совершенно не жаль тех программистов, которых убивают в новостях.
>>771559
#345 #771556
>>771378

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



Ну так а резюме какое-то? Какие там навыки/знания?
>>771760
#346 #771559
>>771509
Сасай, лалка. Сколько знаешь - столько платят.
#347 #771564
>>771130
А я фрилансер 300к / сек. Это мало, посоны? Вьебываю 4 часа в неделю
#348 #771576
>>771378

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



Кстати, верно. Потолка быстро достигаешь, работая на дядю. А дальше доказать, что ты - нужная макака, уже тяжело.
>>771590
#349 #771590
>>771576
Семен, угомонись
#350 #771760
>>771556
Полтора года крестов, линукс-хуинукс, гцц, студия. Могу в qt, 11\14 стандарты, чистый си, немного в php\js, немного в шарпы. Ниче интересного.
>>771776
#351 #771776
>>771760

>771556


>Полтора года крестов, линукс-хуинукс, гцц, студия. Могу в qt, 11\14 стандарты, чистый си, немного в php\js, немного в шарпы. Ниче интересного.


Конкаренси, сетевое программирование умеешь?
>>771778>>771828
#352 #771778
>>771776

>Конкаренси, сетевое программирование умеешь?


И еще, было такое, что не отказывали в отклике на hh?
Чего я спрашиваю: у меня похожее резюме, но опыта побольше и вот меня конкретно так игнорят. Правда, я в Мухосрани.
>>771781>>771828
#353 #771781
>>771778

>что не отказывали


*отказывали
мимо-фикс
#354 #771786
Что случилось со старым ОПом?
мимо
#355 #771828
>>771776
>>771778
Про Concurrency теорию знаю, там про мутексы хуютексы, атомики и прочие треды.
В сеть тож чутка умею.

Я кидал резюме в 2 конторы, обе меня взяли вообще без проблем. В итоге правда в своей остался, начальник хуями покрыл и дал +к ЗП(вот и стало 125).

Если я верно понимаю, то крестовику в мухосрани делать вообще нечего. Я сам из ДС6, пришлось в ДС переезжать, т.к. в моем городе было 3 крестовых вакансии с ЗП до 60к потолок.
>>771869
#356 #771869
>>771828

>Я кидал резюме в 2 конторы, обе меня взяли вообще без проблем.


Бро, скинь эти вакансии, буду очень благодарен.
>>771941
#357 #771941
>>771869
https://hh.ru/employer/1710349
Вот сюда на мидла прошел. Вторую не скину, т.к. так надо
>>771956
#358 #771956
>>771941
Могу тебе даже спалить чо спрашивают, если хочешь. Контора реально хорошая.
>>771962
#359 #771962
>>771956

>Вот сюда на мидла прошел


Чет не вижу там мидла. Ты имеешь в виду старшего разработчика? Там вроде 3+ лет нужно. Накинул себе в резюме?

>Могу тебе даже спалить чо спрашивают, если хочешь


Спали
>>771968
#360 #771968
>>771962
То, что не младший и не старший - миддл.

Спрашивают много по сетям (Модели OSI надо знать), много по наследованию (виртуальному в том числе), Эксепшены и эксепшен-сейф код, создание\разрушение хитрое. Ну и оверолл мучают по алгоритмам\структурам. Мне понравилось, годное собеседование.
>>771982
#361 #771982
>>771968

>Спрашивают много по сетям (Модели OSI надо знать)


Можешь описать поподробнее? В каком объеме спрашивают? Т.е. к примеру, надо обзорно знать все основные протоколы или подробно рассказывать о них, уметь использовать и накидать псевдокод за пять минут?
>>771984
#362 #771984
>>771982
Надо понимать что это и как работает. Чем UDP отличается от TCP и от ICMP например. Что такое ARP.
>>772007
#363 #772007
>>771984

>Чем UDP отличается от TCP и от ICMP например. Что такое ARP.


Ебать СЛОЖНО.
мим кулхацкер
>>772037
#364 #772037
>>772007
Мамок хакаешь вконтакте?
>>772038
#365 #772038
>>772037
Ставлю BPX ON ACCESS на твой рот)))
#366 #772131
Пытался заполнить Combobox в QT 5.7 следующим образом:
http://ideone.com/7zTMUs

Но компилятор выдает ошибку:"no viable conversion from '(lambda at ..)' to 'const QStringList'"

Что не так то?
#367 #772175
>>772131
Ну так ты лямбду в функцию пихаешь вместо QStringList.
QstringList получается из Лямбды, если ты оператор() дернешь
>>772210
#368 #772204
>>772131
Черт, а мне нравится такой стиль!
>>772210
#369 #772207
>>772131
В с++14 не обязательно круглые скобочки ставить у лямбды, если нет параметров
>>772210>>772228
#370 #772210
>>772175
понял, спасибо.
>>772207
я использую с++11, просто в идеоне его не было.
>>772204
ты про отступы, пробелы и скобочки?
>>772237
#371 #772228
>>772207
Это еще в C++11 было же.
#372 #772237
>>772210

>я использую с++11, просто в идеоне его не было.


А зачем вообще такой кусок вставлять в идеон, если он не 100% скомпилиться. Есть же gist и pastebin

>ты про отступы, пробелы и скобочки?


Я про создание объекта в лямбде, а не во внешнем скопе
#373 #772239
>>772131
В emacs штоле писал?
>>772253
#374 #772253
>>772239
с чего это вдруг?
#375 #772304
Я ньюфаг. Я правильно понимаю, что по возможности лучше не использовать указатели? Можно ли как-то избавиться от использования указателей в этом коде? Проблема в том, что у Y нет конструктора по умолчанию.
class X {
public:
X() {
val = new Y(...);
}

~X() {
delete val;
}
private:
Y *val = nullptr;
};
>>772305
#376 #772305
>>772304
Ой, табы
class X {
public:
X() {
val = new Y(5);
}

~X() {
delete val;
}
private:
Y *val = nullptr;
};
>>772309>>772321
#377 #772309
>>772305
как раз таки в классах голые поинтеры и используют.
#378 #772321
>>772305
Тут можно не использовать указатель. Тогда ты будешь писать конструктор так:
X(): val(5) {}

Вообще, использование списков инициализации предпочтительнее.
#379 #772333
Хорошо, а если я хочу использовать глобальную переменную? Допустим, у меня есть глобальный Logger *logger = nullptr, а потом где-то в коде я его инициализирую. Я могу в этой ситуации как-то избавиться от указателей? Я так понимаю, если где-то вылетит эксепшн, то деструктор никогда не вызовется и будет утечка памяти.
>>772342>>772350
#380 #772338
Зачем вы все тащите в стандарт новый синтаксис? Хотите напихать нового модного говна создайте свой язык "си с костылями" и тащите туда. Заебали.
>>772342
#381 #772342
>>772333
Я думаю, ты уже знаешь, что использование глобальных переменных - моветон.
Либо используешь синглетон, либо умный указатель (например, unique_ptr), который сам за тебя все почистит, если что. Но второй вариант только для c++11 и дальше.

>>772338
Зачем создавать еще один си с костылями, если уже есть? Да и новые фичи достаточно полезны, и не такие сложные. Если ты просто не можешь вкатиться в них, то используй старый стандарт, никто не запрещает. Но смысл писать так - непонятно.
>>772348>>772368
#382 #772348
>>772342

>то используй старый стандарт


Я его и так использую. И планирую еще использовать лет 10. Мне ваше говно нафиг не всралось. У меня уже есть 100к строк старого говна.
#383 #772350
>>772333
голые указатели блядь ваще заебатая вещь. просто есть пидоры, которые в них путаются, поэтому в стандарт 11 года добавили unique_ptr, shared_ptr и weak_ptr.
это всё классы, которые за тебя создают поинтеры и в деструкторе разрушают указываемый объект. где использовать смарт поинтеры, а где голые - думай сам. но есть один рул оф самб :" используй смарт поинтеры везде, где это возможно. в остальных случаях используй голые".
например, из функции ты смарт поинтер не вернешь.
>>772364>>772454
#384 #772356
Крестобляди, вы же так загубите свой же язык. Эти лямбды, вик-поинтеры и таскание буста в стд вам даром не пройдут.

> Когда Erlang стал популярным, нас часто спрашивали, “является Erlang ОО-языком?”. Конечно же, правильный ответ – “Нет, конечно, нет”. Но мы не говорили это вслух – пока мы не придумали серьезные нестандартные пути ответа на вопрос, что было бы, если бы Erlang поддерживал ОО, чего на самом деле нет (если вы услышали то, что мы на самом деле сказали и умеете внимательно читать мелкий шрифт).



> Здесь мне вспоминается ключевая речь главы IBM во Франции, которая была адресована аудитории 7-й конференции IEEE Logic programming в Париже. В IBM Prolog было добавлено большое количество ОО-расширений. На вопрос “зачем”, он отвечал: “Наши заказчики хотят ОО prolog, вот мы и сделали ОО prolog “.

>>772364>>772371
#385 #772364
>>772350
Умные указатели придумали в основном не для того, чтобы всякие лялечки не путались, а для понятной архитектуры. Иначе был бы только один вид смарт поинтера на все случаи жизни.

>рул оф самб


Как же это криво звучит. Ту дринкс ту ве тейбл.

>>772356
Не хочешь - не используй. Что тебе мешает?
#386 #772368
>>772342
Ясно, спасибо, буду использовать unique_ptr.

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


Знаю, но мне кажется, что это лучше чем в каждом классе добавлять параметр log и пропихивать его туда. А по поводу синглтона: я не вижу чем он лучше глобальной переменной.

Последний вопрос. Погуглил, нашел презентацию
"don't fucking use pointers". Автор пишет, что
huge_object build_new_object() {
huge_object
ret = new huge_object;

return ret;
}
можно заменить на
huge_object build_new_object() {
huge_object ret;

return ret;
}

Но при этом же вызывается конструктор копирования. Разве это норм копировать огромный объект?
#387 #772369
>>772368
Звездочки съелись, но я думаю, понятно по смыслу.
#388 #772371
>>772356
Так пиши на си и не выёбывайся, коли не нравится.
#389 #772372
>>772368
Если каким-то образом huge_object меньше в размерах, чем указатель на него, то да, можно заменить.
но блядь в 99% случаях поинтеры меньше объектов че за даунскую презентацию ты смотришь
>>772383
#390 #772381
>>772368
В сишке в подобной ситуации не было бы копирования. Подозреваю, что и тут точно так же, разве что потом еще вызывается конструктор (обычный).
>>772386
#391 #772382
>>772368

>don't fucking use pointers


Крестобляди не осилили поинтеры, поэтому решили украсть объекты из смаллталка, смартпоинтеры из фортрана и ламблды из лиспа. А всего-то надо было нормально освоить поинтеры.
#392 #772383
>>772368
>>772372

Во втором случае, как правило, не вызывается конструктор копирования. Здесь компиляторы могут применять оптимизацию, которая поддерживается почти везде. Читай про RVO / NRVO.
>>772386
#393 #772386
>>772381
>>772383
Если конструктор копирования не вызывается, то почему http://ideone.com/2VL9o5 выдает

> use of deleted function 'X::X(const X&)'


?
#394 #772388
>>772386
С другой стороны, конструктор копирования действительно не вызывается http://ideone.com/eZBJD3
wtf?
>>772390
#395 #772390
>>772386
>>772388
Видимо, кнопилятору нужно убедиться, что в случае чего, он сможет вернуть копию объекта, а не использовать оптимизацию.
#396 #772454
>>772350

>например, из функции ты смарт поинтер не вернешь.


лолшто?
>>772587
#397 #772475
>>764736 (OP)
Посоветуйте пожалуйста идею для сайдпроекта, после которого можно будет вкатиться на позицию джуна/мидла на позицию нормального системного программиста.
Что-нибудь достаточно масштабное, но не слишком муторное. Чтобы нужно было использовать треды, читать большие файлы, экономить память, и все такое.

Бекграунд: касался C++ только на первый курсах университета, где нам преподавали C++11. Он тогда очень понравился, но к сожалению я пошел в скриптовые языки.
#398 #772478
>>772475
Пойди интерном в какую-нибудь контору. Все равно небось у мамке борщи ешь.
>>772480>>772481
#399 #772480
>>772478
мамки
#400 #772481
>>772478
Я вебмакак.
#401 #772500
>>772386
Определи move-конструктор и он станет альтернативой rvo.
#402 #772515
>>772475
Либу для клиент серверного обмена сообщениями зашифрованными с помощью OpenSSL.
Запили сервак, на котором можно регистрировать динамические либы, которые содержат обработку определённый запросов.

Алгоритм сервера такой:
1. Создаётся сервер.
2. Загружает динамические библиотеки (libcalc).
3. Библиотеки регистрируют свой коллбэк на запрос. Запрос вот такой, например: 'module:libcalc data:1+1'.
4. Если приходит запрос от клиента и нужный модуль есть, то управление передать модулю. Если нет, то вернуть клиенту ошибку.

В итоге должно выглядеть так:
Client -"module:libcalc data:1+1"-> Server
Server -"1+1"->libcalc_exec_callback;
libcalc_exec_callback -"res:2"-> Server
Server --"module:libcalc res:2" -> Client

При таком примере отлично поработаешь c либами на сях(OpenSSL), с сетевым уровнем(socket), с сериализацией/десериализацией(json, xml, ...), динамическая подгрузка функционала(либы для обработки запросов), потоки для распаралеливания исполнения запросов.

Вот как-то так. Задача не самая простая, но позволит подкачать скилл.

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

Память экономить нужно в эмбедеде. В остальных случаях, как драйвера, модули ядра и т.п. нужно ПРЕДЕЛЬНО правильно её использовать.
Необходимость супер охуенно оптимизированного чтения громадных файлов пока ни разу не возникала. Ну я и не в биг дате, так-то.
Ну а умение писать хороший многопоточный код станет громадным плюсом везде.
#402 #772515
>>772475
Либу для клиент серверного обмена сообщениями зашифрованными с помощью OpenSSL.
Запили сервак, на котором можно регистрировать динамические либы, которые содержат обработку определённый запросов.

Алгоритм сервера такой:
1. Создаётся сервер.
2. Загружает динамические библиотеки (libcalc).
3. Библиотеки регистрируют свой коллбэк на запрос. Запрос вот такой, например: 'module:libcalc data:1+1'.
4. Если приходит запрос от клиента и нужный модуль есть, то управление передать модулю. Если нет, то вернуть клиенту ошибку.

В итоге должно выглядеть так:
Client -"module:libcalc data:1+1"-> Server
Server -"1+1"->libcalc_exec_callback;
libcalc_exec_callback -"res:2"-> Server
Server --"module:libcalc res:2" -> Client

При таком примере отлично поработаешь c либами на сях(OpenSSL), с сетевым уровнем(socket), с сериализацией/десериализацией(json, xml, ...), динамическая подгрузка функционала(либы для обработки запросов), потоки для распаралеливания исполнения запросов.

Вот как-то так. Задача не самая простая, но позволит подкачать скилл.

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

Память экономить нужно в эмбедеде. В остальных случаях, как драйвера, модули ядра и т.п. нужно ПРЕДЕЛЬНО правильно её использовать.
Необходимость супер охуенно оптимизированного чтения громадных файлов пока ни разу не возникала. Ну я и не в биг дате, так-то.
Ну а умение писать хороший многопоточный код станет громадным плюсом везде.
>>772862>>772866
#403 #772555
>>772475
Пропиздоглазил твой бэкграунд, прощу прощения.
Боюсь, что тогда задача будет очень-очень трудная.

Попробуй свои врапперы написать вокруг тех же сокетов.

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

Но, на мой взгляд, твой бэкграунд очень слабоват, чтобы активно лезть на мидла системного программиста.
Лучше его не трогать, пока не будешь хорошо чувствовать себя в С/C++.
>>772565>>772607
#404 #772565
>>772555

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



Ничего-ничего. Я возьму, спасибо.

мимо-c++-джун
#405 #772587
>>772454
он уничтожит объект, на который ссылается.
>>772604>>772605
#406 #772596
я делаю класс, в нем делаю ссылку на объект этого класса, под это дело мне нужен конструктор, что там писать?

class yoba {
yoba &yobj;
yoba() {
???
}
};
>>772613>>772636
#407 #772604
>>772587
http://ideone.com/wnr8TZ

Прочти про мув семантику с 11 крестов.
>>772614
#408 #772605
>>772587
Съеби-ка ты нахуй, ньюфаня. auto_ptr для этих целей всю жизнь использовали. В 11 стандарте его заменили на unique_ptr, который используется точно с той же целью. И это если не упоминать shared_ptr.
#409 #772607
>>772555
>>772555
Спасибо большое. Да, на мидла я особо не расчитывал. Попробую все же реализовать эту задачу, пока только для линукса. Ведь подразумевалась кроссплатформенная либа, так?
>>772625
#410 #772613
>>772596
спасите
#411 #772614
>>772604
я про именованные смарт поинтеры, которые объявляются в скоупе функции.

std::unique_ptr<std::string> func ()
{
std::unique_ptr<std::string> ptr(new string("hey"));
return ptr;
}
>>772639
#412 #772625
>>772607
Попробуй. Даже, если не выйдет, то полезного опыта будет с головой.
Да, имеет смысл делать её кроссплатформой. Большинство кода на С/С++ имеет смысл писать кроссплатформой. Либо использовать кроссплатформенные либы. Но без фанатизма.

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

Самое главное, что можно удобно ветвить настройки проекта в зависимости от ОС. Например, линковать ос зависимые либы и прочие радости.
Ввторе - симэйк проект можно собрать на винде, на лине, на маке в пару команд:
cmake <project dir> -G "MinGW/Unix/... Makefiles" && make
#413 #772628
Я правильно понимаю, что shared_ptr работает как garbage collector полноценный? То есть он медленнее чем unique_ptr, но я могу вообще не париться за то, когда он освободится?
#414 #772632
Парни, поясните прошу
Я могу за 2 месяца пройтись по Java и устроиться за 100к+ java-кодером,
А могу учить ссылки-хуилки,смарт-поинтеры boost, stl, и еще хуй пойми что с кучей неочевидных нюансов. И для того, чтобы выдать норм код, надо лет 5 херачить, а по зарплате не сказать что больше. И даже енсли прочитать книгупо крестам страниц, то повезло, если хотя бы треть запомнишь.

Итак, где тут секрет?
>>772854>>772881
#415 #772636
>>772596
помогите
>>772663
#416 #772639
>>772614
Возможно я не понял что ты хочешь донести.
Вот пример твоего кода:
http://ideone.com/duWnfD

Если чего-то не понимаешь, то могу рассказать и написать пример.
А коли я дурак, то хоть зря не буду писать лишний раз полотно.
>>772830
#417 #772658
>>772628
Да, примерно так и есть.
#418 #772659
>>772628
shared_ptr не может распознавать зацикливание, так что это не полноценный GC.
>>772704
#419 #772663
>>772636
Так нельзя, как ты хочешь.
Т.к. ссылка не может быть пустой. Т.е. тебе нужно будет задать какое-то изначальное значение этой ссылки. А поскольку чтобы заполнить эту ссылку тебе нужен экземляр твоего класса, то выходит рекурсия. Для создания объекта тебе УЖЕ нужен объект.

Для этого лучше использовать сырые указатели или умные (std::unique_ptr, std::shared_ptr).
http://ideone.com/yJgJdi

Тебе лучше глянуть на структуру данных - список.
https://ru.wikipedia.org/wiki/Связный_список
>>772668
#420 #772668
>>772663

>Т.к. ссылка не может быть пустой. Т.е. тебе нужно будет задать какое-то изначальное значение этой ссылки. А поскольку чтобы заполнить эту ссылку тебе нужен экземляр твоего класса, то выходит рекурсия. Для создания объекта тебе УЖЕ нужен объект.


ну я так и понял, но думал мож что-то предусмотрено для этого
понял
#421 #772704
>>772659
shared_ptr + weak_ptr
>>772709
#422 #772709
>>772704
Это - ручное решение, а не GC.
#423 #772712
>>772628
shared_ptr работает как подсчёт ссылок.
#424 #772830
>>772639
получается, что вот это: auto name = func(); вызывает move constructor..... значит значение , на которое ссылается unique_ptr ptr в функции func() действительно удаляется, но это делает move constructor, который перед этим копирует значение.
https://stackoverflow.com/questions/25885065/how-can-a-unique-ptr-be-returned-by-value-without-stdmove

спасибо, что указал на мою ошибку.
#425 #772854
>>772632

>Итак, где тут секрет?


Жить по хардкору.
#426 #772857
>>772628
GC не нужен. Если у ресурса нет явного владельца, который управляет его временем жизни, то у тебя проблемы с архитектурой.
>>772864
#427 #772862
>>772515
OpenSSL @ 2ol6
#428 #772864
>>772857
С любой архитектурой сложнее хеллоуворлда рано или поздно возникают проблемы.

GC есть даже в gcc и ядре linux, инфа 100%
#429 #772866
>>772515
ЙОБА НОВЫЙ ГРПЦ
sage Dmitriy #430 #772876
Плюсы и сишечка со своими жирными стандартными либами и костылями - все. Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали.

Теперь SBCL
https://lbolla.wordpress.com/2010/12/05/sbcl-quicker-than-c/
>>772914
#431 #772881
>>772632
во первых, шансов стать 100+к джава-кодером за два месяца очень мало.
во вторых, рынок джава-кодеров переполнен, каждый второй студент идет в джаву. конкуренция, демпинг, снижение средней зп.
в третьих, плюсовый рынок наоборот страдает от голода, вакансий много, зарплаты можно очень годные получать, конкуренции мало.

иди в джаву, будь крутой макакой в тырпрайзе. мне больше работы и денег с плюсов будет.
>>773005>>773052
#432 #772914
>>772876

> uclibc++ на них почему-то перекатыватся не стали.


> library will focus on space savings as opposed to performance


Цель этих бибилиотек в том, чтобы создавать софт размером в 64к. Перекатываются на них только создатели электронных брелков размером с коробок.
#433 #772944
Хочу избавиться на рантайма CRT, НО оставить std библиотеку.

Как мне это сделать?
#434 #772947
>>772944

>Хочу избавиться на рантайма CRT, НО оставить std библиотеку.


>Как мне это сделать?


Лол, а printf, malloc, free из воздуха возьмутся?
#435 #772958
Все эти функции и другие я могу реализовать вручную с помощью вин апи. А вот писать копию STD уже очень накладно будет.

Ну или если нельзя избавиться от рантайма, есть ли опенсорс аналог для винды?
>>772973
#436 #772973
>>772958

>Все эти функции и другие я могу реализовать вручную с помощью вин апи.


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

>Ну или если нельзя избавиться от рантайма, есть ли опенсорс аналог для винды?


Glibc кое-как портирована на винду в виде gnuwin32, но опять же нахуя? Libc и stdlib в теории имеют одинаковые интерфейсы, хоть на практике на разных платформах есть свои нюансы.
По факту, stdlib еще более не совместима, чем libc. И вообще ты какой-то хуитой страдаешь.
>>773301
#437 #772983
>>772944
Освоить ассемблер.
#439 #772991
>>764736 (OP)
Это нормально, если стримы в моей библиотеке будут работать с std::endl? Например mylib::myvar() << "Hello" << std::endl;
Или лучше сделать свой mylib::endl?
#440 #772996
Вчера спрашивал про конструкторы копирования, но до сих пор не понял как мне сделать следующее. У меня есть класс Matrix. Я в нем запретил копирование, потому что там внутри память выделяется динамически и копирование матрицы просто не имеет смысла. Можно ли как-то определить метод, который умножает 2 матрицы и возвращает матрицу (а не указатель)?

Я вижу 3 варианта и они все мне не нравятся.

1) Я прочитал про RVO. При определенных условиях объект не копируется когда возвращается из метода. Если запретить копирование, то конпелироваться не будет несмотря даже на RVO, я проверял. Но я не хочу разрешать дефолтное копирование, потому что это будет не копирование вовсе (2 указателя буду указывать на один участок памяти).

2) Можно специально переопределить конструктор копирования и операцию =, чтоб моя матрица относительно этих операций вела себя как std::vector. Но это тоже тупо. Зачем писать то, что я заведомо не буду использовать из-за неэффективности?

3) В качестве матрицы-параметров принимать смарт пойнтеры и всегда возвращать смарт пойнтеры. Типа
friend std::unique_ptr<Matrix> operator звездочка(const std::unique_ptr<Matrix> A, const std::unique_ptr<Matrix> B)
Ну это мне вообще не очень нравится.
>>773002>>773024
#442 #773002
>>772996
А, ну и 4 вариант. Определить что-то типа UnsupportedOperationException и кидать его из конструктора копирования и операции =. Тогда RVO сделает свое дело и у меня будет определенная степень уверенности.
>>773029
#443 #773005
>>772881
Зато я могу под андроид фрилансить, а не гнить 5 на 8 следующие 40 лет, а вот фриланса на крестах просто нет
#444 #773024
>>772996
RVO/NRVO это всего лишь перестраховка, чтобы ускорить случаи, когда конструктор копирования есть, но можно не копировать. Ты всегда можешь создать в операторе локальную матрицу с результатом произведения, наполнить ее, а потом написать return std::move (matrix); В этом случае сработает конструктор перемещения, и все будет нормально.
>>773117>>773990
#445 #773029
>>773002
RVO не гарантируется, уже поясняли ведь. Ты так добьешься того, что у тебя смогут появляться совершенно рандомные исключения.
#446 #773052
>>772881

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


ппц, не пали годноту лохам
#447 #773059
>>764736 (OP)

>вакансий много


>>773047
#448 #773117
>>773024
Бля, охуенно, я не знал про move constructor. Все получилось именно так как я хотел. От души братан.
#449 #773301
>>772973
Не хочу чтобы в моей программе была проприетарная параша в виде CRT от майкрософт, которая занимает дохуя места. И да, динамическая линковка мне не подойдет
>>773317
#450 #773317
>>773301
Почему первое чем озабочен каждый семиклассник, написав свой первый хеллоу ворлд - это именно этими вопросами?
Не проводились ли на эту тему какие-то исследования социальными психологами?
>>773395
25 Кб, 510x479
#451 #773364
>>773064

>Кванты писали и будут писать на крестах

>>773396>>773542
#452 #773395
>>773317
Тащемта, это показательно. Те, кто не был совращен Столлманом в период сосничества, обычно становятся устойчивыми к этому дрочу на швабодку и не ведутся. А дети страдают. Может, предложить законопроект, приравнивающий GNU к педофильскому лобби?
>>773551
#453 #773396
>>773364

>хлебушка невозможно найти


>Standard Chartered заебал уже в Сингапур хаскелеров искать, и нанимает и нанимает, все ему мало

#454 #773397
Посаны, дайте совет, программа падает при запуске, ставлю точку останова на самом входе в main, падает деббагер. Как посмотреть причину падения?
>>773399
#455 #773399
>>773397
Прозреваю косяк в конструкторах статических данных.
>>773417
#456 #773417
>>773399
бляць, там этих статиков ебическое колличество :(
>>773448
#457 #773448
>>773417
Энжой йо "нет противного GC, ничего не тормозит"
>>773494
#458 #773494
>>773448
Где связь гц с статическими конструкторами и багом в дебаггере?
#459 #773517
братья, помогите! создаю вот это вот чудо в конструкторе:
std::vector<std::array<MonthЗВЕЗДА,12>> date;

как это теперь в деструкторе удалить?
#460 #773519
>>773517
иди нахуй читать доку, охуел пидор.
>>773521
#461 #773521
#462 #773527
>>773517
пока что сделал так, но нет возможности проверить с линковкой в QT что то не так
for (int i = 0; i < date.size(); i++)
for (int j = 0; j < date.size(); i++)
delete date[j][];
>>773528
#463 #773528
>>773527
j < date
>>773530
#464 #773530
>>773528
да блядь вот короче
https://ideone.com/Xf7Sqa
#465 #773542
>>773364
Что это, очередной клон Ганса?
#466 #773551
>>773395
Спермоблядок, ты всё неверно интерпретировал.
Социсследования интересовали про то, почему каждый семиклассник озабочен ужатием своей говнопроги с двух до полутора килобайт. И начинается такое не со Столлмана, а с MASM-а.
>>773590>>773653
#467 #773590
>>773551

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


Эх, вспомнил свои нулевые и журнал Ксакеп. Я столько говна тогда понаписал...
#468 #773592
Iczelion до 200 байт ужимал, а вы все говно.
>>773615
#469 #773615
>>773592
Демосцену еще давай обсудим.
Семиклассников с хелловорлдами только я на ней не вспомню.
#470 #773645
Гыг)) Дабавел новую функцию в свой хело варлд))) Типерь зокрытие акна мона атменидь)))

http://pastebin.com/ktyP0u7L
#471 #773647
Риквестирую новые фунгции, каторые мона добаведь для удобства полюзывателей окна)))
#472 #773649
>>773517

>ЗВЕЗДА


Пизда, ептваю. Компилятор не обязан поддерживать в именах алфавитные символы, которых нет в базовом наборе, а именно _ и a-zA-Z.
>>773661
#473 #773653
>>773551

>проприетарная


Я вот про это говорил. Путь байтоеба и путь красных глаз во многом пересекаются, но это не одно и то же. В погроммистском аду байтоебы находятся приблизительно во 2-3 круге, а гнутые евангелисты - в восьмом.
>>773688
#474 #773661
>>773649
ааааа вот оно че
#475 #773673
Каков минимальный набор инструкций x86, при помощи которого можно написать все, что угодно?
>>773687>>773911
#476 #773687
>>773673
mov, sub, jge. Если подразумевается ввод-вывод, то плюс int. Если допускаются конфигурирование прерываний, то, очевидно, достаточно mov и int.
>>773700
#477 #773688
>>773653
GPL разрешает линковку с проприетарной сишной библиотекой.
#478 #773700
>>773687

>Если допускаются конфигурирование прерываний, то, очевидно, достаточно mov и int.


Почему? Из чего будут сделаны обработчики, если доступны только int и mov?
>>773725
#479 #773725
>>773700
Нет, я как раз имел в виду, что в прерываниях может быть ординарный код. Энивей прерывания, например, для обменов с устройствами, стандартизованы, и им не получится обрезать количество инструкций. То есть, ты можешь работать с mov, sub, jge как с "брейнфаком для бедных" и эмулировать биты отдельными байтами, но чтобы тебя понимали внешние устройства, тебе по любому понадобится работать с побитовыми инструкциями внутри прерываний.
#480 #773899
QThread* newThread = new QThread();
newThread ->start();
Yoba yoba; //ёба наследуется от QObject
yoba.moveToThread(newThread );

Почему у ёбы дважды вызывается конструктор? Почему при этом если в конструкторе вызвать QThread::currentThreadId() выдаёт главный тред приложения, а не newThread?
Как вообще сразу поселить объект в другом треде, чтобы он там создался и не ебал мозг?
>>773926
#481 #773911
>>773673
Ноль.

> This is a proof by construction that the Intel MMU's fault handling mechanism is Turing complete


> https://github.com/jbangert/trapcc

#482 #773926
>>773899

>Почему у ёбы дважды вызывается конструктор?


Ага, блядь, это потому что я дебил и создаю объект ещё раз в qml, нужно было заместо qmlRegisterType пользоваться setContextProperty.

>Почему при этом если в конструкторе вызвать QThread::currentThreadId() выдаёт главный тред приложения, а не newThread?


Вопрос снимается, на это похуй, убрал всё из конструктора, повесил на thread.started() метод init(), всё работает.
>>773927
sage #483 #773927
>>773926
Хрюкни
>>773955
#484 #773955
>>773927
Как твоя мамка?
>>774658
#485 #773990
>>773024
Использовать std::move при возврате из функции не рекомендуется, потому что в этих случаях компилятор точно не применит RVO. Лучше вернуть просто matrix, а там уже само решится - либо rvo, либо move-конструктор, либо move-присваивание, либо и то, и другое.
>>773997
#486 #773997
>>773990
Если ты делаешь move из функции - ты возвращаешь референс на удаленный обьект, и это UB
>>773998>>774001
#487 #773998
>>773997
А я и не говорил возвращать ссылку или указатель.
#488 #774001
>>773997
Неправильно прочитал. Так ведь наоборот же говорю не использовать move. Но если что, rvalue-ссылки это ссылки на объекты, которые вот-вот будут удалены, так что это вполне можно делать, если есть на то причины.
#489 #774463
Помогите советом. Есть папка Source. В ней папка с проектом VS. В папке Source по папкам хранятся сорцы каждой подсистемы. Как мне в этой ситуации лучше всего использовать precompiled headers (находится в папке с проектом)? А то писать #include "../../MSVC/stdafx.h" бред.
>>774538
#490 #774538
>>774463

>MSVC/stdafx.h


Там внутри троян с телеметрией. Не рекомендую.
sage #491 #774658
>>773955
Да ничего, нормально. Твоя как?
#492 #774722
Плюсаны, а на какой ДЕ вы пишите код?
Вот думаю кодлайт установить. Можете помочь, если что?
>>774734
#493 #774734
>>774722
clang, gdb + vim
qt creator, но лишь для qt проектов
visual studio code если смотрю чужой код
>>774737
#494 #774737
>>774734
У тебя линукс стоит?
Я, просто, думаю попробовать писать что-нибудь видеоигры на ++, но не знаю с чего начать. Вот ДЕ выбираю.
>>774768
#495 #774768
>>774737
игры это либо писать движки (самый хардкор)
либо писать скрипты на готовых Unity, Unreal Engine и т.д (самое легкое)
либо с помощью готовых фреймворков мутить SFML, SDL. (хуй ты че серьезного сделаешь с этим, но по сложности средне)

линукс, хотя бы на виртулке, обязателен.
насчет ide - попробуй Code::Blocks на линуксе, и Visual Studio или тот же Code::Blocks на винде.
#496 #774771
>>774768
а, стоп, на десятке же bash in windows есть. если он работает, то можно линукс не ставить.
>>774774>>774777
#497 #774774
>>774771
bash in windows это всего лишь название. Линупс все равно понадобится.
#498 #774777
>>774771
Нету. Ubuntu for ШNНD0W2 есть, но в офф. поставке отсутствует – нужно трахаться с установкой, и это преальфа.

Не нужен ему линукс если он не планирует что-то под него писать/нормально юзать вим.
>>774782
#499 #774782
>>774777
а как же нормальный компилятор...
>>774787
#500 #774783
>>774768
А у тебя какая виртуальная машина стоит? Я смотрел, все платные.
Альсо, вон в гд: https://2ch.hk/gd/res/256276.html (М)
Кто-то 1 с 0 написал движок и игру на нём.

И еще, что лучше >Code::Blocks или codelite?
Я смотрю по сравнению они одинаковы.
>>774785>>774788
sage #501 #774785
>>774783

> Я смотрел, все платные.


Это надо постараться — найти платную виртуалку.
>>774789
#502 #774787
>>774782
Его свежие версии есть только в дистрибутивах вроде федоры, остальное LTS говно ничем не отличается от шиндового студийного и мингв.
#503 #774788
>>774783

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


Virtualbox, например.

>Кто-то 1 с 0 написал движок и игру на нём.


ну красава, хули.

>И еще, что лучше Code::Blocks или codelite?


не знаю, но опять же, советую именно Code::Blocks.
>>774796
#504 #774789
>>774785
wmvare триал 30 дней, а говорят он лучший.
#505 #774796
>>774788
А ты юзаешь какую виртуальную машину?
>>774797
#506 #774797
>>774796
да виртуалбокс я юзаю, епта.
>>774798>>774799
#507 #774798
>>774797
но это для винды, а так у меня линукс как основная ось стоит.
>>774799>>774800
#508 #774799
>>774798
>>774797
Хорошо, спасибо.
Сейчас установлю код::блокс и начну.
>>774800
#509 #774800
>>774799
>>774798
Не могу решиться что поставить, в шапке написано что codelite лучший, ты пишешь что code::blocks...
>>774801>>774804
#510 #774801
>>774800
Что вы тут твиттер устроили?
>>774803>>774806
sage #511 #774803
>>774801
typical C++-tшread
#512 #774804
>>774800
ну поставь оба и сравни.
так то выбор ide это вещь тривиальная. я бы особо не парился на эту тему.
>>774813
#513 #774806
>>774801
какой твиттер? человек спрашивает по теме, а я отвечаю.
12 Кб, 1125x221
#514 #774813
>>774804
Какую версию качать?
И еще вопрос, а что ты делаешь через виртуалбокс?
У тебя дуалбут?
sage #515 #774814
>>774813
Бери с mingw.
>>774825
#516 #774820
>>774813
погугли инфу про виртуалбокс. что это такое, как использовать и т.д.
поймешь намного больше, чем если бы я тебе пояснил как я его использую.
>>774825
#517 #774822
>>774813
Ставь Visual Studio, не вижу смысла использовать что-либо другое на винде.
>>774823>>774825
sage #518 #774823
>>774822
Не у всех есть 40 gb лишнего места и 2 часа лишнего времени.
>>774825
160 Кб, 1920x1161
#519 #774825
>>774820
>>774814
>>774822
Подскажите, как тут хело ворлд написать?

>>774823
>>774822
А на линуксе что есть? Я думал через виртуалбокс установить, если там есть что-то удобнее. Да и мне на 1 форуме писали что надо на линукс переходить для программирования.
>>774826>>774860
#520 #774826
>>774825
ну тут уже сам ищи.
в гугле "how to make program in codeblocks"
#521 #774858
>>774768

>насчет ide - попробуй Code::Blocks на линуксе, и Visual Studio или тот же Code::Blocks на винде.


Как же ты заебал со своим code::blocks, маркетолог ебаный. Тебе уже ответили: >>766247
>>774866
#522 #774860
>>774825
А нехуй всяких пидорасов слушать. Юзай qtcreator для начала, чтобы все было из коробки, а потом перейдешь на то, что душе угодно.
>>774863
sage #523 #774863
>>774860

> qtcreator для начала, чтобы все было из коробки



Помню, тут была целая эпопея, где я полтреда помогал анону заставить QtKreakl подцепить тулчейн.
>>774867
#524 #774866
>>774858
блядь, какая разница человеку, которому иде этот нужен просто чтобы примеры из книжки позапускать?
>>774870
#525 #774867
>>774863
Подцепить тулчейн для креатора из бандла? Или то был ебанутейшей редкости баг, либо ты пиздишь. В любом случае твое говно ни в какое сравнение не идет с qtcreator с точки зрения интеграции.
>>774871
#526 #774870
>>774866
Разница в том, что ты советуешь хуиту, которая не может работать из коробки. Советовал бы VS или qtcreator никто бы слова не сказал.
sage #527 #774871
>>774867

>твое говно ни в какое сравнение не идет с qtcreator


Моё говно это CLion. QtKreakl-у до которого как до Луны пешком.
>>774874
#528 #774874
>>774871
Не, clion - норм тема, но не бесплатная же.
#529 #774886
Чет лоллирую
#530 #774904
Почему QList остается пустым? В gridLayout должны быть несколько QPushButton. Они еще не создались? Выполняю эту строку в конструкторе mainwindow, но после ui->setupUi(this);

https://ideone.com/inFryJ
>>774980
#531 #774979
Есть тут культезнавцы?
Есть сабж http://pastebin.com/TBQ6VEKN

Суть - с помощью QtNetwork отправить пост на сосачик.
По-простому ([1]) работает, через QHttpMultiPart ([2]) - нихуя.

В чем проблема? Я где-то налажал, или это баг в культях?
#532 #774980
>>774904
Кинь минимальный компилирующийся пример.
>>775207
#533 #775006
Reflection из болтов и гаек на коленке http://donw.io/post/reflection-cpp-1/

> Network Serialisation and Visualisation of Game State



> It’s probably obvious by now how this can be achieved: use serialisation to a byte buffer that is optionally compressed and send that to your endpoint - most likely binary and versionable. With the addition of an attribute that describes network transient fields, this allows you to make some very powerful editing tools.



> The main class of tool is an editor that connects to a live game, edits an intermediate data representation and broadcasts changes to a live game. There are many benefits to this approach:



> You get live updates of any changes on PC or console.


> Design is multi-threaded due to the nature of network communication, making for some graceful UI tools.


> You can iterate on your tool code without bringing the live game down. If the tool crashes, it doesn’t bring down the game.


> If your game gets into a state that is deemed incorrect, you can connect and visually see the state of all your objects.



> If you want to write your tool code in C# or embrace the era of the Internets and write in a combination of Javascript, HTML, CSS, etc. you only need to write the equivalent of the above serialisation code in that language to allow editing and communication. Each C++ container type you support will need to map to an equivalent in the tool language.

243 Кб, 937x337
#534 #775080
>>764736 (OP)
Кто-нибудь работал в компаниях, занимающихся написанием инструментов для трейдинга? В чем суть, какие задачи обычно решаются?
>>776185
#535 #775181
Пояните в чём цимес?
ВИжуал студия весит 10 гб, а кодблокс 80 мб.
>>775182
#536 #775182
>>775181
Интерпрайз©®™
>>775183
#537 #775183
>>775182
Я не понял.
>>775206>>775217
#538 #775206
>>775183
Да там дохуя всего же.
Фреймворки, инструменты какие-то и пакеты еще к нагету и вообще блядь еще лес всего.
#539 #775207
>>774980
Уже разобрался.
"Layout чому ты не parent?
У layout не бывает здоровых children. "
#540 #775217
>>775183
Твой кодблокс может хоть во что-нибудь из коробки?
>>775282
#541 #775282
>>775217
нет
#542 #775342
>>771413
Гоуно, пользуйся сигвином.
>>775346
#543 #775346
>>775342
говно, пользуйся линуском.
>>775363
#544 #775363
>>775346
Говно, пользуйся маком.
>>775364>>775414
#545 #775364
>>775363
Говно, пользуйся герычем.
#546 #775414
>>775363
так ведь пользуюсь
#547 #775738
>>764736 (OP)
Для C++ есть нормальные фреймворки уровня Symphony, Django, Rails для веба, чтобы их еще кто-то использовал, ну и вообще экосистема для веб-разработки? Можно ли найти работу в таком направлении?
Можно ли найти работу фрилансером или на удаленке? Или весь с++ - это обязательно пот, прыщи и поедание мозолей?
Можно ли разрабатывать со скоростью, сравнимой с с#, java, python?
>>775796
#548 #775781
https://geektimes.ru/post/277502/
Прочитал статьюю и загорелся идеей разработки игры, планирую начать с изучения с++, а дальше написания игры своей мечты с поборами на патреоне. Взлетит?
>>775783
#549 #775783
>>775781
Дропнешь разработку. Но идею все равно не дропнешь, как я, например.
#550 #775796
>>775738
А зачем с++ в вебе?
>>775808
#551 #775808
>>775796
Производительность, лаконичность кода, предсказуемые типы данных. А потом, это весело.
#552 #775971
До чего же кресты вербосная хуета. Скорее бы они сдохли.
>>776015>>776230
#553 #776015
>>775971
"вербосная" это от слова verbose?
>>776049
#555 #776051
>>776049
а мог бы просто написать "да". уебан сука
#556 #776057
Почему не перекатываете?
>>776152
#557 #776152
>>776057
Возьми и перекати. Я вот уже 2 раза перекатывал. В этот раз предоставлю это почетную обязанность кому-то еще.
>>776173
#558 #776173
>>776152
Я вообще ньюфаг, иногда сюда за вопросами забегаю, просто нашёл тред на дне, вот и спросил.
#559 #776185
>>775080
Я работаю прямо сейчас. Дохуя математики но мне в кайф. Есть и другие задачи, вот сейчас за стенкой ебутся с коррекной работой прилаги на 8 мониторов.
>>776188
#560 #776188
>>776185
Зп? Место работы? Сложно?
#561 #776230
>>775971
Осиль уже auto и STL
#562 #776265
Что вписать в а чтобы иф срабатывал?
http://ideone.com/sNY8Da
#563 #776277
>>776265
charЗВЕЗДА a = new char('3');
или
std::stringЗВЕЗДА a = new std::string("3.141593");
>>776286>>776287
#564 #776279
>>776265
потом в if
b == "3.141593"
#565 #776286
>>776277

>std::stringЗВЕЗДА a = new std::string("3.141593");


Ну это вообще пушка.

>>776265
Либо просто std::string a("3.141593"), либо гугли strcmp.
>>776305>>776310
#566 #776287
>>776277
Я не могу редактировать код. Только а вводить.
#567 #776305
>>776286
Ой, в глаза долблюсь.

>>776265
http://ideone.com/hZxvjY
>>776319
#568 #776310
>>776286
дебил сука, раз он поинтер поставил, то ему наверное поинтер и нужен.
>>776316
#569 #776316
>>776310
А void main() и return 0; он тоже поставил, потому что ему именно так нужно?
#570 #776319
>>776305
Код менять нельзя. Только а. А там double в float конвертится и с константой забыл какого типа сравнивается. То есть надо подобрать такую строку чтобы после её конвертирования в float и сравнения с той константой в ифе получилось тру.
>>776326
#571 #776326
>>776319
Ты вообще понимаешь, что ты пишешь? У тебя код не от a не выполняется, а от того, что ты float с double сравниваешь. Так нельзя.
>>776332
#572 #776332
>>776326

> float с double сравниваешь


Именно. И это сравнение убрать нельзя. Нужно подобрать такое значение для а чтобы сравнение прошло.
>>776337
#573 #776337
>>776332
Ну тогда удачи тебе в поисках.
>>776351
#574 #776351
>>776337
А я, кстати, думаю, что задачку можно решить. Но надо поебаться с битовой логикой этого дерьма. Топик-стартер, запусти это дерьмо под дебаггером. Посмостри че там происходит в момент float b = strtod(a,0);
мимо-крокодил
>>776358
#575 #776358
>>776351
http://ideone.com/E5FhWS
Не трать время впустую.
Тред утонул или удален.
Это копия, сохраненная 11 июля 2016 года.

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

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