М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

160 Кб, 1024x669

Оффициальный™ традиционный® C++ тред #35 08 Июн, 17:39 #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.х, полной обратной совместимости между ними нет как в пистоне, ага.

Cкачать бесплатно без смс

Документация к 4.8

Более полная документация к обеим версиям (на ангельском)

Литература:

Автор(ы)

Название

Год

Ссылка

Макс Шлее

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

Предыдущие треды на архиваче

https://arhivach.org/thread/94971/

https://arhivach.org/thread/94972/

https://arhivach.org/thread/99414/

https://arhivach.org/thread/100995/

https://arhivach.org/thread/105148/

https://arhivach.org/thread/109335/

https://arhivach.org/thread/112797/

https://arhivach.org/thread/114519/

https://arhivach.org/thread/117109/

https://arhivach.org/thread/120019/

https://arhivach.org/thread/122683/

https://arhivach.org/thread/124637/

https://arhivach.org/thread/125532/

https://arhivach.org/thread/127327/

https://arhivach.org/thread/128133/

https://arhivach.org/thread/134437/

https://arhivach.org/thread/135285/

https://arhivach.org/thread/139690/

https://arhivach.org/thread/144812/

https://arhivach.org/thread/147540/

https://arhivach.org/thread/149983/

https://arhivach.org/thread/151271/

https://arhivach.org/thread/153304/

https://arhivach.org/thread/156131/

https://arhivach.org/thread/156310/

https://arhivach.org/thread/157411/

https://arhivach.org/thread/158594/

https://arhivach.org/thread/160272/

https://arhivach.org/thread/161975/

https://arhivach.org/thread/164154/

https://arhivach.org/thread/167496/

https://arhivach.org/thread/170422/

https://arhivach.org/thread/174114/

https://arhivach.org/thread/177102/

Старые ненумерованные треды

https://arhivach.org/thread/45477/

https://arhivach.org/thread/48611/

https://arhivach.org/thread/60085/

https://arhivach.org/thread/66322/

https://arhivach.org/thread/69413/

https://arhivach.org/thread/73221/

https://arhivach.org/thread/77999/

https://arhivach.org/thread/79194/

https://arhivach.org/thread/82038/

https://goo.gl/vvs9GP/

https://goo.gl/ZnBsYt/

Отдельные Qt-треды

https://arhivach.org/thread/15387/

https://arhivach.org/thread/65590/

Ответы>>765576>>768562>>768867>>768883>>769489>>772475>>772991>>773059>>775080>>775738

08 Июн, 17:56 #2 #764759

Подскажите, а можно в while сделать множественный ввод?
Т.е. есть 3 int'a, и в одном while надо все 3 std::cin >> сделать.

Ответы>>764783>>764785>>764791

08 Июн, 18:09 #3 #764773

Чтобы вкатиться в Qt без знаний плюсов, достаточно будет прочитать книгу для нюфань по плюсам(Страуструп) и потом уже целенаправленно читать книги по Qt или есть варианты оптимальнее?

Ответы>>766832>>766882

08 Июн, 18:21 #4 #764783

>>764759
http://ideone.com/DASggR

Ответы>>764793

08 Июн, 18:22 #5 #764785

>>764759
Лол. Неправильно прочитал что тебе надо.

08 Июн, 18:26 #6 #764791

>>764759
http://ideone.com/ec2Jkv

Ответы>>764793

08 Июн, 18:27 #7 #764793

>>764791
>>764783
Может я неправильно сказал, я где-то видел примерно такую конструкцию:
while (std::cin > a, b, c)
{}
Примерно так, чтобы в 1 строчке был ввод в разные переменные.

Ответы>>764797>>765046

08 Июн, 18:30 #8 #764797

>>764793
http://ideone.com/fEqov4

08 Июн, 19:01 #9 #764823

QT-ПРОБЛЕМЫ
Можно как-то во время дебага смотреть значения переменных, указателей, членов классов кароче говоря?
Чёт не могу совладать с интерфейсом кутэ криэйтора.

Ответы>>764868>>764871

08 Июн, 20:01 #10 #764868

>>764823
Можно. Это почти студия.

Ответы>>764888

08 Июн, 20:05 #11 #764871

>>764823
Откуда вы такие лезете только. С поинтерами и классами он смог совладать, а с гуглом и настройкой кутэ нет.

Ответы>>764888

08 Июн, 20:06 #12 #764873

Если у меня переменная не поинтер, есть ли альтернатива Foo bar = *(new Foo()) ? А то как-то не красиво получается. Хотелось бы привычный синтаксис Foo bar = new Foo().

Ответы>>764875

08 Июн, 20:07 #13 #764875

>>764873
Что за наплыв джавадаунов. Ты как потом эту память будешь освобождать? Выделяй просто на стеке. Foo bar;

Ответы>>764886>>764890

08 Июн, 20:17 #14 #764886

>>764875
Она тогда сама удалится, а мне потом надо ее использовать.

08 Июн, 20:18 #15 #764888

>>764871
>>764868
Всё, нашёл уже, но у qt реально не очень юзабельный интерфейс.

08 Июн, 20:18 #16 #764890

>>764875
Ок, а если я не сохраняю объект, а сразу передаю его в конструктор?

Foo foo = new Bar(*(new Baz()))

Ответы>>764894

08 Июн, 20:19 #17 #764894

>>764890
>fix
Bar bar = new Bar(*(new Baz()))

Ответы>>764896>>765143

85 Кб, 331x417

08 Июн, 20:21 #18 #764896

>>764894

Ответы>>764900

08 Июн, 20:24 #19 #764900

>>764896
Короче все, я понял. По-любому надо поинтеры юзать.
Сделаю тогда typedef Foo * FooPtr.

Ответы>>764902>>765349

08 Июн, 20:26 #20 #764902

>>764900
https://isocpp.org/wiki/faq/csharp-java
Прочитай сначала, лалка.

08 Июн, 20:38 #21 #764912

Зачем нужен decltype, если есть auto?

Ответы>>764913>>764919

08 Июн, 20:39 #22 #764913

>>764912
Иди нахуй.

Ответы>>764932

08 Июн, 20:41 #23 #764919

>>764912
Контексты разные же. Например, ты не можешь проверить существование метода с определенной сигнатурой в типе, который имеет заданное выражение, пользуясь одним только auto.

08 Июн, 20:46 #24 #764924

Как такое может быть?
Есть структура. В ней декларированы только члены этой структуры. То-есть, нету ни конструкторов, ни деструкторов.
Сейчас я получаю segfault в деструкторе этой структуры(дефолтный).
Почему такое происходит/как чинить?

Ответы>>764925>>764927>>764930

08 Июн, 20:47 #25 #764925

>>764924
> нету ни конструкторов, ни деструкторов
они всегда есть)0))

Ответы>>765111

08 Июн, 20:48 #26 #764927

>>764924
Кидай код

Ответы>>764929>>764936>>764940

08 Июн, 20:50 #27 #764929

>>764927
Разве на словах не понятно?
Я же всё подробно объяснил.

Ответы>>764930>>764940

08 Июн, 20:52 #28 #764930

>>764929
>>764924
Вангую хуевые базовые классы.

Ответы>>764931>>764936

08 Июн, 20:53 #29 #764931

>>764930
Но там простые инты и нет наследования!

Ответы>>764932>>764940

08 Июн, 20:54 #30 #764932

>>764931
Ну тогда тебе сюда >>764913

Ответы>>764933

08 Июн, 20:55 #31 #764933

>>764932
Спасибо! Я пошёл!

Ответы>>764940

08 Июн, 20:59 #32 #764936

>>764927
Там много кода.
Могу сказать, что динамически там ничего не создаётся.
>>764930
Ты имеешь ввиду, что там может быть где-нибудь один и тот же указатель/массив или что?

Ответы>>764940

08 Июн, 21:02 #33 #764940

>>764929
>>764931
>>764933
>>764936

>>764927
Это всё не я постил! Вот код: http://ideone.com/fVpjM8

Ответы>>764945>>764946>>766017

08 Июн, 21:08 #34 #764945

>>764940
Ты заебал.

Ответы>>765200

08 Июн, 21:08 #35 #764946

>>764940
Кто поведется на толстоту, тот петух.

Ответы>>765200

08 Июн, 21:10 #36 #764947

Какой смысл троллить такой тупостью?

Ответы>>764953

08 Июн, 21:12 #37 #764953

>>764947
Хейтеры же.

08 Июн, 23:03 #38 #765046

>>764793
Это ввод только в одну переменную, даунито

Ответы>>765048

08 Июн, 23:04 #39 #765048

>>765046
Да и он нихуя не правильный изза > вместо >>

08 Июн, 23:49 #40 #765111

>>764925
но зачем сраному инту конструктор!

Ответы>>765116>>765128

08 Июн, 23:56 #41 #765116

>>765111
Затем, чтобы в шаблонах можно было одинаковый код писать, не боясь, что на инте все сломается.

09 Июн, 00:14 #42 #765128

>>765111
Затем что оператор приведения типа.

09 Июн, 00:39 #43 #765143

>>764894
Ссылки используй.
http://ideone.com/wTdD4c

09 Июн, 00:50 #44 #765151

Не знал где спрашивать, спрошу тут.
Система Ubuntu 14.04
IDE Eclipse.
Проект внезапно C++.
Каким образом в этой IDE подключать библиотеки к проекту. Какое расширение у библиотеки должно быть .a или .so ?
Кроме подключения хедеров и библиотеки в свойствах проекта нужно ли что-то ещё?
В этой библиотеке определено пространство имен. Когда вызываешь из контекста при наборе кода, IDE его видит, а при компиляции нет.

90 Кб, 604x579

09 Июн, 01:11 #45 #765167

Антуаны, вкатился в кресты совсем недавно сейчас мой уровень - написание калькулятора через кейсы или подобные небольшие задачи.
Сейчас появилась необходимость написать код, который работает с небольшими POST и GET запросами сайта обновление страницы, получение каких то числовых данных - попробовал погуглить, но по запросу "POST GET запросы C++" нихуяшеньки нет, либо речь идёт о каких то библиотеках.
Раньше писал подобное, но на Delphi.
Собственно, ткните носом, что читать по этому вопросу.

Ответы>>765178>>765196>>765199>>765242>>765244

09 Июн, 01:23 #46 #765178

>>765167
Python

Ответы>>765207

09 Июн, 02:04 #47 #765196

>>765167
curl

Ответы>>765207

09 Июн, 02:06 #48 #765199

>>765167
На qt наверняка есть. А вообще тебе в пхп тред, но оттуда мало кто возвращался

Ответы>>765207

09 Июн, 02:07 #49 #765200

>>764946
>>764945
Семён, ты толст, съеби уже!

09 Июн, 02:22 #50 #765207

>>765199
>>765178
Но я же в тред по крестам написал, значит мне не нужен питон.
>>765196
А с помощью встроенных библиотек никак?
Или curl просто устанавливаешь и через инклюды подключаешь потом?

Ответы>>765449

09 Июн, 03:13 #51 #765218

проебал перекат
>>765217

09 Июн, 06:33 #52 #765242

>>765167
Vibe.d

09 Июн, 06:37 #53 #765244

>>765167
google:// простой веб сервер на c++

09 Июн, 09:53 #54 #765282

а есть книжки по плюсам на украинском? хочу знакому дать что-нибудь почитать, а он по русски почти никак не читает.

Ответы>>765346>>765359

09 Июн, 12:15 #55 #765346

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

09 Июн, 12:24 #56 #765349

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

09 Июн, 12:37 #57 #765359

>>765282
Пусть читает Страуса в оригинале, на английском.

Ответы>>765452

09 Июн, 14:44 #58 #765449

>>765207
>Или curl просто устанавливаешь
Не надо устанавливать, просто кидаешь в ту же папку, там в гайде все описано. Алсо, если у тебя VS, то через NuGet от в один клик подключается.

09 Июн, 14:45 #59 #765452

>>765359
Страус неплох, но его нужно читать вместе со стандартом, ибо весьма много неточностей, недомолвок и даже ошибок мелких, даже в 4 издании. Не говоря уже о ранних.

Ответы>>765488>>765622

09 Июн, 15:25 #60 #765488

>>765452
>ибо весьма много неточностей, недомолвок и даже ошибок мелких
СТРАУСА УНИЖАЕТ СОБСТВЕННЫЙ ЯЗЫК!!1 А ЧЕГО ДОБИЛСЯ ТЫ?

09 Июн, 17:35 #61 #765576

>>764736 (OP)
>Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь,
Ответил на всё с одной ошибкой в красном вопросе ЧЯДНТ?

Ответы>>765589

09 Июн, 17:44 #62 #765589

>>765576
Читай стандарт, блджад, там же все вопросы изи.

Ответы>>765594

09 Июн, 17:47 #63 #765594

>>765589
Ты, видимо, не понял что я написал, болезный. Я сказал, что из 69 вопросов на cppquiz допустил только одну ошибку. Что мне дальше читать? :D

Ответы>>765597

09 Июн, 17:52 #64 #765597

>>765594
Там не 69 вопросов, лалка, а несколько сотен как минимум.

Ответы>>765621

09 Июн, 18:15 #65 #765621

>>765597
Лалка ето ти. Их не более 200 и я ответил на все практически.

09 Июн, 18:15 #66 #765622

>>765452
Написал этому дауну недавно на почту письмо с обнаруженными опечатками в 4 издании. Даже спасибо не написал, пидор.

Ответы>>765671

Technical writing 09 Июн, 19:04 #67 #765663

Читал несколько лет назад документацию, которую писали в Apple. Господи, до чего же она была прекрасно написана. Ясно, легко читалась по 100 страниц в день. Стиль, слог, верстка, подобранные примеры -- все изумительно.

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

Ответы>>765693

09 Июн, 19:20 #68 #765671

>>765622
У меня такая же хуйня с опечатками в ISO'шном FAQ недавно была. Но и похуй, главное, что исправили быстро.

09 Июн, 19:48 #69 #765693

>>765663
Щас бы документацию верстать заместо проганья

Ответы>>765746

09 Июн, 19:50 #70 #765696

Привет парни.
Код:

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

foo не constexpr, тогда почему это работает?
Как это понивать?

Ответы>>765699>>765705>>765708

09 Июн, 19:53 #71 #765699

>>765696
При чём тут constexpr?

09 Июн, 19:57 #72 #765705

>>765696
>foo(0)
>a?1:2
Похоже оптимизация компилятора.

09 Июн, 20:00 #73 #765708

>>765696
У тебя и c2 не constexpr же, просто инициализируется в рантайме неконстантным выражением.

09 Июн, 20:19 #74 #765736

Поясните за assert.
Зачем нагружать и без того сложный язык этой хуйней, если я и сам могу написать что то типа

void assert(bool a){
if(!a){
exit(1);
}
}

Ответы>>765742>>765752>>765759

09 Июн, 20:21 #75 #765742

>>765736
Чтобы в больших проектах не городить дохуя своих assertов.

10 Кб, 320x180

09 Июн, 20:24 #76 #765746

>>765693
Именно поэтому в конторе должны быть надсмотрщики над программистишками. Чтобы пиздить их беспощадно и постоянно.

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

Дай программистишке волю он насрет кучу кода и скажет: "Документацию мне писать лень, ебитесь сами. Если че непонятное — то прямо в коде посмотрите там. А я пошел писать новый говнокод."

09 Июн, 20:30 #77 #765752

>>765736
Ты не понимаешь сути C++. Он не призван сделать жизнь программиста легче или лучше. Он призван наполнить стандарт всем говном, которое только придумали. Это легко наблюдать по плавному переносу всего boost-говна прямо в стандарт. Сделать так, чтобы проекты разрабатывались годами и требовали для своего поддержания орды высокооплачиваемых макак, которые постоянно лепят ассерты и ебутся с отладчиком. Если софт будет писать легко, он не будет не иметь проблем с освобождением памяти — то кто в здравом уме будет платить кодерам их сегодняшние зарплаты? С++ идеальный после Java язык, для развода инвестора на бабки.

09 Июн, 20:48 #78 #765759

>>765736
assert не так прост. Это макрос, он отключается в релизной сборке, когда N_DEBUG не определен.

Ответы>>765768

09 Июн, 20:53 #79 #765768

>>765759
#define NAHOOI_ASSERT

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

Тоже так могу.
Прихожу к решению, что он нахуй не нужен

Ответы>>765801>>765840

35 Кб, 921x149

09 Июн, 20:59 #80 #765771

В чем польза такого объявления индексной переменной по сравнению с auto?

Ответы>>765779

09 Июн, 21:06 #81 #765779

>>765771
Если указать auto выведестя инт
Если деклтайп to вектор::сайз_тайп

Ответы>>765796

09 Июн, 21:22 #82 #765796

>>765779
То есть просто защита от возможных отрицательных индексов?

А почему с auto выведется int? Ведь size() возвращает size_type.

Ответы>>765802>>765811

09 Июн, 21:24 #83 #765801

>>765768
Предусловие. Нельзя работать если скажем:

assert(boost::algorithm::all_of(values, less_then(threshold)));

09 Июн, 21:25 #84 #765802

>>765796
У индекса вектора тип - size_t, а не int. Технически, это неверно.
По умолчанию тип целых чисел - int, поэтому auto ix = 0 выдаст int. auto выводит тип из правой части.

Ответы>>765923

09 Июн, 21:32 #85 #765811

>>765796
ты не можешь написать auto(vec.size_type())

09 Июн, 22:26 #86 #765840

>>765768
Нет, дружочек. Для assert еще гарантируется, что в случае ошибки диагностика будет содержать текст строки, которую ты вторым аргументом укажешь, а также номер строки с ошибкой, имя объемлющей функции и единицы трансляции. И вызывает оно не exit, а abort, это существенно в плане вызова деструкторов.

09 Июн, 23:58 #87 #765923

>>765802
Можно явно писать тогда:
https://ideone.com/Ww0aNX

Ответы>>765930

10 Июн, 00:06 #88 #765930

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

Ответы>>765955

10 Июн, 01:10 #89 #765955

>>765930
Завместо деклтайпа, можно написать: auto i = 0u;
Да и вообще, лучше завести для себя такое правило: если переменная всегда будет равна нулю или больше нуля, то использовать size_t

Ответы>>765957

10 Июн, 01:12 #90 #765957

>>765955
И у тебя будет unsigned вместо size_t. Это разные типы, они могут иметь разный размер, если что.

10 Июн, 03:29 #91 #766017

Скажите, я хотел переписать пример, который тут был >>764940
для безопасности. Выполняется, но что-то в коде не то.
https://ideone.com/pSk805
Тут виртуальный деструктор нужен? Помогите пожалуйста.

Ответы>>766022

10 Июн, 04:00 #92 #766022

>>766017
А у тебя есть виртуальный конструктор?

Ответы>>766029

10 Июн, 04:42 #93 #766029

>>766022
Не знаю, но я слышал что для безопасности надо чтобы в каждом классе деструктор был определен, это правда?

opencv 10 Июн, 08:47 #94 #766063

вот есть функция cvPutText которая накладывает на изображение текст. А как нанести другой тип допустим int или double&

Ответы>>766073>>766309>>769641

10 Июн, 09:11 #95 #766073

>>766063
Создай string из любого другого типа с помощью stringstream.
Или просто загугли int to string.

Ответы>>766085

10 Июн, 09:33 #96 #766085

>>766073
>stringstream
Сложно.
>загугли int to string
Говорит to_string есть, но с++ почему-то его не находит.
Но я написал свою. Спасибо.

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

Ответы>>766130

10 Июн, 10:30 #97 #766130

>>766085
>но с++ почему-то его не находит.
Может потому что ты проебался и не подключил <string>/забыл про неймспейс?

10 Июн, 10:47 #98 #766137

Проблема такая. Сделал базовый класс, от него производный по типу "является". Затем в программе хочу к указателю на базовый класс присвоить адрес переменной производного класса, а он не разрешает. Visual Studio выдает "не допускается преобразование в недоступный базовый класс "Cd"".

Ответы>>766171

10 Июн, 11:41 #99 #766171

>>766137
Код бы хоть накидал, не понятно как ты наследуешься, как приводишь

Ответы>>766196

10 Июн, 12:08 #100 #766196

>>766171
>как ты наследуешь
class Classic : Cd {...};
>как приводишь
Classic c1;
Cd * pcd = &c1;

Ответы>>766202

10 Июн, 12:23 #101 #766202

>>766196
>является
Нихуя у тебя не является, у классов по умолчанию приватное наследование, ты реализацию только унаследовал. Пиши Classic : public Cd { ...

Ответы>>766207

10 Июн, 12:28 #102 #766207

>>766202
Точно. Не заметил эту деталь. Благодарю за помощь и потраченное время.

STUN 10 Июн, 12:47 #103 #766223

БРАТЦЫ! КРЕСТОНОСЦЫ!
делаю децентрализованный игорь на андройд ndk.
вроде графика и физика изи но сетка это вообще пиздец. но это не важно Вопрос по STUN.
Я понял что мне нужен stun уже успех
но http://ideone.com/knBvgP почему не рабит?
гайды за 2 дня гугловки не нашел и действовал в идеоне по логике. На локал хосте рандомный порт открывется сокетом и листится. но ответки с Stun не приходит. Q3 работает. поэтому думаю проблемы в NAT нет. В чем косяк?

Ответы>>766231>>766257>>766315>>766361

10 Кб, 398x44

10 Июн, 12:57 #104 #766231

>>766223
порт рандомный листится. работает. может я не знаю чего о STUN запросах?! выручайте аноны

10 Июн, 13:07 #105 #766238

Парни, простите, я тупой.

Как подключить библиотеку к CodeLite/CodeBlocks чтобы он ее видел как <Libname>?

Ответы>>766244

10 Июн, 13:17 #106 #766244

>>766238
Никак. Пользователт говно-IDE должны страдать.

Ответы>>766246

10 Июн, 13:19 #107 #766246

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

Ответы>>766247

10 Июн, 13:23 #108 #766247

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

Всем, кто советует иное, можешь плевать в лицо без раздумий.

Ответы>>766251>>766257>>766262>>766387>>768209>>769640>>769671>>774858

10 Июн, 13:32 #109 #766251

>>766247
А как же оп-пост?

Ответы>>766253>>766254

10 Июн, 13:33 #110 #766253

>>766251
Оп хуй
харкни ему в лицо

10 Июн, 13:34 #111 #766254

>>766251
Какой-то фанбой Codelite его пили, а всем остальным лень отправлять pull-реквест в репу шапки

256 Кб, 2134x1366

10 Июн, 13:42 #112 #766257

>>766247
> Eclipse CDT
арчюю тут
>>766223
ну ребят помогие!

10 Июн, 13:47 #113 #766262

>>766247
Eclipse CDT
Qt Creator
Vim
они вроде все на vim нет? просто обвесы ide в qt заточены на qt а в eclipce на всё, я прав?

Ответы>>766270

10 Июн, 13:53 #114 #766270

>>766262
Нет, конечно. Что за бред? vim - это отдельный консольный редактор, не связанный ни с одной другой IDE.

Ответы>>766275

10 Июн, 13:57 #115 #766275

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

Ответы>>766279>>766281

10 Июн, 14:05 #116 #766279

>>766275
Ебать, и ведь даже не поймёшь – это жирный траль или залётный вася из /б/.

Ответы>>766285

10 Июн, 14:06 #117 #766281

>>766275
>766270
>вроде текстовые редакторы в qtcreator и eclipce это vim и открою тайну vim бывает гуёвым
Лалка, они поддерживают режим ввода текста, как в vim и не больше. Код из vim они не используют. Особенно Eclipse, которая написана на Java.
А называть gui версию vim настоящим gui текстовым редактором - это вообще охуеть.

Ответы>>766285

10 Июн, 14:09 #118 #766285

>>766281
ну да, с eclipce ступил.
ну про режим ввода как vim я понял
пробовал guivim тоже охуел. но думал кто-то юзает
>>766279
я думал ты залетный с /b и жирно тралил

10 Июн, 15:15 #119 #766309

>>766063
Лел
https://vk.com/opencv?w=wall-25765470_1297/all

Ответы>>766375>>766502

10 Июн, 15:28 #120 #766315

>>766223
Аноны! ну что вы знали о peer to peer

Ответы>>766334

10 Июн, 15:57 #121 #766334

>>766315
Тут лабы решают и IDE обсуждают.

Ответы>>766343

10 Июн, 16:03 #122 #766343

>>766334
Какое отношение peer-to-peer имеет к цепепе?

Ответы>>767260

10 Июн, 16:30 #123 #766361

>>766223
1. Подними stun на виртуалке и потести в виртуальной сети.
2. Почитай доку к сокетам
3. Почитай подробнее у Таненбаума про протоколы, с которыми собрался работать.

Ответы>>767237>>767260

373 Кб, 1536x2048

10 Июн, 16:57 #124 #766375

>>766309
Кекус. Будущий войтишник подрастает.

Ответы>>766382

10 Июн, 17:13 #125 #766382

>>766375
Вот это просто уровень Илюши, так деанониться.

10 Июн, 17:17 #126 #766386

Школота в треде, нужно сравнить несколько чисел с одним, так же где то читал, что возможен такой вариант кода
if (x1, x2, y1, y2 > 7)
Это будет работать?
inb4: Иди на хуй

Ответы>>766429

10 Июн, 17:18 #127 #766387

>>766247
сидеть под 15 визуалкой с вимовым анальным расширением. полёт заебись. нахуй мне ваши ответы не нужны

10 Июн, 18:21 #128 #766429

>>766386
Попробуй
if ((x1 + x2 + y1 + y2) / 4 > 7)

Ответы>>766431

sage 10 Июн, 18:27 #129 #766431

>>766429
Тонко.

66 Кб, 401x604

57 Кб, 604x403

113 Кб, 604x604

28 Кб, 237x604

10 Июн, 20:38 #130 #766502

>>766309
Не хватает только надписи "типичный обитатель кретотреда" на каждой фотке.

Ответы>>766527>>766553

19 Кб, 690x260

10 Июн, 21:02 #131 #766527

>>766502
Ну разве что с намеком на лабодаунов. Не надо хороших крестанов так шкварить.

Спасибо Абу, за удобную капчу.

Ответы>>766534

10 Июн, 21:07 #132 #766534

>>766527
В тематике есть капча?

Ответы>>766545

10 Июн, 21:25 #133 #766545

>>766534
иногда

10 Июн, 21:33 #134 #766553

>>766502
Надо это в /b скинуть, там парни разберутся

Ответы>>766561

21 Кб, 686x356

10 Июн, 21:38 #135 #766561

>>766553
И что мы им напишем? Задал глупый вопрос в тематике? Надо просто каждый тред напоминать кто тут сидит и что делать с лабадаунами.

10 Июн, 22:06 #136 #766595

Социобляди, социобляди everywhere.
Грег.жпг

Ответы>>766642

10 Июн, 22:10 #137 #766599

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

Ответы>>766601>>766641

10 Июн, 22:13 #138 #766601

>>766599
Тебе настолько скучно? Ему там нихуя не ответили вот он и пришёл сюда спрашивать.

Ответы>>766641

10 Июн, 22:48 #139 #766641

>>766599
>>766601

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

Ответы>>766649

10 Июн, 22:48 #140 #766642

>>766595
>Грег.жпг
Последний раз слышал о нем на 0-льчaне в 2009 году лол.

Ответы>>766697

10 Июн, 22:54 #141 #766649

>>766641
> лабодауна
Сам то кто будешь?

Ответы>>766665

10 Июн, 23:05 #142 #766665

>>766649
ОП-не-стихоеб.

10 Июн, 23:22 #143 #766697

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

10 Июн, 23:46 #144 #766728

Подскажите, а нет ли какого-нибудь простенького портативного компилятора на шинде для С++?
Я на линуксе пользуюсь консольными командами с г++, а на шинде, я смотрю, только 20 гигобайтный вижуал?

Ответы>>766734>>766756

10 Июн, 23:50 #145 #766734

>>766728
mingw

Ответы>>766758

11 Июн, 00:11 #146 #766756

>>766728
Можешь cygwin накатить, если тебе нужен не только компилятор, но и более-менее POSIX-окружение.

11 Июн, 00:15 #147 #766758

>>766734
Он же в 64 bit не может.

Ответы>>766760

27 Кб, 1337x463

11 Июн, 00:17 #148 #766760

>>766758

Ответы>>766767

11 Июн, 00:26 #149 #766767

>>766760
И где брать эту версию? На сайте у них инсталлятор только под 32 bit.

Ответы>>766768

11 Июн, 00:27 #150 #766768

>>766767
http://mingw-w64.org/

Ответы>>766773

11 Июн, 00:30 #151 #766773

>>766768
Попробую. Я с mingw.org качал. Там старая версия что ли?

Ответы>>766776

12 Кб, 1054x39

11 Июн, 00:33 #152 #766776

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

И это C++-тред...

11 Июн, 11:14 #153 #766832

>>764773

Ты так или иначе всё равно будешь работать с плюсами. Qt нужен для написания гуи, но логика какая-то же тоже должна быть. Сначала набей руку в плюсах, а потом немножко почитай Шлее или Саммерфилда по Qt и кури доки по Qt, они у них хорошо написаны.

11 Июн, 12:59 #154 #766882

>>764773
В плюсах вкатиться куда-либо невозможно, не зная сами плюсы. Для Qt надо очень хорошо владеть адванцед понятиями, типа pointer ownership, построением хорошей архитектуры и тд.

Ответы>>766970

11 Июн, 14:46 #155 #766970

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

Тут человеку плохо, забирайте

Ответы>>766972

11 Июн, 14:47 #156 #766972

>>766970
мне как раз заебись

Ответы>>767088

11 Июн, 17:21 #157 #767085

Что лучше: использовать std::thread или писать отделано свой класс для win thread и posix thread?

Ответы>>767087>>767100>>767181

11 Июн, 17:23 #158 #767087

>>767085
Why not both? std::thread дает доступ к хэндлу оси, можно использовать его со своими классами.

11 Июн, 17:23 #159 #767088

>>766972
Что же в КТ такого, что там нужно интенсивное использование pointer ownership?

Ответы>>767180

11 Июн, 17:45 #160 #767100

>>767085
std::thread, раз ты не знаешь, как тебе пригодятся нативные средства.

11 Июн, 18:58 #161 #767180

>>767088
надо это понимать, иначе ты будешь память выливать на каждый чих

11 Июн, 18:58 #162 #767181

>>767085
std::thread, если нужно большее - boost::thread

11 Июн, 19:24 #163 #767213

Если я создам класс
class A
{
int arr[100];
};

и вызову
A * instance = new A;
Массив arr у меня будет в куче?

Ответы>>767243

11 Июн, 19:42 #164 #767237

>>766361
вроде по доку сокет сделал. он листит rnd порт на 0.0.0.0

11 Июн, 19:48 #165 #767243

>>7671>>767213
Ясен хуй

11 Июн, 20:01 #166 #767260

>>766361
>Подними stun на виртуалке и потести в виртуальной сети.
мне нужно обойти nat, как мне поможет виртуалка? на ней тестовый nat собрать?
>>766343
я делаю реализацию peer-to-peer на цпп и там надо на листинг сокеты ставить в тредики ченить собирать... а какое отношение лабы имеют к цпп треду?

Ответы>>767299

11 Июн, 20:07 #167 #767270

Ребят, у кого-нибудь есть скокпилированный PDcurses?
Пытался вот этот http://sourceforge.net/projects/pdcurses/files/latest/download?source=files
собрать. Ниасилил, компилятор пишет "Точка входа в процедуру libintl_setlocale не найдена в библиотеке DLL: (дальше идет путь к компилятору)".

Ответы>>767291>>767323

11 Июн, 20:30 #168 #767291

>>767270
Там же рядом прям лежит. https://sourceforge.net/projects/pdcurses/files/pdcurses/3.4/

Ответы>>767318

11 Июн, 20:35 #169 #767299

>>767260
>на ней тестовый nat собрать?
this. Должна быть контролируемая среда для тестирования.

Ответы>>767313

11 Июн, 20:49 #170 #767310

Ананасы, для вкатывания в кресты нужно учить сишку?

Ответы>>767312>>767324>>767398

11 Июн, 20:55 #171 #767312

>>767310
Ну сишка это облегченные кресты, так что можешь начать с нее, да.

11 Июн, 20:55 #172 #767313

>>767299
понял вас.. Таненбаум и собрать nat. и stun сервак. буду работать

11 Июн, 21:04 #173 #767318

>>767291
Это тот который с pdcurses.lib?
Не догнал как его ставить.

11 Июн, 21:08 #174 #767323

>>767270
Недавно собирал, всё нормально собиралось.

Ответы>>767330

11 Июн, 21:08 #175 #767324

>>767310
нет

11 Июн, 21:19 #176 #767330

>>767323
Можешь pdcurses.a и panel.a вытащить?

Ответы>>767344

11 Июн, 21:33 #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

11 Июн, 21:36 #178 #767342

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

11 Июн, 21:37 #179 #767344

>>767330
У меня студия собирает .lib

Ответы>>767350

11 Июн, 21:38 #180 #767345

>>767338
class TvoyaMamka;
using pTvoyaMamka = * TvoyaMamka;
using cpTvoyaMamka = const pTvoyaMamka;
Ну ты понел.

Ответы>>767348>>767372

11 Июн, 21:42 #181 #767348

>>767345
точняк спс

11 Июн, 21:47 #182 #767350

>>767344
А в студии он через .h нормально добавляется?
Я в mingw пишу и как туда добавить .lib понятия не имею, весь гугол перерыл уже.
Если просто закинуть .lib и .dll в папку с проектом и добавить в код заголовочный файл, ничего не работает.

Ответы>>767362>>767400>>767517

11 Июн, 22:05 #183 #767362

>>767350
Вроде-бы просто так работает. И если ты собираешь его в .lib то никакого .dll нет.
Тебе нужно только кинуть curses.h и pdcurses.lib в папку проекта, добавить pdcurses.lib в зависимости твоего проекта и #include "curses.h", тащемта всё.

Ответы>>767406

11 Июн, 22:20 #184 #767372

>>767345
>cpTvoyaMamka
WINAPI-мразь не заметна.

Ответы>>767403>>767418

11 Июн, 22:58 #185 #767398

>>767310
Выучи си , а кресты не учи

11 Июн, 22:59 #186 #767400

>>767350
>Я в mingw пишу и как туда добавить .lib понятия не имею
Никак, у mingw .a вместо .lib. Или собирай либы сам под mingw, или ищи уже собранные в дистрах линукса.

Ответы>>767565

11 Июн, 23:00 #187 #767403

>>767372
Хомячок, никогда не писавший вирусы, детектед.

Ответы>>767417

11 Июн, 23:04 #188 #767406

>>767362
>добавить pdcurses.lib в зависимости твоего проекта
В этом-то и проблема. Как его добавить?

Ответы>>767512

11 Июн, 23:12 #189 #767417

>>767403
нахуй мне этим днищем заниматься? Я предпочитаю хуярить что-нибудь полезное. на *nix

Ответы>>767419>>767420

97 Кб, 668x444

222 Кб, 900x506

11 Июн, 23:14 #190 #767418

>>767372
Как что-то плохое.

15 Кб, 157x200

11 Июн, 23:15 #191 #767419

>>767417
>на *nix
>полезное

11 Июн, 23:16 #192 #767420

>>767417
как там 0.5% среди десктопов? вас не видно

12 Июн, 01:16 #193 #767510

Время выебонов
Сколько человек из желающих ВКАТИТЬСЯ в плюсы и/или сишку реально вкатилось хоть на уровень джуна?
Судя по борде, то у каждого второго планы изучать сие.

Ответы>>767511>>767513>>767519

12 Июн, 01:18 #194 #767511

>>767510
>>767510
>в плюсы и/или сишку
огромная разница

12 Июн, 01:19 #195 #767512

>>767406
поищи настройки линкера и добавь туда. либо полный путь, либо добавь путь в настройки проекта/солюшна и тогда только имя либы линкеру

Ответы>>767565

12 Июн, 01:20 #196 #767513

>>767510
если не долбоеб, то за пару лет можно в миддла вкатиться.

Ответы>>767533

12 Июн, 01:22 #197 #767517

>>767350
В мингв ты писать не можешь.
Какая у тебя IDE?

Ответы>>767565

12 Июн, 01:23 #198 #767519

>>767510
Я в феврале первый раз зашел в этот тред.
В апреле уже нашел работу. Но на плюсах для себя пишу уже давно.

12 Июн, 01:47 #199 #767527

Может кто что подскажет. У меня есть менеджер задач. Каждая задача выполняется на отдельном потоке. Задач много. И тут я хочу одну в одной из задач вызвать sleep. И не хочу терять зря время потока, и дать выполнять ему другую задачу. А когда время пройдет, то то свободный поток подхватит ее и продолжит выполнение. Пока только придумал создавать новый поток, добавлять его в менеджер задач. А тому, который уснул не посылать потом новую задачу и отдавать дескриптор ОС. Норм решение или стоит ещё подумать?

Ответы>>767529>>767544>>768954

12 Июн, 01:48 #200 #767529

>>767527
>Каждая задача выполняется на отдельном потоке.
Неправильно выразился. Каждый поток выполняет одну задачу. Пул потоков короче.

12 Июн, 02:13 #201 #767533

>>767513
Хуй там. На миддла надо больше пахать. За пару лет только макакой станешь.

12 Июн, 02:23 #202 #767544

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

Ответы>>767558

12 Июн, 02:55 #203 #767558

>>767544
>Время ты не теряешь.
Ну как не теряю. Изначально я создаю n потоков по количеству ядер (допустим 4). Нагружаю все 4 ядра. В одном вызываю sleep(3) нагрузка на CPU - 75%, пока поток спит.
> Проще увеличить размер пула.
Это я и хочу сделать, но в риалтайме. Создал новый поток, а старый после завершения освободил. Одновременно рабочих у меня будет столько, сколько у цп аппаратных потоков.

Ответы>>767619

12 Июн, 03:47 #204 #767565

>>767512
Вот этот >>767400 анон прав, видимо, подружить mingw и .lib не получится. Там в папке lib все сплошь с расширением ".а".

>>767517
Да знаю я что это компилятор.
Есть еще и одноименная IDE - MinGW developer studio.

Ответы>>768553

12 Июн, 09:56 #205 #767619

>>767558
Имелось ввиду что у тебя есть некоторое количество заранее созданых потоков (пул). Ты не создаешь и освобождаешь потоки (это тяжелая операция), а переиспользуешь старые. Когда задача отработает поток не уничтожается, а возвращается в пул. Когда нужно запустить задачу то из пула берется уже готовый свободный поток. Когда нужно приостановить задачу ее поток останавливается и на выполнение отдается другая задача. Когда можно продолжить то вместо запуска новой задачи снимается с паузы старая задача.

12 Июн, 12:44 #206 #767696

Как можно быстро распространить криптолокер? Заливать в интернет как быть независимой женщиной и эксплуатировать мужчину.fb2.exe?
(Автор этого поста был предупрежден.)

Ответы>>767780

12 Июн, 14:57 #207 #767770

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

12 Июн, 15:10 #208 #767780

>>767696
Ахахахахахах, блять.

12 Июн, 15:37 #209 #767799

Чем плохо using namespace std и как тогда делать доступным определенные типы и функции? Для каждого объекта писать using std::name?

Ответы>>767804>>767825

29 Кб, 550x550

12 Июн, 15:44 #210 #767803

Крестаны, собираюсь обмазаться C++, потому что в целом хочу подтянуть базисные знания по программированию и попробовать запилить небольшую 2D игру в детстве жутко мечтал сделать свою игру, так сказать совместить приятно с полезным, чтобы не сорваться в процессе изучения. Вопрос этот наверное платиновый, но правильно ли я делаю? Или тут только драйвера байтоебят, а мне дорога в C# с Юнити?
Хочется поставить себе долгосрочную задачу с конкретным результатом, поебаться с разными сложностями и алгоритмами как в детстве, когда решал задачки на тимусе.

Ответы>>767810>>767825

12 Июн, 15:44 #211 #767804

>>767799
Если тебе один раз нужно вызвать std::какая-то_срань, то вовсе необязательно using.

12 Июн, 16:01 #212 #767810

>>767803
Берешь sfml и пилишь, всё необходимое уже за тебя зделано.

14 Кб, 420x310

12 Июн, 16:16 #213 #767820

Пора выходить из зоны комфорта!

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

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

Начни прямо сейчас!

12 Июн, 16:26 #214 #767825

>>767803
Можно и то и то. Если не смущает юнити (например фактический вендорлок на виндоуз, хотя с этим пытаются бороться, может даже поборют) то лучше в юнити пойти - ты там быстрее к результату сможешь прийти. А так-то и на плюсах можно, если есть желание именно ими заниматься.
>>767799
Глобальное пространство имен раздувается кучей идентификаторов которые все не упомнишь - появляется вероятность конфликтов.

12 Июн, 21:01 #215 #768133

Пишу программу, которая по целому числу N создаёт массив, который случайным образом заполнен числами от 0 до N-1.

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

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

Ответы>>768136

12 Июн, 21:08 #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);

12 Июн, 21:21 #217 #768153

Когда надо применять constexpr, а когда const? Часто вижу, что даже литералы стали объявлять как constexpr/

Ответы>>768188>>768226>>768468

12 Июн, 21:59 #218 #768188

>>768153
constexpr ненужное гавно, очень редко используемое.
Вот изза таких вещей как constexpr, prvalue и так далее изучение новых крестов превращается в ад

Ответы>>768468

12 Июн, 22:24 #219 #768209

>>766247
Включил vim, но не включил Emacs. Ох лол.

Ответы>>768228

12 Июн, 22:46 #220 #768226

>>768153
почитай Мейерса, нахуй он книжку писал, если ты не читаешь, бля?

12 Июн, 22:46 #221 #768227

Анон, первым языком лучше учить Си или С++?

Ответы>>768229>>768254

12 Июн, 22:47 #222 #768228

>>768209
ну забыл учесть эту парашу, ну и что? Один хуй, что vim'ом, что emacs'ом мало кто пользуется.

12 Июн, 22:48 #223 #768229

>>768227
питон, потом C, потом C++

Ответы>>768295

12 Июн, 23:18 #224 #768254

>>768227
Зависит от того, на чем преимущественно ты хочешь писать в итоге. Вкатываясь в кресты после няшной, довольно трудно избавиться от навязчивого чувства, что 80% фич крестов — ненужное (и даже вредное) говно. Так что если твоя цель кресты, то лучше с них сразу и начать, не набирая вредных (для крестопрограммера) привычек из сишечки.

Ответы>>768283>>768293

12 Июн, 23:49 #225 #768283

>>768254
>навязчивого чувства, что 80% фич крестов — ненужное (и даже вредное) говно
Охуительные истории. Надо быть совсем упоротым утенком, чтобы так думать.

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

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

"Ух епт, теперь не нужно каждый раз городить vptr вручную? А нее, говно. Не жили хорошо, неча начинать".

12 Июн, 23:55 #226 #768293

>>768254
Вообще везде пишут, что кресты надо очень долго учить, и лучше все-таки начинать с С. Ты уверен в своих словах, анон?

Ответы>>768295>>768302

12 Июн, 23:55 #227 #768295

>>768293
не слушай того пидора, слушай этого >>768229

Ответы>>768300

12 Июн, 23:57 #228 #768298

Как начать работать, если я ленивый уебок? Иногда бывают продуктивные месяцы, когда не отвлекаюсь ни на что. А иногда я такой ленивый пидор, что самому стыдно.

Ответы>>768430

12 Июн, 23:58 #229 #768300

>>768295
Питон пробовал, он какой-то охуительно простой. С ним точно все в порядке?

Ответы>>768430

12 Июн, 23:59 #230 #768302

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

13 Июн, 07:17 #231 #768430

>>768298
В новом стандарте С++100500 будут такие возможности, что ты не будешь отвлекаться.

>>768300
Он для того и делался чтоб любой непрограммист мог что-то написать. Бэйсик современный.

13 Июн, 08:50 #232 #768456

Аноны, подскажите.
Есть сущность скилла (умения). У скиллов есть эффекты, некоторые со сложной логикой. Метод "use" получает все необходимые данные (id, player, world).
Где мне описывать логику эффектов? Делать нагромождение if (id == 1) ... else if (id == 2) ... ?

Ответы>>768467>>768469>>768486>>768756

13 Июн, 09:16 #233 #768467

>>768456
Finite-state machine

13 Июн, 09:20 #234 #768468

>>768188
Охуел что ли. Если ты не понимаешь, для чего нужна фича, то это не значит, что она не нужна.
Если сложна, то иди учи бейсик.

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

Ответы>>768529>>768765

13 Июн, 09:22 #235 #768469

>>768456
http://gameprogrammingpatterns.com/contents.html

13 Июн, 11:04 #236 #768486

>>768456
> Делать нагромождение if (id == 1) ... else if (id == 2) ...
Когда ты сталкиваешься с ситуацией "нужно сделать нагромождение ифов" это верный признак что можно применить ООП. Это конечно не значит что его нужно пименять. В конечном счете нагромождение ифов может оказаться более простым и понятным вариантом.

13 Июн, 12:29 #237 #768529

>>768468
>во время compile-time
Во время compile-time компиляции.
Медленнофикс.

Ответы>>768560>>768584

13 Июн, 13:22 #238 #768553

>>767565
MinGW w64 отлично линкует x32 *.lib
Вот даже микропруфы: https://sourceforge.net/p/mingw-w64/wiki2/Answer 64 bit MSVC-generated x64 .lib/

Интересно, что на работе у меня без задней мысли линкуются .lib x64. При этом почти никаких проблем. Но там используется чистый Си.

13 Июн, 13:38 #239 #768560

>>768529
А у нас бывает runtime-компиляция? Она-то бывает, конечно, но смысл constexpr это никак не меняет.

Ответы>>768584

13 Июн, 13:40 #240 #768562

>>764736 (OP)
А что с ОПом то случилось?

13 Июн, 14:00 #241 #768584

>>768529
>>768560
Что вы употребляете, больные?

Ответы>>768607

13 Июн, 14:38 #242 #768607

>>768584
Вы только посмотрите: лалка не знает про llvm, позор-то какой!

Ответы>>768610

13 Июн, 14:47 #243 #768610

>>768607
Ну так это молодёжное хипстерское говно.
В моё времечко-то объёбывались gcc и bcc.

Ответы>>768612

13 Июн, 14:52 #244 #768612

>>768610
Как там в 2000? llvm уже 16 лет пилят, хотя JIT для С++ не так давно делать начали. Да и то, всем похуй на него.

Ответы>>768615

13 Июн, 15:04 #245 #768615

>>768612
LLVM довели до юзабельного состояния только 5-6 лет назад (как начали спонсировать). До этого легче было писать самому кодогенерацию.

13 Июн, 18:46 #246 #768756

>>768456
http://gameprogrammingpatterns.com/state.html

13 Июн, 19:25 #247 #768765

>>768468
>В ином случае выражение будет рассчитано в рантайме.
>const, например, нельзя использовать, как параметр шаблона, а constexpr можно
Ты путаешь понятия "constexpr" и "constant expression". Второе может храниться и в const (например, если ты пишешь const int x = 1) и прекрасно использоваться для размеров массива и параметров шаблона, ибо тоже рассчитывается в compile-time. Но не любой const хранит constant expression, поэтому ввели constexpr, который это форсирует.

Ответы>>768770

13 Июн, 19:35 #248 #768770

>>768765
Ничего не путаю, но да, с const я промахнулся.
На тебе покушать про рантайм с constexpr-функциями:
http://ideone.com/STL0Xm

Ответы>>768774

13 Июн, 19:42 #249 #768774

>>768770
У constexpr для функций вообще другая семантика же. Там даже константность не гарантируется для методов.
constexpr-данные ~ гарантированно константное выражение литерального типа
constexpr-функция ~ функция над литеральными типами, которая вычислится в константное выражение при условии, что аргументы будут константными выражениями.

Ответы>>768775

13 Июн, 19:42 #250 #768775

>>768774
Хотя ты это уже написал, я в глаза долблюсь.

13 Июн, 22:51 #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

13 Июн, 22:58 #252 #768874

>>768867
http://ideone.com/I2FQOJ
Запилил для удобства.

13 Июн, 23:04 #253 #768881

>>768867
> он должен
Кому должен? Ты берешь остаток от деления на 3600, что может оставлять от 0 до 3599 и делишь на 24. Что дает результат от 0 до 149.

Ответы>>768930>>768931

13 Июн, 23:06 #254 #768883

>>764736 (OP)
Чтобы ОС написать нужно знать только с++ и ассемблер?

Ответы>>768886>>769182

13 Июн, 23:07 #255 #768886

>>768883
http://wiki.osdev.org/Required_Knowledge

Ответы>>768890

13 Июн, 23:13 #256 #768890

>>768886
Но я могу просто взять 16 битник с хабра за основу и просто глянуть в код. Или ядро от пингвина посмотреть.

Ответы>>768893>>768897

13 Июн, 23:17 #257 #768893

>>768890
Да бери уж пингвина и компилируй.
Будешь у мамки настоящий ос-писатель.

Ответы>>768895

13 Июн, 23:22 #258 #768895

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

Хотя, не напрягайся, понятно что ты очередной шутник про Попова.

Ответы>>768899>>768902

13 Июн, 23:30 #259 #768897

>>768890
смотри на Minix. специально для обучения создан. с него начинался Linux

13 Июн, 23:31 #260 #768899

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

Ответы>>768903

13 Июн, 23:41 #261 #768902

>>768895
Иди почитай, сразу поймешь что к чему https://github.com/torvalds/linux/blob/master/mm/memory.c

13 Июн, 23:42 #262 #768903

>>768899
Посоветую умную книжку
Design and implementation of 4.4 BSD

Ответы>>768909>>768929

13 Июн, 23:59 #263 #768909

>>768903
Я бы начал с Танненбаума все же.

Ответы>>768912

14 Июн, 00:05 #264 #768912

>>768909
Категорически протестую. Эти теоретики со своими концепциями придумали Minix, MULTICS и стек OSI (да блджад, это не просто "модель OSI", которую в универчиках изучают, ни сделали работающую имплементацию - но работает TCP-IP вместо их красивых построений).
Практики сделали UNIX, TCP-IP и оно работает.

Ответы>>768928>>768932

491 Кб, 768x1516

614 Кб, 2212x1328

14 Июн, 00:34 #265 #768928

>>768912
Я надеюсь ты так тралишь. Танненбаум описывает работу с памятью на 90 страницах, а дока к freebsd на двух.

Seems legit.

Ответы>>768937

35 Кб, 319x400

14 Июн, 00:35 #266 #768929

>>768903
Посоветую умную книжку чтоб не делать такого говна как Unix

Ответы>>768956

21 Кб, 361x431

14 Июн, 00:36 #267 #768930

>>768881
БЛять ну ты и пидорас! Ура получилось, не зря я ебался час с с лишним.

http://ideone.com/SlrlDR
Рапортую, посоны.

Ответы>>769349

14 Июн, 00:38 #268 #768931

>>768881
Ну ты понел, добра тебе анон. Вот что я хотел сказать.

14 Июн, 00:39 #269 #768932

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

Они-то теоретики, а ты - самый настоящий кукаретик. В OSI только TCP-IP реализованы, ну охуеть теперь.

Ответы>>768939

14 Июн, 00:44 #270 #768937

>>768928
Я же сказал книжку а не огрызки с энторнетов.
Работе с памятью посвящены страницы со 117 по 190

14 Июн, 00:45 #271 #768939

>>768932
>В OSI только TCP-IP реализованы
TCP, IP и примкнувший к ним ICMP реализованы сами по себе, OSI-модель вместе с нихуя не работащим OSI-стеком от теоретиков к ним не относится НИКАК.

14 Июн, 01:21 #272 #768954

>>767527
Используй асинки, а не потоки.

14 Июн, 01:30 #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.

14 Июн, 01:30 #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.

Показать весь текст

14 Июн, 13:41 #274 #769175

Подскажите дебилу, как работают автоматические объекты в цпп. Если они создаются на стеке, то как к ним потом обеспечивается доступ?
Вот объявил я, к примеру, несколько переменных:
int chislo = 42;
double pi = 3.14;
MyYoba xui("pizda");

Как потом достаются значения переменных? Выталкиваются в обратном порядке, а потом снова запихиваются? Или просто указатель стека перемещается?

Ответы>>769177>>769352

14 Июн, 13:47 #275 #769177

>>769175
При вызове каждой функции она берет себе от стека столько памяти, сколько нужно для локальных переменных. В этой памяти переменные и инициализируются. При выходе из функции память возвращяется.

Ответы>>769179

14 Июн, 13:48 #276 #769179

>>769177
Это ясно. А как переменные достаются из стека?

Ответы>>769184

14 Июн, 13:49 #277 #769182

>>768883
Можно даже без С++.
https://github.com/organix/pijFORTHos

14 Июн, 13:53 #278 #769184

>>769179
В смысле "достаются"? Переменные достаются чтением учатска памяти. Разницы в чтении памяти между кучей и стеком нет. Стек автоматически освобождается, а куча - нет, и все.

14 Июн, 17:00 #279 #769349

>>768930
Вот бы тебя избить за говнокод. Физически неприятно читать.
http://ideone.com/z8RHhX

Ответы>>769471

14 Июн, 17:03 #280 #769352

>>769175
Запусти дизасм хоть раз в жизни и посмотри как все устроено.

14 Июн, 19:48 #281 #769471

>>769349
Да ладно тебе, кефирщик. Погрешности нет, ошибок нет, все работает.

Ответы>>769870

14 Июн, 20:04 #282 #769489

>>764736 (OP)
А как мне завести цикл на повторение программы?
Ну, понятно что черед do while.
Вот например,
do{
cout" Повторить выполнение,(y/n)?"
while( cin quit&& quit =='y')
}
А как на начало всей программы будет перевести выполнение ?

Ответы>>769496>>769868>>770388

14 Июн, 20:14 #283 #769496

>>769489
Берешь и все тело main () обрамляешь этим циклом, очевидно же. Тащемта, это единственный в хостовых реализациях, в каком-нибудь freestanding типа Arduino есть init () и loop () вместо main () вариант сделать повторения, ибо управлять рантаймом до и после работы main () ты не можешь, и вызывать ее вручную тоже запрещено.

Ответы>>769515

14 Июн, 20:47 #284 #769515

>>769496
О как спасибо, анончик. Боббра тебе.

14 Июн, 22:51 #285 #769584

Крестосы, кто нибудь пишет код без new? Вот совсем. Как еду без соли. Я пишу под арм, надоел мне чистый си, иногда классы удобно, но естественно размер раздувается, а иногда нужно укладываться в 64K. В результате пооткусывал все что можно, чтобы libstd++ не тащить. Могу жить без rtti и исключений, они в ембеде не нужны. А вот к new все таки привык. В результате изворачиваюсь двумя способами: локальные объекты создаю на стеке перед вечным циклом, и уже их адреса передаю во вложенные объекты, зная что из цикла никогда не выходим. Естественно бывает неудобство, если вложенные объекты нужно тоже вкладывать или внутри них нужно создавать другие объекты и их передавать во вложенные классы. Тогда я инициализирую члены в конструкторе через : но это неудобно, иногда хочется несколько строк еще добавить, приходится инициализацию прятать в сами вложенные классы, внутри их конструкторов и тд

Ответы>>769659>>770152

14 Июн, 23:16 #286 #769591

Хелп, анон. Сегодня решил попробовать хардкорно покодить на линуксе, в терминале. Ввожу я значит vim example.c, открывается редактор быдлокода, все хорошо, а как переключаться между редактором кода и вводом команд? Например тот же makefile запустить.
И еще, этот файл example.c хранится в недрах оперативной памяти или сохраняется на диск? Как его сохранить на диск?

Ответы>>769599>>769605>>769632

sage 14 Июн, 23:27 #287 #769599

>>769591
:w
:!gcc -oexample example.c && ./example

Ответы>>769605>>769646>>770009>>770579

14 Июн, 23:38 #288 #769605

>>769591
>>769599
или открой второй терминал а то замучаештся постоянно эти крючки вбивать.

Ответы>>769608>>770009

sage 14 Июн, 23:40 #289 #769608

>>769605
В vim хистори есть на вверх/вниз. Ну или можно на ctrl+z сворачивать vim и через fg разворачивать.

Ответы>>769647>>770009>>770107

15 Июн, 00:18 #290 #769632

>>769591
Хелп, анон. Сегодня решил попробовать хардкорно попердолить консольку, в терминале. Ввожу я значит emacs example.c, открывается редактор быдлокода, все хорошо, оборачивайся сучара я тут голый стою сосать у тебя хочу а ты к этому еблану идёшь наркаман штоле ща перееду камазом мозги прах выпотрошу вытащу селезёнку и съём ах не идешь пидорас ну погоди сука я как дам по ебалу ахуеешь хуй ебанный какашку свою в жопу засунь как высунул все задыхаются смотрят на нас и ржут а я стою тебе в рот сру сука тупорылая иди нахуй чтоб я не видел тебя на моей улице уёбок блять ах ты бить будешь ну всё сучонок пизда тебе я тебе череп оближу выебу трахпну дурак и сделаю из него скворечник нахуй потом вытащу киши кровь говно расчленёнка оргия чёрный властелин айдар печёнка селезёнка вылезла и по жопе ползает хуйло блять лучше раздразнить собаку, нежели бабу а собака блять тебя за ногу хуяк оторвала кровищща хлещёт ты орёшь бегаешь к бабе прибежал а та там с мужиком в постели ебётся ты её бах нахуй из пестика везде кровь баба обосралась а собака прибежала и начала говно жрать а говно то сука радиактивное собаку разорвало на куски на лает пиздёшится всю на куски распидорасчило а ты её по жопе на сука за то што меня кусала мужик стал в окно вылезать бабы увидели защекотали нудиста до смерти а я их всех выебал кишки в супе сварил съел в помойму выбосил бомж увидеел выпрыгнул орёт ты чё пидарас охуел ко мне в дом дерьмо всякое кидать изнасиловал меня в жопу кончил на спину облизал и….блевать сука мозги искры из глаз кровь говно кишки хуй пизда джигурда оргии крловавые негры саус парк гомер симпсон трахнул мо а сайдшоу мел смотрел и аплодировал а я ему хуяк кость в жопу нехуй орать всё правильно сделал так ему пидорсу повар.итог моралевый блеыять дразните баб а то ебутся с кем попало шмары вонючие ненавижу сук

15 Июн, 00:43 #291 #769640

>>766247
Нет ничего более уебищного чем qtcreator.

15 Июн, 00:46 #292 #769641

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

15 Июн, 01:09 #293 #769646

>>769599
Ууу, я в линуксе немного нью фаг, поясни, пожалуйста, что происходит в этой строке :)
А как между редактором и вводом команд то переключаться?

Ответы>>769647

sage 15 Июн, 01:11 #294 #769647

>>769646
Первая команда сохраняет файл, как переключаться здесь >>769608
Раз ньюфаг, иди читай доки терминала.

Ответы>>770107

15 Июн, 01:30 #295 #769659

>>769584
Эмбедовка же ж. Глобальные переменные (синглетоны) решают. А ещё темплейты. Включаешь оптимиздатор и он режет всё говно и код становится маленьким. Без нью спокойно - это ж не гуйню хуярить.

Ответы>>770170

15 Июн, 02:25 #296 #769671

>>766247
emacs забыл

15 Июн, 10:54 #297 #769868

>>769489
int main()
{
while(Run())
{
//do nothing
}

}

В Run пишешь всю хуйню и ретурн труе/фалсе

15 Июн, 10:57 #298 #769870

>>769471
Halo ser, may i halp u?
Mai naem is Radjawan Gownoshalan, i am a from a teknikal supporta

15 Июн, 14:09 #299 #770009

>>769599
>>769605
>>769608
Мышки плакали, кололись...

48 Кб, 705x392

52 Кб, 707x403

15 Июн, 16:14 #300 #770107

>>769608
>>769647

Что-то не работает ctrl+z...
В видео уроке чувак пишет пишет код, а потом как-то вдруг прописывает :wq и дальше как в обычном терминале vim Makefile...
Скрины приложил. Как он это делает?

Ответы>>770120

15 Июн, 16:36 #301 #770120

>>770107
в виме вводишь :wq и нажимаешь enter. Он там из вима вышел, просто он остался на виду как и предыдущие команды терминала. Ты это на степике проходишь курс, я так понял.
Вот тебе по виму туториал https://ru.wikibooks.org/wiki/Vim
А вообще в виме есть внутренний свой мини-туториал хороший vimtutor
тоже этот курс прохожу, параллельно с линупсом

Ответы>>770136

15 Июн, 17:00 #302 #770136

>>770120

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

Ответы>>770138

15 Июн, 17:04 #303 #770138

>>770136
https://stepic.org/course/Основы-программирования-для-Linux-548/syllabus эти русскоязычные ссылки...
Там же не так много курсов в принципе чтобы все проскроллить

Ответы>>770490

15 Июн, 17:18 #304 #770152

>>769584
Если у тебя libc слинкована, навелосипедь свой new через маллок:
http://ideone.com/5YXsTX

Ответы>>770170

15 Июн, 17:46 #305 #770170

>>770152
Хм я пробовал тупо заменить new mallocoм но не сработало - начало все сыпаться. Может в твоем линке что-то дополнительное происходит, надо попробовать
>>769659
да, синглтоны юзаю в большом кол-ве, ведь они естественным образом возникают с переферией - порт есть порт, он один такой.

Ответы>>770174>>770199

15 Июн, 17:51 #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

15 Июн, 18:09 #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.

15 Июн, 18:24 #308 #770199

>>770170
>но не сработало - начало все сыпаться
Ты конструкторы не забываешь вызывать через placement new?

Ответы>>770208

15 Июн, 18:37 #309 #770208

>>770199
хм, первый раз слышу про placement new. в чем фишка для моего случая? быстрогугл не прояснил.

Ответы>>770216

15 Июн, 18:43 #310 #770216

>>770208
а, ну понятно, сам указываю где аллоцировать. не понятно правда почему обычный new не сработает, если его на malloc зарутить, malloc то нормально работает, он знает где heap и тд

Ответы>>770278

15 Июн, 18:49 #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?

15 Июн, 20:39 #312 #770278

>>770216
Placement new только конструктор вызывает по переданному адресу. Обычный new видимо что-то еще делает, что от сислибы зависит. Надо стандарт ботать.

15 Июн, 20:45 #313 #770285

Сап, все никак не могу вытащить классы из файла с помощью регулярки.

http://ideone.com/vYMETm

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

Ответы>>770362>>770681

15 Июн, 21:52 #314 #770353

Поставил дистрибутив линуха. Что дальше? Как мне написать свой первый хеллоуворд на прыщах? Где писать, чем компилировать и как? Предложите все, что есть со своими плюсами и минусами.

Ответы>>770362

sage 15 Июн, 22:06 #315 #770362

>>770285
http://ideone.com/7wA5C8

>>770353
Ставь build-essential, затем идешь курить g++ или ставишь ide. На твой выбор.

Ответы>>770365>>770378>>770582

15 Июн, 22:07 #316 #770365

>>770362
Языком ошибся, но думаю, ты понял.

Ответы>>770390>>770391

15 Июн, 22:12 #317 #770378

>>770362
А если чистым паттерном? Никак?

Ответы>>770448

15 Июн, 22:17 #318 #770388

>>769489
а можно бат файл запилить

15 Июн, 22:19 #319 #770390

>>770365
Суть в том, что много лишних действий. Мне надо за один шаг вытащить имена из строки. Не надо разбираться где кто и кем приходится. Достаточно просто вырвать имена и все. Моя просьба была в том, чтобы анон пояснил что не так с моим выражением и почему оно не берет 3 имени и более

Ответы>>770448

15 Июн, 22:19 #320 #770391

>>770365
Суть в том, что много лишних действий. Мне надо за один шаг вытащить имена из строки. Не надо разбираться где кто и кем приходится. Достаточно просто вырвать имена и все. Моя просьба была в том, чтобы анон пояснил что не так с моим выражением и почему оно не берет 3 имени и более

Ответы>>770448

15 Июн, 23:17 #321 #770448

>>770378
>>770390
>>770391

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

Ответы>>770845

16 Июн, 00:00 #322 #770490

>>770138
>эти русскоязычные ссылки...
https://chrome.google.com/webstore/detail/copy-url/mkhnbhdofgaendegcgbmndipmijhbili

16 Июн, 00:08 #323 #770500

Смотрите, петуханы.

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

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

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

Что можно сделать?

Ответы>>770517

16 Июн, 00:33 #324 #770517

>>770500
Конкретнее

Ответы>>770521

16 Июн, 00:37 #325 #770521

>>770517
Иногда параметры хочется доставать, приходится кастовать объекты.

Ответы>>770694

16 Июн, 01:28 #326 #770550

Даун с потоками возвращается. Допустим у меня есть 4 потока. Каждому из них я даю задание считать мне файл из жесткого диска. Имеет ли смысл так делать или в один поток будет лучше(не будем пидорасить HDD и прочее)? И в чем тут разница между HDD и SSD?

Ответы>>770555>>770562

16 Июн, 01:41 #327 #770555

>>770550
Возможно имеет. Файлы могут на разных винтах лежать например. Или с рэйда-зеркала читаться. Либо вообще с сетевой СХД.

Ответы>>770556

16 Июн, 01:44 #328 #770556

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

Ответы>>770586

16 Июн, 01:58 #329 #770562

>>770550
http://www.drdobbs.com/parallel/multithreaded-file-io/220300055

16 Июн, 03:11 #330 #770579

>>769599
:w
:!make
автоправила же

16 Июн, 03:50 #331 #770582

>>770362
> Ставь build-essential
Что это такое?Про g++ все понятно.

Ответы>>770845

16 Июн, 03:58 #332 #770586

>>770556
>Ну если много дисков, то это понятно. А если один?
А если одни, то сперва тебя будет синхронизировать арбитр шины dmi, а потом - арбитр шины sata, а затем - средства ОС, которые маппят диск в адресное пространство. Так что можешь забыть про параллельность здесь.

Ответы>>770608

16 Июн, 04:52 #333 #770608

>>770586
>арбитр шины sata
А ничего что у шины SATA есть зачем-то своя очередь и у SATA-диска довольно нетривиальная прошивка, которая почему-то очень сильно влияет на его производительность?
Как ты думаешь, зачем они существуют и не связано ли это каким-то образом с поставленным вопросом?

16 Июн, 08:40 #334 #770681

>>770285
Бампну вопрос

Ответы>>770845

16 Июн, 09:07 #335 #770694

>>770521
Я имел ввиду конкретнее что за объекты и что за задача. Слишком абстрактно сейчас.

16 Июн, 13:13 #336 #770845

>>770681
Тебе уже ответили >>770448

>>770582
build-essential - это пакет для кнопилирования.

16 Июн, 17:14 #337 #771130

Пацаны, а кто сколько крестовиком зарабатывает?
Я вот в ДС получаю 125к, и не знаю много это или мало. Походил по собесам - сразу 120 легко дали.

Ответы>>771281>>771300>>771564

16 Июн, 19:42 #338 #771281

>>771130
Че знаешь? Как примерно выглядит резюме?

Ответы>>771378

16 Июн, 20:19 #339 #771300

>>771130
Тоже дс, си/плюсы, криптография. Тоже 125к, считаю пиздецки мало, пока скидываю на свой возраст (23 лвл). Куда дальше идти - хз. Думаю стать начальством в своей шаражке, нежели прыгать из фирмы в фирму.

Ответы>>771378>>771509

16 Июн, 21:35 #340 #771378

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

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

Ответы>>771421>>771489>>771556>>771576

16 Июн, 22:11 #341 #771413

Юзает кто mingw?

Ответы>>775342

16 Июн, 22:16 #342 #771421

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

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

16 Июн, 23:15 #343 #771489

>>771378
>время бездумно проебал на WoW
Это же мечта лол. Мечтаю иногда играть в WoW и еву.

16 Июн, 23:30 #344 #771509

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

Ответы>>771559

16 Июн, 23:58 #345 #771556

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

Ну так а резюме какое-то? Какие там навыки/знания?

Ответы>>771760

16 Июн, 23:59 #346 #771559

>>771509
Сасай, лалка. Сколько знаешь - столько платят.

17 Июн, 00:04 #347 #771564

>>771130
А я фрилансер 300к / сек. Это мало, посоны? Вьебываю 4 часа в неделю

17 Июн, 00:09 #348 #771576

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

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

Ответы>>771590

17 Июн, 00:18 #349 #771590

>>771576
Семен, угомонись

17 Июн, 09:31 #350 #771760

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

Ответы>>771776

17 Июн, 10:17 #351 #771776

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

Ответы>>771778>>771828

17 Июн, 10:20 #352 #771778

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

Ответы>>771781>>771828

17 Июн, 10:23 #353 #771781

>>771778
>что не отказывали
*отказывали
мимо-фикс

17 Июн, 10:32 #354 #771786

Что случилось со старым ОПом?
мимо

17 Июн, 11:04 #355 #771828

>>771776
>>771778
Про Concurrency теорию знаю, там про мутексы хуютексы, атомики и прочие треды.
В сеть тож чутка умею.

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

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

Ответы>>771869

17 Июн, 11:41 #356 #771869

>>771828
>Я кидал резюме в 2 конторы, обе меня взяли вообще без проблем.
Бро, скинь эти вакансии, буду очень благодарен.

Ответы>>771941

17 Июн, 13:13 #357 #771941

>>771869
https://hh.ru/employer/1710349
Вот сюда на мидла прошел. Вторую не скину, т.к. так надо

Ответы>>771956

17 Июн, 13:41 #358 #771956

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

Ответы>>771962

17 Июн, 13:51 #359 #771962

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

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

Ответы>>771968

17 Июн, 14:10 #360 #771968

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

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

Ответы>>771982

17 Июн, 14:20 #361 #771982

>>771968
>Спрашивают много по сетям (Модели OSI надо знать)
Можешь описать поподробнее? В каком объеме спрашивают? Т.е. к примеру, надо обзорно знать все основные протоколы или подробно рассказывать о них, уметь использовать и накидать псевдокод за пять минут?

Ответы>>771984

17 Июн, 14:22 #362 #771984

>>771982
Надо понимать что это и как работает. Чем UDP отличается от TCP и от ICMP например. Что такое ARP.

Ответы>>772007

17 Июн, 14:57 #363 #772007

>>771984
>Чем UDP отличается от TCP и от ICMP например. Что такое ARP.
Ебать СЛОЖНО.
мим кулхацкер

Ответы>>772037

17 Июн, 15:32 #364 #772037

>>772007
Мамок хакаешь вконтакте?

Ответы>>772038

17 Июн, 15:32 #365 #772038

>>772037
Ставлю BPX ON ACCESS на твой рот)))

17 Июн, 16:49 #366 #772131

Пытался заполнить Combobox в QT 5.7 следующим образом:
http://ideone.com/7zTMUs

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

Что не так то?

Ответы>>772175>>772204>>772207>>772239

17 Июн, 17:38 #367 #772175

>>772131
Ну так ты лямбду в функцию пихаешь вместо QStringList.
QstringList получается из Лямбды, если ты оператор() дернешь

Ответы>>772210

17 Июн, 18:03 #368 #772204

>>772131
Черт, а мне нравится такой стиль!

Ответы>>772210

17 Июн, 18:04 #369 #772207

>>772131
В с++14 не обязательно круглые скобочки ставить у лямбды, если нет параметров

Ответы>>772210>>772228

17 Июн, 18:06 #370 #772210

>>772175
понял, спасибо.
>>772207
я использую с++11, просто в идеоне его не было.
>>772204
ты про отступы, пробелы и скобочки?

Ответы>>772237

17 Июн, 18:23 #371 #772228

>>772207
Это еще в C++11 было же.

17 Июн, 18:29 #372 #772237

>>772210
>я использую с++11, просто в идеоне его не было.
А зачем вообще такой кусок вставлять в идеон, если он не 100% скомпилиться. Есть же gist и pastebin
>ты про отступы, пробелы и скобочки?
Я про создание объекта в лямбде, а не во внешнем скопе

17 Июн, 18:32 #373 #772239

>>772131
В emacs штоле писал?

Ответы>>772253

17 Июн, 18:41 #374 #772253

>>772239
с чего это вдруг?

17 Июн, 19:39 #375 #772304

Я ньюфаг. Я правильно понимаю, что по возможности лучше не использовать указатели? Можно ли как-то избавиться от использования указателей в этом коде? Проблема в том, что у Y нет конструктора по умолчанию.
class X {
public:
X() {
val = new Y(...);
}

~X() {
delete val;
}
private:
Y *val = nullptr;
};

Ответы>>772305

17 Июн, 19:39 #376 #772305

>>772304
Ой, табы
class X {
public:
X() {
val = new Y(5);
}

~X() {
delete val;
}
private:
Y *val = nullptr;
};

Ответы>>772309>>772321

17 Июн, 19:41 #377 #772309

>>772305
как раз таки в классах голые поинтеры и используют.

17 Июн, 19:53 #378 #772321

>>772305
Тут можно не использовать указатель. Тогда ты будешь писать конструктор так:
X(): val(5) {}

Вообще, использование списков инициализации предпочтительнее.

17 Июн, 19:58 #379 #772333

Хорошо, а если я хочу использовать глобальную переменную? Допустим, у меня есть глобальный Logger *logger = nullptr, а потом где-то в коде я его инициализирую. Я могу в этой ситуации как-то избавиться от указателей? Я так понимаю, если где-то вылетит эксепшн, то деструктор никогда не вызовется и будет утечка памяти.

Ответы>>772342>>772350

17 Июн, 20:01 #380 #772338

Зачем вы все тащите в стандарт новый синтаксис? Хотите напихать нового модного говна создайте свой язык "си с костылями" и тащите туда. Заебали.

Ответы>>772342

17 Июн, 20:03 #381 #772342

>>772333
Я думаю, ты уже знаешь, что использование глобальных переменных - моветон.
Либо используешь синглетон, либо умный указатель (например, unique_ptr), который сам за тебя все почистит, если что. Но второй вариант только для c++11 и дальше.

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

Ответы>>772348>>772368

17 Июн, 20:06 #382 #772348

>>772342
>то используй старый стандарт
Я его и так использую. И планирую еще использовать лет 10. Мне ваше говно нафиг не всралось. У меня уже есть 100к строк старого говна.

17 Июн, 20:10 #383 #772350

>>772333
голые указатели блядь ваще заебатая вещь. просто есть пидоры, которые в них путаются, поэтому в стандарт 11 года добавили unique_ptr, shared_ptr и weak_ptr.
это всё классы, которые за тебя создают поинтеры и в деструкторе разрушают указываемый объект. где использовать смарт поинтеры, а где голые - думай сам. но есть один рул оф самб :" используй смарт поинтеры везде, где это возможно. в остальных случаях используй голые".
например, из функции ты смарт поинтер не вернешь.

Ответы>>772364>>772454

17 Июн, 20:18 #384 #772356

Крестобляди, вы же так загубите свой же язык. Эти лямбды, вик-поинтеры и таскание буста в стд вам даром не пройдут.

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

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

Ответы>>772364>>772371

17 Июн, 20:23 #385 #772364

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

>>772356
Не хочешь - не используй. Что тебе мешает?

17 Июн, 20:26 #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;
}

Но при этом же вызывается конструктор копирования. Разве это норм копировать огромный объект?

Ответы>>772369>>772372>>772381>>772382>>772383

17 Июн, 20:28 #387 #772369

>>772368
Звездочки съелись, но я думаю, понятно по смыслу.

17 Июн, 20:32 #388 #772371

>>772356
Так пиши на си и не выёбывайся, коли не нравится.

17 Июн, 20:33 #389 #772372

>>772368
Если каким-то образом huge_object меньше в размерах, чем указатель на него, то да, можно заменить.
но блядь в 99% случаях поинтеры меньше объектов че за даунскую презентацию ты смотришь

Ответы>>772383

17 Июн, 20:40 #390 #772381

>>772368
В сишке в подобной ситуации не было бы копирования. Подозреваю, что и тут точно так же, разве что потом еще вызывается конструктор (обычный).

Ответы>>772386

17 Июн, 20:41 #391 #772382

>>772368
>don't fucking use pointers
Крестобляди не осилили поинтеры, поэтому решили украсть объекты из смаллталка, смартпоинтеры из фортрана и ламблды из лиспа. А всего-то надо было нормально освоить поинтеры.

17 Июн, 20:41 #392 #772383

>>772368
>>772372

Во втором случае, как правило, не вызывается конструктор копирования. Здесь компиляторы могут применять оптимизацию, которая поддерживается почти везде. Читай про RVO / NRVO.

Ответы>>772386

17 Июн, 20:44 #393 #772386

>>772381
>>772383
Если конструктор копирования не вызывается, то почему http://ideone.com/2VL9o5 выдает
> use of deleted function 'X::X(const X&)'
?

Ответы>>772388>>772390>>772500

17 Июн, 20:47 #394 #772388

>>772386
С другой стороны, конструктор копирования действительно не вызывается http://ideone.com/eZBJD3
wtf?

Ответы>>772390

17 Июн, 20:49 #395 #772390

>>772386
>>772388
Видимо, кнопилятору нужно убедиться, что в случае чего, он сможет вернуть копию объекта, а не использовать оптимизацию.

17 Июн, 22:00 #396 #772454

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

Ответы>>772587

17 Июн, 22:19 #397 #772475

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

Бекграунд: касался C++ только на первый курсах университета, где нам преподавали C++11. Он тогда очень понравился, но к сожалению я пошел в скриптовые языки.

Ответы>>772478>>772515>>772555

17 Июн, 22:21 #398 #772478

>>772475
Пойди интерном в какую-нибудь контору. Все равно небось у мамке борщи ешь.

Ответы>>772480>>772481

17 Июн, 22:22 #399 #772480

>>772478
мамки

17 Июн, 22:22 #400 #772481

>>772478
Я вебмакак.

17 Июн, 22:34 #401 #772500

>>772386
Определи move-конструктор и он станет альтернативой rvo.

17 Июн, 22:47 #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, ...), динамическая подгрузка функционала(либы для обработки запросов), потоки для распаралеливания исполнения запросов.

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

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

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

17 Июн, 22:47 #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

17 Июн, 23:09 #403 #772555

>>772475
Пропиздоглазил твой бэкграунд, прощу прощения.
Боюсь, что тогда задача будет очень-очень трудная.

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

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

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

Ответы>>772565>>772607

17 Июн, 23:13 #404 #772565

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

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

мимо-c++-джун

17 Июн, 23:26 #405 #772587

>>772454
он уничтожит объект, на который ссылается.

Ответы>>772604>>772605

17 Июн, 23:32 #406 #772596

я делаю класс, в нем делаю ссылку на объект этого класса, под это дело мне нужен конструктор, что там писать?

class yoba {
yoba &yobj;
yoba() {
???
}
};

Ответы>>772613>>772636

17 Июн, 23:39 #407 #772604

>>772587
http://ideone.com/wnr8TZ

Прочти про мув семантику с 11 крестов.

Ответы>>772614

17 Июн, 23:39 #408 #772605

>>772587
Съеби-ка ты нахуй, ньюфаня. auto_ptr для этих целей всю жизнь использовали. В 11 стандарте его заменили на unique_ptr, который используется точно с той же целью. И это если не упоминать shared_ptr.

17 Июн, 23:40 #409 #772607

>>772555
>>772555
Спасибо большое. Да, на мидла я особо не расчитывал. Попробую все же реализовать эту задачу, пока только для линукса. Ведь подразумевалась кроссплатформенная либа, так?

Ответы>>772625

17 Июн, 23:45 #410 #772613

>>772596
спасите

17 Июн, 23:45 #411 #772614

>>772604
я про именованные смарт поинтеры, которые объявляются в скоупе функции.

std::unique_ptr<std::string> func ()
{
std::unique_ptr<std::string> ptr(new string("hey"));
return ptr;
}

Ответы>>772639

17 Июн, 23:58 #412 #772625

>>772607
Попробуй. Даже, если не выйдет, то полезного опыта будет с головой.
Да, имеет смысл делать её кроссплатформой. Большинство кода на С/С++ имеет смысл писать кроссплатформой. Либо использовать кроссплатформенные либы. Но без фанатизма.

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

Самое главное, что можно удобно ветвить настройки проекта в зависимости от ОС. Например, линковать ос зависимые либы и прочие радости.
Ввторе - симэйк проект можно собрать на винде, на лине, на маке в пару команд:
cmake <project dir> -G "MinGW/Unix/... Makefiles" && make

18 Июн, 00:00 #413 #772628

Я правильно понимаю, что shared_ptr работает как garbage collector полноценный? То есть он медленнее чем unique_ptr, но я могу вообще не париться за то, когда он освободится?

Ответы>>772658>>772659>>772712>>772857

18 Июн, 00:01 #414 #772632

Парни, поясните прошу
Я могу за 2 месяца пройтись по Java и устроиться за 100к+ java-кодером,
А могу учить ссылки-хуилки,смарт-поинтеры boost, stl, и еще хуй пойми что с кучей неочевидных нюансов. И для того, чтобы выдать норм код, надо лет 5 херачить, а по зарплате не сказать что больше. И даже енсли прочитать книгупо крестам страниц, то повезло, если хотя бы треть запомнишь.

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

Ответы>>772854>>772881

18 Июн, 00:04 #415 #772636

>>772596
помогите

Ответы>>772663

18 Июн, 00:05 #416 #772639

>>772614
Возможно я не понял что ты хочешь донести.
Вот пример твоего кода:
http://ideone.com/duWnfD

Если чего-то не понимаешь, то могу рассказать и написать пример.
А коли я дурак, то хоть зря не буду писать лишний раз полотно.

Ответы>>772830

18 Июн, 00:15 #417 #772658

>>772628
Да, примерно так и есть.

18 Июн, 00:16 #418 #772659

>>772628
shared_ptr не может распознавать зацикливание, так что это не полноценный GC.

Ответы>>772704

18 Июн, 00:18 #419 #772663

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

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

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

Ответы>>772668

18 Июн, 00:19 #420 #772668

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

18 Июн, 00:52 #421 #772704

>>772659
shared_ptr + weak_ptr

Ответы>>772709

18 Июн, 00:55 #422 #772709

>>772704
Это - ручное решение, а не GC.

18 Июн, 00:57 #423 #772712

>>772628
shared_ptr работает как подсчёт ссылок.

18 Июн, 10:08 #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

спасибо, что указал на мою ошибку.

18 Июн, 10:42 #425 #772854

>>772632
>Итак, где тут секрет?
Жить по хардкору.

18 Июн, 10:43 #426 #772857

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

Ответы>>772864

18 Июн, 10:53 #427 #772862

>>772515
OpenSSL @ 2ol6

18 Июн, 10:56 #428 #772864

>>772857
С любой архитектурой сложнее хеллоуворлда рано или поздно возникают проблемы.

GC есть даже в gcc и ядре linux, инфа 100%

18 Июн, 11:00 #429 #772866

>>772515
ЙОБА НОВЫЙ ГРПЦ

sage Dmitriy 18 Июн, 11:22 #430 #772876

Плюсы и сишечка со своими жирными стандартными либами и костылями - все. Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали.

Теперь SBCL
https://lbolla.wordpress.com/2010/12/05/sbcl-quicker-than-c/

Ответы>>772914

18 Июн, 11:36 #431 #772881

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

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

Ответы>>773005>>773052

18 Июн, 12:08 #432 #772914

>>772876
> uclibc++ на них почему-то перекатыватся не стали.
> library will focus on space savings as opposed to performance
Цель этих бибилиотек в том, чтобы создавать софт размером в 64к. Перекатываются на них только создатели электронных брелков размером с коробок.

18 Июн, 12:40 #433 #772944

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

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

Ответы>>772947>>772983>>772990>>772999

18 Июн, 12:46 #434 #772947

>>772944
>Хочу избавиться на рантайма CRT, НО оставить std библиотеку.
>Как мне это сделать?
Лол, а printf, malloc, free из воздуха возьмутся?

18 Июн, 12:59 #435 #772958

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

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

Ответы>>772973

18 Июн, 13:14 #436 #772973

>>772958
>Все эти функции и другие я могу реализовать вручную с помощью вин апи.
Нахуя? Stdlib использует сишную библиотеку. Ну уберешь ты стандартную и напишешь свою, что ты изменишь?
>Ну или если нельзя избавиться от рантайма, есть ли опенсорс аналог для винды?
Glibc кое-как портирована на винду в виде gnuwin32, но опять же нахуя? Libc и stdlib в теории имеют одинаковые интерфейсы, хоть на практике на разных платформах есть свои нюансы.
По факту, stdlib еще более не совместима, чем libc. И вообще ты какой-то хуитой страдаешь.

Ответы>>773301

18 Июн, 13:30 #437 #772983

>>772944
Освоить ассемблер.

18 Июн, 13:36 #438 #772990

>>772944
https://habrahabr.ru/post/236355/

18 Июн, 13:39 #439 #772991

>>764736 (OP)
Это нормально, если стримы в моей библиотеке будут работать с std::endl? Например mylib::myvar() << "Hello" << std::endl;
Или лучше сделать свой mylib::endl?

18 Июн, 13:44 #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

18 Июн, 13:48 #441 #772999

>>772944
http://rsdn.ru/article/cpp/crt.xml

18 Июн, 13:50 #442 #773002

>>772996
А, ну и 4 вариант. Определить что-то типа UnsupportedOperationException и кидать его из конструктора копирования и операции =. Тогда RVO сделает свое дело и у меня будет определенная степень уверенности.

Ответы>>773029

18 Июн, 13:51 #443 #773005

>>772881
Зато я могу под андроид фрилансить, а не гнить 5 на 8 следующие 40 лет, а вот фриланса на крестах просто нет

18 Июн, 14:10 #444 #773024

>>772996
RVO/NRVO это всего лишь перестраховка, чтобы ускорить случаи, когда конструктор копирования есть, но можно не копировать. Ты всегда можешь создать в операторе локальную матрицу с результатом произведения, наполнить ее, а потом написать return std::move (matrix); В этом случае сработает конструктор перемещения, и все будет нормально.

Ответы>>773117>>773990

18 Июн, 14:12 #445 #773029

>>773002
RVO не гарантируется, уже поясняли ведь. Ты так добьешься того, что у тебя смогут появляться совершенно рандомные исключения.

18 Июн, 14:35 #446 #773052

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

18 Июн, 14:40 #447 #773059

>>764736 (OP)
>вакансий много
>>773047

18 Июн, 15:43 #448 #773117

>>773024
Бля, охуенно, я не знал про move constructor. Все получилось именно так как я хотел. От души братан.

18 Июн, 18:31 #449 #773301

>>772973
Не хочу чтобы в моей программе была проприетарная параша в виде CRT от майкрософт, которая занимает дохуя места. И да, динамическая линковка мне не подойдет

Ответы>>773317

18 Июн, 18:45 #450 #773317

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

Ответы>>773395

25 Кб, 510x479

18 Июн, 19:41 #451 #773364

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

Ответы>>773396>>773542

18 Июн, 20:00 #452 #773395

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

Ответы>>773551

18 Июн, 20:01 #453 #773396

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

18 Июн, 20:01 #454 #773397

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

Ответы>>773399

18 Июн, 20:02 #455 #773399

>>773397
Прозреваю косяк в конструкторах статических данных.

Ответы>>773417

18 Июн, 20:10 #456 #773417

>>773399
бляць, там этих статиков ебическое колличество :(

Ответы>>773448

18 Июн, 20:47 #457 #773448

>>773417
Энжой йо "нет противного GC, ничего не тормозит"

Ответы>>773494

18 Июн, 21:23 #458 #773494

>>773448
Где связь гц с статическими конструкторами и багом в дебаггере?

18 Июн, 21:43 #459 #773517

братья, помогите! создаю вот это вот чудо в конструкторе:
std::vector<std::array<MonthЗВЕЗДА,12>> date;

как это теперь в деструкторе удалить?

Ответы>>773519>>773527>>773649

18 Июн, 21:46 #460 #773519

>>773517
иди нахуй читать доку, охуел пидор.

Ответы>>773521

18 Июн, 21:50 #461 #773521

>>773519
да.

18 Июн, 22:00 #462 #773527

>>773517
пока что сделал так, но нет возможности проверить с линковкой в QT что то не так
for (int i = 0; i < date.size(); i++)
for (int j = 0; j < date.size(); i++)
delete date[j][];

Ответы>>773528

18 Июн, 22:01 #463 #773528

>>773527
j < date

Ответы>>773530

18 Июн, 22:02 #464 #773530

>>773528
да блядь вот короче
https://ideone.com/Xf7Sqa

18 Июн, 22:14 #465 #773542

>>773364
Что это, очередной клон Ганса?

18 Июн, 22:19 #466 #773551

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

Ответы>>773590>>773653

18 Июн, 22:50 #467 #773590

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

18 Июн, 22:52 #468 #773592

Iczelion до 200 байт ужимал, а вы все говно.

Ответы>>773615

18 Июн, 23:05 #469 #773615

>>773592
Демосцену еще давай обсудим.
Семиклассников с хелловорлдами только я на ней не вспомню.

18 Июн, 23:24 #470 #773645

Гыг)) Дабавел новую функцию в свой хело варлд))) Типерь зокрытие акна мона атменидь)))

http://pastebin.com/ktyP0u7L

18 Июн, 23:27 #471 #773647

Риквестирую новые фунгции, каторые мона добаведь для удобства полюзывателей окна)))

18 Июн, 23:28 #472 #773649

>>773517
>ЗВЕЗДА
Пизда, ептваю. Компилятор не обязан поддерживать в именах алфавитные символы, которых нет в базовом наборе, а именно _ и a-zA-Z.

Ответы>>773661

18 Июн, 23:32 #473 #773653

>>773551
>проприетарная
Я вот про это говорил. Путь байтоеба и путь красных глаз во многом пересекаются, но это не одно и то же. В погроммистском аду байтоебы находятся приблизительно во 2-3 круге, а гнутые евангелисты - в восьмом.

Ответы>>773688

18 Июн, 23:46 #474 #773661

>>773649
ааааа вот оно че

18 Июн, 23:54 #475 #773673

Каков минимальный набор инструкций x86, при помощи которого можно написать все, что угодно?

Ответы>>773687>>773911

19 Июн, 00:00 #476 #773687

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

Ответы>>773700

19 Июн, 00:00 #477 #773688

>>773653
GPL разрешает линковку с проприетарной сишной библиотекой.

19 Июн, 00:08 #478 #773700

>>773687
>Если допускаются конфигурирование прерываний, то, очевидно, достаточно mov и int.
Почему? Из чего будут сделаны обработчики, если доступны только int и mov?

Ответы>>773725

19 Июн, 00:25 #479 #773725

>>773700
Нет, я как раз имел в виду, что в прерываниях может быть ординарный код. Энивей прерывания, например, для обменов с устройствами, стандартизованы, и им не получится обрезать количество инструкций. То есть, ты можешь работать с mov, sub, jge как с "брейнфаком для бедных" и эмулировать биты отдельными байтами, но чтобы тебя понимали внешние устройства, тебе по любому понадобится работать с побитовыми инструкциями внутри прерываний.

19 Июн, 07:30 #480 #773899

QThread* newThread = new QThread();
newThread ->start();
Yoba yoba; //ёба наследуется от QObject
yoba.moveToThread(newThread );

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

Ответы>>773926

19 Июн, 07:48 #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

19 Июн, 08:29 #482 #773926

>>773899
>Почему у ёбы дважды вызывается конструктор?
Ага, блядь, это потому что я дебил и создаю объект ещё раз в qml, нужно было заместо qmlRegisterType пользоваться setContextProperty.
>Почему при этом если в конструкторе вызвать QThread::currentThreadId() выдаёт главный тред приложения, а не newThread?
Вопрос снимается, на это похуй, убрал всё из конструктора, повесил на thread.started() метод init(), всё работает.

Ответы>>773927

sage 19 Июн, 08:31 #483 #773927

>>773926
Хрюкни

Ответы>>773955

19 Июн, 09:42 #484 #773955

>>773927
Как твоя мамка?

Ответы>>774658

19 Июн, 10:35 #485 #773990

>>773024
Использовать std::move при возврате из функции не рекомендуется, потому что в этих случаях компилятор точно не применит RVO. Лучше вернуть просто matrix, а там уже само решится - либо rvo, либо move-конструктор, либо move-присваивание, либо и то, и другое.

Ответы>>773997

19 Июн, 10:47 #486 #773997

>>773990
Если ты делаешь move из функции - ты возвращаешь референс на удаленный обьект, и это UB

Ответы>>773998>>774001

19 Июн, 10:48 #487 #773998

>>773997
А я и не говорил возвращать ссылку или указатель.

19 Июн, 10:51 #488 #774001

>>773997
Неправильно прочитал. Так ведь наоборот же говорю не использовать move. Но если что, rvalue-ссылки это ссылки на объекты, которые вот-вот будут удалены, так что это вполне можно делать, если есть на то причины.

19 Июн, 16:34 #489 #774463

Помогите советом. Есть папка Source. В ней папка с проектом VS. В папке Source по папкам хранятся сорцы каждой подсистемы. Как мне в этой ситуации лучше всего использовать precompiled headers (находится в папке с проектом)? А то писать #include "../../MSVC/stdafx.h" бред.

Ответы>>774538

19 Июн, 17:03 #490 #774538

>>774463
>MSVC/stdafx.h
Там внутри троян с телеметрией. Не рекомендую.

sage 19 Июн, 18:20 #491 #774658

>>773955
Да ничего, нормально. Твоя как?

19 Июн, 20:20 #492 #774722

Плюсаны, а на какой ДЕ вы пишите код?
Вот думаю кодлайт установить. Можете помочь, если что?

Ответы>>774734

19 Июн, 20:41 #493 #774734

>>774722
clang, gdb + vim
qt creator, но лишь для qt проектов
visual studio code если смотрю чужой код

Ответы>>774737

19 Июн, 20:42 #494 #774737

>>774734
У тебя линукс стоит?
Я, просто, думаю попробовать писать что-нибудь видеоигры на ++, но не знаю с чего начать. Вот ДЕ выбираю.

Ответы>>774768

19 Июн, 21:19 #495 #774768

>>774737
игры это либо писать движки (самый хардкор)
либо писать скрипты на готовых Unity, Unreal Engine и т.д (самое легкое)
либо с помощью готовых фреймворков мутить SFML, SDL. (хуй ты че серьезного сделаешь с этим, но по сложности средне)

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

Ответы>>774771>>774783>>774858

19 Июн, 21:20 #496 #774771

>>774768
а, стоп, на десятке же bash in windows есть. если он работает, то можно линукс не ставить.

Ответы>>774774>>774777

19 Июн, 21:24 #497 #774774

>>774771
bash in windows это всего лишь название. Линупс все равно понадобится.

19 Июн, 21:26 #498 #774777

>>774771
Нету. Ubuntu for ШNНD0W2 есть, но в офф. поставке отсутствует – нужно трахаться с установкой, и это преальфа.

Не нужен ему линукс если он не планирует что-то под него писать/нормально юзать вим.

Ответы>>774782

19 Июн, 21:30 #499 #774782

>>774777
а как же нормальный компилятор...

Ответы>>774787

19 Июн, 21:31 #500 #774783

>>774768
А у тебя какая виртуальная машина стоит? Я смотрел, все платные.
Альсо, вон в гд: https://2ch.hk/gd/res/256276.html (М)
Кто-то 1 с 0 написал движок и игру на нём.

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

Ответы>>774785>>774788

sage 19 Июн, 21:33 #501 #774785

>>774783
> Я смотрел, все платные.
Это надо постараться — найти платную виртуалку.

Ответы>>774789

19 Июн, 21:33 #502 #774787

>>774782
Его свежие версии есть только в дистрибутивах вроде федоры, остальное LTS говно ничем не отличается от шиндового студийного и мингв.

19 Июн, 21:33 #503 #774788

>>774783
>А у тебя какая виртуальная машина стоит? Я смотрел, все платные.
Virtualbox, например.
>Кто-то 1 с 0 написал движок и игру на нём.
ну красава, хули.
>И еще, что лучше Code::Blocks или codelite?
не знаю, но опять же, советую именно Code::Blocks.

Ответы>>774796

19 Июн, 21:33 #504 #774789

>>774785
wmvare триал 30 дней, а говорят он лучший.

19 Июн, 21:37 #505 #774796

>>774788
А ты юзаешь какую виртуальную машину?

Ответы>>774797

19 Июн, 21:39 #506 #774797

>>774796
да виртуалбокс я юзаю, епта.

Ответы>>774798>>774799

19 Июн, 21:40 #507 #774798

>>774797
но это для винды, а так у меня линукс как основная ось стоит.

Ответы>>774799>>774800

19 Июн, 21:41 #508 #774799

>>774798
>>774797
Хорошо, спасибо.
Сейчас установлю код::блокс и начну.

Ответы>>774800

19 Июн, 21:43 #509 #774800

>>774799
>>774798
Не могу решиться что поставить, в шапке написано что codelite лучший, ты пишешь что code::blocks...

Ответы>>774801>>774804

19 Июн, 21:45 #510 #774801

>>774800
Что вы тут твиттер устроили?

Ответы>>774803>>774806

sage 19 Июн, 21:46 #511 #774803

>>774801
typical C++-tшread

19 Июн, 21:46 #512 #774804

>>774800
ну поставь оба и сравни.
так то выбор ide это вещь тривиальная. я бы особо не парился на эту тему.

Ответы>>774813

19 Июн, 21:47 #513 #774806

>>774801
какой твиттер? человек спрашивает по теме, а я отвечаю.

12 Кб, 1125x221

19 Июн, 21:51 #514 #774813

>>774804
Какую версию качать?
И еще вопрос, а что ты делаешь через виртуалбокс?
У тебя дуалбут?

Ответы>>774814>>774820>>774822

sage 19 Июн, 21:52 #515 #774814

>>774813
Бери с mingw.

Ответы>>774825

19 Июн, 21:59 #516 #774820

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

Ответы>>774825

19 Июн, 22:00 #517 #774822

>>774813
Ставь Visual Studio, не вижу смысла использовать что-либо другое на винде.

Ответы>>774823>>774825

sage 19 Июн, 22:01 #518 #774823

>>774822
Не у всех есть 40 gb лишнего места и 2 часа лишнего времени.

Ответы>>774825

160 Кб, 1920x1161

19 Июн, 22:02 #519 #774825

>>774820
>>774814
>>774822
Подскажите, как тут хело ворлд написать?

>>774823
>>774822
А на линуксе что есть? Я думал через виртуалбокс установить, если там есть что-то удобнее. Да и мне на 1 форуме писали что надо на линукс переходить для программирования.

Ответы>>774826>>774860

19 Июн, 22:04 #520 #774826

>>774825
ну тут уже сам ищи.
в гугле "how to make program in codeblocks"

19 Июн, 22:46 #521 #774858

>>774768
>насчет ide - попробуй Code::Blocks на линуксе, и Visual Studio или тот же Code::Blocks на винде.
Как же ты заебал со своим code::blocks, маркетолог ебаный. Тебе уже ответили: >>766247

Ответы>>774866

19 Июн, 22:48 #522 #774860

>>774825
А нехуй всяких пидорасов слушать. Юзай qtcreator для начала, чтобы все было из коробки, а потом перейдешь на то, что душе угодно.

Ответы>>774863

sage 19 Июн, 22:49 #523 #774863

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

Помню, тут была целая эпопея, где я полтреда помогал анону заставить QtKreakl подцепить тулчейн.

Ответы>>774867

19 Июн, 22:51 #524 #774866

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

Ответы>>774870

19 Июн, 22:52 #525 #774867

>>774863
Подцепить тулчейн для креатора из бандла? Или то был ебанутейшей редкости баг, либо ты пиздишь. В любом случае твое говно ни в какое сравнение не идет с qtcreator с точки зрения интеграции.

Ответы>>774871

19 Июн, 22:53 #526 #774870

>>774866
Разница в том, что ты советуешь хуиту, которая не может работать из коробки. Советовал бы VS или qtcreator никто бы слова не сказал.

sage 19 Июн, 22:53 #527 #774871

>>774867
>твое говно ни в какое сравнение не идет с qtcreator
Моё говно это CLion. QtKreakl-у до которого как до Луны пешком.

Ответы>>774874

19 Июн, 22:56 #528 #774874

>>774871
Не, clion - норм тема, но не бесплатная же.

19 Июн, 23:18 #529 #774886

Чет лоллирую

19 Июн, 23:46 #530 #774904

Почему QList остается пустым? В gridLayout должны быть несколько QPushButton. Они еще не создались? Выполняю эту строку в конструкторе mainwindow, но после ui->setupUi(this);

https://ideone.com/inFryJ

Ответы>>774980

20 Июн, 07:05 #531 #774979

Есть тут культезнавцы?
Есть сабж http://pastebin.com/TBQ6VEKN

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

В чем проблема? Я где-то налажал, или это баг в культях?

20 Июн, 07:07 #532 #774980

>>774904
Кинь минимальный компилирующийся пример.

Ответы>>775207

20 Июн, 08:36 #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

20 Июн, 12:00 #534 #775080

>>764736 (OP)
Кто-нибудь работал в компаниях, занимающихся написанием инструментов для трейдинга? В чем суть, какие задачи обычно решаются?

Ответы>>776185

20 Июн, 13:39 #535 #775181

Пояните в чём цимес?
ВИжуал студия весит 10 гб, а кодблокс 80 мб.

Ответы>>775182

20 Июн, 13:40 #536 #775182

>>775181
Интерпрайз©®™

Ответы>>775183

20 Июн, 13:41 #537 #775183

>>775182
Я не понял.

Ответы>>775206>>775217

20 Июн, 14:04 #538 #775206

>>775183
Да там дохуя всего же.
Фреймворки, инструменты какие-то и пакеты еще к нагету и вообще блядь еще лес всего.

20 Июн, 14:06 #539 #775207

>>774980
Уже разобрался.
"Layout чому ты не parent?
У layout не бывает здоровых children. "

20 Июн, 14:15 #540 #775217

>>775183
Твой кодблокс может хоть во что-нибудь из коробки?

Ответы>>775282

20 Июн, 15:47 #541 #775282

>>775217
нет

20 Июн, 17:34 #542 #775342

>>771413
Гоуно, пользуйся сигвином.

Ответы>>775346

20 Июн, 17:41 #543 #775346

>>775342
говно, пользуйся линуском.

Ответы>>775363

20 Июн, 18:15 #544 #775363

>>775346
Говно, пользуйся маком.

Ответы>>775364>>775414

20 Июн, 18:16 #545 #775364

>>775363
Говно, пользуйся герычем.

20 Июн, 19:57 #546 #775414

>>775363
так ведь пользуюсь

21 Июн, 07:19 #547 #775738

>>764736 (OP)
Для C++ есть нормальные фреймворки уровня Symphony, Django, Rails для веба, чтобы их еще кто-то использовал, ну и вообще экосистема для веб-разработки? Можно ли найти работу в таком направлении?
Можно ли найти работу фрилансером или на удаленке? Или весь с++ - это обязательно пот, прыщи и поедание мозолей?
Можно ли разрабатывать со скоростью, сравнимой с с#, java, python?

Ответы>>775796

21 Июн, 09:19 #548 #775781

https://geektimes.ru/post/277502/
Прочитал статьюю и загорелся идеей разработки игры, планирую начать с изучения с++, а дальше написания игры своей мечты с поборами на патреоне. Взлетит?

Ответы>>775783

21 Июн, 09:38 #549 #775783

>>775781
Дропнешь разработку. Но идею все равно не дропнешь, как я, например.

21 Июн, 10:05 #550 #775796

>>775738
А зачем с++ в вебе?

Ответы>>775808

21 Июн, 10:34 #551 #775808

>>775796
Производительность, лаконичность кода, предсказуемые типы данных. А потом, это весело.

21 Июн, 15:18 #552 #775971

До чего же кресты вербосная хуета. Скорее бы они сдохли.

Ответы>>776015>>776230

21 Июн, 16:00 #553 #776015

>>775971
"вербосная" это от слова verbose?

Ответы>>776049

21 Июн, 16:39 #554 #776049

>>776015
http://programmers.stackexchange.com/a/50166

Ответы>>776051

21 Июн, 16:42 #555 #776051

>>776049
а мог бы просто написать "да". уебан сука

21 Июн, 16:48 #556 #776057

Почему не перекатываете?

Ответы>>776152

21 Июн, 18:47 #557 #776152

>>776057
Возьми и перекати. Я вот уже 2 раза перекатывал. В этот раз предоставлю это почетную обязанность кому-то еще.

Ответы>>776173

21 Июн, 19:05 #558 #776173

>>776152
Я вообще ньюфаг, иногда сюда за вопросами забегаю, просто нашёл тред на дне, вот и спросил.

21 Июн, 19:19 #559 #776185

>>775080
Я работаю прямо сейчас. Дохуя математики но мне в кайф. Есть и другие задачи, вот сейчас за стенкой ебутся с коррекной работой прилаги на 8 мониторов.

Ответы>>776188

21 Июн, 19:21 #560 #776188

>>776185
Зп? Место работы? Сложно?

21 Июн, 19:44 #561 #776230

>>775971
Осиль уже auto и STL

21 Июн, 20:02 #562 #776265

Что вписать в а чтобы иф срабатывал?
http://ideone.com/sNY8Da

Ответы>>776277>>776279>>776286>>776305

21 Июн, 20:10 #563 #776277

>>776265
charЗВЕЗДА a = new char('3');
или
std::stringЗВЕЗДА a = new std::string("3.141593");

Ответы>>776286>>776287

21 Июн, 20:10 #564 #776279

>>776265
потом в if
b == "3.141593"

21 Июн, 20:15 #565 #776286

>>776277
>std::stringЗВЕЗДА a = new std::string("3.141593");
Ну это вообще пушка.

>>776265
Либо просто std::string a("3.141593"), либо гугли strcmp.

Ответы>>776305>>776310

21 Июн, 20:16 #566 #776287

>>776277
Я не могу редактировать код. Только а вводить.

21 Июн, 20:21 #567 #776305

>>776286
Ой, в глаза долблюсь.

>>776265
http://ideone.com/hZxvjY

Ответы>>776319

21 Июн, 20:23 #568 #776310

>>776286
дебил сука, раз он поинтер поставил, то ему наверное поинтер и нужен.

Ответы>>776316

21 Июн, 20:24 #569 #776316

>>776310
А void main() и return 0; он тоже поставил, потому что ему именно так нужно?

21 Июн, 20:25 #570 #776319

>>776305
Код менять нельзя. Только а. А там double в float конвертится и с константой забыл какого типа сравнивается. То есть надо подобрать такую строку чтобы после её конвертирования в float и сравнения с той константой в ифе получилось тру.

Ответы>>776326

21 Июн, 20:29 #571 #776326

>>776319
Ты вообще понимаешь, что ты пишешь? У тебя код не от a не выполняется, а от того, что ты float с double сравниваешь. Так нельзя.

Ответы>>776332

21 Июн, 20:31 #572 #776332

>>776326
> float с double сравниваешь
Именно. И это сравнение убрать нельзя. Нужно подобрать такое значение для а чтобы сравнение прошло.

Ответы>>776337

21 Июн, 20:34 #573 #776337

>>776332
Ну тогда удачи тебе в поисках.

Ответы>>776351

21 Июн, 20:42 #574 #776351

>>776337
А я, кстати, думаю, что задачку можно решить. Но надо поебаться с битовой логикой этого дерьма. Топик-стартер, запусти это дерьмо под дебаггером. Посмостри че там происходит в момент float b = strtod(a,0);
мимо-крокодил

Ответы>>776358

21 Июн, 20:47 #575 #776358

>>776351
http://ideone.com/E5FhWS
Не трать время впустую.

21 Июн, 20:52 #576 #776362

хватит тут сидеть
https://2ch.hk/pr/res/776344.html (М)
https://2ch.hk/pr/res/776344.html (М)
https://2ch.hk/pr/res/776344.html (М)
https://2ch.hk/pr/res/776344.html (М)
https://2ch.hk/pr/res/776344.html (М)

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion