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

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

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

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

239 Кб, 623x960

Оффициальный™ традиционный® C++ тред #25 15 Мар, 12:36 #688646 В конец треда | Веб

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

"Сап, двачик, посоветуй годных книг";
"Тред не читал, какую выбрать либу?";
"Завел гитхаб. Здесь будет мой дневник"... -

Галдят сыны овец, хотя могли бы
Поднять на шапку праздные глаза.
О боги! Предложи мне кто-то выбор:

Толпе арапов подставлять туза
Иль видеть этих грязных мракобесов -
Я встал бы раком, видят небеса!

Любой осел средь крестухов - профессор,
Но скудна эта скверна на ослов -
Здесь каждый безбородый байтослесарь

Считает, что senior'ом быть готов.

Старший брат: >>683573 (OP)
Предыдущий: >>681348 (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++

2014

https://goo.gl/kVaela

Стивен Прата

Язык программирования C++

2012

https://goo.gl/z7kA8u

Бьерн Страуструп

Программирование. Принципы и практика использования C++

2011

https://goo.gl/nAFUXa

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

Автор(ы)

Название

Год

Ссылка

Герберт Шилдт

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/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/

Ответы>>688665>>688722>>689407>>689444>>690328>>691164>>691167>>691202>>693732

sage 15 Мар, 12:43 #2 #688652

Что блядь? А где шапка?

Ответы>>688773

15 Мар, 13:08 #3 #688665

>>688646 (OP)
Хорошие стишки.

15 Мар, 14:06 #4 #688722

>>688646 (OP)
http://ideone.com/jioXqx

Ответы>>688735>>688740>>688822

15 Мар, 14:23 #5 #688735

>>688722
М?

Ответы>>688740>>688822

15 Мар, 14:32 #6 #688740

>>688722
>>688735
ДАБЛ СКАЗАЛ СВОЕ СЛОВО!

Ответы>>688822

15 Мар, 14:58 #7 #688773

>>688652
Шапка не нужна.

15 Мар, 15:42 #8 #688822

>>688722
>>688735
>>688740
Как переписать, чтобы работало с листом.

Ответы>>688826>>688828

15 Мар, 15:45 #9 #688826

>>688822
binary search для списка это что-то новое. Зачем тебе это нужно?

Ответы>>688833

15 Мар, 15:48 #10 #688828

>>688822
У листа нет рандом итератора, в нем нет смысла искать бинарным поиском. Точнее лист (с небольшими изменениями в структуре) для бинарного поиска называется красно-черное дерево.

Ответы>>688833

15 Мар, 15:55 #11 #688833

>>688828
>>688826
Да я хз. Просто пытаюсь в шаблоны - на работе нечем заняться.

Ответы>>688838>>688859

15 Мар, 15:59 #12 #688838

>>688833
третий дабл подряд.
Можешь взять std::lower_bound. Хотя это особо не имеет смысла. Лучше придумай другую задачу.

Ответы>>688842>>688845>>688851

15 Мар, 16:02 #13 #688842

>>688838
>Лучше придумай другую задачу.
Ну шаблонные сортировочки вектора и листа я давно запилил.

Ответы>>688843>>688846

15 Мар, 16:03 #14 #688843

>>688842
А что в них шаблонного?

Ответы>>688848

15 Мар, 16:04 #15 #688845

>>688838
ты там совсем ебанулся со своими даблами?

15 Мар, 16:04 #16 #688846

>>688842
>сортировочки листа
надеюсь не quicksort

Ответы>>688847>>688850

15 Мар, 16:04 #17 #688847

>>688846
бабблсорт жи

Ответы>>688850

15 Мар, 16:05 #18 #688848

>>688843
Можно передать итераторы либо на кусок вектора, либо на кусок листа.

Ответы>>688852

15 Мар, 16:06 #19 #688850

>>688847
>>688846
Почти все, какие были в вики.

400 Кб, 666x845

15 Мар, 16:06 #20 #688851

>>688838
>дабл
>дабл
>дабл

15 Мар, 16:06 #21 #688852

>>688848
И как же, хм, сортировать лист? И главное - нахуя?
У него же время доступа по индексу линейное...

Ответы>>688855>>688856>>688864>>688876>>688880

15 Мар, 16:09 #22 #688855

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

15 Мар, 16:10 #23 #688856

>>688852
А если мне что-то в нем найти понадобиться?
Инбифо юзай мап

Ответы>>688858

15 Мар, 16:12 #24 #688858

>>688856
Ну чому сразу мап? Можно и сет.
Хотя это один хуй практически одно и то же.

15 Мар, 16:12 #25 #688859

>>688833
Мне бы такую работу.
Напиши математическую библиотеку.

Ответы>>688861>>688889

15 Мар, 16:13 #26 #688861

>>688859
Не лучше для графов.

15 Мар, 16:14 #27 #688864

>>688852
introsort'у не нужен индекс же. На quicksort-этапе он берет в качестве образца первый элемент списка и в любом случае проходит последовательно по всем элементам, сравнивая с ним. На heapsort-этапе вообще все хуярится в кучу в дополнительной памяти, поэтому несущественно, опять же.

15 Мар, 16:36 #28 #688876

>>688852
>И как же, хм, сортировать лист?
insertion sort нормально.

15 Мар, 16:38 #29 #688880

>>688852
Обычно merge sort

15 Мар, 16:49 #30 #688889

>>688859
Лалка, я в копицентре работаю.

Ответы>>688890

15 Мар, 16:50 #31 #688890

>>688889
А блин. Такую работу я не хочу.

Ответы>>688893

15 Мар, 16:53 #32 #688893

>>688890
Я тоже.

15 Мар, 17:17 #33 #688899

Есть тут те, кто вкатился после 25?

Ответы>>688903>>688911>>688935

15 Мар, 17:32 #34 #688903

>>688899
Я пытаюсь вкатываться. Но в одиночку это хуевато выходит.

Ответы>>688910>>688911>>688938

15 Мар, 17:39 #35 #688910

>>688903
>в одиночку
А как ещё можно?

Ответы>>688916

15 Мар, 17:39 #36 #688911

>>688899
Сейм >>688903 щит

15 Мар, 17:42 #37 #688916

>>688910
С ментором

Ответы>>688921>>688922

15 Мар, 17:44 #38 #688921

>>688916
А без хуя в жопе никак?

15 Мар, 17:44 #39 #688922

>>688916
Какой нахуй ментор. Это всё бред.
У нас тут полный тред менторов. Задавай вопросы и тебе ответят.

15 Мар, 17:49 #40 #688935

>>688899
Я пытаюсь. Скоро 26 где я просрал свою жизнь?

Ответы>>688943

15 Мар, 17:50 #41 #688938

>>688903
Вкатывайся не в одиночку.
Скорешись с кем то и пишите свой велосипед.

15 Мар, 17:55 #42 #688943

>>688935
Мне 28 и я вполне четко знаю где я ее просрал, лол.

Ответы>>688950

15 Мар, 17:56 #43 #688946

А почему вы все именно в плюсы вкатываетесь?

Ответы>>688950>>688956>>688980>>688993

15 Мар, 17:58 #44 #688950

>>688943
И где? И как с крестами дружишь?

>>688946
Плюсы для бородатых дядек админов, для тех, кому за 25.

15 Мар, 17:59 #45 #688953

У меня идея появилась: давайте обменяемся контактами и будем созваниваться раз в неделю по скайпу и рассказывать друг другу что сделали за эту неделю?

Ответы>>688954>>688958

15 Мар, 18:01 #46 #688954

>>688953
А если у меня скайпа нет и я только начинаю?

Ответы>>688962

15 Мар, 18:01 #47 #688956

>>688946
А куда еще? В делфи? Или в паскаль?

Ответы>>688961

15 Мар, 18:02 #48 #688958

>>688953
Лучше может запилить свою тиму и начать что то пилить?

Ответы>>688966

15 Мар, 18:03 #49 #688961

>>688956
В питон.

Ответы>>688963

15 Мар, 18:03 #50 #688962

>>688954
>А если у меня скайпа нет
Ты хотел сказать что нет микрофона?

>и я только начинаю?
Какая разница?

Ответы>>688965

15 Мар, 18:03 #51 #688963

>>688961
У меня лично был диск "погромирование по русски - 5в1", и никакого питона там не было.

Ответы>>688967

15 Мар, 18:04 #52 #688965

>>688962
Нет, микрофон есть, даже два лол. А вот учётки в скайпе нет и не очень-то хочется. Альтернативу на крестах напишем?

15 Мар, 18:04 #53 #688966

>>688958
Я просто хочу прочитать N книг, и для этого мне нужна мотивация.

Ответы>>688975

15 Мар, 18:04 #54 #688967

>>688963
Ну щас можно и без дисков. Включил курс на сайте MIT и вникай.

Ответы>>688969

15 Мар, 18:05 #55 #688969

>>688967
Ну был вопрос, кто и почему вкатился в кресты.
Когда я заинтересовался погромированием - никаких интернетов у меня не было.

Ответы>>688972>>688977

15 Мар, 18:06 #56 #688972

>>688969
Да и у кого они были - были по карточкам и повременка.

15 Мар, 18:07 #57 #688975

>>688966
Но ведь книги говно, главное жи практика.

Ответы>>688981

15 Мар, 18:07 #58 #688977

>>688969
Когда я им заинтересовался у меня был сраный Вектор-06Ц со встроенным бейсиком, магнитофон Маяк и старый телевизор. Так что у тебя еще дохуя выбора было, лол.

15 Мар, 18:09 #59 #688980

>>688946
Я начинал программировать с варкрафта 3, там был скриптовый язык jass.
По мере развития картостроительства, энтузиасты сделали настройку над джассом называемый cJass с си подобным синтаксисом.

15 Мар, 18:10 #60 #688981

>>688975
У меня в планах 2 книги (Эккель, он охуенен), потом можно и попрактиковаться.

Ответы>>689071

15 Мар, 18:10 #61 #688982

Так стоп. Вы давно программируете, но решили перекатится или что.

Ответы>>688984>>688988

15 Мар, 18:12 #62 #688984

>>688982
На втором курсе технаря познакомился с Pure C. Очень вкатило. Потом много лет нихуя-не-делания. Сейчас вкатываюсь в кресты.

15 Мар, 18:15 #63 #688988

>>688982
>Вы давно программируете, но решили перекатится
Что это меняет? Прокрастинацию никто не отменял. Моя идея со скайпом как раз в том, что не важно какой у нас с вами уровень, мы можем заниматься совершенно разными вещами на плюсах, просто будем говорить друг другу что сделали за неделю и все. Так можно попробовать одержать победу над прокрастинацией. Лично мне, сказать: "Я нихуя не сделал, ничего не прочел, смотрел всю неделю аниму" будет не приятно.

Ответы>>688992>>688996

15 Мар, 18:16 #64 #688992

>>688988
Думаю, совместно пилить какую-то хуиту будет эффективнее.

Ответы>>688994>>689001

15 Мар, 18:17 #65 #688993

>>688946
Олимпиадки решать. Теперь еду на респу и лучше всех знаю кресты.

15 Мар, 18:17 #66 #688994

>>688992
Как ты себе это представляешь? Библиотеки на каждого распределить?

Ответы>>689000

15 Мар, 18:17 #67 #688996

>>688988
Ну а если я скажу: Вот делаю свой небольшой 3д шутер. Хочу там сделать двери и двигающиеся стенки. Ебусь с квейковским бсп.
Что это изменит?

Ответы>>688999>>689004>>689006

15 Мар, 18:18 #68 #688999

>>688996
Аноны тебе с кодом помогут.

15 Мар, 18:18 #69 #689000

>>688994
>Как ты себе это представляешь?
Решить, что пилить, заебашить проект на битбукете и в шкайпике обсуждение, охуительные идеи и реализация.

Ответы>>689072

15 Мар, 18:18 #70 #689001

>>688992
Ты поставил цели на неделю и выполнил их - значит молодец. Что еще нужно?

Ответы>>689004

15 Мар, 18:19 #71 #689004

>>689001 -> >>688996

15 Мар, 18:20 #72 #689006

>>688996
Вот этот сайт не смотрел? http://fabiensanglard.net интересный разбор кода некоторых шутеров, может пригодиться.

Ответы>>689008

15 Мар, 18:21 #73 #689008

>>689006
То, что мне надо там нету.
Проще тупо исходники квейка самому смотреть.
Я тебе сам могу посоветовать:
https://www.youtube.com/user/philipbuuck/videos

15 Мар, 18:23 #74 #689011

Как заебашить рендер без opengl?
В какую сторону копать?

Раньше ведь под досом и без него обходились.

Ответы>>689013>>689018

15 Мар, 18:24 #75 #689013

>>689011
Это называется софтварный рендер.
https://www.youtube.com/watch?v=HQYsFshbkYw

15 Мар, 18:27 #76 #689018

>>689011
На хабре статьи есть про software rendering.

15 Мар, 18:28 #77 #689020

Короче, вот мой скайп: max.j.t.
Если надумаете, вы знаете что делать.
мимо 688953 кун

Ответы>>689021>>689036

15 Мар, 18:28 #78 #689021

>>689020
Го в майн выживать, бротиш

Ответы>>689022

15 Мар, 18:29 #79 #689022

>>689021
А у меня майн даже с Optifin-ом не тянет.

15 Мар, 18:39 #80 #689035

Анон, есть такая хуета:
class A
{
//поля

A (A x,...) {};

void xyu(...)
{
...
A x = new A(...)/конструктор должен запуститься от указателя на данный экземпляра класс - как ето написать блеать?/
}
};

Ответы>>689041>>689049>>689564

15 Мар, 18:39 #81 #689036

>>689020
Точнее ник в скайпе такой: "max.j.t.", да после t точка.

15 Мар, 18:43 #82 #689041

>>689035
сука звездочки проебались:
A (Aзвезда x,...)

Aзвезда = new A(...)

Ответы>>689179

15 Мар, 18:43 #83 #689043

Если вас интересует тематическое общение вместо скайпа можно юзать слак, там скоро звонки запилят.
Если вас интересует борьба с прокрастинацией то вам сюда
https://2ch.hk/se/res/8791.html (М)

15 Мар, 18:55 #84 #689049

>>689035
Нормально код залей. Нихуя не понятно. Ты хочешь просто указатель передать. Так передавай какие проблемы?

15 Мар, 18:57 #85 #689050

Ну и чего замолчали?

15 Мар, 19:15 #86 #689071

>>688981
Эккель это джавист ебаный, пытающийся накормить читателя жабой под видом "философии C++". Духу крестов его книги нихуя не соответствуют, да и сам он, прям скажем, не специализируется конкретно на крестах. Можно рекомендовать это читать только джаваблядкам, желающим ознакомиться с крестами для общего развития.

Ответы>>689078

15 Мар, 19:18 #87 #689072

>>689000
Да ну, такие вещи с аноном никогда не взлетают. Осенью вон пилили борду-убийцу и дальше гуглодока с 3.5 анонами дело не зашло. А разгадка одна - все только пиздеть горазды и командовать, реальная долговременная работа в команде невозможна без начальства.

Ответы>>689074

15 Мар, 19:19 #88 #689074

>>689072
Я думаю - все возможно.
По крайней мере, я б не отказался.

Ответы>>689083

15 Мар, 19:25 #89 #689078

>>689071
>желающим ознакомиться с крестами для общего развития.

Другого и не требуется.

15 Мар, 19:27 #90 #689083

>>689074
Ну смотри, всегда все идет по одинаковому сценарию. Находятся энтузиасты вроде тебя я и сам такой, начинают что-то пилить. В начале активнейший обсуждач, все интересно и охуенно. Потом начинаются проблемы - Вася проебался, а исправлять другим; мнения анонов по какому-то вопросу принципиально различаются, а высшей инстанции нет; половина людей переключились на что-то другое и испарились из проекта... Ну ты понел. В таких условиях всего джва варианта: либо есть какой-то мощный стимул бабло в конце, анальные кары от начальства, который принудит большинство участников серьезно въебывать, либо кто-то один фактически вытягивает на себе весь проект, и коллективным его уже сложно назвать. Такие дела.

Ответы>>689088

15 Мар, 19:30 #91 #689088

>>689083
Блять, но на западе же эта хуйня работает?

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

Ответы>>689093

15 Мар, 19:33 #92 #689093

>>689088
Ответить в irc или, скажем, ITT это минутное дело. Ты зашел в тред в подходящем настроении и помог ньюфагу, а иной раз хуями обложишь. А коллективная работа - совсем другой уровень, там энивей надо превозмогать. Превозмогать анон не любит, что у нас, что у них.

Ответы>>689095

15 Мар, 19:34 #93 #689095

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

Ответы>>689100

15 Мар, 19:38 #94 #689100

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

Ответы>>689105

15 Мар, 19:38 #95 #689101

Как сделать массив в классе?

Ответы>>689103>>689107

15 Мар, 19:39 #96 #689103

>>689101
Массив классом? Так есть же std::array

15 Мар, 19:40 #97 #689105

>>689100
Всегда было интересно - что значит "найти тян"?
Разве это не рандомное событие?

Ответы>>689110

15 Мар, 19:40 #98 #689107

>>689101

class masiv{
public:
int a[100];
};

Ответы>>689109

15 Мар, 19:41 #99 #689109

>>689107
А почому нельзя сразу определить элементы?

15 Мар, 19:41 #100 #689110

>>689105
Нет. Можно в массиве найти, подходящую под требование.

Ответы>>689111>>689113

15 Мар, 19:42 #101 #689111

>>689110
Это тот же самый рандом, только при наступившем событии ты дропаешь непонравившуюся тян.

Ответы>>689115

15 Мар, 19:42 #102 #689113

>>689110
В бэ даже программу для этого писал, а какой-то анон мне указывал на ошибки. Сошлись на версии где её создавали с помощью new и вызова конструктора.

Ответы>>689125

15 Мар, 19:43 #103 #689115

>>689111
Ну, можно и с другой стороны посмотреть. Перебираешь массив и в ифах требование выставляешь. Ты ничего не дропаешь, просто ищешь.

Ответы>>689118>>689119

15 Мар, 19:46 #104 #689118

>>689115
Но это невозможно. ИРЛ ты не знаешь тян, пока с ней какое-то время не поконтактируешь.
Невозможно знать инфу о тян - это приватные мемберы.

Так что только рандом -> выясняешь -> дропаешь если не так.

Ответы>>689123

15 Мар, 19:48 #105 #689119

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

15 Мар, 19:52 #106 #689123

>>689118
Представь if как фильтр, как вход в здание. Если тня не соответствует требованиям, она просто не попадает в твоё поле зрения.

Ответы>>689126>>689127

15 Мар, 19:53 #107 #689125

>>689113
>new
Шок! Раскрыта загадка века! Тяны уходят из-за брошенных исключений.

Ответы>>689129

15 Мар, 19:53 #108 #689126

>>689123
Но ты блять не знаешь изначально, соответствует она требованиям или нет.
Это как конфета с говном - пока не надкусишь - не узнаешь.

Ответы>>689132

15 Мар, 19:53 #109 #689127

>>689123
Тогда может быть случай когда все тян не подходят.

Ответы>>689128>>689130

29 Кб, 325x306

15 Мар, 19:54 #110 #689128

>>689127

Ответы>>689133

15 Мар, 19:54 #111 #689129

>>689125
Ещё были какие-то причины не создавать её на стеке. Не помню какие, но они есть!

Ответы>>689138

15 Мар, 19:55 #112 #689130

>>689127
Ну напиши что-то в стиле:
else
("Forever alone")

15 Мар, 19:55 #113 #689132

>>689126
>конфета с говном
Пиздуй в Хогвартс со своими бобами Берти Боттс, волшебник хуев.

15 Мар, 19:56 #114 #689133

>>689128
Да нет же. Спасает оценочная функций когда все тян получают оценки и выбираешь лучшую. Но тако подход не сработает если тян очень много.

Ответы>>689135

15 Мар, 19:58 #115 #689135

>>689133
На кой тогда с ифами ебаться? Может сразу функцию запилить?

15 Мар, 19:58 #116 #689136

Походу моя тян бросила неперехваченное исключение в конструкторе и аварийно завершилась не создавшись.

15 Мар, 19:59 #117 #689138

>>689129
Подумай какие. Мне кажется, что мы скоро подберёмся к разгадке тайны.

Ответы>>689141

15 Мар, 20:00 #118 #689141

>>689138
Может уязвимость перезаписи стека?

15 Мар, 20:00 #119 #689142

throw new Tyan("еотова");

Ответы>>689144>>689430

15 Мар, 20:01 #120 #689144

>>689142
Омежка все равно качнет.

15 Мар, 20:38 #121 #689179

>>689041
Тебе нужен указатель на создаваемый класс внутри конструктора? Там есть и так неявный this

15 Мар, 21:35 #122 #689224

Недавно узнал про __float128 и мне понравилось. Не пришлось писать длинку. Что ещё весёлого я не знаю про что не пишут в книжках?

Ответы>>689225>>689229

15 Мар, 21:36 #123 #689225

>>689224
И что же ты про него узнал?
И каким образом он связан с длинкой?

Ответы>>689226

15 Мар, 21:38 #124 #689226

>>689225
Ну там числа большие влазят.

Ответы>>689227>>689229

15 Мар, 21:39 #125 #689227

>>689226
Но блять, не целые ведь!
А длинка тут при чем?

15 Мар, 21:40 #126 #689229

>>689226
>>689224
Дальше читай.

Ответы>>689230

15 Мар, 21:41 #127 #689230

>>689229
Что дальше?

Ответы>>689231

15 Мар, 21:42 #128 #689231

>>689230
Читай...

15 Мар, 21:51 #129 #689237

Какую функцию передавать функцию сортировки для сравнения?

Ответы>>689238>>689239>>689240

15 Мар, 21:52 #130 #689238

>>689237
Компаратор.

Ответы>>689241

15 Мар, 21:52 #131 #689239

>>689237
Лямбду.

Ответы>>689241

15 Мар, 21:53 #132 #689240

>>689237
Функтор.

Ответы>>689241

15 Мар, 21:54 #133 #689241

>>689238
>>689239
>>689240
Есть какой-то стандарт/шаблон?

Ответы>>689242

15 Мар, 21:55 #134 #689242

>>689241
Да.

Ответы>>689251

15 Мар, 22:02 #135 #689251

>>689242
Покажи

Ответы>>689252

15 Мар, 22:03 #136 #689252

>>689251
[1, 3, 9, 7, 3, 8].sort!((x, y) => x < y)

16 Мар, 00:41 #137 #689407

>>688646 (OP)
Какие проекты, вероятнее всего, среднестатистический некриворукий анон будет делать, если выучит C++ на уровне приличного новичка? Какие проекты чаще всего попадаются? Какие проекты интересные? Какие проекты в 2016 году делаются на Qt? На голом C++? Под какие платформы? Бывалые, опишите, интересно же. На моей прошлой работе был крохотный проект на плюсах с нормальным ООП, но он был скорее огромным таким биндингом для использования другого проекта.

Ответы>>689409

16 Мар, 00:41 #138 #689409

>>689407
Я писал на Qt.

16 Мар, 01:17 #139 #689430

>>689142
Fuuuuuuuu~~~
Никогда так не делай

12 Кб, 225x225

16 Мар, 01:40 #140 #689444

>>688646 (OP)
ПОСАДИЛИ МИШКУ НА КОЛ
ОТОРВАЛИ МИШКЕ ЛАПУ
ЧАС ПРОБИЛ И ЖРЕБИЙ БРОШЕН
И НИКТО МНЕ НЕ ПОМОЖЕТ

16 Мар, 01:46 #141 #689449

Аноны, а какие вы юзаете ide??
нотпад++ поднадоел что-то

Ответы>>689450>>689451

16 Мар, 01:47 #142 #689450

>>689449
Для крестов - Qt Creator

Ответы>>689452

16 Мар, 01:47 #143 #689451

>>689449
VS

Ответы>>689452

16 Мар, 01:49 #144 #689452

>>689450
ну он интересен но там нельзя свой makefile дальше смотрим
>>689451
дорого и не умеет в кросплатформ ещё варианты

зы там юзаю пока эклипс но эта сучка тяжелая как танк

Ответы>>689453>>689454

16 Мар, 01:50 #145 #689453

>>689452
>ну он интересен но там нельзя свой makefile
Да ну? А зачем тебе "свой makefile"?

Ответы>>689455

16 Мар, 01:51 #146 #689454

>>689452
Юзай коммон версию.
Алсо, не понимаю дрочь на кроссплатформу. Всегда было на все кроме шинды поебать.

Ответы>>689457

16 Мар, 01:51 #147 #689455

>>689453
хочу с эклипса перекат на годную ide сделать.
зачем переписывать под qmake если проще geany с парой скриптов какихньть?

Ответы>>689459

16 Мар, 01:53 #148 #689457

>>689454
не юзал шинду года 4
на моем железе любая синку кидает в процессе установки

Ответы>>689460

16 Мар, 01:54 #149 #689459

>>689455
>зачем переписывать под qmake
qmake - прошлый век. Юзай qbs, он не генерит промежуточный файл, а дергает инструменты напрямую. Реально быстрее собирает.

Ответы>>689466

16 Мар, 01:54 #150 #689460

>>689457
Код блок можешь тогда попробовать. Сам не юзал, но грят норм вдобавок легковесный

Ответы>>689461>>689466

16 Мар, 01:55 #151 #689461

>>689460
Откуда дроч на "легковесность"?
Браузер все равно будет жирнее всего.

Ответы>>689462>>689466

16 Мар, 01:56 #152 #689462

>>689461
Ну очевидно откуда.

Ответы>>689466

31 Кб, 689x52

16 Мар, 02:08 #153 #689466

>>689459
Интересненько, отстал я от qt но не решает проблемы лишнекодописания
>>689460
>Код блок
пик? не юзал но пробну.
>>689461
в этом и беда анон
на оверлокался сжег писюк
продал озу с него, купил олд битую железку
появился таск на спасение моей жизни рендер написать с парой 3д анимаций на апараты 2003-5ых годов рождения
браузер имой любимый эклипс сьедают 210процентов озу
это не удобно капец
>>689462
ну надо знать грань между жиром и легкостью
на крестах даже в qt относительно легкие проги выходят. только мелкие смогли придать крестам веса

16 Мар, 10:10 #154 #689564

>>689035
A(A* x=this, ....) {}

16 Мар, 11:26 #155 #689595

Уважаемые крестоносцы, что скажете на счет этого кала?
http://pastebin.com/m1r6nTVZ

Прошу сразу не крыть хуями по поводу ИДЕ, работаю на чем велено.

Нужны любые комментарии, я только учусь, а обсудить сделанное не с кем.

Ответы>>689601

16 Мар, 11:44 #156 #689601

>>689595
Код плохо читаем:
- Не понятна мотивация кода. Напиши, нахуя вообще нужен класс
- Красиво оформи интерфейс класса, чтобы не приходилось его искать.
- Используй smart pointers

Ответы>>689606

16 Мар, 11:49 #157 #689606

>>689601
Он нужен для работы с файлами экселя. Выполняет подключение к файлу, и выборку+обработку некоторого диапазона.

Оформлю.

С умными указателями пока не имел дело, но при работе с классом не хило кушается память, примерно по 3Мб на 1 обработанный файл. Подскажите хотя бы что гуглить, чтобы отвобождать память корректно? Вроде деструктор сделал, вроде даже и вектора чищу clear'ом. Но все равно память жрется стабильно.

Ответы>>689621>>689626

16 Мар, 12:16 #158 #689621

>>689606
>Он нужен для работы с файлами экселя. Выполняет подключение к файлу, и выборку+обработку некоторого диапазона.

Не здесь пиши, а в коде. Те комменты, что есть бессмысленны - когда знаешь, что код делает в общем, то в деталях легко разобраться.

Память в общем случае можно мониторить и профайлить ее использование например этим: https://github.com/gperftools/gperftools

Навскидку не скажу, что там у тебя течет. Да и не интересно мне в говне копаться. Да, кстати,
>вроде даже и вектора чищу clear'ом
память не освобождает, читай внимательно доки к вектору.

Ответы>>689631

16 Мар, 12:21 #159 #689626

>>689606
При вызове метода, к примеру, XlsHelper::MakeSqrtSum у тебя создается новый экземпляр XlsApp, а указатель на старый (если был) проебывается. Тоесть последовательные вызовы XlsHelper::MakeSqrtSum будут давать утечку. если после каждого вызова XlsHelper::MakeSqrtSum (или подобной функции) ты будешь удалять экземпляр XlsHelper от которого был вызван XlsHelper::MakeSqrtSum то память будет очищаться, деструктор ты действительно создал. Если ты не хочешь использовать умные указатели, то перед каждым вызом new ты должен проверять не находится ли по тому указателю уже готовый (старый) объект и если он есть (указатель не nullptr) то удалять его.
Алсо, возможно я ошибаюсь (код не сильно внимательно просмотрел), но как мне кажется корень твоих проблем в идеологических ошибках. Какой объект из твоей предметной области представляют инстансы твой класса? Никакого. Твой код построен в стиле обычного структурного программирования, на которое ты какого-то хуя навернул ООП - но оно нихуя тебе не дает, твои переменные класса, так как в них нет никакого смысла, фактически работают как глобальные переменные вследствие чего ты и обсираешся. Тебе можно превратить твой класс в неймспейс, удалить глобальные переменные (подразумеваются все переменные-члены твоего класса), соответсвено подправить код - и все утечки волшебным образом исчезнут.

Ответы>>689631>>689706

16 Мар, 12:35 #160 #689631

>>689621
>>689626
Спасибочки.

16 Мар, 13:21 #161 #689665

В плеймаркете видел приложение Learn C++. Мне вот интересно насколько оно годно, вроде вполне понятно и для начинания вполне заебись.

Ответы>>689697

578 Кб, 640x480

16 Мар, 13:38 #162 #689674

Пишу односвязный список, каждая ячейка - структура, в которой два поля: данные шаблонного типа и указатель на следующую ячейку. Также есть указатели на первый и последний элемент. Надо написать его перепаковку, чтобы из 1-2-3-4-5-6-7-8-9-0 мы получали 1-0-2-9-3-8-4-7-5-6. Для этого в цикле мне нужно обращаться к предпоследнему элементу. Пока придумал только перебирать все элементы в цикле, пока не найдём тот в котором указатель на следующую ячейку указывает на последний элемент, но это пиздец корявый костыль. Можно ли это делать по нормальному?

Ответы>>689698

16 Мар, 14:08 #163 #689697

>>689665
Попробуй лучше написать что-то свое. Реализацию вектора или хэшмэп. Чтобы там rule of 5 и остальные плюшки были. Это тебе даст гораздо больше и за меньшее время.

16 Мар, 14:10 #164 #689698

>>689674
Второй список с развернутым порядком или рекурсия.

Ответы>>689702

16 Мар, 14:15 #165 #689702

>>689698
А можно про рекурсию подробней?

Ответы>>689711

16 Мар, 14:20 #166 #689706

>>689626
Вот ещё один момент, не дает мне покоя. В прошлый раз, да и во все другие разы, замечал что программки, вроде бы небольшие не хило едят память, но ничего, созданного через new в них нет. ведь я уже создавал проектик на подобие, где не было "ооп", а были только события на кнопках, а массивы из экселья грузились в стандартные компоненты среды, и после каждого просчета естественно все обнулялось. кроме памяти, лол Чому так? Видимо не только через new может выделяться динамическая память? Или я создавал всё в стеке и он может расти до бесконечности?

Ответы>>689713>>689715

16 Мар, 14:24 #167 #689711

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

16 Мар, 14:24 #168 #689713

>>689706
Если ты не вызываешь new, это не означает, что он не вызывается где-то в библиотеках.

Ответы>>689716

16 Мар, 14:28 #169 #689715

>>689706
Ты запускаешь программу. ОС создает процесс в оперативной памяти. Там хранится вся инфа про процесс, стек, инструкции программы и т.д.

16 Мар, 14:29 #170 #689716

>>689713
Но в библиотеках же все должно быть четко, разве нет? Или их писали такие как я?

Ответы>>689718>>689724

16 Мар, 14:30 #171 #689718

>>689716
Ну, эмбаркадера всегда славилась анальностью своих продуктов. Вообще, это самый главный минус их "плюсов" – дэльфевый рантайм живёт по своим правилам.

16 Мар, 14:39 #172 #689724

>>689716
>же все должно быть четко
В смысле без выделения памяти? Как ты себе это представляешь? У Qt, например, почти все классы сделаны как pimpl, то есть при создании класса он всегда в куче выделяет память, а в самом экземпляре хранится только указатель.

Ответы>>689725

16 Мар, 14:43 #173 #689725

>>689724
Я имел ввиду, что если библиотечный компонент, то он должен правильно все делать, раз попал в библиотеку. но скорее всего тут все же моя вина. что-то где то не доглядел. и не дописал как надо. как с vector.clear(), который память не освобождает на самом деле. вот же ебатория

16 Мар, 14:55 #174 #689732

Стоит ли обмазываться ReSharper++?

Ответы>>689739

16 Мар, 15:00 #175 #689737

А у меня тоже вопрос. Стоит ли обмазываться C++ + managed C++ + c#?

Ответы>>689741>>689744>>689763

16 Мар, 15:02 #176 #689739

>>689732
Если у тебя 10 (и мб 12) студия - вымазывайся. На следующих релизах студии убивает нахуй всю систему лагами, хз что там такое.
Алсо, visual assistor в 10 раз лучше.

16 Мар, 15:02 #177 #689741

>>689737
Нет.

Ответы>>690097

16 Мар, 15:05 #178 #689744

>>689737
Только если что-то портируешь под винмобайл.

16 Мар, 15:34 #179 #689763

>>689737
лучше сразу c# обмазывайся. Больше толку будет

16 Мар, 15:49 #180 #689767

> Для нюфань
> Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela

бля, я хуею, что за дебилы пишут эти учебники:

> Если первый параметр конструктора -- ссылка на тип класса
> передаче объекта как аргумента параметру не ссылочного типа

помню как в детстве читал подобную муть и мозг просто отказывал.
Бля ну что за авторы-черви без мозгов.

Ответы>>689772>>689773

16 Мар, 15:51 #181 #689772

>>689767
Скоре всего просто перевод хуевый.

Ответы>>689781>>689796

16 Мар, 15:51 #182 #689773

>>689767
Почитай эту тему у страуструпа. Только не увлекайся.

16 Мар, 16:00 #183 #689781

>>689772 да это я уж хуй знает как так переводить надо умудриться.
А вы это ещё и нюфаням советуете. Ломаете жизни.

Ответы>>689787

16 Мар, 16:08 #184 #689787

>>689781
А что им посоветовать надо-то? С++ за 21 день?

16 Мар, 16:23 #185 #689796

>>689772
Двачую. На переводчиках часто экономят, и получаются отвратительные высеры типа "Искусство автономного тестирования", лол.

16 Мар, 16:26 #186 #689799

Ну дак может добавим и оригиналы книг в шапку?

Ответы>>689801

16 Мар, 16:31 #187 #689801

>>689799
Нуфаги обычно не могут в инглиш. А те то не для нуфагов есть в шапке на инглише.

96 Кб, 1126x344

261 Кб, 1090x670

143 Кб, 1098x504

16 Мар, 16:37 #188 #689807

Посоны, не могу совладать с паттерном "Мост".
Вот мотивация прямо из книги: есть gui-приложение, которое работает на разных платформах. И клиентский код, который должен работать с gui частью, нужно изолировать от непосредственных платформо-специфических деталей.

И значитсо они берут и хуяк: делают pimpl, перенаправляя все все вызовы в WindowImpl. И у меня вопрос: что в этом хорошего, если WindowImpl превратился в god-object, который содержит реализацию всех наследников интерфейса Window? Я не понимаю, блядь!

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

Скажите мне, прав ли я, или в глаза ебусь и не понимаю смысла паттерна?

Ответы>>689809>>689823

187 Кб, 1462x1274

16 Мар, 16:37 #189 #689809

>>689807
Пикрил4

16 Мар, 16:56 #190 #689823

>>689807
Ну вообще паттерны это не серебряные пули же, у них есть и отрицательные стороны. Мост хорошо применять в случаях, когда, грубо говоря, есть возможность выразить всю функциональность класса через небольшое количество базисных функций. Ну там, скажем, функции отрисовки любых объектов через функцию отрисовки точки, которая обращается к графической библиотеке. Тогда ты выносишь реализацию этого базиса в параллельную иерархию и все заебись, вместо произведения количества библиотек на количество клиентских классов ты получаешь сумму, в этом весь профит. Емнип у банды про это разжевано. Ну вот, а в общем случае не факт, что тебе нужен мост. Бывает, что библиотеки имеют разные интерфейсы, а реализовывать все через их пересечение неоптимально по производительности. Тогда про мост нужно забыть и сделать как-то иначе.

61 Кб, 504x600

16 Мар, 17:51 #191 #689872

Ребзя. В общем, мне послезавтра идти на работу, где я напиздел, что могу немного в С++. От меня многого не ждут, но тем не менее нужно вкатиться максимально быстро и чуть-чуть глубже чем "Hello World". Помогите ресурсом или советом как можно за сутки достичь того уровня, что я описал.

Ответы>>689878>>689888>>689899

16 Мар, 17:52 #192 #689878

>>689872
Опыт-то у тебя какой?

Ответы>>689883

131 Кб, 600x629

16 Мар, 17:56 #193 #689883

>>689878
В джава написал одну прогу ищущую "вилки" у футбольных букмекерах. тут объяснение, что такое вилка http://probukmeker.ru/25-vilka.html Но прога жрала 5 Гб оперативной памяти, так что о её качестве можно промолчать. Очень давно написал пару лаб по С++.

Ответы>>689886

16 Мар, 17:58 #194 #689886

>>689883
Блин. И как ты вкатился? У тебя что супер софтскилс?

Ответы>>689889

16 Мар, 18:03 #195 #689888

>>689872
Скачай исходники к какой нибудь книге и запускай примеры в дебаге.

Ответы>>689891

16 Мар, 18:06 #196 #689889

>>689886
Да, нет, никаких сверхспособностей замечено не было. Вкатился просто: пришел на предприятие, сказал "хочу работать", если ты про это.

Ответы>>689890>>689942

16 Мар, 18:07 #197 #689890

>>689889
Вышка есть?

Ответы>>689892

16 Мар, 18:08 #198 #689891

>>689888
Да, тоже про это подумал, уже ищу. Лучше всего изучать язык изучая готовый код, как мне говорил знакомый-кодер.

Ответы>>689893>>689900>>689901

72 Кб, 604x604

16 Мар, 18:09 #199 #689892

>>689890
Конечно.

16 Мар, 18:09 #200 #689893

>>689891
Исходники всегда бесплатны и их можно официально скачать с сайта издательства.

16 Мар, 18:17 #201 #689899

>>689872
С шаблонами поиграйся.

16 Мар, 18:19 #202 #689900

>>689891
Если останется время, читни чутка Рефакторинг Фаулера. Мне знакомый программист-сеньор как-то сказал, что он считает, что каждый программист должен прочитать эту книгу.

16 Мар, 18:20 #203 #689901

>>689891
Я так инглиш изучал. Читая всё нормально. Фильмы книги всё могу. Пишу и долго думаю как правильно. Я говорить предложениями больше 5 слов вообще не могу.

Ответы>>689902

16 Мар, 18:22 #204 #689902

>>689901
Да ты стихотворец.

16 Мар, 18:24 #205 #689906

Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.

Ответы>>689958

16 Мар, 18:37 #206 #689913

А что контейнера heap нет? Только какие-то функции для вектора?

Ответы>>689916>>689923

16 Мар, 18:41 #207 #689916

>>689913
map?

Ответы>>689918

16 Мар, 18:42 #208 #689918

>>689916
Нет. Нужно дерево отрезков и пирамидальную сортировку написать. Всё на куче.

Ответы>>689920>>689923

16 Мар, 18:45 #209 #689920

>>689918
Током ебнуть? Пихай в мап, потом пройдись итератором и охуей.

Ответы>>689927

16 Мар, 18:48 #210 #689923

>>689913
std::priority_queue
>>689918
Дерево отрезков это не совсем куча, из стандартного вроде ничего не подходит.

Ответы>>689927

16 Мар, 18:51 #211 #689927

>>689920
Нет. Это не то. Говорю же нужно вниз и в верх но куче ходить.

>>689923
Спасибо. Слышал что она на куче сделана. Совсем забыл про эту штуку. Только я не умею её пользоваться и не знаю как вверх и вниз по нему ходить.

Ответы>>689944

16 Мар, 19:02 #212 #689942

>>689889
Пиздец

16 Мар, 19:02 #213 #689944

>>689927
> вверх и вниз по нему ходить
Лигитимного способа нет. Инкапсуляция же. Если тебе нужно ходить то это массив и функции которые ты упоминал раньше. Только если тебе задали написать пирамидальную сортировку то скорее всего мечтают что ты те функции сам напишешь. А для дререва отрезков куча не подходит, идея там похожая но отличия большие. В куче находятся только элементы которые ты туда поместил, а в дереве отрезков помещенные элементы находятся только на самом нижме уровне - все что над ними специально высчитаные служебные элементы. Обычные алгоритмы работы с кучей там не помогут.

Ответы>>689952

16 Мар, 19:05 #214 #689948

Если я слишком тупой для плюсов, то какие есть альтернативы?
inb4:пхп, питон

Ответы>>689950>>689951>>689966>>690272>>691762

16 Мар, 19:06 #215 #689950

>>689948
шарп

16 Мар, 19:06 #216 #689951

>>689948
джава

16 Мар, 19:07 #217 #689952

>>689944
Ясно. Спасибо. Свою напишу.

16 Мар, 19:11 #218 #689958

>>689906
>Где читнуть вкратце про atomic с примерами использования? Эта хуйня не документирована примерами на cppreference.
Concurrency in action

Ответы>>690084

16 Мар, 19:20 #219 #689966

>>689948
Си

sage 16 Мар, 21:05 #220 #690084

>>689958
>вкратце
>с примерами
Мда.

16 Мар, 21:24 #221 #690097

>>689741
неистово арчюю этого

брацы АНОНЫ кто-ньть годнолинкк дайте на выстраивание освещения в рендере с картой нормалей http://habr.ru/p/279143/ типа такого но я тут не понял сути

у меня есть нормаль полигона и нормаль в касательном пространстве.. как переаести её в нормальное пространство без матрицы то?

Ответы>>690106>>690203

16 Мар, 21:28 #222 #690106

>>690097
http://learnopengl.com/#!Advanced-Lighting/Normal-Mapping
Сойдет?

Ответы>>690109

32 Кб, 900x195

16 Мар, 21:32 #223 #690109

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

16 Мар, 21:33 #224 #690111

тут кто-нибудь реализовывал на крестах алгоритм а*?

Ответы>>690113

sage 16 Мар, 21:33 #225 #690113

>>690111
Конечно.
Что конкретно интересует?

Ответы>>690117

16 Мар, 21:37 #226 #690117

>>690113
туплю чет с записью нод в массивы, дружище, скинь как ты реализовал это дело.

Ответы>>690120

16 Мар, 21:40 #227 #690120

>>690117
Я изрядно там наговнокодил, но в принципе работает. Могу скинуть если хочешь. Правда там уровня лабы, я тогда только начинал с c++11 знакомиться, накуралесил со многими вещами
Лучше свой код покажи, вдруг кто-то из антонов поможет найти ошибочку.

Ответы>>690122>>690125

16 Мар, 21:42 #228 #690122

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

16 Мар, 21:42 #229 #690125

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

Ответы>>690129

22 Кб, 1150x1042

16 Мар, 21:45 #230 #690129

>>690125
https://github.com/innermous/AStarPathfinding/blob/master/src/astar.cpp#L130
Работает примерно как на пикче. Вряд ли ты тут что-то поймешь, очень сильно намешано.

Ответы>>690161

16 Мар, 22:12 #231 #690161

>>690129
что такое ptr?

Ответы>>690166

16 Мар, 22:16 #232 #690166

>>690161
pointer

Ответы>>690169

16 Мар, 22:19 #233 #690169

>>690166
объясни плес вот это

Ptr current = *std::min_element(ma_openedList.begin(), ma_openedList.end(),
[&](const Ptr t1, const Ptr t2)
{
return t1->node.f < t2->node.f;
});

Ответы>>690176

16 Мар, 22:24 #234 #690176

>>690169
current - экземпляр класса Ptr. std::min_element возвращает итератор на минимальный элемент в ma_openedList. Функия принимает функтор (лямбда выражение), который сравнивает 2 элемента в списке.
Советую почитать литературу в шапке.

Ответы>>690210>>690385

16 Мар, 22:40 #235 #690192

Я отходил, а мой говнокод даже не обосрали.
Горжусь доской.

Ответы>>690206

16 Мар, 22:50 #236 #690203

>>690097
>как переаести её в нормальное пространство без матрицы то?
Без матрицы - никак. Поэтому и считают два вектора - tangent и bitangent. Вместе с нормалью они как раз и составляют матрицу 3х3.

Ответы>>693143

16 Мар, 22:51 #237 #690206

>>690192
Это потому что никто его даже не читал. Хотя обычно это не мешает обосрать, лол.

Ответы>>690213

16 Мар, 22:56 #238 #690210

>>690176
что такое t1 и t2?

Ответы>>690213

16 Мар, 23:00 #239 #690213

>>690206
К счастью.
>>690210
t1 левый элемент, t2 правый.

Ответы>>690232

16 Мар, 23:18 #240 #690232

>>690213
у тебя лист с доступными узлами это обычный массив? разве можно так? я вот вектор делаю, чтоб туда пушбекать узлы, чтоб не было ограничений никаких на расстояния. с вектором min_element не хочет работать. и последний вопрос, что такое [&]?

Ответы>>690235

16 Мар, 23:19 #241 #690235

>>690232
http://en.cppreference.com/w/cpp/language/lambda

Сtrl+F "Lambda capture"

16 Мар, 23:36 #242 #690272

>>689948
assembly

Ответы>>690278

16 Мар, 23:38 #243 #690278

>>690272
а ты жестокий

17 Мар, 00:28 #244 #690328

>>688646 (OP)
Нихуя вы тут щапку наворотили, молодца, уважаю.

17 Мар, 01:43 #245 #690380

Очередной вопрос от неосилятора. Вот у нас есть множественное наследование (да, я понимаю, что это плохо). Наследуемый класс у нас будет иметь два vptr на две vtable. А если у на виртуальное наследование? К какой таблице виртуальных функций мы обращаемся?

Ответы>>690453>>690456>>690467

17 Мар, 01:47 #246 #690385

>>690176
error C3861: min_element: идентификатор не найден

Ответы>>690387

17 Мар, 01:48 #247 #690387

>>690385
#include <algorithm>
Я же тебе написал, почитай книги в шапке.

Ответы>>690808

17 Мар, 07:19 #248 #690453

>>690380
Множественное наследование это плохо, когда его используют для быстрого грязного объединения различных реализаций, в каком-нибудь адаптере, скажем. А наследование от нескольких ортогональных стратегий с целью base class optimization это вполне себе годная и уважаемая практика. Почитай того же Александреску, там на каждом шагу оно.

Ответы>>690560>>690568

17 Мар, 07:23 #249 #690456

>>690380
При виртуальном наследовании - к таблице "самого производного" класса. Собственно говоря, из-за этого виртуальное наследование и критикуют, тому що результаты не совсем очевидно меняются при добавлении еще одного наследника.

Ответы>>690568

17 Мар, 08:32 #250 #690467

>>690380
>да, я понимаю, что это плохо
CRTP - это максимум удобно. Почти как трейты в скале.

Ответы>>690568

9 Кб, 456x642

17 Мар, 08:34 #251 #690468

Поставил устанавливаться visual studio. Вот в таком виде уже третий час установщик загружает "Дополнительный элемент". Так и должно быть или это зашквар? чувствую, что зашквар

Ответы>>690469>>690515>>690546>>690598

sage 17 Мар, 08:36 #252 #690469

>>690468
Если пекарня старая, может ставиться до талого. У меня на и5 4Гб где то час - полтора ставился.

17 Мар, 10:18 #253 #690515

>>690468
Нахуй нужна для обучения студия? Кодблокс ставиться за 5 минут. Правда там компилятор отдельно надо ставить, но это тоже быстро.

Ответы>>690543>>690819

17 Мар, 10:26 #254 #690522

Ребят, помогите пжлст.

Дан файл, содержащий текст. Переписать в другой файл только слова, начинающиеся с согласной, а заканчивающиеся
гласной.

Буду пиздец как благодарен, пытался найти помощь на cyberforum - нихуя.
наше такое, но в середине кода ошибку выдает компилятор. http://www.cyberforum.ru/cpp-beginners/thread602355.html

Ответы>>690530

17 Мар, 10:35 #255 #690530

>>690522
#include <stdio.h>
#include <string.h>

На будущее, вбиваешь в гугл название функции, идешь на cpp reference (http://www.cplusplus.com/reference/cstring/strlen/) Я взял хедеры оттуда.

Ответы>>690538

17 Мар, 10:40 #256 #690538

>>690530
Спасибо Большое!

17 Мар, 10:45 #257 #690543

>>690515
Тогда уж лучше QtCreator с mingw. И ИДЕ удобнее, и компилятор в комплекте.

17 Мар, 10:53 #258 #690546

>>690468
Ставьте с iso, а не веб-установщиком

17 Мар, 11:10 #259 #690560

>>690453
>Множественное наследование это плохо, когда его используют для быстрого грязного объединения различных реализаций, в каком-нибудь адаптере, скажем
Щито? И чем же плохо использовать адаптеры?

Ответы>>690596

17 Мар, 11:36 #260 #690568

>>690453
>>690456
>>690467

Спасибо. Проснулся и сразу сделал пример и смотрел в отладчике что будет. Всё стало на свои места.

17 Мар, 11:52 #261 #690574

Если кто силён в Жабе, расскажите что она умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы.
Знаю, что одно из последних достижений - это сбор статистики вызова методов и их автоматический инлайнинг в рантайме.
Нужно провести исследование и составить заявку в комитет, чтобы в плюсы добавили реальные фичи, а не уродских клонов буст::асио и буст::файлсистэм.
Иначе в скором будущем, после смерти нашей крестопараши, придётся перекатиться в Жабу на значительно меньшую зарплату, т.к. конкуренция там велика.

Ответы>>690576>>690580>>690811>>690905>>691220

17 Мар, 12:01 #262 #690575

Cтоит ли читать "современное проектирование" Александреску?

Ответы>>690577>>690582

17 Мар, 12:01 #263 #690576

>>690574
Жаба с крестами пересекаются только на десктопе. В девятке добавят модульность, значит можно будет делать компактные приложения для десктопа (сейчас жре занимает около 150 метров). В десятке сделают структуры, жаба будет жрать меньше памяти при умелом использовании. Но сильной конкуренции все равно не будет - через год массово появляется webasm, который изначально заточен под плюсы.

Ответы>>690638>>690985

17 Мар, 12:13 #264 #690577

>>690575
Стоит прочитать шапку.

17 Мар, 12:16 #265 #690580

>>690574
> асскажите что она умеет делать по-настоящему крутого, что в перспективе сможет полностью убить плюсы
Кроссплатформенность и сборку мусора.

Ответы>>690584

17 Мар, 12:20 #266 #690582

>>690575
Это входит в теормин джуна. Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?

Ответы>>690593>>690603

17 Мар, 12:23 #267 #690584

>>690580
Кроссплатформенность и у плюсов есть, причем скомпилировать плюсовый код под другую платформу часто проще, чем ебаться с нативными либами у жабы. Менеджмент памяти у джавы достаточно спорная вещь, чтобы считать его откровенным плюсом. Для десктопа джава откровенно сосет, и будет продолжать это делать в будущем.

Ответы>>690586>>690638

17 Мар, 12:27 #268 #690586

>>690584
>Для десктопа джава откровенно сосет
Не понял, а как же энтерпрайз?

Ответы>>690600

17 Мар, 12:35 #269 #690593

>>690582
Я думаю, тут большинство ее прочло так или иначе. Я понимаю там не осилить стандарт или страуса из-за большого объема, но она-то тоненькая и написана понятно.

Ответы>>690597

17 Мар, 12:41 #270 #690596

>>690560
Ну смотри, это фактически тот же вопрос превосходства композиции над наследованием реализации. Бывают адаптеры, которые наследуют adaptee приватно и target публично, с целью писать поменьше кода. Это не очень хороший вариант во многих случаях, из-за негибкости механизма наследования и вообще хотя иногда так сделать действительно лучше, например, когда тебе зачем-то понадобился двусторонний адаптер, лол. А адаптер, который агрегирует объект адаптируемого класса отлично применим гораздо более часто.

Ответы>>690607

17 Мар, 12:42 #271 #690597

>>690593
Бля, это че, она правда входит в теормин джуна или ты меня тролишь сейчас?

Ответы>>690599>>690601

17 Мар, 12:43 #272 #690598

>>690468
Оно зависло, это обычное дело. Убиваешь процесс и ребутишь, оно должно продолжиться с того же места после перезагрузки.

17 Мар, 12:45 #273 #690599

>>690597
В таком случае у нас получается джун, который умеет проектировать. И чем тогда от него отличается не джун?

Ответы>>690602

17 Мар, 12:45 #274 #690600

>>690586
>а как же энтерпрайз?
А у них обычно выхода нет, кроме как джаву использовать - если весь стек на джаве, зачем кресты использовать.

17 Мар, 12:46 #275 #690601

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

Ответы>>690606

17 Мар, 12:47 #276 #690602

>>690599
Опытом же.

Ответы>>690605

17 Мар, 12:48 #277 #690603

>>690582
>Если серьезно: есть ли здесь кто-нибудь, кто прочитал её?
Я пролистал, ничего нового не открыл. В 98 году она может и была интересна, сейчас - не очень.

17 Мар, 12:53 #278 #690605

>>690602
Все хуйня. В процессе работы ты набираешься всяких деталей о построении архитектуры и промышленном программировании(читай: тестирование+распределение задач в команде+VCS). Прочитай GoF, какую-нибудь книжку о TDD и git/vcs + проработай месяц, чтобы освоиться с внутренней кухней и ты уже того же уровня, что и человек, который проработал год и осваивал все на своем опыте.

17 Мар, 12:55 #279 #690606

>>690601
Сейчас я почувствовал себя петухом с разрушенным манямирком. Давай дальше: что должен знать любой уважающий себя крестовик?

Ответы>>690608

17 Мар, 12:55 #280 #690607

>>690596
Тащемта кода ни разу не меньше, а столько же. Но похуй, я подумал, ты на адаптеры in general наезжаешь.

Ответы>>690637

17 Мар, 12:58 #281 #690608

>>690606
Все средства и идиомы языка. Не так много, вообще-то. Часто даже достаточно знать о наличии их, но не использовать ни разу. Я, например, за 3 года ни разу не юзал виртуальное наследование или аллокаторы. Но я о них знаю и этого хватает.

Ответы>>690612

17 Мар, 13:03 #282 #690612

>>690608
Где нибудь есть список всех средств и идиом?

Ответы>>690616

17 Мар, 13:13 #283 #690616

>>690612
Средства языка:
http://en.cppreference.com/w/

Идиомы:
https://en.wikibooks.org/wiki/More_C++_Idioms

Ответы>>690623

17 Мар, 13:26 #284 #690623

>>690616
Спасибо.

Пожалуй, впервые за долгое время, куплю себе сегодня алкоголь.

17 Мар, 13:46 #285 #690637

>>690607
>ни разу не меньше
Я имел в виду, что многие делают это из-за небольшой экономии на method () вместо base_.method () при вызовах адаптируемых методах. Еще иногда из-за того, что нагородили хуйни с защищенными членами и прямым доступом к ним тоже уменьшают количество кода.

17 Мар, 13:48 #286 #690638

>>690584
>>690576
Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Скайп в любом телевизоре и мобилке есть. Фильмы смотрятся онлайн через браузер в том же телевизоре.
Электронные книги с монитора на десктопе читать тяжело. С планшета удобней. В имеющихся на сегодняшний день планшетно-мобильных платформах рулят жаба/обжси/дотшарп.
Думаю, те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы. 99% памяти занимают текстуры, для которых можно сделать ручную выгрузку, с остальным сборщик мусора справится.

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

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

Ответы>>690646>>690655>>690662>>690684>>690696>>690853>>690866>>690911

17 Мар, 13:53 #287 #690646

>>690638
Только вчера думал об этой хуйне.
Теперь думаю о том, что я тупо зря время проебал. Крестопараша мне очень нравится, но в >2016 крайне узкий сегмент ее использования, да и перескочить хуй куда получится годы крестоёбства и написания костыликов ничем не помогут в перекоте на другой язык, не надо тут

Ответы>>690662

17 Мар, 14:10 #288 #690655

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

Ответы>>690662>>690697>>690698>>690706>>690867

17 Мар, 14:17 #289 #690662

>>690638
>>690646
>>690655
То есть вы бы посоветовали ньюфагам вообще не вкатываться в кресты?

Ответы>>690670>>690673

17 Мар, 14:25 #290 #690670

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

17 Мар, 14:25 #291 #690673

>>690662
А где ты увидел советы ньюфагам вкатиться в кресты? Лобого ньюфага будут отговаривать от вката, если он попросит совета.

Ответы>>690683

17 Мар, 14:42 #292 #690683

>>690673
В шапке о крестах написано в позитивном ключе...

Ответы>>690692

68 Кб, 427x604

17 Мар, 14:44 #293 #690684

>>690638
>те же 3Д экшоны можно делать на Жабе, существовал бы движок и тулзы.
Вот именно, существовал бы. А на чем его напишут? Ну подумай головой, я тебе дам время.

Ответы>>690705

17 Мар, 14:53 #294 #690692

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

Ответы>>690721

17 Мар, 14:56 #295 #690696

>>690638
>в какой сфере плюсы реально уделают Жабу, как по эффективности, так и по трудозатратам
Гейдев, эмбеддед вместе с Си, хайлоад.
>намекает на то, что кресты безнадёжно отстали
Намекает на то, что надо использовать boost, которая де-факто стандарт. Ну серьезно, мог бы найти что-нибудь посерьезнее, чтобы доебаться.

Ответы>>690753>>690760>>690797

17 Мар, 14:56 #296 #690697

>>690655
>Если есть жаба то понятно что в плюсах смысла нет
Ну вот пишут JetBrains свои IDE на жабе. Пишут отлично, стараются, оптимизируют. Но вот открываешь в CLion какой-нибудь llvm, и все, пизда, зависло нахуй. Сидишь такой на машине с ssd, а оно зависло. Ну йобана, говоришь ты и смотришь в сторону QtCreator, который хоть и кастрированный и крэшится, но не виснет на анализе.

Такие дела.

Ответы>>690712

72 Кб, 429x340

17 Мар, 14:57 #297 #690698

>>690655

17 Мар, 15:00 #298 #690705

>>690684
Ну сначала сделают враппер для ДиректаИкса, хуле и там и там интерфейсы. Тогда станет возможно заменить плосовой код конкретной игоры на Жабу.

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

Закон капитализма гласит, что фирма, которая не расширяется - погибает. Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.

Ответы>>690711>>690714

17 Мар, 15:00 #299 #690706

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

17 Мар, 15:04 #300 #690711

>>690705
>Поэтому тот же Орокол в погоне за баблом и необходимости расширения вложит кучу бабла в появляющуюся нишу и сделает всё возможное чтобы выбить плюсы с рынка 3Д экшонов.

С учетом того, что Google и Apple взялись за написание нормального компилятора C++, да еще и у Microsoft подгорело и они начали гнаться за clang, а также того, что комитет по стандартизации планирует релизить TS чуть ли не каждый год, то еще посмотри кто кого.

Ответы>>690756

17 Мар, 15:05 #301 #690712

>>690697
>кастрированный и крэшится
Подробнее.

Ответы>>690781

17 Мар, 15:05 #302 #690714

>>690705
Гнида ебаная, если бы я сразу понял, что ты троллишь, я бы не отвечал тебе.

17 Мар, 15:08 #303 #690721

>>690692
Это я не заметил, возможно, имеет смысл переместить этот абзац в начало шапки.

Ответы>>690775

17 Мар, 15:10 #304 #690724

А перекатываться с плюсов некуда. Джава, дотнет? Ой, нахуй.

Ответы>>690731

17 Мар, 15:15 #305 #690731

>>690724
>А перекатываться с плюсов некуда.
На web, например. Но не всем нравится макакинг, если говорить о frontend. А если говорить о backend, то подозреваю с появлением REST-фреймверков на C++, остальные языки будут тихо насасывать по производительности.

Ответы>>690737

17 Мар, 15:19 #306 #690737

>>690731
Python какой-нибудь?

Ответы>>690746

17 Мар, 15:29 #307 #690746

>>690737
Python - Flask/Django
Ruby - Rails
JavaScript - NodeJS

17 Мар, 15:34 #308 #690753

>>690696
>>690696
В гейдеве уже и так 90% кода это скрипты и триггеры в картах. От плюсов почти ничего не осталось.

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

Си - это прыщи и только прыщи, вместе с торвалсом. Писать драйвера уже давно не нужно, т.к. сетевухи/звуковухи это риалтек и только риалтек. Любое юсб устройство может работать через либу, нетрудно сделать враппер на Жабе.

Хайлоад - скорее хуйлоад, посмотрел запись конфы https://www.youtube.com/watch?v=eTk9Zu6rLTY. Атомики с мемори барьерами дали, средств проверки не дали. Чтобы найти ошибку в очереди, которая из трёх операций CAS состоит, опытный дадька неделю потратил.
Некий студент, пишущий диссертацию якобы написал реализацию конкурентного RB дерева - это блеать 15 страниц псевдокода, и денег он с этого наверняка не поимеет. Кто за этот хуйлоад платить будет, легче Жабу и сотку гигов оперативки использовать.

За незнание буста и нелюбовь к нему надо расстреливать без суда из следствия. Кто будет платить за асинковую лапшу с вонючими портянками которые де-факто boos::asio::sockets::ip::tcp::address::v4? make_context скажешь? не пробовал, но чуется что дебаггер твою сопрограмму даже не увидит.
Нахуй такой стандарт если для обхода папок нужно ездить на велосипедах типа бууст::фаелсистем::рекурсив_директори_итератор_т, особо забавляет это ваше _t в конце, ещё хвостик ему в конце пририсуйте. Это воистину засвидетельствует ваши знания в бусте. Чесслово, рассчитано на идиотов которые не знают что перед именем переменной имя типа идёт.

И вообще, сколько вы будете зарабатывать, если зазубрите весь буст целиком? Все его нюансы и тонкости. Сколько лет у вас на это уйдёт? В Жабе нет такого геморроя.

Ответы>>690800

17 Мар, 15:36 #309 #690756

>>690711
>С учетом того, что Google и Apple
Распил бабла в крупных конторах. Это как в государстве только в частном.

17 Мар, 15:46 #310 #690760

>>690696
Да в любой. Джава - очень хуевый язык, который предлагает по сравнению с крестами одно: nullpointerexception вместо сегфолта. И все. REPL не завезли, система типов хуевая, библиотеки так себе. Если бы там про питон спросил, или про жс, то там есть четкие ниши, в которых они лучше крестов - быстрое прототипирование и т. п., а в жабе нет нихуя, кроме фобий менеджеров по поводу того, что индусы не сумеют написать на крестах код. И это правда. Но вот от таких проектов и надо держаться подальше. Нравится тебе лепить круд для банка в галере - ну удачи, хули.

17 Мар, 16:00 #311 #690775

>>690721
Нет. Это фак. Если у тебя вопросы ты читаешь его. Если там нет ответа ты пишешь в тред.

17 Мар, 16:02 #312 #690781

>>690712
Рефакторинг днищенский, поиск по коду (find usages, например, не позволяет удалять результаты), call hierarchy нет как такового, интеграция с git хуевая(окошко с log тупо показывает текстовый вывод консольного git'а). Это только то, что сразу в голову пришло.

Во время дебага бывает крэшится. Особенно если дебагер - lldb.

17 Мар, 16:12 #313 #690797

>>690696
>хайлоад
Часто ищу на hh.ru такую работу. Любо там надо 6 лет опыта, либо там не нужен С++, а только желателен т.к. совсем другая сфера. Нормальных вроде только пару штук за несколько месяцев находил. Но так чтобы ещё и зарплата была указанна ни разу. Так где же будет работать только вкатившейся джун?

Ответы>>690798

17 Мар, 16:13 #314 #690798

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

17 Мар, 16:18 #315 #690800

>>690753
>Писать драйвера уже давно не нужно, т.к. сетевухи/звуковухи это риалтек и только риалтек.

Охуительные истории ITT. Месье не смущает тот факт, что в половина кода для linux 4.5 - это драйверы. А это, на минуточку 500к строк кода, блядь!

>В гейдеве уже и так 90% кода это скрипты и триггеры в картах. От плюсов почти ничего не осталось.
А кто же эти скрипты обрабатывает? Не C++ ли код?

>Эмбеддет уже почти десять лет нормально переваривает жабу.
И толку, что java-код запускается на embedded? Я уверен, что GTA 5 тоже можно запустить на Raspberri PI, если постараться. Но толку от этого?

>Кто за этот хуйлоад платить будет, легче Жабу и сотку гигов оперативки использоват
Слишком толсто. Даже комментировать не буду.

>boos::asio::sockets::ip::tcp::address::v4
Ну не позорься, осиль уже namespace aliases.

Ответы>>690824

17 Мар, 16:30 #316 #690808

>>690387
прочитаю я их, и что? все не запомню явно. я вот инторнеткурс усваиваю помалёху, пилю свой рогулайк, решаю проблемы по мере их поступления и так учусь. алгоритм вот что пишет.

algorithm(1734): error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "node" (или приемлемое преобразование отсутствует)

Ответы>>690816>>690820

17 Мар, 16:32 #317 #690811

>>690574
Ещё забыл: нормальная система сборки и менеджмент зависимостей.

17 Мар, 16:38 #318 #690816

>>690808
Ты какой-то тупой дегенерат.
Твой уровень - Лафоре. Ты же блядь пытаешься с наскоку осилить йобу, не надо так. Пиздуй азы читать про указатели, перегрузку, функторы, полиморфизм, вот это вот всё.

Ответы>>690848

17 Мар, 16:42 #319 #690819

>>690515
Кодблокс неплох, но там даже цвета без геморроя не поменять. Даже Notepad++ с консолькой в этом смысле удобнее если ты любишь тёмную тему

17 Мар, 16:42 #320 #690820

>>690808
Переопределить значит его надо. Гугли переопределение операторов с++. Или в функции сравнение по другому сравнивай их.

17 Мар, 16:50 #321 #690824

>>690800
>минуточку 500к строк
Подумать только, пятьсот тысяч строк кода. Только вот четыреста тысяч из них - это для железок, которые сняты с производства ещё в прошлом тысячелетии. И что там с дровишками для видюх, игр для прыщей нет и не будет.

>Не C++ ли код?
Ты сможешь заработать себе на квартиру и на красную икру патчами для этого С++ кода или патчами для фаерфокса? Нет, ты будешь жрать сосиски с глутаматом.

>Слишком толсто
Окее, тот же мап на слим локах будет не сильно отставать от недоатомик мапа на касах если таковой вообще сделают труъ лок-фри cо вставкой/удалением/траверсингом... И то, блять, это миф про лок-фри, если мы не засыпаем, то долбимся в цикле, вызывая кас на каждой итерации и увеличивая выбросы СО2 на электростанциях.

>namespace aliases
оукеее, первый экран при открытии файла будут занимать не только хэдеры, но и неемспеес олиосы, у твоей жены длинный указательный палец, если нет, то твои детишки вырастут неконкуретноспособными, скроллить ведь придётся больше чем кодить.

17 Мар, 17:11 #322 #690836

>>690802
Мне пока это не нужно, в 15 лет не особо интересуюсь алгоритмами. Хотя нужно было бы, учусь дизассемблировать. Читаю сейчас Криса, вот как-то так. Посоветуй какую книгу по алгоритмам, буду читать параллельно.

Ответы>>690838

17 Мар, 17:14 #323 #690838

>>690836
Dive into Python

17 Мар, 17:19 #324 #690841

int main()
{
int a = 0;
return 0;
}

Вот это ваше a - оно в стеке выделяется?

Ответы>>690842

17 Мар, 17:21 #325 #690842

>>690841
Да.

17 Мар, 17:29 #326 #690848

>>690816
ЭКСПИРИЕНС!

17 Мар, 17:35 #327 #690853

>>690638
>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Например, тулзы чтобы делать игры. Любые другие программы для работы с картинками/видео/звуком. Жабка текстовые редакторы с трудом тянет, о графике и говорить нечего.
>Думаю, те же 3Д экшоны можно делать на Жабе
Можно, конечно, только будет оче тормозить. Майнкрафт, например, на кресты обратно переписывают. У них ебли с памятью в джаве получилось гораздо больше, чем при ручном управлении (такое, кстати, почти во всех нагруженных программах на джаве).

17 Мар, 18:02 #328 #690866

>>690638
>Дэсктоп уже почти умер, что там есть кроме игор, в которых по сей день текстурки размытые?
Сразу видно нешкольника. CAD, софт для творчества (видеоредакторы, аудиоредакторы, maya), различные IDE и т. п. Хотя откуда тебе это знать, если для тебя мир - это игры и потребление контента. А движок на "жабе" есть, Unity называется, только он на C# (потому что жаба говно даже в своей жабонише), и у Unreal Engine он посасывает.

Ответы>>691086

17 Мар, 18:08 #329 #690867

>>690655
> Это заметно даже по тому что в плюсы добавляют интерфейсы для вызова джаба кода, а не наоборот.
JNI в Жабе был с самого начала.

17 Мар, 18:33 #330 #690881

Есть ли тут ананчики, которые пишут/писали драйвера под винду? Подскажите годного мануала как писать драйвера для совсем зелёного воробушкаиз знаний только базовые знания плюсов. Всё, что находил нихуя не понятно или делается не в VS.
Писать буду в VS2015, запускать и дебажить на виртуалке

Ответы>>690953

17 Мар, 19:11 #331 #690905

>>690574
Описанная тобой фича джавы -- profile-guided оптимизация. В gcc уже лет 5 назад доступна была.

17 Мар, 19:20 #332 #690911

>>690638
Тридээкшоны ты вряд ли сделаешь на жабе. Потому что на каждый чих в жабе выделяется память, а в экшонах нужна вся скорость, которая есть, иначе у тебя начинается задержка обработки ввода (input lag) и лаги, когда вдруг сборщик мусора соизволил вмещаться. Я не говорю, что плюсы невозможно переплюнуть, но управление памятью в джаве это пиздец для разработки экшонов

17 Мар, 20:20 #333 #690953

>>690881
Для начала подумай, что будешь делать, когда венда не пожелает прожевать неподписанный драйвер, и тебе придется делать developer mode.

17 Мар, 20:55 #334 #690985

>>690576
>webasm
Зачем нужен этот кусок говна, когда уже есть Scala.js?

Ответы>>691153

17 Мар, 21:54 #335 #691086

>>690866
>Unity называется, только он на C#
Он тоже написан на C++, лол. На C# там только интерфейс для сторонних разработчиков. Можно заплатить и получить исходники на C++ и ебашить как надо.

17 Мар, 22:56 #336 #691153

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

Ответы>>691641

17 Мар, 23:13 #337 #691164

>>688646 (OP)
Заметил во многих олимпиадных задачах такой пункт, как "строка может превышать 10^10 символов ", или что-то в этом роде. К чему это?

Ответы>>691165

17 Мар, 23:16 #338 #691165

>>691164
Например, чтобы ты писал o(log(n)) алгоритм, а не надеялся, что o(n^100) с нынешними гигагерцами совладает.

17 Мар, 23:16 #339 #691167

>>688646 (OP)
1

17 Мар, 23:38 #340 #691187

Котоны, вопрос. Задал в нуботреде, продублирую тут.
Как проинициализировать QSqlDatabase? Нужен статический экземпляр, но вот хер знает как заставить его таким стать. Всякие
QSqlDatabase db = NULL не катят, тип не тот.

Ответы>>691188>>691190

17 Мар, 23:41 #341 #691188

>>691187
http://doc.qt.io/qt-5/qsqldatabase.html

Ответы>>691193>>691195

17 Мар, 23:41 #342 #691190

>>691187
QSqlDatabase db; чем не подходит?

Ответы>>691193

8 Кб, 379x262

17 Мар, 23:44 #343 #691193

>>691190
Скрин, вот такая хуйня. На stackoverflow первый же пример с другой переменной - говорят, мол, инициализировать ннада.

>>691188
я там пролазил поверхностно, но ничего про инициализацию _без_ задания сразу адреса БД не нашел. Сейчас на второй круг повдумчивей попробую тогда, раз ты настаиваешь

Ответы>>691195>>691199

17 Мар, 23:47 #344 #691195

>>691193
>>691188
Запамятовал, сорян.
В доках еще указано что можно взять дефолтное подключение, типа
QSqlDatabase database = QSqlDatabase::database();

Но со static это дает: a function call cannot appear in a constant-expression.

Может еще где обосрался... хз ^

Ответы>>691206

17 Мар, 23:51 #345 #691199

>>691193
А если инициализировать то типа работать будет? Ты проверял? У тебя какие-то подозрительные ошибки, похожие на ошибки линковщика.

Ответы>>691203

40 Кб, 600x600

17 Мар, 23:54 #346 #691202

>>688646 (OP)
>2016
>MANUAL GARBAGE COLLECTION

Ответы>>691210>>691240

17 Мар, 23:56 #347 #691203

>>691199
До этого у меня была эта же переменная без static.
Заводилась через init_db(QString addr) (addr - там из диалога открытия файла адрес передавался).

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

Ответы>>691205

18 Мар, 00:01 #348 #691205

>>691203
Хотя вот прямо сейчас смотрю ветку на форуме где рассказывают какой ТС мудак о том, что глобальные подключения вредны и лучше делать маленькие, но сразу их выпиливать потом.

Ответы>>691209

18 Мар, 00:01 #349 #691206

>>691195
Ну вот чего ты лезешь в qt, когда C++ не знаешь?
static переменные нужно инициализировать вне определения класса. А ты этого не сделал.
Во-вторых, нахрена тебе нужен static? Передавай объект базы данных в конструктор и храни внутри класса сылку на БД.
В-третьих, хуле ты используешь библиотеку и не читаешь доки блчдь??? ПЕРЕД ИСПОЛЬЗОВАНИЕМ ПОЛНОСТЬЮ ПРОЧТИ ДОКИ К КЛАССУ

Ответы>>691208>>691211

18 Мар, 00:02 #350 #691208

>>691206
Я макака и не преследую целей стать программистом. Мне побрязгаться интересно.
Извини, если задел твои чувства, я не специально.

18 Мар, 00:04 #351 #691209

>>691205
Почему ты решил что тебя не устраивает дефолтное подключение и вообще пытаешся свое сделать?

Ответы>>691211

18 Мар, 00:05 #352 #691210

>>691202
В отличии от GC-петухов у нас есть выбор. GC-поведение легко достигается с помощью shared_ptr. Не хочешь ебаться с памятью - везде ебашь shared. Не нравится полученная производительность - оптимизируй, хуле. Только мы можем стандартными средствами оптимизировать, а шлюхи вроде тебя будут бесконечно настраивать GC и писать костыльный unsafe-код.

Ответы>>691342

18 Мар, 00:06 #353 #691211

>>691209
Всмысле "свое"?
Я просто не знаю, как корректней сделать - подключить базу один раз и использовать это или же делать несколько подключений.
Выше (>>691206) мне вкратце пояснили мои ошибки, буду разбираться на свежую голову.

18 Мар, 00:18 #354 #691220

>>690574
Java - это крутая HotSpot JVM, фичи шестилетней давности вместо языка, и целый ворох радостей, если у тебя jvm другого вендора.

А как сходишь к жава разработчикам на этаж, а у них до сих пор древний oc4j 10g, который боятся торгать, и шестая джава – то есть уже не такая крутая жвм и говно 12летней давности вместо языка.

Если хочешь байтоёбится на джаве, внимательно посмотри это видео и подумай, а нахуй оно надо - https://www.youtube.com/watch?v=Q-7y1u9kZV0

18 Мар, 00:41 #355 #691240

>>691202 -> https://youtu.be/Q-7y1u9kZV0?t=30m34s

Ответы>>691370

18 Мар, 01:04 #356 #691254

Алсо, кто-нибудь видел решение, которое само работает с circular references, чтобы не нужно было бы использовать weak_ptr?

Ответы>>691257>>691277

18 Мар, 01:16 #357 #691257

>>691254
Не приходит в голову эффективного решения. А удобного решения не приходить в голову без рефлексии. Так что если таки надо, то надо делать самому под свою задачу.

Ответы>>691282

Бля 18 Мар, 01:47 #358 #691275

InfoWorld: Can you answer the same question about modules and co-routines, which also won't make it in?

Stroustrup: I would have liked to get modules for better protection against changes in some components context (such as protection against macros) and better compiler speed, but that proposal isn't ready for C++17, so it goes into a TS. I think that eventually, modules will become massively important. They address long-standing problems in C and C++. An early version currently ships as part of Microsoft's C++. A different variant, more friendly to macros, is available in some versions of Clang. I am disappointed that stackless co-routines are being put into a TS rather than directly into the standard itself. I think they are ready and important for a few critical use cases (pipelines and generators). An early version currently ships as part of Microsoft C++.

http://www.infoworld.com/article/3044727/application-development/qa-bjarne-stroustrup-previews-c-17.html

18 Мар, 01:52 #359 #691277

>>691254
Только писать ad-hoc сборщик.

Ответы>>691282

18 Мар, 02:00 #360 #691282

>>691257
>>691277
Наверное проще будет не допускать циклических зависимостей.

Ответы>>691285

18 Мар, 02:07 #361 #691285

>>691282
Смотря где и смотря как. Я сейчас стараюсь использовать unique_ptr'ы и иммутабельность.

Ответы>>691387

18 Мар, 02:56 #362 #691295

Можно ли в Gtk назначить focus_chain для глубоко лежащего виджета, не назначая при этом фокус для всех родителей?

Ответы>>691887

18 Мар, 07:12 #363 #691342

>>691210
Справедливости ради замечу, что функциональность shared_ptr не идентична GC. В случае умных указателей возможна ситуация, когда утекает кусок памяти со взаимными указаниями друг на друга, с которой GC борется путем "универсального суперкласса" или еще как-то.

Ответы>>691368

18 Мар, 08:41 #364 #691368

>>691342
Ну поэтому кроме shared ещё есть weak_ptr и unique_ptr.
Для циклических ссылок и в жяве точно так же используется WeakReference.

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

Ответы>>691449

18 Мар, 08:46 #365 #691370

>>691240
Бля. Этот ёбыч судя по "бинчмаркам и сравнинийам с си сиплюсплюс" даже не в курсе, что это не аллокация в жяве супербыстрая, это аллоцированная память не освобождается.

18 Мар, 09:01 #366 #691375

Аоны, а давайте вместе чего-нибудь запилим.

Ответы>>691376

18 Мар, 09:04 #367 #691376

>>691375
Есть идеи?

Ответы>>691377

18 Мар, 09:04 #368 #691377

>>691376
Шапку?

Ответы>>691378

18 Мар, 09:07 #369 #691378

>>691377
Так нормальная же шапка.

Ответы>>691380

18 Мар, 09:09 #370 #691380

>>691378
Тогда не знаю. А какие программы сейчас на дваче пишут?

Ответы>>691385

18 Мар, 09:15 #371 #691385

>>691380
игру запили

18 Мар, 09:16 #372 #691387

>>691285
И правильно. Совместное владение, по-хорошему, лучше использовать как можно меньше. Комбинация unique ptr и обычных указателей - тот контекст, в утром unique_ptr объявлен владеет указателем, а тот контекст, который его использует из вне, получает прямой указатель если нужно. Это при условии, что владелец живёт дольше, чем все пользователи.

18 Мар, 11:12 #373 #691449

>>691368
>Для циклических ссылок и в жяве точно так же используется WeakReference
Очень редко, потому что GC и так умеет работать с циклическими ссылками.

18 Мар, 11:38 #374 #691467

А что, Дейтел уже не норм?
мимо-новичок

Ответы>>691469

18 Мар, 11:40 #375 #691469

>>691467
Давно тебя здесь не было.

Ответы>>691508

18 Мар, 12:49 #376 #691508

>>691469
Книги из разделов шапки: best practies и проектирование никогда не устареют?

Ответы>>691542

18 Мар, 12:59 #377 #691521

>Компания Crytek анонсировала новый движок CryEngine V
>Среди основных нововведений:
>Поддержка C#;
>...

Кто там кукарекал, что сееплюсплюс незаменим для тредээкшонов?

Ответы>>691529>>691530

18 Мар, 13:03 #378 #691529

>>691521
Это для скриптов же, и чтобы юнитишкольников привлечь.

18 Мар, 13:03 #379 #691530

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

18 Мар, 13:11 #380 #691542

>>691508
В плане синтаксиса устаревают, но в подобных темах это не так важно. И вообще, других-то нет.

Ответы>>691589

18 Мар, 13:44 #381 #691589

>>691542
По поводу устаревания синтакиса: верно ли, что нюфане надо знать и старый и новый синтаксис, так как вдруг на работе придется поддерживать проект, который был написан до С++11?

Ответы>>691595

18 Мар, 13:48 #382 #691595

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

Ответы>>691634

18 Мар, 14:12 #383 #691634

>>691595
Кстати, вы на работе переписываете проект на C++11 или оставляете как есть вдруг оно сломается?

Ответы>>691649

18 Мар, 14:22 #384 #691641

>>691153
>надо будет десяток метров стандартной либы тащить
~100кб в гзипе, ебанутый.

18 Мар, 14:29 #385 #691649

>>691634
Мы ж не ебанутые. Новые фичи начинают использоваться, как только все используемые компиляторы начинают их поддерживать. Тут обычно в VS проблема. То дорого обновлять лицензии, то самая новая студия не стабильна, то самая новая студия еще не умеет во все фичи.

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

Единственное, что не используется на кроссплатформе, это стандартная библиотека. С этим до сих пор проблемы. В итоге используется boost.

А вообще ломающих фич не так много, переписывать обычно ничего не надо.

Ответы>>691686>>691812>>691846

18 Мар, 15:04 #386 #691678

Как изменить в сонсоли цвет отдельных символов?
SetConsoleTextAttribute меняет цвет всего текста. Мне чо блять изменять назад каждый раз?

Ответы>>691689>>691903>>691906

18 Мар, 15:06 #387 #691681

int default = 0;
Такая запись - норма в VS2015. Ну ок.

18 Мар, 15:12 #388 #691686

>>691649
Ты упомянул студию, значит вы ее используете на работе в какой-то мере. Ради чего вы ее используете? Неужели только из-за продвинутого автодополнения и крутого отладчика как написано в шапке?

Ответы>>691764

18 Мар, 15:14 #389 #691689

>>691678
bemp voprosu

Ответы>>691765>>691903

18 Мар, 16:50 #390 #691762

>>689948
Как ты понял, что тебе плюсы не подходят? на какой теме начал тупить? я тоже сомневаюсь

18 Мар, 17:00 #391 #691764

>>691686
Емнип у студии самый быстрый рантайм из всех компиляторов под венду. Ну и стабильнее она. Вот я осенью внезапно наткнулся на баг в clang, который проявлялся при использовании unordered_map вместе с многопоточностью. Вроде не страшно, в следующей версии его пофиксили, но для продакшена ждать месяц никак нельзя из-за подобной хуйни.

18 Мар, 17:02 #392 #691765

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

18 Мар, 17:36 #393 #691778

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

Ответы>>691779>>691781

18 Мар, 17:45 #394 #691779

>>691778
Потому что пекарни 32-битные, 32/8=4. Процессор работает сразу с двойными словами в 4 байта, из-за этого могут быть тормоза без выравнивания. Например, чтобы считать байт из выровненной позиции, ты читаешь 4 байта в EAX и дальше забираешь байт из AL. А без выравнивания ты не можешь считать ровно с этой позиции 4 байта, тебе придется считывать с предыдущей выровненной, байт окажется не в AL, а в одном из старших байтов EAX, тебе придется делать сдвиги, ну ты понел. Но если тебе скорость не так важна, а память дорога (на микроконтроллерах, например), то можно выключить выравнивание.

Ответы>>691784>>691787

18 Мар, 17:50 #395 #691781

>>691778
У любого процессора задан размер машинного слова. У 32-битных - 32 бита, у 64 битных - 64 и т.д. Регистры ЦПУ имеют именно такой размер (если не считать сопроцессора). Все операции производятся над данными разбитыми под размер машинного слова. Обращение к памяти тоже происходит по словам. Соответственно, если данные не выровнены по границам машинного слова, то операция чтения или потребует больше времени, или вообще не будет произведена (как у АРМов).

Ответы>>691784>>691787

18 Мар, 17:53 #396 #691783

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

18 Мар, 17:53 #397 #691784

>>691779
>>691781
А почему класс без полей имеет размер 1 байт и не выравнивается?

Ответы>>691785>>691786>>691792

18 Мар, 17:55 #398 #691785

>>691784
Выравнивается. По 1 байту. Однобайтные данные выравниваются по 1 байту, двухбайтные по двум, четырех по четырем. Те что больше машинного слова - по машинному слову.

Ответы>>691787>>691788

18 Мар, 17:56 #399 #691786

>>691784
>имеет размер 1 байт и не выравнивается?
С чего ты взял, что не выравнивается? Например, создай класс на стеке, и посмотри на его адрес.

18 Мар, 17:56 #400 #691787

>>691785
>>691781
>>691779
Понял. Спасибо. Добра вам, аноны.

18 Мар, 17:57 #401 #691788

>>691785
Внутри структуры или массива.

18 Мар, 18:04 #402 #691792

>>691784
Потому что минимальный размер данного в крестах.

Ответы>>691793

18 Мар, 18:05 #403 #691793

>>691792
Про минимальный размер я знаю. Мне было интересно про выравнивание.

18 Мар, 18:12 #404 #691795

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

Ответы>>691825>>691895>>692060>>692063

18 Мар, 18:12 #405 #691796

А ещё вопрос. У нас есть абстрактный класс. По сути для него vtable не нужна (объект создать не можем). Так вот, будет ли выделятся память для vtable абстрактного класса или компилятор что-то делает для этого?

Ответы>>691826

18 Мар, 18:29 #406 #691808

Поправьте шапку:

Бьерн Страуструп
Программирование. Принципы и практика использования C++
2e издание 2014

https://yadi.sk/i/oJphQyQVmimRG

Ответы>>691839

18 Мар, 18:32 #407 #691812

>>691649
Есть одна очень большая компания, которая упорно использует vs6. И мы вынуждены поддерживать код в sdk для этой версии. Хотя сами сидим на свежих clang и gcc5

Ответы>>691821

18 Мар, 18:44 #408 #691821

>>691812
>Вот я осенью внезапно наткнулся на баг в clang, который проявлялся при использовании unordered_map вместе с многопоточностью. Вроде не страшно, в следующей версии его пофиксили, но для продакшена ждать месяц никак нельзя из-за подобной хуйни.

Что думаешь насчет этого? Из-за этого вы и делаете сборки разными компиляторами?

Ответы>>691923

18 Мар, 19:03 #409 #691825

>>691795
1) Виртуальные деструкторы - зло. Ни в коем случае не используй их.
2) К черту методы. Переопределяй операторы. Зачем придумывать названия методам, когда умные люди дали тебе операторы.
3) Умные указатели для идиотов, которые незнают как писать nwe и delte. (Их тоже перегружай, а то вдруг стандартная реализвация изменится, и программа полетит)
4) rvalue? lvalue? Ничего старых добрых сишных указателей не придумали. Передача по указателю - наше все.
Продолжай, анон

Ответы>>691830>>691834>>691841>>692043>>692059>>692372

18 Мар, 19:06 #410 #691826

>>691796
Создание объекта не причем. Абстрактный класс может реализовать виртуальный метод с телом. Тогда все равно нужно как-то вызвать его. А это значит что для абстрактного класса должен быть vtable.

Ответы>>691827

18 Мар, 19:07 #411 #691827

>>691826
А для интерфейса?

Ответы>>691829>>691831

18 Мар, 19:09 #412 #691829

>>691827
В интерфейсах тоже есть vtable.
На ангельском:
http://stackoverflow.com/questions/11196329/interface-vtable

18 Мар, 19:10 #413 #691830

>>691825
Мультинаследование - самый мощный инструмент языка, не пренебрегай им.

Ответы>>691832>>691834

18 Мар, 19:11 #414 #691831

>>691827
Мне кажется ты не понял сути vtable. Он не для создания экзепляров класса нужен, а для поиска нужной реализации виртуального метода в рантайме.

Ответы>>691838

18 Мар, 19:11 #415 #691832

>>691830
Два ромба этому содомиту.

18 Мар, 19:14 #416 #691834

>>691825
В 1,2,4 есть крупицы истины.
>>691830
А это вообще довольно часто хорошая практика, ИТТ было выше.

18 Мар, 19:19 #417 #691838

>>691831
Да это я понимаю. Просто без объекта и таблица не нужна. А если в классе есть чисто виртуальный метод то мы и не можем создать объект.

Вообщем в MSVC есть такое. https://msdn.microsoft.com/ru-ru/library/k13k85ky.aspx
Я так понял во время компиляции подставляется declspec(novtable) и vtable не создается

Ответы>>691845

18 Мар, 19:21 #418 #691839

>>691808
>80 мб
Пережать бы.

Ответы>>691881

18 Мар, 19:23 #419 #691841

>>691825
Используй goto вместо while. Его оставили для лучшей оптимизации и компилируется он всего в одну ассемблерную команду jmp поэтому он очень быстрый.

Ответы>>691849>>691850

18 Мар, 19:28 #420 #691845

>>691838
Еще раз - причем тут создание объектов?
Позднее связывание реализуется при помощи vtable. Допустим есть float Shape::area() = 0
И Square наследует Shape и переопределяет Shape::area().
И есть например метод заливки площади определнным цветом - void fill(Shape* ptr)
В методе fill и будет использоваться vtable для определения реализации Shape::area() конкретного класса, в данном случае будет использоваться Square::area()

Ответы>>691847>>691853

18 Мар, 19:29 #421 #691846

>>691649
> Единственное, что не используется на кроссплатформе, это стандартная библиотека. С этим до сих пор проблемы. В итоге используется boost.

Не понял. Ты про то, что стандартная библиотека бедна (ни filesystem, ни networking, etc) или про то, что stl, алгоритмы и прочее по-разному реализовано и ломает код на разных платформах? Поясни крч пжл

Ответы>>691851>>691855>>691928>>692074

18 Мар, 19:29 #422 #691847

>>691845
С кодом обосрался, но думаю суть должна быть понятна.

498 Кб, 1700x1734

18 Мар, 19:30 #423 #691849

>>691841
НАПИСАЛ ВСЮ ПРОГРАММУ ОДНОЙ ФУНКЦИЕЙ ИЗ 100К СТРОК С GOTO ВМЕСТО ПОДПРОГРАММ
@
КОД НЕ УМЕСТИЛСЯ В ОДИН СЕГМЕНТ
@
GOTO ТРАНСЛИРУЕТСЯ В LONGJMP ИЗ ТРЕХ КОМАНД

Ответы>>691850>>691852>>691899

18 Мар, 19:33 #424 #691850

>>691841
>>691849
Какие-то древние вредные советы.

18 Мар, 19:33 #425 #691851

>>691846
Повежливее с герром ван Винклем, он только что из 1999-го с коммерческими STL.

18 Мар, 19:34 #426 #691852

>>691849
Самозащита от сокращения?

18 Мар, 19:34 #427 #691853

>>691845
Да. Понял к чему ты. Спасибо, что пояснил.

18 Мар, 19:35 #428 #691855

>>691846
> stl, алгоритмы и прочее по-разному реализовано
100 РЕАЛИЗАЦИЙ
@
СДЕЛАЕМ СВОЮ, ЧТОБ ЛЕГЧЕ БЫЛО ПЕРЕНОСИТЬ
@
101 РЕАЛИЗАЦИЯ

Ответы>>691860

18 Мар, 19:39 #429 #691860

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

Ответы>>691891

18 Мар, 20:00 #430 #691881

>>691839
21 мб
https://yadi.sk/i/Yd6KKpLBqJSUr

Ответы>>691889>>692287>>692414

18 Мар, 20:05 #431 #691887

>>691295
Бамп

Ответы>>691893

18 Мар, 20:07 #432 #691889

>>691881
А на англ есть пдф нормальный? ^^

Ответы>>692052

18 Мар, 20:07 #433 #691891

>>691860
std::lower_bound

18 Мар, 20:08 #434 #691893

>>691887
На лор сходи. Тут что-то если про gtk обсуждают, то в основном Qt :3

Ответы>>691894>>692235

18 Мар, 20:10 #435 #691894

>>691893
>лор
jeuta, опять ты?

18 Мар, 20:10 #436 #691895

>>691795
>Накидайте список вредных советов.
Лямбды для мудаков, юзай шаблонные функторы и мультинаследование по максимуму.
А также пиши код с упором возможности запуска на бабушкином телевизоре и папином ноутбуке простой переборкой.
>А ещё лучше статью где придумывают правдоподобные причины почему эти советы полезные.
В оппосте: Современное проектирование на C++. Таки да, юзай, но C++ тебе не D, и такой код на код-ревью не поймут, так что знай меру.

Ответы>>691898

18 Мар, 20:12 #437 #691898

>>691895
>список вредных советов
>В оппосте
Зачем?

18 Мар, 20:12 #438 #691899

>>691849
Чому в longjmp, а не far jump?

18 Мар, 20:14 #439 #691903

>>691678
>>691689
Это ИТТ-тред про цепепе, а не винэйпиай.

18 Мар, 20:19 #440 #691906

>>691678
С винапи не работал. Кури вот это:
https://en.wikipedia.org/wiki/ANSI_escape_code

Ответы>>691911

18 Мар, 20:25 #441 #691911

>>691906
> Win32-консоль вообще не поддерживает управляющие последовательности ANSI. Программное обеспечение может управлять консолью посредством ioctl[en]-подобных системных вызовов консольных API, чередующимся с текстовым выводом.
Мда. Чому у винды все не как у людей?

18 Мар, 20:36 #442 #691923

>>691821
Clang под osx, GCC под Linux.
Ловим иногда забавные баги, но не критично. Используем версии на 1-2 ниже.

Ответы>>691925>>691926

18 Мар, 20:37 #443 #691925

>>691923
>Ловим иногда забавные баги
напр?

Ответы>>691941

18 Мар, 20:37 #444 #691926

>>691923
>Clang под osx
Почему не под линкс тоже?

Ответы>>691936

18 Мар, 20:39 #445 #691928

>>691846
Под разные компиляторы разные реализации. У Майкрософт как обычно свои велосипеды везде.

18 Мар, 20:41 #446 #691936

>>691926
Исторические причины. И клиенты есть на гцц, проще сразу чего использовать чем потом искать.

18 Мар, 20:44 #447 #691941

>>691925
Была проблема с бустовым ренжем, когда пустой ренж схлопывался в нечего на одной версии гцц, а на другой был пустой объект. Из-за ошибки в коде очень весело падало.
В сланге была проблема с очень закрученным шаблоном полное имя инстанцированного шаблона около 4Ксимволов, 7 гигов оперативки компилятору нужно чтобы раскурииь, пофиксили у себя, потом и сланг сам пофиксился.

Ответы>>691945

18 Мар, 20:47 #448 #691945

>>691941
>полное имя инстанцированного шаблона около 4Ксимволов
Это тоже что и имя переменой или функции? Тогда почему не сделать поменьше? Хотя компилятор и с функциями имена которых 10к символов нормально работает.

Ответы>>691947

18 Мар, 20:49 #449 #691947

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

Ответы>>691948

18 Мар, 20:50 #450 #691948

>>691947
Нихуя не понял. Наверно я просто не дошёл до этой темы.

Ответы>>691952>>691967

18 Мар, 20:54 #451 #691952

>>691948
Мета-программировние оно такое.
Но вся эта магия генерирует очень компактный и быстрый парсер. И очень легко конфигурируется и расширяется

18 Мар, 21:17 #452 #691967

>>691948
Каждый раз когда ты компилируешь что-то вроде Хуй<Пизда<Джигурда>> компилятору приходится для каждого инстанцированного шаблона создавать новое внутреннее имя. Если злоупотреблять метапрограммированием на темплейтах, эти имена могут быть ОЧЕНЬ длинными.

18 Мар, 22:20 #453 #692043

>>691825
Всегда используй постфиксный инкремент\декремент.

Ответы>>692044

18 Мар, 22:22 #454 #692044

>>692043
Я так делаю чтобы писать c++ в циклах. Почему компилятор не оптимизирует эту штуку если в ней нет знака равно?

Ответы>>692049>>692050

18 Мар, 22:30 #455 #692049

>>692044
Для встроенных типов оптимизирует, для всяких итераторов это нужно быть очень умным компилятором. Поэтому пиши ++с всегда.

18 Мар, 22:30 #456 #692050

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

18 Мар, 22:33 #457 #692052

>>691889
ВЫУЧИЛ АНГЛИЙСКИЙ РАДИ ТОГО, ЧТОБЫ ЧИТАТЬ СТРАУСТРУПА В ОРИГИНАЛЕ

Ответы>>692053

18 Мар, 22:33 #458 #692053

>>692052
Уже полгода ради этого английский учу.

Ответы>>692058

18 Мар, 22:40 #459 #692058

>>692053
По этой книге? http://www.alleng.ru/d/engl/engl17.htm

Ответы>>692067

18 Мар, 22:41 #460 #692059

>>691825
1. Называй перменные и функции транслитом mamku_ebal, perdoli.
2. Используй c-type cast operator на классах, но не чаще, чем reinterpret_cast.
3. Помни! Препроцессор лучше шаблнов.
4. Оставляй две пустые строчки между строками кода, но после каждой четырнадцатой оставляй четырнадцать пустых, а после восемьдесят восьмой - восемдесят восем пустых.

18 Мар, 22:44 #461 #692060

>>691795
Будь современным, иммутабельным и ссылочным - используй const и & в шаблонных параметрах.

Ответы>>692077>>692078

18 Мар, 22:49 #462 #692063

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

18 Мар, 23:02 #463 #692067

>>692058
Нет. По видео лекциям и упражнениям Петрова, аудио лекциям Пимслера, подкастам Хога и книге Мёрфи.

Ответы>>692070

18 Мар, 23:05 #464 #692070

>>692067
Лучше посмотри какой-нибудь британский сериал без сабов.

Ответы>>692073

18 Мар, 23:07 #465 #692073

>>692070
Я нихуя не пойму.

18 Мар, 23:08 #466 #692074

>>691846
Я хотел сказать, что новые библиотечные фичи не используем. Потому что до сих пор сидим на stlport. Честно скажу, лично я не знаю какие проблемы возникали при использовании разных стандартных библиотек на разных платформах. Но ходят легенды, что раньше возникали, поэтому сидим и ждем новую кроссплатформенную либу. Вроде как libstdc++ к этому стремится, но пока еще не оче.

Ответы>>692075>>692079>>692123

18 Мар, 23:09 #467 #692075

>>692074
>libc++
fixed

18 Мар, 23:13 #468 #692077

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

Ответы>>692089

18 Мар, 23:14 #469 #692078

>>692060
Это намек на универсальные ссылки?

Ответы>>692082>>692083

18 Мар, 23:17 #470 #692079

>>692074
>2016
>stlport
What the fuck am I reading?

Ответы>>692081

18 Мар, 23:19 #471 #692081

>>692079
Щито поделать

18 Мар, 23:19 #472 #692082

>>692078
Это намек на то, что T включает в себя T&, const T& и вообще все что угодно

Ответы>>692091

18 Мар, 23:20 #473 #692083

>>692078
Type traits и SFINAE мимо вас проехали, рачьо?

18 Мар, 23:29 #474 #692089

>>692077
Это совет для опытных метапрограммистов.

18 Мар, 23:30 #475 #692091

>>692082
Охуительные истории.
http://ideone.com/ZRXhnP

Манька не знает как выводится тип?
А "auto&" тебе ни о чем не говорит?

Ответы>>692100

18 Мар, 23:38 #476 #692100

>>692091
Фишка в том, что <const Class&> и даже с виду безобидный <const char*> таит в себе неиссякаемый источник приключений. Попробуй как-нибудь на своем шаблонном коде, который ты считаешь bullet proof

Ответы>>692105

18 Мар, 23:41 #477 #692105

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

Ответы>>692107

18 Мар, 23:45 #478 #692107

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

Ответы>>692113

18 Мар, 23:50 #479 #692113

>>692107
Что не так со ссылками? Что не так с константами?

Ответы>>692116>>692118

18 Мар, 23:51 #480 #692116

>>692113
>константами
Их кстати можно на define заменять. А ссылки на указатели.

18 Мар, 23:54 #481 #692118

>>692113
С ними все в порядке, пока ты не пытаешься их использовать в параметрах темплейтов. Можно, например, сделать vector<const Myclass&>. И он может быть будет работать. Но заранее не скажешь.

Ответы>>692120>>692121

19 Мар, 00:02 #482 #692120

>>692118
Познания просто уровня /pr/

Ответы>>692122

19 Мар, 00:03 #483 #692121

>>692118
Почитай требования к типу вектора. Там все четко описано. Если твой константный тип выполняет их, все работает.
Короче, иди читай cppreference до просветления.
пока серьёзные дядьки творят мета магию на шаблонах

Ответы>>692124

19 Мар, 00:03 #484 #692122

>>692120
Это обычная уличная магия темплейтов.

19 Мар, 00:03 #485 #692123

>>692074
> кроссплатформенную это под разные компиляторы?

Сам недавно вынужден был на msvc2015 портировать код, потомучто внезапно в mingw словил дикий баг обработки исключений под шиндошс сервер 2012. Проект на C++11.

У тебя, судя по всему, легаси какой-то?

Ответы>>692125

19 Мар, 00:05 #486 #692124

>>692121
Ты своих коллекций не писал никогда, сразу видно.

Ответы>>692128>>692135

19 Мар, 00:07 #487 #692125

>>692123
не, легаси нет. Компиляторы и boost регулярно обновляем. Просто так исторически сложилось с stlport. Пару раз поднимали вопрос, в ответ - какие-то проблемы, если использовать разные либы. Ну и похуй в общем-то. Только строки по факту юзаем

19 Мар, 00:09 #488 #692128

>>692124
А ты с выводом типа не дружишь. Лучше Маерса свежего почитай, кажись и проблема будет снята

Ответы>>692133

19 Мар, 00:16 #489 #692133

>>692128
>ты с выводом типа не дружишь
Чтобы дружить с выводом типа, надо для каждого темплейтного класса писать потроха на 2к строк как в STL. А с C++11 уже на 20к.

Ответы>>692140>>692172>>692173

19 Мар, 00:18 #490 #692135

>>692124
Достаточно писал.
Еще раз - к элементу вектора предъявляются строгие требования.
must meet the requirements of CopyAssignable and CopyConstructible..
Если твой const T& может в копирование и присваивание - все будет работать.
Вся stl написана по строгим правилам. Все контейнеры, итераторы и алгоритмы определяют требования к типам.

Ответы>>692144>>692371

19 Мар, 00:23 #491 #692140

>>692133
> А с C++11 уже на 20к.
Надо же. Порядок угадал.

$ echo "#include <vector>" | gcc -x c++ -std=c++14 -E - | wc -l
11229

Ответы>>692172

19 Мар, 00:27 #492 #692144

>>692135
Ты же понимаешь, что эти требования применяются ко всем включенным типам. Если ты где-то слажал, и не сделал rule of 5, все рассыпается, и приходится исследовать все <<<<<<<<<<<

Ответы>>692147>>692148>>692164

19 Мар, 00:28 #493 #692147

>>692144
>Если ты где-то слажал, и не сделал rule of 5
ну ты понел

Ответы>>692157

19 Мар, 00:28 #494 #692148

>>692144
Поэтому мы любим хаскель и не любим C++.

19 Мар, 00:49 #495 #692157

>>692147
А чтобы понять, надо исследовать десять экранов выхлопа компилятора.

Ответы>>692160

19 Мар, 00:53 #496 #692160

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

Ответы>>692164

19 Мар, 00:57 #497 #692164

>>692144
Кроме rule of 5 надо еще прописать все ::intricate_mostly_unknown_trait и прочую хуйню, и телепатически угадать, что от тебя хотел автор либы в данном конкретном случае.
>>692160
>умение читать вывод компилятора об ошибках в шаблонах приходит с опытом
Опыт говорит: не использовать сторонние либы, не использовать STL и boost, держаться ближе к няшной.

19 Мар, 01:31 #498 #692172

>>692140
>>692133
Хотя не. 11000 строк это всякие левые хидеры вроде type_traits. Сам вектор где-то с 7900-й строки и почти до конца.

Так что vector в C++14 это не 20к строк, а 3к. (и то, я не уверен, что всё с 7900-й строки до 11000-й это конкретно к вектору относится)

Ответы>>692173>>692181

19 Мар, 01:33 #499 #692173

>>692133
>>692172
Тем более, там 2 вектора: общий шаблон + vector<bool> специализация.

Так что и близко не 20к строк :3

Ответы>>692175>>692180

19 Мар, 01:38 #500 #692175

>>692173
Вектор булов еще не отменили?

Ответы>>692176

19 Мар, 01:40 #501 #692176

>>692175
А с чего его отменять?

34 Кб, 1440x852

19 Мар, 01:57 #502 #692180

>>692173
Короче, окончательная инфа: вектор начинается на строке 7900 и заканчивается на 8839. (это без специализации под bool). Итого, контейнер в C++14, в противоречие стонам истерички про 20к строк, можно написать менее чем в 1000 строк.
А если учесть, что там дофига пикрелейтед, то реальных строк там 500 и менее.

Ответы>>692185>>692193

19 Мар, 02:08 #503 #692181

>>692172
3к строк на вектор - ну ты подебил сразу.

Ответы>>692182>>692184

19 Мар, 02:12 #504 #692182

>>692181
> подебил
Как у тебя припекло от того, что можно дружить с выводом типов и писать не в 20к строк, а в 500. :3

Ответы>>692189>>692191

19 Мар, 02:13 #505 #692184

>>692181
Это же библиотечная реализация. Это норма.

19 Мар, 02:15 #506 #692185

>>692180
В MSVC на обычный вектор ушло 1700 на bool - 1100

19 Мар, 02:18 #507 #692189

>>692182
>не в 20к строк, а в 500
500 строк - это наивная реализация (у меня свой вектор - 400, из которых 250 - обертка над сишной либой). В GCC - около 3000.

Ответы>>692193

19 Мар, 02:18 #508 #692190

Ебать копать, за 3 дня в бамплимит улетаем

Ответы>>692214

19 Мар, 02:20 #509 #692191

>>692182
20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.

Ответы>>692195>>692196

19 Мар, 02:20 #510 #692193

>>692189
> В GCC - около 3000.
Да що ви такое говоrите?
Я тут >>692180 разбирал по частям вектор из gcc. Там менее 1к строк.

Ответы>>692199

19 Мар, 02:22 #511 #692195

>>692191
А зойчем ви-таки хотите rуками виписывать всю бюrокrатию? Ви-таки не знаете, что темплейты сами умеют виписываться?

19 Мар, 02:23 #512 #692196

>>692191
>692182
>20к и даже 100к у тебя будет, если ты для каждого типа будешь выписывать всю бюрократию.
Ты ошибаешься. Нет там никакой бюрократии относительно const/не const.
Короче, ты не шаришь, как выводится тип. Там ничего сложного нет. Тебе нужно прочитать из нового маерса всего 2 главы: собственно "вывод типа" и move-семантика

19 Мар, 02:25 #513 #692198

Забавно: первое место, где пришлось применить новый стандарт, - это двач.

19 Мар, 02:26 #514 #692199

>>692193
У меня stl_vector - 1565 с комментариями.

Ответы>>692201>>692202>>692203

19 Мар, 02:28 #515 #692201

>>692199
пгепгоцессог гежет комментагии :(

19 Мар, 02:29 #516 #692202

>>692199
таки тепегь ясно, откуда там так много пустых стгок
там были комментагии

19 Мар, 02:34 #517 #692203

>>692199
комментагии не особо стоит считать.
В clang libc++ там вообще rилейтед куски стандагта копипастятся в комментагии пегед геализацией каждого контейнера.

19 Мар, 03:19 #518 #692214

>>692190
С чем связан лимит в 500 постов?

Ответы>>692244>>692289

19 Мар, 06:06 #519 #692235

>>691893
>>691893
Лор то тут при чём вообще?

Ответы>>693152

19 Мар, 06:44 #520 #692239

Блять! Захожу на сайт из шапки http://www.qt.io/ru/, чтобы скачать Qt Creator, с которым работал год назад и обнаруживаю, что он сука платный. Я не ошибся или моя голова с похмелья не дает мне видеть истину сквозь "Free trial only 30 days"?

Ответы>>692288>>692290>>692291

19 Мар, 08:37 #521 #692243

Как удалить элементы из двоичного файла? По какому принципу?

Ответы>>692259>>692260>>692306

19 Мар, 08:37 #522 #692244

>>692214
Тоже никогда не мог понять такой хуйни

19 Мар, 09:45 #523 #692259

>>692243
help

19 Мар, 09:47 #524 #692260

>>692243
>>692243
Нихуя не понимаю, ни одного слова блядь!

Ответы>>692261

19 Мар, 09:50 #525 #692261

>>692260
В двоичном файле записана сплошняком информация, мне нужно удалить отдельные элементы из файла, отвечающие условиям которые вас ебать не должны. Яснее?

Ответы>>692306

19 Мар, 11:42 #526 #692287

>>691881
Style Guide принятый в книге:
http://stroustrup.com/Programming/PPP-style.pdf

Ответы>>692409>>692413

19 Мар, 11:49 #527 #692288

>>692239
Ищи Community version \ edition

19 Мар, 11:49 #528 #692289

>>692214
>>692214
В древности машины были слабы, а программы требовали большой доли оптимизации...

19 Мар, 11:49 #529 #692290

>>692239
http://www.qt.io/ru/download-open-source/

19 Мар, 11:50 #530 #692291

>>692239
>вонаби прогер
>не может разобраться с сайтом

19 Мар, 11:56 #531 #692293

Стянул Qt 5.6, следует ли удалять 5.5.1 ?

19 Мар, 12:16 #532 #692300

Котаны, накидайте-ка мне доводов в защиту c++98 перед c++11

Ответы>>692301>>692302>>692304>>692369>>692383

19 Мар, 12:17 #533 #692301

>>692300
Раньше было лучше

19 Мар, 12:18 #534 #692302

>>692300
лямбды — сложна

19 Мар, 12:20 #535 #692304

>>692300
Эксепшны наше всьо

19 Мар, 12:31 #536 #692306

>>692243
>>692261

19 Мар, 14:09 #537 #692369

>>692300
98 > 11

Ответы>>692370

19 Мар, 14:09 #538 #692370

>>692369
true

19 Мар, 14:10 #539 #692371

>>692135
сделал std::vector<Wheel&> и std::vector<const Wheel&>

TDM 4.8 выдаёт ошибку
error: forming pointer to reference type 'const {anonymous}::Wheel&'

И вообще, зачем иметь вектор ссылок? Бред же.

Ответы>>692373

19 Мар, 14:10 #540 #692372

>>691825
Всегда возвращай значения вычислений в исключениях. Так ты можешь получить результат выполнения функции из самых глубин стека.

19 Мар, 14:13 #541 #692373

>>692371
Более того, не компилируется даже
std::vector<const int> v1;

Ответы>>692378

19 Мар, 14:19 #542 #692378

>>692373
Спискоебы соснули
const int yoba[];

Ответы>>692380

23 Кб, 543x241

19 Мар, 14:19 #543 #692380

>>692378
Йоба отклеилась.

19 Мар, 14:37 #544 #692383

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

19 Мар, 15:16 #545 #692404

НОВЫЙ ТРЕД
https://2ch.hk/pr/res/692400.html (М)
https://2ch.hk/pr/res/692400.html (М)
https://2ch.hk/pr/res/692400.html (М)

19 Мар, 15:21 #546 #692409

>>692287
Цитата из книги (стр. 60):

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

Лол.

Ответы>>692413

19 Мар, 15:25 #547 #692413

>>692409
>Цитата из книги (стр. 60):
Там >>692287 десять страниц

Ответы>>692414

19 Мар, 15:27 #548 #692414

>>692413
>>691881

Ответы>>692422

19 Мар, 15:35 #549 #692422

>>692414
Ок

20 Мар, 07:43 #550 #693143

>>690203
спасибоо АНОН!!1 дал понять все!
ЧАЮ ТЕБЕ

20 Мар, 09:59 #551 #693152

>>692235
Linux.org.ru раздел форума development. Там шарят в gtk некоторые.

20 Мар, 19:24 #552 #693521

Вопрос по Qt.
Как можно уменьшить вес ехе'шника? Есть какие-нибудь хаки? Сразу говорю динамическая линковка идет нахуй.
Что угодно, что сделало бы вес проги меньше чем если юзать статик линковку+кучу флагов+upx. Спасибо.

20 Мар, 23:40 #553 #693732

>>688646 (OP)
Хочу вкатиться в игрострой. Это лучший для этого язык?

Ответы>>693955>>693957

21 Мар, 11:23 #554 #693955

>>693732
Да.

21 Мар, 11:24 #555 #693957

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

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

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion