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

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

 Аноним 10/01/16 Вск 00:15:05 #1 №622611 
14523741054930.png
Иные байтоебством тяготятся,
Но местный сброд, участливый к нему,
Алкает жадно: "Я согласен взяться!"

Ликуй же ныне, ибо есть чему:
В тред вполз с вопросом отрок из гейдева:
"Как мне хранить текстуры, не пойму?"

Лишь крестоблядок не сгорит от гнева
И будет поощрять столь низкий вздор,
Тщась разогнать тоску родного хлева,

Ведя пять дней с невеждой разговор.


TL;DR Читаешь https://goo.gl/kVaela , делаешь примеры и суешь в http://ideone.com , ошибки копипастишь в гугл, непонятное ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее. И прочитай FAQ, расположенный ниже, в нем много полезного.

Унаследованная памятка:

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

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

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

FAQ:

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

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

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

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

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование 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

Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
Бьерн Страуструп - Язык программирования C++ (2010) - https://goo.gl/iZBDiV
Стандарт C++14 (на ангельском) - https://github.com/cplusplus/draft/raw/master/papers/n4140.pdf
Последняя на данный момент версия черновика стандарта C++17 (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf

Тонкости языка (для гурманов):
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC
Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512

Также для легкого чтения подойдет книжка c историей создания C++:
Бьерн Страуструп - Дизайн и эволюция C++ (1994) - https://goo.gl/FqbPwo

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

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

Q: Ты охуел? В этих книгах по тысяче страниц! Хочу коротких статей.
A: Вот тебе блоги, факи, референсы и всякое такое:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru
Блог с хорошо расписанными фичами новых стандартов - http://scrutator.me
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/ или более подробно на ангельском http://en.cppreference.com/w
Блог Герба Саттера (на ангельском) - http://herbsutter.com
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru
Блог еще одной тянки, много о Qt и оптимизации (на ангельском) - https://katecpp.wordpress.com
Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq

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

Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
Среди прочих есть несколько курсов по C++ - https://stepic.org

И еще есть вот такое, если проникся:
Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos

Q: Я готов начать погроммировать! Куда мне писать код?
A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".

Под *nix, как правило, уже предустановлен компилятор gcc (если нет, используй sudo aptitude install gcc), так что достаточно сохранить хэллоуворлд, набранный в текстовом редакторе, и выполнить g++ helloworld.cpp и ./a.out. Но удобнее установить какую-нибудь IDE, например, весьма удобную CodeLite (sudo aptitude install codelite codelite-plugins), и работать в ней. Ее также можно использовать и в шиндошс, но тогда сперва придется установить MinGW (http://mingw.org).

Еще у нас есть IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует - https://www.jetbrains.com/clion

Можно также не устанавливать ничего, а запускать свои хэллоуворлды на http://ideone.com, выбрав в левом нижнем углу язык C++14.

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

Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio - http://cppcheck.sourceforge.net
Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
Гугловские утилиты для контроля корректности кода - https://github.com/google/sanitizers
Гугловский фреймворк для автоматизации тестирования - https://code.google.com/p/googlemock

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

boost

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

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

http://www.boost.org - скачать бесплатно без смс.
http://www.solarix.ru/for_developers/cpp/boost/boost-library-list.shtml - краткие аннотации к большинству компонентов.
http://sindicollo.blogspot.ru/2008/09/boost.html - документация к некоторым компонентам.
http://www.boost.org/doc - документация (на ангельском).

Литература:
Ариндам Мукерджи - 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.х, полной обратной совместимости между ними нет как в пистоне, ага.

http://www.qt.io/ru - скачать бесплатно без смс.
http://doc.crossplatform.ru - документация к 4.8.
http://doc.qt.io - более полная документация к обеим версиям (на ангельском).

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

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

Несколько специализированных библиотек для часто встречающихся задач. Все маленькие, быстрые и простые в освоении:
libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году) - http://curl.haxx.se
SFML - работа с графикой и аудио - http://www.sfml-dev.org
FLTK - графические интерфейсы - http://fltk.org

И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs
Аноним 10/01/16 Вск 00:16:25 #2 №622612 
Предыдущие треды на архиваче:
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/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/
Аноним 10/01/16 Вск 01:37:23 #3 №622653 
14523790433670.png
Каким циклам в C++ соответствуют эти циклы repeat until?

Написал такую хуйню: https://ideone.com/hznxek
Аноним 10/01/16 Вск 01:38:55 #4 №622655 
>>622653
do while
Аноним 10/01/16 Вск 01:42:51 #5 №622656 
>>622655
Ты уверен? Обычно циклы с until работают до тех пор, пока НЕ выполнится условие until. Но все пидорасы в книгах об этом цикле думают по-разному.
Аноним 10/01/16 Вск 01:45:08 #6 №622658 
>>622656
По смыслу там не может быть do while, потому что здесь: while(v < p) i++; надо сканировать массив до тех пор, пока элементы меньше опорного. В do while пришлось бы добавить отрицание.
Аноним 10/01/16 Вск 02:33:20 #7 №622666 
Читаю Прата. Сейчас дошел до 9 главы. У меня возник вопрос. Вы это все помните наизусть или просто запоминаете какие возможности есть и лезете в мануал? Я просто очень изумлен тем, сколько возможностей есть на крестах.
Аноним 10/01/16 Вск 02:53:46 #8 №622678 
>>622666
Там азы написаны, мы знаем намного больше и помним о куче подводных камней.
Аноним 10/01/16 Вск 03:17:35 #9 №622686 
>>622666
Главное знать где и что искать. А подробности можно посмотреть на cppreference.com
Аноним 10/01/16 Вск 03:33:12 #10 №622692 
>>622678
Не прояснишь мне по поводу стека? Почему в нем операции выполняются быстрее, чем в куче?
Аноним 10/01/16 Вск 03:37:10 #11 №622696 
>>622692
Потому что стэк всегда лежит в кэше процессора, а обращение к оперативной памяти в случае cache miss занимает 200 тактов. Плюс выделение/освобождение памяти на стеке - это прибавление-вычитание 1 указателя, а в куче - зависит от аллокатора и деаллокатора. Стандартный malloc/free медленный.
Аноним 10/01/16 Вск 03:39:06 #12 №622699 
Если интересно про кэш, почитай лучшие сообщения у этого юзера http://rsdn.ru/Account/Info/38267
Аноним 10/01/16 Вск 03:40:16 #13 №622700 
>>622699
>>622696
Благодарю.
Аноним 10/01/16 Вск 03:47:23 #14 №622705 
>>622696
В общем случае скорость чтения из стека и кучи одинакова. Куча замедляется, только если она сильно фрагментирована.
Аноним 10/01/16 Вск 04:00:44 #15 №622713 
>>622705
Если данные вылетят из кешей, то лови чтение из оперативки. А кешей всего то ~35 мегабайт
Аноним 10/01/16 Вск 04:02:42 #16 №622715 
>>622705
В каком-таком общем случае, поехавший?
Аноним 10/01/16 Вск 04:04:26 #17 №622718 
>>622713
>35Мб
Это на йоба-серверах? Или я настолько отстал от жизни, что пропустил момент, когда стали распространенны процессоры с огромным кешем?
Аноним 10/01/16 Вск 05:10:51 #18 №622751 
>>622718
Он, видимо, дефисчик проебал.
Аноним 10/01/16 Вск 11:32:14 #19 №622837 
>>622526
>Что лучше freopen или fstream?
fstream

>>622597
>Для чего нужно явное создание экземпляров?
Для того же, для чего и явное создание переменных встроенных типов.

>>622611 (OP)
OP вообще красавчик со стихом в этот раз.
Аноним 10/01/16 Вск 12:20:07 #20 №622858 
Хочу заняться юнити разработкой , и подумываю над с# ,но в университете учил с++ и мне он нравится , можно ли как-то это совместить?
у меня будет где-то год-полгода фри (висеть на шее) , с каким из языков где-то после месяцев 6-9 можно делать хоть какие-то подделки и зарабатывать хотя бы на еду 2-3к рублей в месяц ?
Аноним 10/01/16 Вск 12:23:26 #21 №622859 
>>622837
>fstream
Почему?
Аноним 10/01/16 Вск 12:45:08 #22 №622870 
>>622859
Прочитать и вывести 100 мегабайт через fstream занимает 480 миллисекунд, а через freopen 6.8 СЕКУНД. В чём дело? Есть какие-нибудь подводные камни для этих способов ввода? Ничего кроме getline придумать не могу, но он везде работает.
Аноним 10/01/16 Вск 12:52:55 #23 №622873 
>>622718
6-8миб. Ошибся чутка
Аноним 10/01/16 Вск 12:54:20 #24 №622874 
>>622859
Потому что ты пишешь на C++ , а не C .
Аноним 10/01/16 Вск 13:03:41 #25 №622875 
Кто-нибудь пробовал модули в новой VS? Как их включить-то?
Аноним 10/01/16 Вск 15:33:58 #26 №622942 
Решил взять и прочитать Страуструпа в оригинале. Толк есть?
Аноним 10/01/16 Вск 16:22:58 #27 №622957 
14524321783360.png
Я ньюфаг, как в C++, так и в программировании вообще. Излагаю суть задачки. С помощью вложенных циклов (без использования массивов, короче) надо нарисовать в консоли шахматное поле, и на заданную пользователем клетку поставить слона, отметив на поле все клетки, по которым он может двигаться.
Я сделал вот так, но результат у меня кривой: http://ideone.com/CN3Ru7

Помогите выяснить, почему и что не так. Результат для d5 пикрелейтед.
Аноним 10/01/16 Вск 16:51:20 #28 №622977 
>>622957
Там где z ты хуитой какой-то занимаешся. Точнее не хуитой, там ходы слона высчитываются, а тебе конб нуэен.
Аноним 10/01/16 Вск 17:04:15 #29 №622983 
>>622977
Да нет, мне именно слон и нужен.
Просто одна полоса справа от позиции фигуры почему-то пропускается, а я всё не могу обнаружить, в чём проблема.
Аноним 10/01/16 Вск 17:16:51 #30 №623000 
Братцы, а может кто несколько лаб по Теории программирования сделать за вознаграждение?
Основы кодинга, знающему несложно вероятно будет. Сессия завтра.
Аноним 10/01/16 Вск 17:17:45 #31 №623001 
>>623000
Или я не в тот тред пишу?
Аноним 10/01/16 Вск 17:25:43 #32 №623004 
>>623001
Не в тот сайт.
Задания скинь, интересно почитать.
Аноним 10/01/16 Вск 17:28:31 #33 №623006 
>>623004
Лабораторная работа № 1
Классы. Основные понятия

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

Вариант 1==
Класс «Растение»
Поля: тип (дерево, куст и т.д.), высота и т.д.
Для поля «тип» использовать тип данных enum
Методы:
a. сравнение по высоте двух растений, в метод передается высота растения, с которым требуется сравнить текущее
b. сравнение по высоте двух растений, в метод передается экземпляр класса «Растение», с которым требуется сравнить текущее

И там 5 лаб. Скажите, большой ли это объем работы и в какую сумму может оцениваться?
Аноним 10/01/16 Вск 17:29:45 #34 №623008 
>>623006
\t перед a и b лишние.
фикс
Аноним 10/01/16 Вск 17:38:04 #35 №623009 
>>622957
В 46 строке, у тебя всегда выводить пробел, если не был выведено 'B'. А кроме этого пробел не нужно выводить если ты перед этим вывел '*'.
Аноним 10/01/16 Вск 17:38:40 #36 №623010 
>>623006
Хуйня ниачем. Оценят в самый минимум. Если ты по специальности погромизд, то этого вообще недостаточно.
Держи урок https://www.youtube.com/watch?v=EpjVri1AZZc
Аноним 10/01/16 Вск 17:40:24 #37 №623012 
>>623010
Но это задание целиком было, без моих решений.
Аноним 10/01/16 Вск 17:41:15 #38 №623013 
>>623010
За видео спасибо.
Аноним 10/01/16 Вск 17:43:59 #39 №623014 
> str.replace(str.find(str2),str2.length(),"preposition");
Почему здесь порядок ыполненя не нарушен? Он же может сначала str2.length() посчитать, а потом str.find(str2).
Аноним 10/01/16 Вск 17:45:12 #40 №623015 
>>622942
Нет. Выбери что-то другое.
Аноним 10/01/16 Вск 17:56:26 #41 №623019 
Хелп товарисчи! Проблема такая,я решил учить c++,до этого программированием вообще не занимался,читаю книгу из описания треда,там все начальные примеры приводятся в visual studio,подскажите где скачать норм версию,а то та что с оф сайта поломала мне винду 7.
Аноним 10/01/16 Вск 18:17:53 #42 №623034 
>>623009
Можно как-то пофиксить?
Пытаюсь запихнуть остальные условия (с выводом "B" и "*") в цикл с z, поебавшись при этом с break/continue - пока безуспешно, и, похоже, так и останется.
Аноним 10/01/16 Вск 18:47:13 #43 №623052 
>>623015
Я уже сносно умею в плюсы, что выбирать?
Аноним 10/01/16 Вск 18:48:33 #44 №623054 
>>623019
С оф сайта качай
Аноним 10/01/16 Вск 19:02:49 #45 №623058 
>>622611 (OP)
Анон, скажи когда уже будут модули?
Аноним 10/01/16 Вск 19:11:21 #46 №623065 
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf

тактактак, наканецта можно перегрузить operator.
Аноним 10/01/16 Вск 19:12:21 #47 №623067 
>>623065
И зачем оно надо?
Аноним 10/01/16 Вск 19:18:03 #48 №623072 
>>623058
так я так и сделал,но она обновления для винды ставит,после чего ни одна программа не запускается
Аноним 10/01/16 Вск 19:18:39 #49 №623073 
>>623067
operator-> уже есть, для симметрии
Аноним 10/01/16 Вск 19:40:10 #50 №623091 
>>623052
Либо любую современную книгу из шапки либо любой Мейерс
Аноним 10/01/16 Вск 19:44:05 #51 №623096 
Хочу заняться юнити разработкой , и подумываю над с# ,но в университете учил с++ и мне он нравится , можно ли как-то это совместить?
у меня будет где-то год-полгода фри (висеть на шее) , с каким из языков где-то после месяцев 6-9 можно делать хоть какие-то подделки и зарабатывать хотя бы на еду 2-3к рублей в месяц ?
Аноним 10/01/16 Вск 19:49:31 #52 №623104 
>>623091
Спасибо
Аноним 10/01/16 Вск 19:52:17 #53 №623105 
>>623096
>но в университете учил с++
Разве в университетах не преподают обычный Си только с классами (то есть древний как говно мамонта С++)?
>, и подумываю над с#
У шарпоблядей свой тред. Вообще, если ты знаешь Си или С++, тебе любой язык будет даваться намного проще, так как от Си пошли большинство ЯО, а С++ включает в себя огромное количество идей. Но я сомневаюсь, что ты в универе учил С++.
Аноним 10/01/16 Вск 20:06:12 #54 №623113 
14524455726860.png
>>623105
>ЯО
Хотел запостить ядерное оружие, но почему-то у гугла ЯО ассоциируется с чем-то другим.
Аноним 10/01/16 Вск 20:10:01 #55 №623116 
>>623113
>яой
Аноним 10/01/16 Вск 20:13:48 #56 №623119 
>>623113
Интересно. А какие языки программирование используют военные, имеющие отношение к такому оружию?
Аноним 10/01/16 Вск 20:14:35 #57 №623121 
>>623119
Ада?
Аноним 10/01/16 Вск 20:14:44 #58 №623122 
>>623119
Паскаль, отвечаю
Аноним 10/01/16 Вск 20:15:27 #59 №623123 
>>623119
хтмл и цсс
Аноним 10/01/16 Вск 20:16:55 #60 №623125 
>>623121
Хм. Вполне может быть. Я слышал только о автоматизированных и бортовых системах.

>>623122
Может Фортран тогда уж?

>>623123
Тогда нам конец.
Аноним 10/01/16 Вск 20:56:53 #61 №623170 
>>622858
udk
Аноним 10/01/16 Вск 22:02:23 #62 №623233 
Хочу сделать типа виджетик на рабочий стол на qt. Нагуглил что это делается через Qt::WindowStaysOnBottomHint .Создаю новый проект в Qt Creator`e, добавляю одну строчку:
[code]
#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.setWindowFlags(Qt::WindowStaysOnBottomHint); //this
w.show();

return a.exec();
}
[/code]
ничего не меняется, окно как окно. Меняю Bottom на Top - окно исправно висит поверх остальных. qt-opensource-windows-x86-mingw492-5.5.1 ЧЯДНТ?

https://doc.qt.io/qt-5/qt.html#WindowType-enum
>Informs the window system that the window should stay on bottom of all other windows. Note that on X11 this hint will work only in window managers that support _NET_WM_STATE_BELOW atom. If a window always on the bottom has a parent, the parent will also be left on the bottom. This window hint is currently not implemented for OS X.
Написано, что не работает в OS X, про windows ничего, намекает на то, что должно работать.
Аноним 10/01/16 Вск 22:22:47 #63 №623250 
>>623105
ну не то что я прям учил с++ , на 1 семестре алгоритмы на с++ , на втором пролог и лисп , 3 и 4 семестр ооп на с++ , а на 5 асп.нет на шарпе , учился на граф.дизайнере но понял , на ласт семестре что не мое и хочу быть программистом , учюсь в польще (мимохохол)
Аноним 11/01/16 Пнд 00:11:39 #64 №623295 
Можно ли в класс запихнуть переменную, которая будет считать количество объектов? Как это сделать?
Аноним 11/01/16 Пнд 00:15:20 #65 №623296 
>>623295
Статическая переменная, инкриментируй при вызове конструктора.
Аноним 11/01/16 Пнд 00:21:10 #66 №623300 
>>623296
https://ideone.com/NZJucu
Пишет без константы никак.
Аноним 11/01/16 Пнд 00:27:45 #67 №623304 
>>623300
Инициализируй не при объявлении.
Аноним 11/01/16 Пнд 00:28:22 #68 №623305 
>>623300
А. Кажется понял. Надо было сделать после объявления класса что-то вроде:
int A::counter = 0;
Так?
Аноним 11/01/16 Пнд 15:21:06 #69 №623324 
>>623300
https://ideone.com/WNADdy

было: ошибка: ISO C++ запрещает инициализацию внутри класса неконстантного статического элемента «A::counter»
Аноним 11/01/16 Пнд 16:53:38 #70 №623363 
>>623324
почему так нельзя?
Аноним 11/01/16 Пнд 18:27:52 #71 №623419 
>>623363
> почему так нельзя?
Ну, Страусс утверждает что якобы если такое разрешить то плюсы поломаются http://www.stroustrup.com/bs_faq2.html#in-class но, честно говоря, я не понимаю в чем проблема.
Аноним 11/01/16 Пнд 19:28:55 #72 №623460 
>>623363
Ты создал объект, изменил значение этой переменной. И создаешь другой объект. Какое значение будет у нового объекта?
А в разных модулях могут быть разные static storage и в них разные значения твоей переменной. Как все это отслеживать?
Аноним 11/01/16 Пнд 19:32:43 #73 №623464 
>>623419
Короче, как всегда. Старпёры не хотели забивать на убогие компоновщики или тупо не осилили.
Зато на модули какой хайп подняли, стены дрожат.
Аноним 11/01/16 Пнд 19:34:11 #74 №623465 
>>623464
Хотя вроде же это в новом стандарте есть или будет, не?
Аноним 11/01/16 Пнд 19:35:12 #75 №623466 
>>623464
Илюшь, съеби обратно в го-вно тред.
Аноним 11/01/16 Пнд 19:55:54 #76 №623477 
>>623465
Нестатические члены можно так инициализировать.
Аноним 11/01/16 Пнд 21:27:02 #77 №623539 
14525368225560.jpg
Вопрос по qt,
QObject::connect(this->obj_timer, SIGNAL(timeout()), this->objcts, SLOT(RefreshOL()));
obj_timer, objcts - объекты структуры, откуда исходит коннект
Ошибка на 40 строк, я уж не знаю, что забыл тут
Помню, была подобная ошибка, решалась парой символов
Аноним 11/01/16 Пнд 21:54:07 #78 №623557 
>>622858
На c++ библиотеки. Из шарпа тупо к ним обращаешься. Вижу так. Буду пробовать так когда-нибудь.

istringstream, ostringstream, stringbuf - в чём необходимость этого при наличии stringstream? Вроде об одно и том же, на первый взгляд.
Аноним 11/01/16 Пнд 21:57:50 #79 №623561 
Какие подводные камни могут быть при использовании ссылок? Сейчас читаю про них, вроде достаточно удобная штука. Позволяет сделать код немного более читабельным и избежать в некоторых случаях не нужного копирования. Просто я заметил что есть срач из-за них. В чем же недостаток их применения?
Аноним 11/01/16 Пнд 22:02:17 #80 №623564 
>>623561
Недостатков нет. Просто сложнее чем указатели. Разве что операции с указателями не выбрасывают исключений.
Аноним 11/01/16 Пнд 22:54:01 #81 №623598 
>>623561
Нельзя изменить ссылку. Значение по ссылке - да, но не саму ссылку.

Ну и в некоторых случаях можно отстрелить ноги, если исходный объект умрёт раньше ссылки.
Аноним 11/01/16 Пнд 23:31:32 #82 №623607 
Я правильно понимаю, что целесообразно наследовать класс как private тогда, когда необходимо получить все свойства и методы так, чтобы они были доступны только в пределах класса?
Аноним 12/01/16 Втр 00:02:22 #83 №623616 
Как начать обмазываться исключениями? Читал, что это вообще очень неодназначная сложная штука, и код надо строить именно вокруг обработки исключений.
Аноним 12/01/16 Втр 00:04:39 #84 №623618 
Интеллектуальные указатели - надо, нет? Когда целесообразно использовать?
Аноним 12/01/16 Втр 00:56:05 #85 №623636 
>>623616
Код с исключения течет как твоя мамаша, а чтобы не текло, нужно обмазыватья RAII и только RAII, а также copy-and-swap и прочими методиками.
>>623618
Не надо использовать в одном случае - когда нет владения и ты 1000% уверен, что объект будет жить дольше, чем указатель. В остальных случаях надо.
Аноним 12/01/16 Втр 01:00:17 #86 №623638 
>>623607
Да.

Но целесробразно ли вообще приватно наследовать класс - другой вопрос.
Аноним 12/01/16 Втр 01:11:28 #87 №623648 
>>623636
Владение - это когда я в одной сущности создаю другую?
Аноним 12/01/16 Втр 01:14:09 #88 №623650 
Вот скажите, тако вообще возможно? Чтобы код сам себя редактировал и изменял, вносил правки?
Аноним 12/01/16 Втр 01:57:22 #89 №623772 
>>623650
В крестах без подключения нестандартных расширений - нет. Это же не интерпретируемый язык, в рантайме остаются только машинные команды, а исходники неизвестны уже. Можно сделать самомодификацию на уровне ассемблерного кода, но это все будет нестандартным, платформозависимым, и потребуется, возможно, менять настройки оси, чтобы разрешить перезаписывать сегмент команд.
Аноним 12/01/16 Втр 01:58:19 #90 №623774 
>>623648
Владение - это когда при уничтожении обладающего объекта должен уничтожиться обладаемый (или уменьшиться его счетчик ссылок при соместном владении). Например, vector владеет тем, что в нем хранится, и при уничтожении вектора в его деструкторе он пройдется по своим членам и вызовет деструктор каждого.

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

Поэтому тебе нужно придумать владельца (например, Graph), внутри которого будут unique_ptr на каждую из нод (и при уничтожении Graph у тебя уничтожатся ноды), а вот между нодами уже можно делать обыкновенные простые указатели. Или shared_ptr, если ты хочешь делить ноды между графами, тогда между нодами можно будет завести weak_ptr. Далее, придется написать ad-hoc сбощик мусора в классе Graph, который бы подчищал память.
>>623650
Это называется метапрограммирование.
Аноним 12/01/16 Втр 02:00:03 #91 №623775 
>>623772
В общем — это черная магия?
Аноним 12/01/16 Втр 02:00:28 #92 №623776 
>>623638
Про это хорошо написано у Саттера-Александреску в Coding Standards. Приватное наследование это, по сути, аналог композиции, и композицию обычно использовать лучше. Но бывают ситуации, когда это не так, например, если ты пилишь стратегии и хочешь, чтобы пустой базовый класс оптимизировался и не жрал памяти.
Аноним 12/01/16 Втр 02:01:38 #93 №623777 
>>623775
Да, это используют обычно только для вирусов и прочей хуйни, где иначе никак. Надежность очень маленькая.
Аноним 12/01/16 Втр 02:23:23 #94 №623780 
>>623019
Ты сначала винду с офсайта скачай, вообще по софту вопросы в /s задают.
Аноним 12/01/16 Втр 02:56:01 #95 №623787 
>>623772
Еще вот что вспомнил. Была такая либа типа http://demonastery.org/2011/04/c-eval-hell-yes/ , возможно, что не именно эта, но суть та же - она не самомодифицировалась, а компилировала новую версию своего кода установленным в системе gcc, после чего делала exec на новый бинарник, чтобы дальше выполнялся он. Такой аналог eval из интерпретируемой параши. Работало довольно медленно, поэтому с большой софтиной пришлось бы долго ждать перекомпиляции, но все равно интересная штука. Возможно, тебе подойдет.
Аноним 12/01/16 Втр 02:57:18 #96 №623788 
>>623539
obj_timer и objcts — действительно у наследованы от QObject?
алсо Q_OBJECT макрос нигде не проебал?
Аноним 12/01/16 Втр 02:58:03 #97 №623789 
>>623787
Сейчас есть cling и llvm-jit, не нужно каждый раз мир перекомпилировать.
Аноним 12/01/16 Втр 02:58:19 #98 №623790 
Правда, с оптимизациями там не очень весело.
Аноним 12/01/16 Втр 02:58:48 #99 №623791 
Ребят, установил убунту, а потом уже задумался, хоть куда-то берут на работу если под Линуксом кодишь?
Аноним 12/01/16 Втр 03:02:25 #100 №623792 
>>623791
берут
хотя знания винды, макоси, андроида и айоса очень пригодятся
Аноним 12/01/16 Втр 03:04:50 #101 №623794 
>>623792
Ну на яблоки у студента денег точно нет. Понял, спасибо за ответ.
Аноним 12/01/16 Втр 03:07:14 #102 №623795 
>>623794
юзай хакинтош
Аноним 12/01/16 Втр 03:10:12 #103 №623797 
>>623795
На виртуалке, что ли? Хорошая идея.
Аноним 12/01/16 Втр 03:32:43 #104 №623806 
>>623789
Там скорость страдает, не?
Аноним 12/01/16 Втр 05:32:36 #105 №623827 
>>623806
Оптимизации некоторые недоступны, но один хрен быстрее Java.
Аноним 12/01/16 Втр 08:59:29 #106 №623866 
>>623791
Если компания пишет не виндоус-специфик код, то все на линупсах сидят.
Аноним 12/01/16 Втр 08:59:59 #107 №623867 
>>623795
Но зачем?
Аноним 12/01/16 Втр 09:10:23 #108 №623874 
>>623866
А не пояснишь по поводу вышки. Это обязательное условие? Или просто надо показать на собеседовании себя хорошо?
Аноним 12/01/16 Втр 10:13:27 #109 №623893 
>>623867
ПОТОМУ ЧТО МЫ ПЛОТИМ ЭТИМ ПАРАЗИТАМ, ВОТ ПУЩАЙ СТРАДАЮТ!!!111 НАПОКУПАЮТ РАБАМ ЯБЛОК, А ПОТОМ ОНИ РАБОТАТЬ НЕ ХОТЯТ
Аноним 12/01/16 Втр 10:16:32 #110 №623896 
>>623893
сюда >>623866
Аноним 12/01/16 Втр 11:21:56 #111 №623920 
что хорошего в visual studio? Громоздкое говно, да еще и переустанавливать муторно. Чем ecipse хуже например? Посоветуйте ide for C++ кроме вс.
Аноним 12/01/16 Втр 11:34:19 #112 №623922 
>>623920
>Чем ecipse хуже например?
1. кол-во NullPointerException за единицу времени
2. уебаношным интерфейсом

>Посоветуйте ide for C++ кроме вс.
kdevelop
Аноним 12/01/16 Втр 11:35:50 #113 №623923 
>>623920
Код блокс
Аноним 12/01/16 Втр 11:41:10 #114 №623928 
>>623920
На порядок удобнее всего остального, так что прощаются все косяки, да с запасом.

Из легковесных пробуй CodeLite, там тоже неплохое автодополнение, хотя сильно хуже, конечно же.
Аноним 12/01/16 Втр 12:19:54 #115 №623938 
>>623788
Проебал, действительно
Аноним 12/01/16 Втр 14:51:41 #116 №624078 
14525995017530.jpg
14525995017591.jpg
Есть идеи?
Аноним 12/01/16 Втр 15:18:29 #117 №624097 
>>624078
ограничения по памяти есть?
Аноним 12/01/16 Втр 15:19:23 #118 №624098 
>>624097
128 мегабайт. По времени только 1 секунда.
sageАноним 12/01/16 Втр 15:19:51 #119 №624099 
>>624078
За О(M) в среднем делается проверка на интересность (если прикрутить массив из ста ячеек и нехитрую логику, которая будет дропать итерацию, как только число встретилось не первый раз, а предыдущее ему не равно). Всего проверок надо будет 2^100 (максимум можно выбросить сто чисел, всего вариантов будет сумма биномиальных коэффициентов). На 10к должно 2^100*O(M) должно летать, так что вперед.
Аноним 12/01/16 Втр 15:24:24 #120 №624101 
>>624099
>На 10к должно 2^100*O(M) должно летать, так что вперед.
петросян.жпег

>>624098
>>624078
кароче, идеи такие:
1. "интересность" — это значит что последовательность состоит из наборов AAAABBCDDEE, т.е. одинаковые числа должны идти подряд вместе
2. чтобы получить интересную последовательность, нужно либо удалить все числа на промежутках между двумя одинаковыми, либо сами одинаковые числа
Аноним 12/01/16 Втр 15:25:49 #121 №624103 
>>624101
т.е. имея ABCADEA, нужно либо сносить B,C,D,E либо A
Аноним 12/01/16 Втр 15:29:33 #122 №624109 
>>624101
>между двумя одинаковыми
1 2 5 4 6 7 8
Аноним 12/01/16 Втр 15:33:35 #123 №624116 
>>623922
Sublime Text + cmake + scan build + valgrind + gdb + компилятор (выставишь через cmake нужный).
Аноним 12/01/16 Втр 15:50:36 #124 №624129 
>>624101
И как выбрать? Нетривиальный алгоритм уже будет. К примеру, CBCBBB. С точки зрения C, надо удалять B, ибо 2 против 1, а с точки зрения B (и на самом деле) надо удалять C, ибо 4 против 2. В сложном случае придется многократно обходить всю последовательность, чтобы понять, что же действительно надо удалять в первую очередь. А разделять и властвовать не получится, пример выше показывает, что локальная оптимальность не дает правильного ответа.
Аноним 12/01/16 Втр 15:51:58 #125 №624132 
>>624078
если есть последовательность ABCABDA, то очевидно, что:
1. если в искомой посл. есть A, то в искомой посл. не может быть B,C,D
2. если в искомой посл. есть B, то не может быть A,C
3. если есть C, то не может быть A,B
4. если есть D, то не может быть A

т.е. получается какой-то граф..
Аноним 12/01/16 Втр 15:53:27 #126 №624136 
>>624129
Двумерная динамика наверно.
Аноним 12/01/16 Втр 15:55:15 #127 №624138 
>>624132
>т.е. получается какой-то граф..
Можешь его нарисовать для твоего примера?
Аноним 12/01/16 Втр 16:10:33 #128 №624151 
14526042339460.png
>>624138
Аноним 12/01/16 Втр 16:13:30 #129 №624156 
>>624151
Это и я сделал, но как веса рёбер поставить разница количества повторов? и что искать?
Аноним 12/01/16 Втр 16:19:59 #130 №624164 
14526047992390.png
>>624156
альтернативно можно вот так
Аноним 12/01/16 Втр 16:45:59 #131 №624191 
>>624164
проще не стало
Аноним 12/01/16 Втр 19:00:17 #132 №624300 
>>623874
Что? Какая вышка?
Аноним 12/01/16 Втр 19:02:44 #133 №624305 
>>623920
Пожалуй, самая мощная среда разработки, в которой есть все. Ещё и бесплатная. А новый режим дебага с анализом памяти вообще красота.

Но для лабы2 ничего этого не нужно.
Да и не только лабы2.
st3+clang+gdb достаточно
Аноним 12/01/16 Втр 19:03:41 #134 №624308 
>>624116
Два успешных билда этому.
Аноним 12/01/16 Втр 20:26:36 #135 №624364 
>>624078
Если упростить формулировку, то это задача на поиск длиннейшей не убывающей подпоследовательности

За O(n^2) можно сходу решить, n - длина начальной последовательности
Аноним 12/01/16 Втр 20:38:39 #136 №624373 
>>624078
>к концу года задачи становятся труднее и интереснее
>увлекательнейшую задачу
>интересная последовательность
Даун-аутист пытается вызвать ИНТЕРЕС к своему говну, но не может, и поэтому от бессильности заставить людей есть говно увлекает их ИНТЕРЕСНЫМИ эпитетами. Прямо как Лавкрафт, который пугает СТРАШНЫМИ словами.
Аноним 12/01/16 Втр 21:00:04 #137 №624392 
>>624364
нихуя. там нужно числа в начале выкидывать тоже
Аноним 12/01/16 Втр 21:46:59 #138 №624426 
>>624132
Так что с алгоритмом? Он пока самым правдоподобным выглядит.
Аноним 12/01/16 Втр 22:15:25 #139 №624444 
14526261256540.png
Обязательно ли регаться? Там телефон требуют
Аноним 12/01/16 Втр 22:24:18 #140 №624450 
>>624444
Не знаю точно, но абсолютно уверен что нет
Аноним 12/01/16 Втр 22:25:11 #141 №624452 
Что же делать. Как их наебать
Аноним 12/01/16 Втр 22:35:23 #142 №624454 
ЕБУЧИЕ МАЙКРОСОФТОБЛЯДИ, НАЕБЫВАЮТ УЖЕ С САМОГО НАЧАЛА. НУЖНО БЫЛО СКАЧИВАТЬ ИСО А НЕ ВЕБ УСТАНОВЩИК. А ВЕБ УСТАНОВЩИХ ЛЕЖИТ ГДЕ-ТО В ЕБУЧИХ ЗАГРУЗКАХ, НЕТ БЛЯТЬ ПИДОРЫ СРАЗУ ПРЕДОСТАВИТЬ ВЫБОР ЧТО СКАЧИВАТЬ, ТАК ЭТИ УЕБКИ МНЕ-НАЧИНАЮЩЕМУ ЗНАКОМИТЬСЯ С ИХ ПРОДУКТОМ ПОДСОВЫВАЮТ ЕБУЧИЙ ТРИАЛ, ПИДОРЫ, ГОРИТЕ В АДУ
Аноним 12/01/16 Втр 22:35:50 #143 №624455 
>>624444
>Там телефон требуют
Твоей мамки?
Аноним 12/01/16 Втр 22:38:43 #144 №624456 
>>624444
Хуйня какая-то, если честно. Community edition должна быть бесплатна, пиздос какой-то, может там просто надо учётную запись создать или еще какую-то поеботу, но она 100% должна быть бесплатна, а имеет почти всё ,что нужно.
Аноним 12/01/16 Втр 22:38:50 #145 №624457 
>>624454
>А ВЕБ УСТАНОВЩИХ ЛЕЖИТ
исо
Аноним 12/01/16 Втр 22:41:43 #146 №624459 
Скачиваю исошник 5 гигов, удаляю старую вс, будет пиздец как круто, если исошник потребует у меня регистрации. Ебучий вижуал, еще не начал, но уже думаю съебывать.
Аноним 12/01/16 Втр 22:46:16 #147 №624462 
>>624444
Дык запиши его, никто тебя не сдеанонит и на ебло ссать не станет. Денег не снимают, просто зарегаться просят.
Аноним 12/01/16 Втр 22:47:03 #148 №624463 
>>624462
Я аноним
Аноним 12/01/16 Втр 22:47:06 #149 №624464 
>>624456
Бесплатна. Учетную запись надо.
Аноним 12/01/16 Втр 22:47:20 #150 №624466 
>>624454
Я те щас секрет открою: ты - даун.
>>624459
В чём блядь проблема зарегестрироваться-то?
Аноним 12/01/16 Втр 22:47:54 #151 №624467 
>>624466
Телефон - деанон
Аноним 12/01/16 Втр 22:48:41 #152 №624468 
>>624463
Значит зарегай на свою мамку/папку/бабку/кота.
Палю годноту для совсем ананасиков: https://www.google.ru/search?client=ubuntu&channel=fs&q=online+phone+number+for+verification&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=OGGVVoicGIrIYMPZpMAM
Аноним 12/01/16 Втр 22:49:30 #153 №624469 
>>624467
Перед кем? Пиндосами, у которых таких миллиона? В заговор массонов-рептилоидов веришь?
Аноним 12/01/16 Втр 23:03:41 #154 №624475 
14526290213250.png
Нажал удаление. Что он делает?
Аноним 12/01/16 Втр 23:05:27 #155 №624480 
>>623920
>переустанавливать муторно
Зачем переустанавливать?
Аноним 12/01/16 Втр 23:06:01 #156 №624481 
>>624480
>>624459
Аноним 12/01/16 Втр 23:44:49 #157 №624516 
>>624078
бамп
Аноним 12/01/16 Втр 23:46:54 #158 №624518 
Бля, это что, Bridge и есть пимпл? Охуеть.
Аноним 13/01/16 Срд 00:15:58 #159 №624532 
>>624518
Wut?
Аноним 13/01/16 Срд 06:17:25 #160 №624597 
>>624151
>>624132
Охуенная идея, кстати. Два чая придумавшему анону.
Аноним 13/01/16 Срд 06:19:10 #161 №624599 
>>624373
>интересная последовательность
Дурачок, я эту задачу уже не в первый раз встречаю. Про "интересность" не тот анон придумал, чтобы заманить, это условие такое в оригинале.
Аноним 13/01/16 Срд 07:51:11 #162 №624620 
14526606716950.jpg
Итак, джентельмены, настало время:
а)
int main()
{

}

или

б)
int main() {

}
Аноним 13/01/16 Срд 08:08:38 #163 №624622 
>>624620
"а" разумеется, "б" говно вырвиглазное.
Аноним 13/01/16 Срд 08:25:15 #164 №624626 
>>624620
Чтобы никому обидно не было.
[code lang="cpp"]
int main () {
{
return 0;
}
}
[/code]
Аноним 13/01/16 Срд 08:25:15 #165 №624627 
>>624620
Не принципиально. Вот у if/while/for нужно использовать только { на той же строчке (а) используют только ньюфаги, пришедшие с паскаля, да Штульман), а для функций - не принципиально, но лучше унифицировать с if/while/for, почему нет. Ведро, книги K&R и Страуструпа, хромиумы и прочее говно используют б) (точнее, Страуструп использует а) для функций, но он вообще обожает влепить где-нибудь ебнутый частный случай). Короче, только 1TBS.
Аноним 13/01/16 Срд 08:26:59 #166 №624629 
14526628197860.png
>>624626
Аноним 13/01/16 Срд 09:03:39 #167 №624636 
>>624620
Только (б). Экономим вертикальное пространство ибо функции должны умещается в 20 строк, каждая строчка на вес золота :3
Аноним 13/01/16 Срд 09:18:24 #168 №624645 
>>624636
Байтоеб чтоле или пиздонист?
Господа пишут с размахом, не экономя место, с пустыми строками для визуального разделения. Код получается легковесный, легко читаемый. И компактный, если ты не долбокряк.
Аноним 13/01/16 Срд 09:20:11 #169 №624646 
>>624645
Пустые строки для абзацев - это другое. В том-то и дело, что от этих висящих скобок толку нет, абзацевость только теряется.
Аноним 13/01/16 Срд 09:21:51 #170 №624647 
>>624645
Типичный совок.
Аноним 13/01/16 Срд 09:38:02 #171 №624652 
>>624620
int main() { }
Так пишу. Мои функции всегда помещаются в одну строку на монитоде 21/10. Пустые строки для пидорасов и нюфагов.
Аноним 13/01/16 Срд 10:02:15 #172 №624664 
14526685355510.png
>>623233
Пожалуй бампану.
Аноним 13/01/16 Срд 13:05:29 #173 №624756 
таки поставил ебучий вижуал студио профессионал. Спиратил с рутракера, зато не надо ебаться с регистрациями, истечением 30 дневного польования. Бляди из мелкософта сами подтталкивают к КРАЙНОСТЯМ
Аноним 13/01/16 Срд 13:08:25 #174 №624757 
>>624756
Он все равно стучит куда надо. Если у тебя десятка, то жди пативена
Аноним 13/01/16 Срд 13:09:12 #175 №624758 
>>624757
8
Аноним 13/01/16 Срд 13:16:52 #176 №624766 
>>624758
Сама обновится до 10-ки скоро :)
Аноним 13/01/16 Срд 13:17:00 #177 №624767 
Если ты студент, MS тебе бесплатно может все это дать.
Аноним 13/01/16 Срд 13:19:16 #178 №624770 
>>624767
Там регаться надо и телефон давать
Аноним 13/01/16 Срд 13:29:55 #179 №624782 
>>624770
Не надо никакого телефона, блджад, необучаемая сука. Dreamspark-логин выдают по почте в домене .edu или аккаунту втентакле, Dreamspark Premium можно получить у админа в своем вузе. И все, блядь, сразу получаешь ключи, никакого телефона не нужно.
Аноним 13/01/16 Срд 13:30:59 #180 №624783 
>>624782
Пошел нахуй, студентоблядь
Аноним 13/01/16 Срд 13:32:34 #181 №624784 
>>624783
Иди заплати Балмеру еще 5к зелени за топовую версию студии, пока я получаю все бесплатно, маня.
Аноним 13/01/16 Срд 13:47:38 #182 №624791 
>>624784
Пфф, я вообще в кьют криейторе пишу.
Аноним 13/01/16 Срд 14:24:57 #183 №624810 
>>624597
но что дальше? я просто н понимаю какой путь искать и какие веса рёбрам/вершинам ставить.
Аноним 13/01/16 Срд 14:38:58 #184 №624816 
>>624810
Ну раз единственное действие это удалить все вхождения, то, наверное, нужно весами ставить общее количество экземпляров числа. А потом добиваться отсутствия ребер удалением суммарно наименьшего веса вершин.
Аноним 13/01/16 Срд 14:39:47 #185 №624817 
Заменяем каждый элемент на тройку [элемент; индекс первой встречи; индекс последней встречи; количество].

Получается набор отрезков. Если 2 отрезка пересекаются, значит такой комбинации быть не может.

Гуглим задачу non intersecting objects maximum, это https://en.wikipedia.org/wiki/Maximum_disjoint_set#1-dimensional_intervals:_exact_polynomial_algorithm . Все?
Аноним 13/01/16 Срд 14:40:16 #186 №624819 
>>624647
Свои лабы можешь писать как угодно.
А в индустрии ценится читаемый и понятный код, а не выкрутасы уровня куайнов
Аноним 13/01/16 Срд 14:41:34 #187 №624820 
>>624756
Но зачем? Коммунити версия просит только лайв аккаунт. И все. Каждый месяц просто заново заходишь в свой аккаунт из студии, и лицензия обновляется
Аноним 13/01/16 Срд 14:41:58 #188 №624821 
>>624817
Точнее, нужен weighted max disjoint set, потому что у нас есть веса - количества элементов.
Аноним 13/01/16 Срд 14:42:56 #189 №624822 
>>624816
> суммарно наименьшего веса вершин
Не понял что это. Он будет минимальный если вообще не брать вершин.
Аноним 13/01/16 Срд 14:47:26 #190 №624824 
>>622611 (OP)
Седжвика из пасты нирикомендую. Перевод лютое говно, убивающее желание читать.
Аноним 13/01/16 Срд 15:03:52 #191 №624831 
>>624791
там не чистый C++
Аноним 13/01/16 Срд 15:06:14 #192 №624832 
>>624831
Можно напердолить под чистый c++
Аноним 13/01/16 Срд 15:16:15 #193 №624834 
>>624822
Ты удоляешь вершины так, чтобы граф стал без ребер (компонент связности столько же, сколько вершин), но при этом из всех вариантов выбираешь тот, где сумма весов удаляемых вершин наименьшая.
Аноним 13/01/16 Срд 15:18:04 #194 №624835 
>>624824
А оригинал?
Аноним 13/01/16 Срд 15:23:55 #195 №624836 
>>624834
>Ты удоляешь вершины так, чтобы граф стал без ребер
Это алгоритм какой-то известный или перебором? Там 2^n вариантов удаления.
Аноним 13/01/16 Срд 15:34:54 #196 №624842 
>>624836
Там может сработать жадный алгоритм, по идее. У каждого ребра удалить ту вершину, которая имеет меньший вес. Но нужно будет учитывать общие для нескольких ребер вершины, ибо иногда выгоднее удалить вершину с большим весом, за счет того, что она покроет сразу несколько ребер.
Аноним 13/01/16 Срд 15:45:22 #197 №624849 
>>624842
К примеру, можно от весов ребер перейти к нормализованным весам: из каждого веса вычесть веса всех смежных вершин. Потом просто удалять вершины по возрастанию этих нормализованных весов (и декрементировать веса, разумеется), пока ребра не кончатся.
Аноним 13/01/16 Срд 15:47:59 #198 №624850 
>>624849
Вот это похоже на O(n). Спасибо.
Аноним 13/01/16 Срд 15:54:08 #199 №624852 
>>624101
>т.е. одинаковые числа должны идти подряд вместе
Ты вторую картинку глянь, там интересной названа последовательность (1,2,5)
Аноним 13/01/16 Срд 15:54:24 #200 №624853 
14526896644800.png
>>624849
Пикчу забыл.
Аноним 13/01/16 Срд 15:55:18 #201 №624856 
>>624852
Ну так все правильно, они же не повторяются.
Аноним 13/01/16 Срд 15:55:47 #202 №624858 
>>624850
np-hard превратить в o(n)? Оригинально.
Аноним 13/01/16 Срд 15:56:46 #203 №624860 
>>624858
Пруфы, что np-hard.
Аноним 13/01/16 Срд 15:57:40 #204 №624861 
>>624858
>np-hard
Что? Там предобработка как на этой пикче >>624853 и в 1 проход максимум найти.
Аноним 13/01/16 Срд 16:00:17 #205 №624862 
>>624853
Стой, а на второй что удалять? У них количество ребёр разное, а веса одинаковые.
Аноним 13/01/16 Срд 16:05:04 #206 №624865 
>>624862
Блять туплю. По ним пройтись надо и ребра оставшееся посчитать. Можешь не отвечать.
Аноним 13/01/16 Срд 16:05:50 #207 №624866 
>>624862
Да, не совсем допилено получается. Но я думаю, что на основе этой идеи должно получиться. Может, похимичить с вычитанием, чтобы явно выделялась центральная вершина.
Аноним 13/01/16 Срд 16:07:59 #208 №624867 
Здарова, почаны. Помогите разобраться:

Пытаюсь релизнуть неконсольную программу и получаю ошибку

LNK2001: unresolved external symbol _wWinMain@16

Если делаю этот же код как консольный проект тоже появляется LNK2001 но с __imp__ShowWindow@8 на конце

С консольным проектом проблемма решилась подключением в linker>input>additionalDependencies стопки разных .lib, по советам из интернетов

По какому принципу их нужно добавлять?
Аноним 13/01/16 Срд 16:10:54 #209 №624868 
>>624861
Жадным алгоритмом? С чего ты взял, что он даст наилучший результат?
Аноним 13/01/16 Срд 16:12:26 #210 №624869 
>>624868
Придумай контрпример.
Аноним 13/01/16 Срд 16:37:47 #211 №624880 
14526922677390.png
>>624865
Не, не сработает так просто. Вот в этом случае оптимально удалить все крайние вершины, но алгоритм выберет одну из центральных. Думаем дальше.
Аноним 13/01/16 Срд 16:42:28 #212 №624881 
>>624880
Там же 2 центральных и они соединены ребром. Для удаления этого ребра по любому придётся. Одну из них удалить. А потом и 2 крайних.
Аноним 13/01/16 Срд 16:45:10 #213 №624883 
>>624881
Блин, точно. Но все равно меня терзают смутные сомнения, нет уверенности, что на любом оно сработает. Надо как-то формализовать штоле всю эту ебалу. Проблема в том, что после одного удаления приходится пересчитывать некоторые веса, и поэтому неочевидно, что можно просто хуярить по возрастанию, пока не кончатся ребра.
Аноним 13/01/16 Срд 16:47:50 #214 №624884 
>>624883
Я завтра напишу программу, а если времени не хватит, то на выходных и отчитаюсь сколько тестов пройдёт. Пока кажется единственное нормальное решение. Википедию с множествами я вообще не понял. В гугле тоже про это мало понятного.
Аноним 13/01/16 Срд 16:52:04 #215 №624890 
Встретил такое нечто:
Foo(Foo const &) = delete;

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

Как вообще называется эта фича, чтобы ее можно было нагуглить?
Аноним 13/01/16 Срд 16:55:04 #216 №624892 
>>624890
Удаленный конструктор же, он запрещает компилироваться коду, в котором вызывается конструктор копирования. На дефолтный конструктор (и все остальные) это напрямую не повлияет, но дефолтный не сгенерируется, как и в любом другом случае, когда ты сам определяешь какой-то из конструкторов.
Аноним 13/01/16 Срд 16:59:30 #217 №624895 
>>623920
Очевидный CLion.
Аноним 13/01/16 Срд 17:02:30 #218 №624898 
14526937506020.png
Суп, аноны, у меня СТУДЕНТОПРОБЛЕМЫ. Поясните, пожалуйста, как реализовать вывод полей объекта производного класса, который образован в следствии наследования, как на пикрилейтед. Про ромбовидное наследование я читал, но это не мой случай, т.к. поля объектов будут разные, несмотря на общий класс. (Простите за кривой почерк, надеюсь более-менее понятно обьяснил суть проблемы.)
Аноним 13/01/16 Срд 17:03:53 #219 №624900 
>>624898
>поля объектов базового класса
Аноним 13/01/16 Срд 17:51:37 #220 №624905 
>>624895
Очевидно, платный
Аноним 13/01/16 Срд 17:56:37 #221 №624907 
>>624898
Проблема в чем?
Аноним 13/01/16 Срд 18:01:25 #222 №624908 
>>624898
Блять, ну и хуйню же я написал. Суть в том, что Б1 и Б2 - это один и тот же базовый класс, но в производном классе Н2 они оба используются и имеют разные значения полей.
Аноним 13/01/16 Срд 18:01:55 #223 №624910 
>>624907
>>624908
Аноним 13/01/16 Срд 18:05:05 #224 №624912 
>>624908
Че за хуйня, давай на реальном примере
Аноним 13/01/16 Срд 18:09:22 #225 №624913 
>>624908
Тогда это не должно компилироваться же, если ты не юзаешь виртуальное наследование.
Аноним 13/01/16 Срд 18:15:17 #226 №624914 
>>624912
Есть базовый класс ДАТА, у которого есть поля д/м/г. Есть производный от ДАТЫ класс ФАЙЛ, в котором ДАТА - это дата создания файла. И есть производный и от ФАЙЛА и от ДАТЫ класс, в котором ДАТА из ФАЙЛА - это дата создания, а другая ДАТА - это дата редактирования.

>>624913
Виртуальное мне не подходит, т.к. две ДАТЫ не обязательно одинаковы.
Аноним 13/01/16 Срд 18:16:29 #227 №624916 
>>624914
При вызове метода вывода ДАТЫ будет неоднозначность, нужно как-то от нее избавиться.
Аноним 13/01/16 Срд 18:21:03 #228 №624918 
>>624916
Ну вон же на википедии есть пример.
https://en.wikipedia.org/wiki/Virtual_inheritance

Хоть и делаешь ты какую-то дичь
Аноним 13/01/16 Срд 18:26:14 #229 №624921 
>>624916
Пиши Н1::поле. Но напрямую наследоваться от Б1 все равно будет нельзя, ибо ты не сможешь никак отличить поля, унаследованные из Н1 и напрямую из Б1.
Аноним 13/01/16 Срд 18:27:14 #230 №624924 
>>624914
Ты определенно делаешь что-то не то.
Аноним 13/01/16 Срд 18:28:57 #231 №624925 
>>624918
Если так сделать, то обе даты будут одинаковы, разве нет?
Аноним 13/01/16 Срд 18:31:18 #232 №624927 
>>624925
Жопой читаешь.
In order to call eat(), the same disambiguation, or explicit qualification is needed: static_cast<Mammal&>(bat).eat() or static_cast<WingedAnimal&>(bat).eat() or alternatively bat.Mammal::eat() and bat.WingedAnimal::eat(). Explicit qualification
Аноним 13/01/16 Срд 18:32:36 #233 №624929 
>>624645
В том и дело, что пустые строки и так много места занимают, а сами блоки (if, for, while, итд) пускай будут поэкономнее.
Аноним 13/01/16 Срд 18:33:12 #234 №624930 
>>624925
Используй композицию вместо наследования, Люк. Заведи в производном классе джва члена базового класса и все. Сейчас ты вскукарекнешь, что тогда нельзя будет делать касты указателей, но я отвечу, что в твоем случае допустимо только приватное наследование, которое и так не допускает касты. Публичное наследование должно удовлетворять отношению "объект производного класса является объектом базового класса", а у тебя такого не будет, будет какая-то двойная нех.
Аноним 13/01/16 Срд 18:33:16 #235 №624931 
>>624929
Какое место они занимают, поехавший? Код меряется не строками, а байтами
Аноним 13/01/16 Срд 18:36:42 #236 №624934 
>>624930
Спасибо, анончик, вот это, я думаю, мне как раз подойдет.
Аноним 13/01/16 Срд 18:39:52 #237 №624938 
>>624929
Пространство по вертикали, недоехавший.
Аноним 13/01/16 Срд 18:40:29 #238 №624940 
>>624931
>>624938
Аноним 13/01/16 Срд 18:41:19 #239 №624941 
>>624938
Ебать, ты чего с квадрата 1024x768 конпелируешь что ли?
Аноним 13/01/16 Срд 18:44:24 #240 №624946 
>>624941
У меня открыто 4 окна на мониторе 1920x1200, получается на окно даже поменьше.
Аноним 13/01/16 Срд 19:24:03 #241 №624960 
>>624941
Открываю иногда и по 3 колонки окон, в два окна по вертикали. Но монитор всего 24 дюйма. Один.
Аноним 13/01/16 Срд 19:32:36 #242 №624964 
>>624960
У меня 17.
Аноним 13/01/16 Срд 20:03:56 #243 №624978 
14527046364150.gif
>>624946
Сделай вот так, хуле.
Аноним 13/01/16 Срд 20:16:42 #244 №624981 
>>624978
И верти шеей как мудак.
Аноним 13/01/16 Срд 20:21:58 #245 №624984 
>>624981
Полезно, затекать не будет
Аноним 13/01/16 Срд 20:34:38 #246 №624995 
>>624981
В этом плане у него лучше, нежели 3 монитора в ландшафтной ориентации
sageАноним 13/01/16 Срд 22:24:10 #247 №625068 
>>624978
>(90Кб, 668x319)
Аноним 13/01/16 Срд 23:02:34 #248 №625110 
14527153541350.png
Ребята помогите. Что нужно докачивать. Хочу писать на C++, консольное приложение например. Откуда и как докачать Win32?
Аноним 13/01/16 Срд 23:38:57 #249 №625130 
Спасибо ребята.
Аноним 13/01/16 Срд 23:46:54 #250 №625139 
>>625110
Нажми ok, он тебе и скачает. А что из этих двух тебе нужно - сам решай. Для себя пойдёт первый, для ковыряния легаси - второй.
Аноним 13/01/16 Срд 23:51:35 #251 №625141 
>>625139
Да спасибо, разобрался
Аноним 14/01/16 Чтв 00:09:51 #252 №625156 
Ну что за говно, заебала меня эта визуальная студия. Теперь зависает при запуске без отладки. Пиздец
Аноним 14/01/16 Чтв 00:22:17 #253 №625167 
14527201380650.png
Что делать ребята?
Аноним 14/01/16 Чтв 14:28:04 #254 №625423 
Начал изучать С++, хотел с НГ, но как-то затормозил. Какие подводные камни?
Уже написал свою 1 крутую программу - перевод строки чаров в фски номера.
Аноним 14/01/16 Чтв 14:30:08 #255 №625425 
>>622611 (OP)
Сяп. codeblock+sfml. При попытке компиляции проекта пишет default is untitled. Отдельный файл (он же пока единственный) компилирует, но не запускает, ссылаясь на отсутствие на компе sfml-graphics-2.dll, хотя она есть. Что делать?

СФМЛ подключена как в гайде написано.
Аноним 14/01/16 Чтв 15:22:24 #256 №625447 
>>625425
> sfml-graphics-2.dll, хотя она есть
Где она есть? Попробуй в папку с программой кинуть.
Аноним 14/01/16 Чтв 16:04:40 #257 №625469 
>>625447
Пробовал. Все равно. К тому же, я думаю, тут в другом дело. Проект не компилируется, а файл компилируется. Мне кажется, что проект не компилируется по той же причине, по которой потом программа на запускается, но я хз, почему. Когда сфмл не было, он об этом говорил в виде ошибок компилятора, не распознававшего функции сфмл, сейчас с этим вроде все норм, но все равно проблема именно с либами этой библиотеки
Аноним 14/01/16 Чтв 17:51:37 #258 №625528 
Есть у кого философеры на C++11?
Аноним 14/01/16 Чтв 17:54:32 #259 №625530 
Сап аноны. Вопрос от нюфани.
Вопрос касательно использования указателей. Навскидку могу придумать два случая, когда они нужны:
Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
Или когда заранее неизвестен объем данных, который потребуется, можно динамически выделять память оператором new.
В каких еще случаях лучше использовать указатели, а не обычные переменные?

Пилю прогу на qt для работы, пытаюсь понять, где что лучше использовать.
Аноним 14/01/16 Чтв 17:59:58 #260 №625532 
>Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
константную ссылку используй
>Или когда заранее неизвестен объем данных, который потребуется, можно динамически выделять память оператором new.
vector используй
>В каких еще случаях лучше использовать указатели, а не обычные переменные?
графы, деревья, когда размер типа заранее неизвестен из-за наследования, pimpl
Аноним 14/01/16 Чтв 19:07:38 #261 №625573 
>>625528
Обедающие?
Аноним 14/01/16 Чтв 19:16:25 #262 №625581 
>>625573
Хоть кукарекающие
Аноним 14/01/16 Чтв 19:16:58 #263 №625583 
>>625530
>Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
Открою секрет - в C++ нельзя передать массив по значению. http://cpphints.com/hints/38
>В каких еще случаях лучше использовать указатели, а не обычные переменные?
Всегда, когда тебе нужно использовать какие-то данные вне этой функции/класса, или у тебя большой объём данных (зависит от настроек конпелятора, но максимальный размер всех "обычных" переменных где-то 4 мб).

Вся разница между "обычными" переменными и "динамически выделенными" указателями в том, что первые выделяются на стёке а вторые - на куче.
Стёк - быстрее, почти бесплатное выделение памяти. Возвращать из функции стёковую переменную по ссылке нельзя - после возвращения из ф-ции стёк уничтожается.
Куча - медленнее, но твои данные некуда не денутся пока ты их сам не вычистишь и не имеет ограничений в размере.
Аноним 14/01/16 Чтв 19:33:55 #264 №625597 
>>625581
>кукарекающие философы
Попробуй /ph/.
Аноним 14/01/16 Чтв 21:24:37 #265 №625691 
>>625583
А когда мы делаем мув, то мы выходит из стека помещаем в кучу, так?
Аноним 14/01/16 Чтв 22:09:41 #266 №625740 
>>625691
Нет, это не связано.
Аноним 14/01/16 Чтв 22:09:45 #267 №625742 
>>625691
Нет. Мув, грубо говоря, перемещает данные а не перевыделяет память. Если ты, например, заранее выделишь память в куче - то вполне можно перенести.
Алсо, с кучи в стек ничего выделять руками не нужно, но если переносишь с кучи - не забудь подтереться.
Аноним 14/01/16 Чтв 22:20:23 #268 №625753 
>>625742
Хотя хз насчёт именно переноса, я не проверял, но у меня такое ощущение что именно при таком раскладе вместо переноса будет просто вызван копирующий конструктор.
Аноним 14/01/16 Чтв 23:10:23 #269 №625793 
>>625753
Мув меняет принадлежность. Если у тебя нетривиальный конструктор, ты должен сам определить конструктор переноса и конструктор копирования тоже, разумеется. Читай учебники.

>вместо переноса будет просто вызван копирующий конструктор
Это легко проверяется.
Аноним 14/01/16 Чтв 23:19:13 #270 №625806 
>>625742
http://ideone.com/U5Zrrp
В таком случае все в стеке?
Аноним 14/01/16 Чтв 23:50:05 #271 №625822 
>>625806
Да. В твоём примере move и не нужен - йоба скопируется, я говорил про возврат указателя на стэк.
>>625793
Хорошо, капитан, почитаю. Проверил. Не нашёл ни одного корректного способа вернуть указатель на стак, мув просто копирует как и без него. Чо делать?
Аноним 14/01/16 Чтв 23:59:21 #272 №625826 
Помогите с лабой на C++.
Задание: Дан массив типа BYTE размером не менее 256 Кбайт. Переписать его во внешнюю память поблочно. Операцию повторить 10 раз. Характеристика: размер блока (диапазон изменения 512-1024 байта).

Моя попытка решить: http://pastebin.com/EfGYjgfa

Проблема в том, что буфер нужно инициализировать не из файла, а из массива в оперативной памяти.(см. 70 строчку в пасте)
Аноним 15/01/16 Птн 01:38:54 #273 №625881 
>>625822
Нихуя она не скопируется, ебанутый.
Аноним 15/01/16 Птн 01:46:07 #274 №625886 
>>625822
Дебил, прежде чем в следующий раз кукарекать и нормальных людей вводить в заблуждение - проверь и подумай.
Генерируется implicit move ctor, Yoba(Yoba&&),
Это ты можешь проверить, добавив вывод "Yoba ctor called" в конструкторе, и убедиться что вызывается конструктор перемещения.
Ты об этом бы знал, если бы был в курсе про правила генерации специальных методов класса.
Аноним 15/01/16 Птн 01:46:45 #275 №625887 
>>625886
>добавив вывод "Yoba ctor called" в конструкторе
добавив вывод "Yoba move ctor called" в конструкторе перемещения
Аноним 15/01/16 Птн 08:18:07 #276 №625944 
>>625583
Спасибо за ответ, инфу по ссылке ща почитаю.
Аноним 15/01/16 Птн 08:46:52 #277 №625947 
>>625583
>Всегда, когда тебе нужно использовать какие-то данные вне этой функции/класса, или у тебя большой объём данных (зависит от настроек конпелятора, но максимальный размер всех "обычных" переменных где-то 4 мб).

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

Как вообще эти вопросы решают грамотные пацаны? Я вроде и понимаю, что в некоторых функциях мне лучше передать указатели, а не копировать данные, но очкую, что в итоге поимею утечки памяти и трудноуловимые баги поведения программы.
Аноним 15/01/16 Птн 08:49:04 #278 №625949 
>>625947
Если у тебя массив выделен на стеке, то можешь передавать на него указатель
Аноним 15/01/16 Птн 09:08:47 #279 №625956 
>>625947
http://goo.gl/LsqNZT

Вот тебе грамотная статья по твоему вопросу
Аноним 15/01/16 Птн 09:18:57 #280 №625957 
>Как адекватно выделять и освобождать память?
Когда считаешь нужным, в этом вся суть ручного управления памятью.

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

Аноним 15/01/16 Птн 09:33:39 #281 №625958 

Аноним 15/01/16 Птн 09:52:05 #282 №625961 
Привет.
Пишу под MSP430, столкнулся с непонятной вещью:
unsigned long flash_addr =
(unsigned int) page_num FLASH_SEG_SIZE;
memcpy(ram_temp, (void
)flash_addr, FLASH_SEG_SIZE);
/ смотрю отладчиком, а здесь, после memcpy переменная flash_addr ВНЕЗАПНО ОБНУЛЯЕТСЯ /
Почему такое может происходить?
Аноним 15/01/16 Птн 09:53:42 #283 №625962 
>>625961
Мерзкая макаба!
Вот отформатированный код: https://gist.github.com/anonymous/6462edfcb45625e75772
Аноним 15/01/16 Птн 09:56:07 #284 №625964 
>>625961
Это вопрос к реализации memcpy в твоей хуитке.
Аноним 15/01/16 Птн 09:59:20 #285 №625968 
>>625962
Ну во первых, memcpy берёт размер в бпйтах, а не двойных словах.
Во вторых, пошёл вон со своей железякой в другой тред
Аноним 15/01/16 Птн 10:18:17 #286 №625978 
>>625956
>>625957

Спасибо.
Аноним 15/01/16 Птн 10:21:07 #287 №625980 
>>625957
У scoped и unique_ptr нет оверхеда
Аноним 15/01/16 Птн 11:53:43 #288 №626023 
>>625947
> Как адекватно выделять и освобождать память?
Особождать - ТОЛЬКО в деструкторе. Иначе у тебя будет текущий на исключениях код. Выделять, соответственно, только в парном деструктору конструкторе. Вот и вся наука.
>Я вроде и понимаю, что в некоторых функциях мне лучше передать указатели, а не копировать данные, но очкую, что в итоге поимею утечки памяти и трудноуловимые баги поведения программы.
Используй ссылки, написал же. Лучше константные, можно и неконстантные.
Аноним 15/01/16 Птн 13:08:46 #289 №626065 
Пацаны, так вопрос.
Есть шаблонныц класс с шаблонной функцией, например такой - www.ideone.com/w3BZXF . Когда все это в одном файле, работает, но стоит мне переместить определение шаблонной функции и ее специализации в .cpp файл, то появляются ошибки линкера.
А оставлять потенциально тяжелую реализацию в хидере, да еще и заинлайненную - это не лучшая практика, наверное.
Аноним 15/01/16 Птн 13:58:31 #290 №626109 
>>624078
Попытка №1
https://ideone.com/NHkiT8
Аноним 15/01/16 Птн 14:50:25 #291 №626149 
>>626065
Это одна из основных бед крестов. За удобство шаблонов и полиморфизм без замедления в рантайме ты платишь тем, что шаблоны целиком должны быть в хэдерах. Из-за этого компиляция сильно замедляется, но тут уж ничего не поделаешь.
Аноним 15/01/16 Птн 14:52:19 #292 №626150 
>>626109
Не работает на
7
1 1 2 1 2 2 2
Аноним 15/01/16 Птн 14:54:15 #293 №626152 
>>626109
Вместо sortfunc лучше бы сделал лямбду, раз у тебя auto и 11 стандарт.

Ты юзал тот алгоритм с взвешенными графами? Да, мне лень вчитываться до вечера, блджад. Тесты проходят?
Аноним 15/01/16 Птн 14:58:38 #294 №626155 
>>626152
не, у меня другой алгоритм, лень описывать, к тому же он похоже все равно не работает.
Аноним 15/01/16 Птн 15:06:48 #295 №626160 
>>626152
>Тесты проходят?
Нет только 3. Потом ответ завышен. Здесь тесты если хочешь проверить http://rghost.ru/6LVyKdZkX
Скомпилировать файл и положить в эту папку. Потом запустить test.bat с параметром имени файла без расширения. Результат в res файле будет.
И не лень было это всё писать?
Аноним 15/01/16 Птн 18:51:48 #296 №626295 
>>626149
Можно перечислить специализации и тогда унести код в цпп
Аноним 15/01/16 Птн 18:54:44 #297 №626300 
>>626295
Это плохая практика, суть шаблонов в автоматической генерации инстансов же. Такое будет немногим лучше макросов.
Аноним 15/01/16 Птн 19:01:05 #298 №626304 
>>626300
Макросы плохи не этим.
Аноним 15/01/16 Птн 19:38:45 #299 №626322 
>>626300
Ничего не меняется же, кроме лишней работы компиляторы если какие-то из перечисленых специализаций на самом деле не используются.
Аноним 15/01/16 Птн 19:53:08 #300 №626338 
>>626322
Только если у тебя лаба2 и шаблон какой-нибудь хуйни с джвумя инстансами на int и double. В реальности шаблоны используются гораздо многограннее, начиная от non-type parameters ты для всех натуральных чисел вызывать инстансы будешь, да?, и заканчивая library-like ебалой навроде самодельных концептов и метафункций.
Аноним 15/01/16 Птн 20:07:47 #301 №626343 
>>626338
> ты для всех натуральных чисел вызывать инстансы будешь, да
Любая специализация шаблона известна во время компиляции, следовательно их спокойно можно указать явно. Единственной проблемой является то что у тебя будет список на тысячи (к примеру) специализаций, часть из которых была нужна когда-то, а сейчас нет - что лишняя работа для компилятора.
Аноним 15/01/16 Птн 20:11:38 #302 №626345 
>>626343
Ну так определись, если ты хочешь ускорить компиляцию, вынося методы из хэдеров, то это не вяжется с "лишней работой для компилятора" по генерации сотен ненужных инстансов.
Аноним 15/01/16 Птн 20:23:35 #303 №626351 
>>626345
Так скомпилируешь один раз в .o и больше не надоть.
Аноним 15/01/16 Птн 23:00:07 #304 №626400 
>>624078
Каждое уникальное число в входной последовательности можно представить в виде отрезка у которого начальная координата равна индексу первого появления этого числа, конечная координата - индексу последнего появления (могут совпадать) и есть еще характеристика "вес" которая равна количеству появлений этого числа в последовательности. Тогда задача сводится к нахождению набора непересекающихся отрезков с максимальным суммарным весом - этот сумарный вес и есть ответ. Мне почему-то кажется что это NP-полная задача, тоесть нужно применять какой-то метод оптимизации. Я попробывал простой перебор через рекурсию http://ideone.com/dnXRkk но он отрабатывает только на небольших (по количесву уникальных чисел) задачах (первые 16 из твоих тестов). На больших задачах (важно количество уникальных чисел, а не длина последовательности - по длине там линейная сложность) моя писанина ожидаемо обсирается, причем серьезно - для 100 уникальных чисел похоже в лучшем случае нужны года, а скорее всего тысячелетия. Тоесть просто заменить рекурсию на итерации или "распаралелить" не поможет. Нужен какой-то метод оптимизации, но мне ничего простого не приходит в голову. Я пробывал ветвей и границ применить (так как он легко на полный перебор накатывается) но нихуя не придумал, был один вариант но он не помог, только еще один из первых тестов зафейлил из-за какого-то бага. Идеальный вариант конечно если окажется что тут не NP-полнота. Если задачка с олимпиадки то наверное так и есть - врядли там дают задачи на оптимизацию, хотя я хуй знает. Тоесть возможно есть нормальный способ решения.
Аноним 15/01/16 Птн 23:10:05 #305 №626404 
>>626400
Ты весь день этим занимался? Здесь авторские решение есть если поймёшь. Но вариант с графом который выше я на выходных сделаю и отчитаюсь если смогу написать.

http://pastebin.com/HF5g1RkC
http://pastebin.com/Fx2MigGq
Аноним 16/01/16 Суб 00:25:56 #306 №626425 
>>625167
Ну бамп, неужели икто не сталкивался? Что делать? Я даже собрать ничего не могу
Аноним 16/01/16 Суб 00:26:49 #307 №626427 
>>626425
Перестановить? Установить генту? Сходить в софтач?
Аноним 16/01/16 Суб 00:27:50 #308 №626428 
>>626427
Переустановил уже пять раз. Есть бубунту
Аноним 16/01/16 Суб 00:28:14 #309 №626429 
>>626404
> Ты весь день этим занимался?
Ты меня наверное перепутал с кем-то. Посмотрел твои решения, первый динамика, никогда не мог сам полностью придумать. Понимаю без проблем, даже с полунамека могу сообразить как решать а полностью сам никак. Другие подходы вроде норм, а в динамическом совсем ноль. Получается такое, если мой вариант подправить https://ideone.com/qbcLKs
Аноним 16/01/16 Суб 00:52:52 #310 №626447 
>>626429
Спасибо. Работает. Опишешь алгоритм? Знаю что смотреть программу, но после сортировки не совсем понятно что происходит.
Аноним 16/01/16 Суб 00:58:05 #311 №626450 
>>626427
Могут-ли всякие вимы в линуксах заменить визуальную студию?
Аноним 16/01/16 Суб 01:01:59 #312 №626451 
Висуал студио говно без задач. Виснет и выдает ошибки. Что я могу еще сказать
Аноним 16/01/16 Суб 01:03:57 #313 №626453 
Ебал я его в рот. Перехожу на эклипсе
Аноним 16/01/16 Суб 01:05:25 #314 №626454 
>>626450
Не пользовался студией ни разу. Слышал у неё дэбагер ахуенный с свистелками и перделками.
Аноним 16/01/16 Суб 02:50:48 #315 №626501 
>>626450
А что тебе нужно для разработки? Подсветка? Автокомплит? Навигация по именам? Отладка?
Аноним 16/01/16 Суб 02:50:56 #316 №626502 
>>626447
У тебя есть массив отрезков (начало, конец и вес) который сортируется по координате начала отрезка (у моего варианта там небольшой недостаток что отрезков всегда 100, я не хотел усложнять код, на ответ это не влияет но там получается что может быть дохуя нулевых отзрезков на бессмысленную обработку которых пробывается время). Дальше создается массив размером равном количеству отрезков, в i ячейке которого записывается оптимальный ответ при использовании первых i отрезков (из отсортированого массива). Тоесть в первой ячейке массива хранится оптимальный ответ при использовании только первого отрезка (это вес этого отрезка), во второй ячейке при использовании первых двух отрезков и так до конца. А потом ты постепенно добавляешь новые отрезки (тоесть увеличиваешь индекс i и заполняешь массив). Изначально в текущую ячейку этого массива записывается вес текущего отрезка - так как ты всегда можешь все выкинуть и взять текущий за основу. Потом ты проверяешь все которые ты заполнил до этого - если какой-то из рассмотренных ранее отрезков можно использовать вместе с текущим (ранний отрезок заканчивается до того как начнеться текущий), то ты используешь их вместе - суммируешь и записываешь в текущую ячейку, но просто так записать нельзя так как там может находиться большее значение от рассмотрения предыдущих отрезков - выбираешь максимум и его записываешь. И потом как заполнишь весь массив то максимальное число в нем и будет ответ.
Аноним 16/01/16 Суб 06:10:47 #317 №626532 
как быть, если два из предыдущих конфликтуют друг с другом, но не с текущим?
Аноним 16/01/16 Суб 06:55:45 #318 №626539 
>>626023
Понял, спасибо.
Аноним 16/01/16 Суб 06:59:53 #319 №626540 
во, такое придумал: у нас есть <100 отрезков, т.е. <200 концов. Каждый конец делит нашу прямую на две части: левую и правую. Соот.
result(i,i)=0
result(i,j)=max(result(i,start(k)) + weight(k) + result(end(k),j))
где i,j - номера точек, k - номера отрезков
Аноним 16/01/16 Суб 07:03:14 #320 №626542 
Т.е. каждый отрезок разбивает задачу на левую часть, правую часть + вес самого отрезка
Аноним 16/01/16 Суб 07:57:14 #321 №626550 
>>626351
Будут .o жуткого размера, и линковаться будет долго из-за необходимости вычищать неиспользуемое говно.
Аноним 16/01/16 Суб 08:00:24 #322 №626551 
>>626447
Оно все тесты проходит, или тоже обсирается на длинных?
Аноним 16/01/16 Суб 13:00:51 #323 №626649 
>>626551
Все за 0,1 секунду.

>>626502
Спасибо. Кажется понял.
Аноним 16/01/16 Суб 15:45:15 #324 №626792 
Какой способ парсинга NMEA будет более быстр, если мне нужно выдрать из ответа пару параметров?
1. Ищем при помощи strlen начало пакета: $GPGGA, при помощи sscanf считывает это всё в кучу аргументов. Проблема в том, что ответов от GPS в буфере может лежать несколько штук разных, не будет ли этот способ медленным?
2. Конечный автомат, на вход принимает по одному байту.
При помощи atof, atoi выдернуть нужную мне информацию.

Пример строки:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Аноним 16/01/16 Суб 15:51:18 #325 №626795 
>>626429
Нелегитимно, стандарт не гарантирует, что по дефолту там 0.
Аноним 16/01/16 Суб 15:51:45 #326 №626796 
>>626795
Вот про это, в смысле:
>int i{}
Аноним 16/01/16 Суб 15:57:02 #327 №626800 
Нужно найти наибольшую возрастающую подпоследовательность k раз от 1 до 100 после каждого нахождения удалить эту подпоследовательность и развернуть массив. Решил, но решение слишком долгое. Какие средства языка можно использовать чтобы ускорить?
Аноним 16/01/16 Суб 15:58:28 #328 №626801 
>>626800
Скидывай решение.
Аноним 16/01/16 Суб 15:58:47 #329 №626802 
>>626796
Кстати на самой олимпиаде компилировали без 11ого стандарта. И всякие лямбды делать нельзя.
Аноним 16/01/16 Суб 16:08:38 #330 №626811 
>>626801
Тут оптимизировать пытался. Сделал всего 1 массив размером n*k и за 1 проход всё выщитал без удалений. Но не уверен что оно сработало т.к. часть тестов по времени не проходят.

http://pastebin.com/7G0KpXxy
sageАноним 16/01/16 Суб 16:11:41 #331 №626812 
>>626802
Гениально. А чё сразу не на C89-то?
Аноним 16/01/16 Суб 16:14:58 #332 №626814 
>>626812
Понятия не имею. Один из авторов вообще в Си стиле пишет избегая vector'ов и fstream'ов.
Аноним 16/01/16 Суб 16:36:33 #333 №626835 
>>626814
Ну если цель - олимпиадное питушение, где важна 0,001 мс - правильно делает.
Алсо, попробуй зарезервировать память в векторе после инициализации или заменить его на статичный массив.
Аноним 16/01/16 Суб 16:38:48 #334 №626840 
>>626835
>заменить его на статичный массив
А как тогда его длину менять? Я же из двух вектаров 1 склеиваю.
Аноним 16/01/16 Суб 16:43:41 #335 №626844 
>>626840
А никак не менять. Взять сразу все 4 мб на стёке и молится что тестов там будет не 40 мб (лол).
По крайней мере через такой анус можно будет убедится, что нету оверхеда на аллокациях.

Алсо, скинь ещё сами тестики.
Аноним 16/01/16 Суб 16:50:00 #336 №626849 
>>626844
>Алсо, скинь ещё сами тестики.
http://rghost.ru/6vrVz6HT6
Скомпилировать файл и положить в эту папку. Потом запустить test.bat с параметром имени файла без расширения. Результат в res файле будет.
Аноним 16/01/16 Суб 17:54:30 #337 №626906 
>>626844
Переписал. Ничего не поменялось.
http://pastebin.com/U9FrRGE9
Аноним 16/01/16 Суб 18:57:55 #338 №626952 
Что значит конструкция if(!cin)
Аноним 16/01/16 Суб 19:00:49 #339 №626953 
>>626952
Если в предыдущей строчке cin не распарсил входные данные.
Аноним 16/01/16 Суб 19:04:11 #340 №626956 
>>626795
> стандарт не гарантирует, что по дефолту там 0.
Почему ты так пишешь? Судя по http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
на 190 странице указано что { } считается как braced-init-list
на 201 странице, где рассматривается инициализация с помощью "a braced-init-list" указано что "Otherwise, if the initializer list has no elements, the object is value-initialized"
на 191 странице, где дается определение value-initialized перечислено 4 случая, где первые два относятся к класам, третий к массивам а для скалярного типа остается "otherwise, the object is zero-initialized"
Ну и на 201 странице последняя строка "int k { }; // initialize to 0"
Аноним 16/01/16 Суб 19:12:48 #341 №626960 
>>626956
Да, твоя правда, я обосрался.
Аноним 16/01/16 Суб 19:24:29 #342 №626966 
>>626811
Чем ты занимаешся в 38-40 строках? тебе не нужно k раз физически инвертировать массив. Просто в зависимости от четности шага нужно искать или возврастающие или снижающиеся последовательности. И в конце один раз перевернуть если k нечетное. В зависимости от того как должны обрабатыватся последовательности равных чисел, можно обойтись и без удаления а делать вместо "удаленных" последовательностей типа "плато" - но там нужно продумать все ситуации. И если задание конечно вообще позволит такое сделать. Как вариант, заменять удаленные числа на заведомо невозможные значения - обратно же если такое возможно по заданию.
sageАноним 16/01/16 Суб 19:30:20 #343 №626967 
>>626966
> или снижающиеся последовательности.
Имелось ввиду "или снижающиеся последовательности, при этом идя с конца массива к началу."
Аноним 16/01/16 Суб 19:36:24 #344 №626975 
>>626967
>снижающиеся последовательности
>идя с конца
Это возрастающая. Имеешь ввиду что можно всего в 2 прохода ответ узнать?

>>626966
>заменять удаленные числа на заведомо невозможные значения
Сравнение тоже будет. И скорость работы не поменяется.
Аноним 16/01/16 Суб 21:02:38 #345 №627026 
14529673582770.png
Что бля? Чому у меня вечно читает числа, в книжке вот такой пример? Это же нелогично будет бесконечно считать, а написано что если ввести 3 4 5 6, он выведет 18.
ЧЯДНТ?
Аноним 16/01/16 Суб 21:13:25 #346 №627034 
>>627026
Ctrl+D
Аноним 17/01/16 Вск 00:33:34 #347 №627186 
ССССука.
Путаюсь в ебучих битовых операциях.
Аноним 17/01/16 Вск 00:54:11 #348 №627199 DELETED
Сап, приглашаем в нашу конфу, посвященную пограммированию. Мы обсуждаем всё, так или иначе связанное с различными сферами разработки. У нас есть отдельные каналы про С++, про javascript​, про ​ruby​, про python, про PHP, про Java, есть ​development​ для обсуждения остальных языков и вопросов, связанных с разработкой, есть ​jobs​ для обсуждения вакансий, собеседований и рабочих вопросов и есть random для неформального лампового общения, плюс планируется ещё несколько каналов для других языков, которые вскоре будут созданы. У нас нет ограничений по уровню скила, мы рады как тотал нубам, так и синьорам ​˜помидорам˜​.

Мы пользуемся slack. У него есть неплохие десктопный (под все ОСи), веб и мобильный клиент. Для регистрации необходима только почта (фейковая тоже подойдет).

Пригласить себя можно здесь:https://invite-me-to-2chpr.herokuapp.com

Если инвайт не пришёл в течении 5 минут, попробуйте другую почту.
Аноним 17/01/16 Вск 05:00:19 #349 №627289 DELETED
>>627199
А если я ассемблерочухан?
sageАноним 17/01/16 Вск 11:32:30 #350 №627388 
>>627026
Чтобы дать программе понять, что ты закончил ввод, введи Ctrl+Z
Аноним 17/01/16 Вск 12:45:13 #351 №627419 
>>626952
>Что значит конструкция if(!cin)

cin имеет bool'евые функции-члены о состоянии потока (несколько флагов). В частности, одна из них, успешно ли проходили все предыдущие записи (если ты не очищал этот флаг).

Называется она operator bool (совершенно самоговорящее название). Так вот, вызывается она тупое сравнением потока с логической переменной (или запихиванием внутрь if/while/for и т.д.)

Что означает успешно прошли все предыдущие записи: это означает, что всё было записано как и хотелось, но не сообщает, пустой ли буфер cin. Если хочешь проверить на то, пустой ли он, то включай проверку cin.eof() -- обязательно пустые скобки в конце, т.к. это вызов булевой функции без аргументов.

(cin) означает, что все предыдущие записи были успешны (или ты очистили этот флаг)
(cin.eof()) означает END OF FILE (пустой буфер потока cin)

>>626953
>Если в предыдущей строчке cin не распарсил входные данные.
Необязательно последней.
Аноним 17/01/16 Вск 12:46:34 #352 №627420 
>>627186
Что тебе непонятно?
Аноним 17/01/16 Вск 20:17:45 #353 №627704 
>>627420
Разобрался уже. И дополнительно в stl' битсет.
Нужно было флаги реализовать.

Где загрузить исходники STL? Нашел http://llvm.org/svn/llvm-project/libcxx/trunk/ , но стащить их не очень выходит.
Аноним 17/01/16 Вск 21:04:58 #354 №627727 
>>627704
Гугли STLport, EASTL, RDESTL.
Аноним 17/01/16 Вск 21:21:50 #355 №627738 
Может кто подскажет, как в boost::asio использовать SSL и не SSL подключение в одной программе. По отдельности всё понятно, а если мне надо выбирать тип подключения, то тут не знаю, как сокет в boost::asio::ssl::stream передать.
Аноним 18/01/16 Пнд 02:59:23 #356 №627950 
>>627738
наоборот, юзаешь sslStream.next_layer() пока делаешь незащищенное, а потом переползаешь в защищенное
Аноним 18/01/16 Пнд 07:21:56 #357 №627980 
>>627950
Проблема в том, что мне может быть нужно нешифрованное соединение без SSL вообще. Получается, что придётся инициализировать SSL (boost::asio::ssl::context, boost::asio::ssl::stream), получить заголовок от клиента и, если нет запроса на SSL, работать с next_layer(). Неужели нет возможности сделать по другому?
Аноним 18/01/16 Пнд 07:44:34 #358 №627981 
>>627738
Использовать человеческую I/O библиотеку, а не это тормозное overarchitectured9000 говно.
Аноним 18/01/16 Пнд 07:52:15 #359 №627982 
>>627981
Какую?
Аноним 18/01/16 Пнд 08:02:38 #360 №627983 
>>627982
libcurl же.
Аноним 18/01/16 Пнд 08:05:21 #361 №627984 
>>627982
Да хоть libuv из нового.
Аноним 18/01/16 Пнд 08:14:16 #362 №627986 
>>627983
Только клиент без сервера.
>>627984
SSL не вижу. По внешнему виду, просто лёгкая обёртка над сокетами.
Аноним 18/01/16 Пнд 08:59:56 #363 №627993 
>>627986
https://www.gnu.org/software/libmicrohttpd/
Аноним 18/01/16 Пнд 11:48:50 #364 №628052 
Решил токой поконтрибутить в Qt сдуру.
Посмотрел пару часов в эту огромную кодобазу, иерархия инклудов перестала помещаться на втором мониторе, я закрыл.
Как у людей выходит понимать все это, отсылать по 5 патчей в день и не сходить с ума?
С какой стороны подходить вообще к таким огромным репозиториям? Или без ста грамм нихуя не поймешь и по-любому придется сквозь тернии к звездам?
Аноним 18/01/16 Пнд 12:28:05 #365 №628084 
>>628052
>по 5 патчей в день
Батя кстати все время какие-то доки читает, чтобы пулл-реквесты делать часто, контрибутит по 5 раз в день, а потом говорит, что репозиторий на диск не влезает, и еще форкает он. Пиздец короче. Реальная история, я не шароварщик.
Аноним 18/01/16 Пнд 13:03:44 #366 №628116 
>>627993
Вероятно, и эта библиотека хороша, но мне надо тренироваться на бусте.
Что-то буст начинает меня расстраивать, хотя и начал изучать его совсем недавно. Тысячи конструкторов на любую ситуацию, миллион функций для любого случая, а такую простую вещь, как сокет невозможно передать через конструктор или заменить через метод. Забавно, но неужели ни у кого из пользователей/разработчиков не было необходимости в реализации прокси? Так и пришлось создавать boost::asio::ssl::context и boost::asio::ssl::stream и, в зависимости от заголовка, использовать либо SSL, либо через socket.next_layer() получать сокет и работать уже с ним. Хорошо, что хотя бы к внутренним данным доступ есть.
Аноним 18/01/16 Пнд 13:20:00 #367 №628122 
>>628116
Дык из-за этого на нем даже ни одного нормального вебсервера нету (где-то были бенчмарки, где бустовый.асио Goвну слил).
Тебе уде говорили: если нужна именно вот такая низкоуровенная хуитка - забей на буст.
Аноним 18/01/16 Пнд 15:29:28 #368 №628219 
>>628116
Таки что, не стоит бустом обмазываться?
Аноним 18/01/16 Пнд 16:24:16 #369 №628263 
>>628219
Буст неоднороден, я уже который раз об этом втираю ньюфагам ИТТ. Его писали разные люди, на протяжение почти 15 лет уже. И когда написали хуйню, от нее уже нельзя отказаться, приходится поддерживать. Поэтому там есть годнейшие вещи треды, умные указатели, chrono, которые постепенно перекочевывают в стандарт. Есть просто хорошие пулы всякие, any/variant. Есть сложные и узкоспециализированные spirit, MPL, они быстро устаревают, но стабильны и все еще могут дать прикурить standalone-аналогам. Есть громоздкие части для популярных задач filesystem, test, они обычно хуже, чем standalone-аналоги, но не сильно, зато позволяют не прикручивать ничего, кроме буста. А есть всякий шлак, который неудачно впилили, и теперь выпилить уже не могут, а нормальный аналог пихать не хотят, потому что перекрытие зон ответственности, и вообще ВСЕ УЖЕ НАПИСАНО. asio - типичный пример такого говна, которое трогать не стоит, только понюхать, поморщиться и найти нормальную либу.
Аноним 18/01/16 Пнд 16:40:42 #370 №628272 
>>622611 (OP)
Плюсогоспода, поясните вот что. Уходят ли кресты постепенно в легаси? В каких проектах они теряют популярность, а в каких - набирают?

Например, не станут ли через пару лет весь GUI делать на чём-то более лёгком в освоении, чем плюсы+Qt? Вон даже Microsoft в какой-то VS ограничил поддержку плюсов, чтобы на решётку перешли. Если есть какие-нибудь хорошие статьи 2015-2016 годов, поясняющие области применения C++ и то, откуда он не собирается уходить, с удовольствием почитал бы. Ну и ваше мнение интересно, разумеется. Заранее спасибо.
Аноним 18/01/16 Пнд 16:41:57 #371 №628273 
>>628272
Просто есть пару свободных месяцев - думаю либо в плюсы нормально вкатиться, либо вкатиться в решётки или вообще в джаву.
Аноним 18/01/16 Пнд 17:31:47 #372 №628301 
14531275079680.png
>>628273
>есть пару свободных месяцев
>в плюсы нормально вкатиться
Аноним 18/01/16 Пнд 18:02:44 #373 №628312 
>>628272
>на чём-то более лёгком в освоении, чем плюсы+Qt
Его и для плюсов уже на QML пишут (для лёгкого софта там и плюсов не надо).
> области применения C++ и то, откуда он не собирается уходить
Чо там статьи-то писать.
Легаси в: десктопных хуитках, автоматизации, всякой сайнс-хуйне, энтерпрайз и пр. где скорость разработки стоит выше производительности;
Не собирается двигаться из: игрулек (конкретно - движков), системщины и всякого эмбедеда (сюда только вкатывается, лол), всякого супер-хуйлода вроде поисковика гугла, короче говоря везде, где главное - производительность.
Аноним 18/01/16 Пнд 18:03:03 #374 №628313 
14531293837140.jpg
>>628301
Аноним 18/01/16 Пнд 18:04:00 #375 №628314 
>>628273
Хуёвая затея. Если нюфаг - даже не смотри в сторону плюсов, конкретно становление как программиста они только замедляют.
Аноним 18/01/16 Пнд 18:05:49 #376 №628317 
>>628272
>ограничил поддержку плюсов
>запилили фичи из семнадцатого стандарта
>добавили поддержку clang
>крестовые апдейты чаще, чем твоя мамаша дает в очко
Ну окей, че.
Аноним 18/01/16 Пнд 18:10:58 #377 №628320 
>>628314
Я кстати после крестов пытался питон выучить недавно начал. Там полный пиздец с пониманием. Может говноскрипты писать и научишься, но программировать вряд ли. Там сразу ООП и совсем нелогичная или не оптимизированная архитектура. Там меняется тип переменных в ходе работы программы. С первых минут в глаза бросается вся хуйня из-за которой он будет тормозить. Поэтому для ньюфагов наверно лучше паскаль какой-нибудь, а не эту хуету которую обычно советуют.
Аноним 18/01/16 Пнд 18:19:34 #378 №628325 
>>628052
Ты им пользовался вообще? Понимание его архитектуры начинается после понимания принципов использования.
Аноним 18/01/16 Пнд 18:21:24 #379 №628330 
>>628052
Хули там понимать? Хочешь вектор - берешь кулист, хочешь строку - берешь кустроку.
Аноним 18/01/16 Пнд 18:25:53 #380 №628331 
>>628320
Суть всяких питонов в обучении - без ебли можно реализовывать разные алгоритмы, двигаться в этом направлении хоть как-то. Я в своё время был упрямым школьником начал с плюсов, и плюсов сего действа сейчас не вижу.
Насчёт паскаля ты вообще прав, надо модеру пизды дать чтобы из шапки строку про "Рабе/петон для нюфань" убрал.
Аноним 18/01/16 Пнд 18:29:45 #381 №628334 
>>628325
>>628330
Ахуенные истории от папок ципипи подъехали. Ублюдки вроде вас, понимающих всё с полюзанья кде уже убили - вам, похоже, мало.
Аноним 18/01/16 Пнд 18:33:58 #382 №628340 
>>628331
>без ебли можно реализовывать разные алгоритмы
там при обучении по началу многое не поясняют т.к. слишком много всякой хуеты. Я пока даже не понял как там ввод вывод работает.

>надо модеру пизды дать чтобы из шапки строку про "Рабе/петон для нюфань" убрал.
Щас вроде новый. Он добрый не считая предупреждений за скобочки))))) и отзывчивый. Скорее всего прислушаемся. А вообще пора новую шапку для прикреплёного треда пилить всем программачем. Или может сначала крестоёбскую доделаем?
Аноним 18/01/16 Пнд 18:47:45 #383 №628350 
14531320653030.jpg
>>628320
Здесь, дорогие друзья, мы с вами можем наблюдать, как детеныш Gallus Static, заботливо выращенный в теплом и уютном вольере, впервые столкнулся с диким и опасным миром динамической типизации.
Аноним 18/01/16 Пнд 18:50:07 #384 №628352 
>>628350
Сейчас же все уже на смешанной типизации, не?
Аноним 18/01/16 Пнд 18:50:32 #385 №628353 
>>628352
А что у бэйсика?
Аноним 18/01/16 Пнд 18:52:47 #386 №628357 
>>628352
Нет, сплюнь. Это пережиток Си.
Сейчас мода на статику с выводом типов.
18/01/16 Пнд 19:00:03 #387 №628363 
>>628331
>Рабе/петон для нюфань
Я насчет Ruby и сам не оче согласен, но не хочу игнорировать труд предшественника. Пусть у него вся лента из "руби, скалы и еще какой-то хуйни", человек старался же, собирал материалы. Не мной покладено, не мне и дадено, такие дела. К тому же, я бы для начального обучения алгоритмизации выбрал питон, а не паскаль, ибо вред от отсутствия жесткого контроля за ньюфагом с лихвой компенсируется живостью языка и на порядок более высоким уровнем абстракции. ИМХО.
>>628340
Я только за. Если анон захочет допилить прикрепленный тред, с удовольствием все добавлю. Алсо, можете создать тред для обсуждения всего этого. Если анон проявит желание и начнется движуха, то можно будет прикрепить его, или сделать голосовалку, или еще что-то.
Аноним 18/01/16 Пнд 19:15:13 #388 №628389 
>>628363
> труд предшественника
Того долбаёба который ссылки на треды про ЯП по пол года не обновлял?
У него ещё есть админка?

>Я только за.
https://2ch.hk/pr/res/628387.html
Аноним 18/01/16 Пнд 21:13:44 #389 №628522 
>>628334
Ага, брать кулист вместо няшного кувектора.
Аноним 19/01/16 Втр 14:01:16 #390 №629115 
14532012765170.jpg
>>628301
>>628314
>>628312
Знаю сишку на довольно неплохом уровне, могу в микроконтроллеры на сишке, могу в приличный код, но по части ООП и мультитрединга новичок. Знаю плюсы на уровне теории (прослушал курс в универе, лол) и пары лаб, но не практиковался пока в STL и разных shared_ptr и прочих тонкостях, которые, как я понял, необходимы. Рефакторил немного один проект на плюсах, офигел от паттернов.
>>628312
Про Qt - довольно логично, ибо плюсы в GUI как-то непонятно даже, зачем. А почему в энтерпрайзе он легаси? В эмбеддед пока не собираются завозить джаву? Сложно ли вкатиться в такие серьёзные проекты? Что обычно нужно знать, кроме стандартных вещей вроде ООП и мультитрединга? Работы вообще много в мире, или на плюсовиков спрос ограничен, как на админов?
>>628317
Вроде бы, Intellisense там теперь не такой интеллигентный, как прежде, в отличии от шарпа. Сам не смотрел, но слова анона, который об этом сообщил, насторожили.
Аноним 19/01/16 Втр 19:26:53 #391 №629365 
>>629115
Помидоры скачай, хули как маленький.
Аноним 19/01/16 Втр 19:28:00 #392 №629367 
Дайте годный гайд как запилить сервер на сокетах в Qt
Аноним 19/01/16 Втр 19:33:10 #393 №629376 
>>629367
Лабы идут на хуй.
Аноним 19/01/16 Втр 19:34:02 #394 №629378 
>>629376
Надо убрать это правило из шапки.
Аноним 19/01/16 Втр 19:34:34 #395 №629379 
>>629367
Ричард Стивенс, любая книга по TCP/IP.
Аноним 19/01/16 Втр 19:54:57 #396 №629399 
>>629378
Хейтер сосет хуй на пару со своей мамашей.
Аноним 19/01/16 Втр 20:55:43 #397 №629507 
>>629376
Лабы идут нахуй. Мне >>629367 для себя. Но я нихуя нормального не нагуглил.
Аноним 19/01/16 Втр 21:27:22 #398 №629532 
Котоны, делаю хуйню на Qt, короч.
Для хуйни нужен секундомер.
Ну я короч велосипед с second++ пилить не стал, взял qtime
Тут такая хуйня, доки говорят что:

addSecs()
Returns a QDateTime object containing a datetime s seconds later than the datetime of this object (or earlier if s is negative).

(вольная копипаста, суть передана)

И, собственно, добавить секунду в QTime stopwatch у меня получилось только так:

QTime temp = stopwatch->addSecs(1);
*stopwatch = temp;

Это нормально или полный пиздец и можно проще?
Аноним 19/01/16 Втр 21:34:02 #399 №629537 
>>629532
Да, долбоеб, додумался до
*stopwatch = stopwatch->addSecs(1);
но все равно мне это кажется костылем
Аноним 19/01/16 Втр 21:36:17 #400 №629539 
>>629507
https://github.com/ololoepepe/ololord
Аноним 19/01/16 Втр 22:21:49 #401 №629558 
>>629537
Нормально это. Енджой ойр ИММУТАБЕЛЬНОСТЬ.
Аноним 19/01/16 Втр 22:23:01 #402 №629559 
>>629558
Хорошо, благодарю.
Если честно, сам немного жалею что такой диплом брал, еще и на qt. Лучше бы простое "проектирование"
Аноним 19/01/16 Втр 22:38:47 #403 №629580 
http://pastebin.com/c9pKVq4N

Вроде все правильно сделал, но в io не совсем по порядку оно все.
Можете советов дельных дать, что можно переделать?
Аноним 19/01/16 Втр 22:39:05 #404 №629581 
>>629580
Производитель потребитель задача.
Аноним 19/01/16 Втр 22:58:51 #405 №629596 
Как можно оптимизировать этот код?

int i, j;
float sum = 0;
int num = 100000000;
for( i = 0; i < num; i++ )
{
for( j = 0; j < num; j++ )
{
float x = myDataX;
float y = myDataY[j];
float value = x+y;
sum+=value;
}
}

Кроме как вынести

float x = myDataX;

из вложеного цикла ничего в голову не приходит. Подскажи Анон?
Аноним 19/01/16 Втр 22:59:49 #406 №629598 
>>629596
int i, j;
float sum = 0;
int num = 100000000;
for( i = 0; i < num; i++ )
{
for( j = 0; j < num; j++ )
{
float x = myDataX;
float y = myDataY[j];
float value = x+y;
sum+=value;
}
}

быстрофикс
Аноним 19/01/16 Втр 23:01:07 #407 №629600 
>>629598
http://pastebin.com/HUYhhJ92

Аноним 19/01/16 Втр 23:17:12 #408 №629614 
>>629598
>
http://pastebin.com/xkHpGxzk
Помог чем смог
Аноним 19/01/16 Втр 23:29:58 #409 №629621 
>>629614
Аноним 20/01/16 Срд 00:25:41 #410 №629652 
>>629621
Ну, что ты хотел, милаш?
Аноним 20/01/16 Срд 00:50:37 #411 №629672 
>>629596
Во-первых неясно зачем тебе переменные x, y и value. Во-вторых тебе достаточно сумму первого массива умножить на 100000000 и прибавить к ней сумму второго массива умноженую на 100000000 ^ 2.
Аноним 20/01/16 Срд 03:10:15 #412 №629768 
>>629539
>>629399
пшёл нахуй со своей парашей. и высер твой из шапки нужно убрать.
Аноним 20/01/16 Срд 03:50:20 #413 №629776 
Посоны, постоянно на SO вижу отсылки к стандарту, мол
"Деструктор анального писюна, псалма 14 параграф 88 лука"
Где достать это говно? Как часто оно обновляется?
Аноним 20/01/16 Срд 03:59:57 #414 №629777 
>>629776
open-std.org Обновляется, 98, 2003, 2011, 2014, и будет вроде 2017. Важные обновления - 98 и 2011, а промежуточные - багфиксы по сути.
Аноним 20/01/16 Срд 05:37:01 #415 №629798 
>>629776
оно тебе не нужно, сын мой

>>629600
>>629598
>>629596
какая-то хуйня написана
у тебя myDataX и myDataY не зависят от одного из циклов
короче получается так:

sum = (std::accumulate(myDataX, myDataX + num, 0f) + std::accumulate(myDataY, myDataY + num, 0f)) * num;

либо распиши что там у тебя вместо "float value = x+y;"
Аноним 20/01/16 Срд 09:12:07 #416 №629875 
>>629798
Нужно.
Аноним 20/01/16 Срд 09:18:51 #417 №629881 
>>629776
Оно есть в шапке этого треда же.
Аноним 20/01/16 Срд 10:28:17 #418 №629903 
>>629672>>629798
кусок кода из тестового задания, где надо его оптимизировать
вот программа для теста (переменную num я уменьшил) результат в ней: 998540800
http://pastebin.com/XesqpaGR

если суммировать элементы и множить потом на размер, как здесь:
sum = (std::accumulate(myDataX, myDataX + num, 0.f) + std::accumulate(myDataY, myDataY + num, 0.f)) * num;

результат получается: 999000000
Аноним 20/01/16 Срд 10:39:51 #419 №629908 
>>629903
>кусок кода из тестового задания, где >надо его оптимизировать

Это я к тому что понятия не имею чего хотел автор достичь переменными x, y, value
Аноним 20/01/16 Срд 11:34:53 #420 №629936 
>>629903
> если суммировать элементы и множить потом на размер, как здесь:
А здесь все ок https://ideone.com/NMaxiV
Аноним 20/01/16 Срд 12:35:08 #421 №629979 
14532825086730.jpg
навернул boost.. Указатели,контейнеры, графы, графы, ГРАФЫ!!!!11
В гугле на русском ничего, кроме одной книжки. Что делать ?
Аноним 20/01/16 Срд 12:45:14 #422 №629987 
>>629979
Нахуя оно тебе надо?
Аноним 20/01/16 Срд 13:03:02 #423 №629996 
>>629979
Буст или графы ? Годная штука, много фич.
Аноним 20/01/16 Срд 13:55:06 #424 №630014 
>>629979
>кроме одной книжки
>boost
>книга на русском
Реквестирую срочно!
Аноним 20/01/16 Срд 14:11:34 #425 №630032 
Есть у кого-то нормальная, не наркоманская реализация обедающих философов на 11 стандарте без блядских mvc/posix семафоров?
Аноним 20/01/16 Срд 14:13:43 #426 №630034 
>>630032
Захват семафоров в алфавитном порядке.
Аноним 20/01/16 Срд 14:15:36 #427 №630036 
>>630034
А в стандарте есть семафоры? или ты имеешь ввиду condition_variable?
Сорцы есть?
Аноним 20/01/16 Срд 16:00:01 #428 №630115 
>>630032
>posix
Кстати что это? Вики прочитал, но нихуя не понял. А выглядит интересно. Если нуфаг, то можно для него какую-нибудь хуету написать? Реквестирую книгу.
Аноним 20/01/16 Срд 16:06:15 #429 №630124 
>>630115
>Кстати что это? Вики прочитал, но нихуя не понял.
Стандарт.
>А выглядит интересно
Выглядит как unix way c-only.
Аноним 20/01/16 Срд 16:08:37 #430 №630130 
>>630124
>c-only
Тогда не надо книг. А ты не врешь?
Аноним 20/01/16 Срд 16:52:14 #431 №630162 
>>630036
Для философов тебе мьютексов хватит же. Пока используешь любую вилку - блокируешь конкретно ее мьютексом. Дальше просто нумеруешь вилки и берешь всегда по возрастанию номеров.
Аноним 20/01/16 Срд 16:56:22 #432 №630169 
>>630130
Ричард Стивенс, "Программирование UNIX".
Аноним 20/01/16 Срд 17:05:11 #433 №630183 
>>630130
>А ты не врешь?
if ((sem_id = semget (ipc_key, 2, IPC_CREAT | IPC_EXCL |0600)) <0)
semctl (sem_id, 1, SETVAL, 1);
Аноним 20/01/16 Срд 17:07:39 #434 №630188 
>>629379
>>630169
>Ричард Стивенс
Это у вас новый мем?
Аноним 20/01/16 Срд 19:45:57 #435 №630356 
Qt к вижл студии прикрутить можно? Хочется кодить с интерфейсом, а всякие винапи и мфц дюже громоздкими выглядят для изучения.
Аноним 20/01/16 Срд 19:54:27 #436 №630362 
>>630356
Не туда смотришь. У Qt свой дух, весьма вонючий. Либо используешь Qt Creator, либо студию с нормальными библиотеками FLTK или wxWidgets там, если любишь помощнее и посложнее. Не надо мешать вино с пивом, блджад.
Аноним 20/01/16 Срд 21:56:07 #437 №630490 
>>630356
Да, можно, есть инсталляшка для интеграции, посмотри у qt на сайте.
Аноним 20/01/16 Срд 22:33:49 #438 №630530 
О, тут уже как раз за Qt пиздежь идет.
Хочу что-нибудь напердолить на кутешечке, но ума не приложу, что.
Аноним 20/01/16 Срд 22:42:12 #439 №630542 
>>630530
>Хочу что-нибудь напердолить на кутешечке, но ума не приложу, что
Визуализацию случайного блуждания с отражением.
Аноним 20/01/16 Срд 22:43:07 #440 №630546 
>>630542
Мм, как хуем в ротеш типо?
Аноним 20/01/16 Срд 23:19:17 #441 №630605 
>>630546
Как домой в пятницу вечером.
Аноним 20/01/16 Срд 23:28:43 #442 №630624 
>>630605
У меня любой день одинаков.
Аноним 21/01/16 Чтв 01:09:23 #443 №630747 
>>630490
Я чет вот после таких >>630362 отзывов уже и не знаю, нужна ли мне эта кутя.
Аноним 21/01/16 Чтв 01:40:23 #444 №630759 
>>630747
Тут индивиды любят пояснять что кутя нинужна, как и цпп - фве работает на гэтэкаплас и си.
Аноним 21/01/16 Чтв 02:18:48 #445 №630775 
>>630759
>гэтэкаплас
инфернальное говнище, почти полное повторение цепепе аби без использования слов цепепе
на выходе тонны говномакросов, которые делают абсолютно тоже самое что и плюсы внутрях
Аноним 21/01/16 Чтв 02:42:30 #446 №630785 
>>630775
зато без МАНГЛИНГА биндится через GObject Introspection даже к пердаку твоей мамки
Аноним 21/01/16 Чтв 09:03:45 #447 №630837 
>>630747
Будешь каждого дауна слушать - так и будешь думать, что X не нужен, а на Y работы нет.
Аноним 21/01/16 Чтв 09:23:22 #448 №630840 
>>630837
Давай, расскажи, как ты удачно впихнул string и QString в одно приложение.
Аноним 21/01/16 Чтв 09:34:31 #449 №630845 
>>630840
Но зачем мне это делать? В Qt свои контейнеры, зачем мне там нужен stl?
Аноним 21/01/16 Чтв 09:41:43 #450 №630848 
>>630845
Патамушта. Ты. Должин. !!!
Ведь ооп придумали не для разделения кода, видимо НИЛЬЗЯ разделять кодобазу на stl и qt.
Аноним 21/01/16 Чтв 09:42:54 #451 №630849 
>>630848
Ты кто вообще такой и что мне от тебя надо? Свяжешься с моим секретарем.
Аноним 21/01/16 Чтв 10:26:18 #452 №630864 
>>630845
А алгоритмы на контейнерами там есть?
Аноним 21/01/16 Чтв 10:38:51 #453 №630868 
>>630864
А нахуя тебе алгоритмы в гуе? Или ты не умеешь отделять логику от представления? Это уже к тебе вопрос тогда, лолка.
Аноним 21/01/16 Чтв 12:04:11 #454 №630899 
>>630840
Не понел, qstring можно сконструировать из потока байт в любой кодировке, не понимаю проблемы.
Аноним 21/01/16 Чтв 13:35:06 #455 №630958 
>>630848
Еблан тупой, Qt-контейнеры stl-совместимые. Сложно в хелп слазить, посмотреть?
Аноним 21/01/16 Чтв 13:47:48 #456 №630974 
При использовании идиомы пимпл как принято обзывать класс с имплементацией и где размещать его реализацию - в том же файле, где и основной класс, или же в другом?
Аноним 21/01/16 Чтв 14:07:48 #457 №630991 
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Cначала нихуя не понял
потом тоже
Аноним 21/01/16 Чтв 14:58:54 #458 №631017 
>>630868
>А нахуя тебе алгоритмы в гуе?
Вот вся суть кутеблядков в одном предложении. Сначала пихают везде свои нестандартные велосипеды в духе QYourMomma, а потом проект оказывается склепан из stl, qt и Аллаха в каждом файле и адаптеров к адаптерам, как ебаный монстр Франкенштейна.
Аноним 21/01/16 Чтв 15:01:14 #459 №631019 
>>630958
>stl-совместимые
>без аллокаторов
Ну это вообще пушка.
Аноним 21/01/16 Чтв 15:09:05 #460 №631022 
>>631017
Хуйню спизданул и рад.
Аноним 21/01/16 Чтв 16:02:36 #461 №631062 
>>631019
Даже обоссывать тебя лень, дегенерат тупой.
http://doc.qt.io/qt-4.8/containers.html#stl-style-iterators
>STL-style iterators have been available since the release of Qt 2.0. They are compatible with Qt's and STL's generic algorithms and are optimized for speed.
Аноним 21/01/16 Чтв 16:40:06 #462 №631108 
>>631062
>Qt-контейнеры stl-совместимые
Глядите, маняманевры пошли. Ты разницу между совместимостью с STL и совместимостью с алгоритмами STL ощущаешь, чепуш? Охуеть просто, я напишу пустую заглушку с интерфейсом итератора, буду ее возвращать и кукарекать о совместимости с STL, а пацаны-то не знали.
Аноним 21/01/16 Чтв 17:04:03 #463 №631121 
>>631108
Что ты вкладываешь в понятие "совместимость с STL" дауна ты кусок? Скажи, зачем вот это вот суетливое маняврирование про неработающие самописные итераторы? Конечно, если их написать чтобы они не работали, то они работать не будут, то же мне сюрприз. Вот только те которые сейчас в Qt есть - они работают, и можно при помощи std::sort сортировать QVector или там при помощи std::find_if что-то в нем искать. Какая тебе еще совместимость с STL нужна, дегенератина ты тупая?
Аноним 21/01/16 Чтв 17:14:39 #464 №631132 
Объясните ньюфагу.
Пока не раскурил <atomic> и <future>. Понять не могу, везде кукарекают, что надо lock-free, lock-free; нахуй тогда вообще в таком случае нужны мутексы и локи и хуёки, если можно все ебашить ЛОК ФРИ?!
Я серьезно не понимаю, объясните, если кто осведомлён.
Аноним 21/01/16 Чтв 17:14:57 #465 №631133 
>>631132
Ну как ньюфагу, ньюфагу в паралеллизме на стандарте.
Аноним 21/01/16 Чтв 17:17:55 #466 №631134 
>>631132
потому что нельзя абсолютно всё заебашить локфри
зато там, где можно, есть ч0ткий рост скорости
Аноним 21/01/16 Чтв 17:19:35 #467 №631135 
>>631134
Что именно нельзя, можешь немного конкретизировать? За пеленой абстракции не воспринимается разница.
Аноним 21/01/16 Чтв 17:23:32 #468 №631137 
>>631135
одновременное действие с двумя и более общими объектами
Аноним 21/01/16 Чтв 17:25:52 #469 №631139 
>>631137
А, ну охуеть тогда.
Примерно понятно. Спасибо.
Аноним 21/01/16 Чтв 17:40:14 #470 №631143 
>>631121
Ты наркоман штоле, сука? stl-совместимый контейнер = контейнер с интерфейсом, идентичным контейнерам stl. Ты можешь использовать объекты QVector вместо объектов std::vector без перепила клиента? Нет. О какой тогда совместимости ты кукарекаешь, маня?
Аноним 21/01/16 Чтв 17:47:39 #471 №631148 
>>630974
В другом, разумеется, в этом вся суть PIMPL. В книжках называют TvoyaMamkaImpl, но я обычно сразу делаю все классы имплементациями, используя родные имена. Если надо PIMPL, использую специальную шаблонную обертку с джвумя хэдерами. Если интересно, могу пояснить подробнее за принцип.
Аноним 21/01/16 Чтв 17:55:55 #472 №631152 
>>631148
Но нахуя?
У мэйерса в том же, и http://c2.com/cgi/wiki?PimplIdiom здесь
в том же файле - имел ввиду .cpp а не .hpp, может ты неправильно меня понял
Аноним 21/01/16 Чтв 17:56:58 #473 №631154 
Попробовал упороться дишкой - на кресты без слез и истерического смеха уже не получается.
Аноним 21/01/16 Чтв 17:58:15 #474 №631156 
>>631154
Перепишешь всю С++ кодобазу на ди - потом приходи.
Аноним 21/01/16 Чтв 17:59:28 #475 №631157 
>>631156
Но ведь их можно использовать совместно.
Аноним 21/01/16 Чтв 18:00:03 #476 №631158 
>>631157
Все сказал?
Аноним 21/01/16 Чтв 18:29:27 #477 №631184 
>>631154
съеби в дэ тред
Аноним 21/01/16 Чтв 18:30:08 #478 №631187 
>>631143
>Ты можешь использовать объекты QVector вместо объектов std::vector без перепила клиента?
Да могу, большинство методов std::vector продублированы в QVector. Я ж советовал тебе хелп посмотреть, хули ты этого еще не сделал?
Аноним 21/01/16 Чтв 18:30:48 #479 №631190 
О, напишу потокобезопасное BST, может надрочусь немного.
Аноним 21/01/16 Чтв 18:33:46 #480 №631194 
>>631152
Лол, так у Мейерса это просто иллюстрация, а не реальное использование. Чтобы можно было скопипастить и скомпилировать. Это как с using namespace std - удобно писать примеры, но реально так не делают.

Первоочередная задача PIMPL - ускорение компиляции. Допустим, ты хочешь завести в классе YourBatya член-экземпляр класса Trukhany. Тогда компилятору нужен размер труханов, т.е. внутри файла с классом бати это должен быть т.н. complete type. Поэтому ты делаешь #include <Trukhany.h>

Хэдер с труханами большой, а у бати есть еще три экземпляра Grass и экземпляр FartFactory, а у их хэдеров есть свои зависимости и инклуды... Получается, что после вставки всех хэдеров батин файл становится неебического размера. И такое происходит почти с каждым классом, у которого есть зависимости, поэтому компилятор тратит очень много времени на многократный парсинг всего этого дерьма, как только какой-то из хэдеров изменяется.

Вот чтобы такого не было, используют PIMPL. Вместо инклуда пишут просто объявление, что есть такой class Trukhany, а что это за класс - батин хэдер не ебет, потому что при использовании PIMPL экземпляр хранится по указателю, а все методы, которым уже надо знать про внутренности труханов, вынесены в батин .cpp. Таким образом, при изменении Trukhany.h придется перекомпилировать только .cpp-шники, которых не так много, а не рекурсивно большую часть проекта.

Вообще, PIMPL используется не только для этого (например, в паттернах наподобие Bridge, по сути, тоже PIMPL, но там акцент на возможность заменить имплементацию в рантайме, поэтому часто "имплементацию по умолчанию" размещают рядом), но самый часто используемый и существенный эффект - именно с выносом в другой файл.
Аноним 21/01/16 Чтв 18:36:38 #481 №631199 
>>631187
std::vector <int, std::allocator <int>> v {};

Вот тебе тело функции из одной строчки. Заменяешь vector на QVector, пробуешь скомпилировать, обретаешь просветление.
Аноним 21/01/16 Чтв 18:38:11 #482 №631202 
>>631194
Ты щас описал то что у мэйерса.
Какой прикол выделять реализацию в другой файл ( НЕ БАТЯ.cpp ) - ты так и не написал.
Аноним 21/01/16 Чтв 18:39:39 #483 №631206 
>>631199
Скомпилировал.
Что дальше кукарекаем?
Аноним 21/01/16 Чтв 18:42:21 #484 №631207 
>>631206
Пруф на ideone давай.
Аноним 21/01/16 Чтв 18:42:48 #485 №631208 
>>631207
На идеоне есть кьют?
Аноним 21/01/16 Чтв 18:44:12 #486 №631213 
>>631208
тогда экзэшник. или в ассемблер конвертируй и показывай
Аноним 21/01/16 Чтв 18:45:18 #487 №631215 
>>631213
Еще чего, я что, виндоманька какая?
Аноним 21/01/16 Чтв 18:46:53 #488 №631217 
>>631215
Тогда линуксовый файл или ассемблер показывай.
Аноним 21/01/16 Чтв 18:52:58 #489 №631218 
14533915784620.png
>>631202
Пикрелейтед два подхода. Вопрос скорости компиляции решают оба, но правый более гибкий и связанность меньше.
Аноним 21/01/16 Чтв 18:54:12 #490 №631219 
>>631218
И профит только в том, что ты на два файла разбил? Ну озуеть.
Аноним 21/01/16 Чтв 19:00:59 #491 №631222 
>>631219
Профит в том, что firewall_* пишутся один раз и потом их можно использовать с любыми классами. Когда ты пишешь батю, ты не думаешь про способ его использования, просто пишешь обычный класс. Захотел сделать для него PIMPL - правишь только клиент (мамку). Принцип единственной обязанности же.
Аноним 21/01/16 Чтв 19:14:41 #492 №631229 
>>631222
Ну окей.
Аноним 21/01/16 Чтв 19:36:25 #493 №631244 
>>631222
Бля, и decl, и def.
Понятно, я такое в сорцах Qt видел.
Аноним 21/01/16 Чтв 20:12:07 #494 №631254 
14533963275470.png
>>631222
Вот так примерно будет правильно?
Аноним 21/01/16 Чтв 20:13:22 #495 №631255 
>>631254
Ну и мамку тоже, и типа логика пердежа будет независима от субъекта.
Аноним 21/01/16 Чтв 20:17:44 #496 №631257 
>>631194
>Первоочередная задача PIMPL - ускорение компиляции
блядь, что ты несешь?? кто сейчас заморачивается скоростью компиляции??
PIMPL нужен для библиотек, чтобы можно было бы менять внутренности скрытого класса, не ломая ABI

>Вместо инклуда пишут просто объявление, что есть такой class Trukhany
бляяяяяядь, это всего лишь forward declaration, а не PIMPL
Аноним 21/01/16 Чтв 20:19:17 #497 №631259 
>>631194
читай хотябы вику: https://en.wikipedia.org/wiki/Opaque_pointer
Аноним 21/01/16 Чтв 20:20:48 #498 №631260 
>>631259
Кстати, я вот хотел ему сказать за эту статейку и за fragile binary interfaces, но разве одно отменяет другое? Быстрая компиляция действительно имеет место.
Аноним 21/01/16 Чтв 20:22:23 #499 №631261 
Окончательно меня запутали, короче.
Аноним 21/01/16 Чтв 20:24:35 #500 №631262 
Things to Remember
• The Pimpl Idiom decreases build times by reducing compilation dependencies
between class clients and class implementations.

У Мэйерса вот написано про время компиляции.
А он тоже не хуй с горы, как бы.
Аноним 21/01/16 Чтв 20:34:04 #501 №631269 
Как передавать инфу из соседнего класса?
К примеру, хочу сделать так, чтобы у меня файл читался и выводился на экран, но чтобы при этом чтение файла было в соседнем классе.
Т.е.
Файл 1.cpp должен пользовать файл 2.cpp чтобы вызвать функцию открытия файла.
А файл 2.cpp должен заюзать 1.cpp чтобы вывести это дело на экран. Данных предполагается много, поэтому return (переменная с дохуя текста), не хотелось бы юзать.
Подключать "друг в друга" мечта /b компилятор, естестна не дает
Аноним 21/01/16 Чтв 20:35:25 #502 №631270 
>>631269
Чем плох ретурн?
Аноним 21/01/16 Чтв 20:37:58 #503 №631272 
>>631269
Hui::print(Pizda::read())?
Аноним 21/01/16 Чтв 20:39:29 #504 №631275 
Короче, я понял, ты описал Firewall, а он лишь частный случай пимпла.
Аноним 21/01/16 Чтв 20:40:19 #505 №631276 
>>631270
>>631272
Не хотел признаваться, но придется.
Не осилил QSettings, решил писать свой костыль (заодно научиться парсить файлы - тип оправдание).
А там надо прочитать файл, и потом на основе его раскидать параметры в файле, заправляющем гуями.
Можете обоссывать
Аноним 21/01/16 Чтв 20:42:38 #506 №631277 
Так перепиши, там хуйни на 2 минуты с докой
Аноним 21/01/16 Чтв 20:42:54 #507 №631278 
>>631276
Что пишешь, кстати?
Аноним 21/01/16 Чтв 20:42:55 #508 №631279 
>>631276
А какие проблемы с QSettings?
Аноним 21/01/16 Чтв 20:43:59 #509 №631280 
>>631276
> решил писать свой костыль
> надо прочитать файл, и потом на основе его раскидать параметры в файле
Я слышал из крестов можно консольные команды выполнять. А из консоли перл программки. А перл как раз сделан чтобы такие проблемы решать.
Аноним 21/01/16 Чтв 20:45:00 #510 №631281 
>>631280
Я бы использовал хаскель.
Аноним 21/01/16 Чтв 20:45:20 #511 №631282 
>>631269
Передавай частями. Тоесть 1.cpp хочет отобразить файл, он создает объект 2.cpp, передает уме себя как делегата (или кого-то специально обученого быть делегатом). 2.срр читает файл, и каждые n байт отдает делегату. Еще можно просто общий буфер использовать, но там по-моему больше нюансов всплывает.
Аноним 21/01/16 Чтв 20:46:33 #512 №631283 
>>631279
Первое и основное - прочитал джва раза, понял что ничего не понял.
Второе - оно как-то странно раскидывает конфиги - в винде в реестр, в линухах - в ini. Хотя видел упоминание второго режима. Но тут вступает первый пункт в игру.

>>631278
Мокропиську для работы под себя, чтобы удобней было.

>>631280
Хотел бы рискнуть, но мне бы работающую версию поживее. Да и опять же, помимо qt нужно будет и перл тянуть сверху (предполагается помимо как на линухах и на винде пользовать еще)
Аноним 21/01/16 Чтв 20:47:28 #513 №631284 
>>631282
Я только вкатился (не профессия, решил себе жизнь упростить прост, поебавшись много и заранее), поэтому для меня это пока... сложновато.
Аноним 21/01/16 Чтв 20:47:57 #514 №631285 
>>631283
Ну на винде реесто, а на линупсе в конфиги.
А что не так то?
Аноним 21/01/16 Чтв 20:49:00 #515 №631286 
Оп, ты учёл эти советы при составлении шапки? Там список кидал. Ещё есть время что-то исправить.
https://arhivach.org/thread/135285/#618203
Аноним 21/01/16 Чтв 20:49:19 #516 №631287 
>>631285
Единый конфиг проще для бэкапа, тем более в случае с виндой и реестром, имхо.
Аноним 21/01/16 Чтв 20:52:37 #517 №631289 
>>631287
Ок. Тогда чем плох JSON?
Аноним 21/01/16 Чтв 20:53:46 #518 №631290 
>>631289
Тем что я о нем не знал.
Буду смотреть сейчас, спасибо.
Аноним 21/01/16 Чтв 20:55:48 #519 №631292 
>>631290
>>631289
Тем, что QSettings предоставляет унифицированный доступ к конфигам настроек без ебли?
Аноним 21/01/16 Чтв 20:56:18 #520 №631293 
Поясните за делегаты, я думал в плюсах такое не используют, слышал про них в джаве и шарпе.
Аноним 21/01/16 Чтв 20:58:00 #521 №631295 
>>631292
Ну кусеттингс его не устроил же.
Аноним 21/01/16 Чтв 20:58:02 #522 №631296 
>>631292
Честно - читал вчера документацию. Пробовал. Не пришло осознание. Сейчас почитаю по совету этого >>631289 анона. Наступит просветление - переведу. Или нет. Не знаю (один хрен не в продакшн же)
Аноним 21/01/16 Чтв 20:58:30 #523 №631297 
>>631293
По идее делегат - это лямбда. Функция, которая видит свое окружение.
Аноним 21/01/16 Чтв 21:00:01 #524 №631298 
> Тред в бамплимите
> Скорость постинга возрастает в 10 раз
Аноним 21/01/16 Чтв 21:00:25 #525 №631299 
>>631298
Это нормально.
Аноним 21/01/16 Чтв 21:00:38 #526 №631300 
>>631255
В целом да, unique_ptr позволяет. Есть такой нюанс, что для безопасности лучше не использовать голый unique_ptr, потому что там может быть nullptr, или, к примеру, кто-то может внезапно заменить объект. Удобнее всего сделать класс у меня это firewall, который содержит unique_ptr и самостоятельно инициализирует указатель, а после создания гарантирует, что его никто не изменит. Поэтому и надо разделение на decl и def - деструктору и конструктору нужна полная инфа о бате, поэтому def включается уже в .cpp, когда это известно.
Аноним 21/01/16 Чтв 21:04:14 #527 №631304 
>>631297
Так лямбда она и есть лямбда
А делегат при чем?
Аноним 21/01/16 Чтв 21:05:16 #528 №631305 
>>631296
Лол, те же яйца, только в профиль.
На выхлопе ты изобретешь кусеттингс, понимаешь, где ты себя наебал?
Аноним 21/01/16 Чтв 21:07:21 #529 №631308 
>>631304
Делегат необязательно лямбда, блять.
Грубо говоря, делегат это каллбек. Насколько я понял.
Аноним 21/01/16 Чтв 21:09:01 #530 №631310 
>>631308
В дишке есть function и есть delegate.
Разница в том, что function видит только свои параметры, а делегат может видеть то, что снаружи.

То есть, std::function, которая чего то снаружи захватывает - и есть делегат.
Аноним 21/01/16 Чтв 21:09:24 #531 №631311 
>>631305
Я понимаю твой настрой.
Но прошу учитывать мою зеленость и твой укор - для меня тоже новая информация.
Также меня смутила эта статья: http://habrahabr.ru/post/149085/ хоть я и понимаю, что там для меня ничего полезного (на данном этапе)
Аноним 21/01/16 Чтв 21:10:07 #532 №631312 
>>631310
[this] или [&] да?
Аноним 21/01/16 Чтв 21:10:32 #533 №631313 
>>631312
Вроде того.
Аноним 21/01/16 Чтв 21:11:06 #534 №631317 
>>631313
Спасибо.
Аноним 21/01/16 Чтв 21:11:59 #535 №631318 
>>631257
>кто сейчас заморачивается скоростью компиляции?
Пару тредов назад была ссылка на презентацию команды яндекс-браузера. У них он компилировался "два часа на хорошем макбуке". Ты не с ними работаешь, часом?
>чтобы можно было бы менять внутренности скрытого класса
Это одно и то же, лол. В случае библиотек просто цена выше - придется перекомпилировать не половину проекта, а все проекты, юзающие библиотеку.
>это всего лишь forward declaration
Ну. В PIMPL-обертке же есть указатель на имплементацию, поэтому требуется forward declaration, иначе не скомпилируется.
Аноним 21/01/16 Чтв 21:15:53 #536 №631320 
>>631318
Блин.
This technique is described in Design Patterns as the Bridge pattern. It is sometimes referred to as "handle classes",the "Pimpl idiom" (for "pointer to implementation idiom"),"Compiler firewall idiom", "d-pointer" or "Cheshire Cat", especially among the C++ community.

Почему чеширский кот и d-ptr? Особенно д, в Qt сырцах ввеееезде d, что он символизирует?
Аноним 21/01/16 Чтв 21:17:27 #537 №631322 
>>631259
Вряд ли я оттуда это спиздил. ЕМНИП, я выработал такой подход на основе Мейерса, когда хотел повторно использовать эту хуйню.
Аноним 21/01/16 Чтв 21:19:51 #538 №631328 
>>631322
Ну так это уже частный случай, лол.
В чистом пимпле это не нужно, нужна скорость компиляции и скрытие от пользователя.
А то что можно многоразово юзать - это уже фишечка. Отталкиваться нужно от ситуации, ящитаю. Если нету бати и мамки - то зачем плодить еще два файла :)
Аноним 21/01/16 Чтв 21:22:34 #539 №631333 
>>631275
Да. Суть в том, что надо баланс между повторным использованием и специализированностью к твоей задаче. PIMPL можно сделать по-разному, и вообще граница между ним и другими подходами с внедрениям зависимости оче размыта. Можно каждый раз делать два класса, форвардить методы и получать PIMPL с идентичным интерфейсом. Или вынести только часть методов. А я зделал упор на повторное использование, но ценой некоторого фиксирования конкретной реализации.
Аноним 21/01/16 Чтв 21:23:46 #540 №631335 
>>631333
Во-во, именно, баланс исходя из ситуации.
Аноним 21/01/16 Чтв 21:29:30 #541 №631342 
>>631286
Ну, это вообще дело вкуса же. Мне кажется, не стоит в шапке перечислять все существующие иде, тем более, что на вкус и цвет... Я руководствовался тем, что надо предоставить наиболее дружелюбные ньюфагу варианты, а важнейшим фактором является автодополнение и ебля при установке. Автодополнение объективно лучшее у студии, а среди остальных - у codelite, ебля с обеими умеренная, вместе они покрывают все три оси. Поэтому не стоит менять их на что-то другое без причины, ящитаю.

Литературу как раз сейчас смотрю, возможно, успею что-то впилить уже в этом перекате.
Аноним 21/01/16 Чтв 21:30:16 #542 №631343 
>>631297
Она не видит же, если не делать захват.
Аноним 21/01/16 Чтв 21:31:09 #543 №631346 
Осталось только придрочиться и понять, где та грань между использовать пимпл / не использовать, при условии что не библиотеку пишешь.
Аноним 21/01/16 Чтв 21:31:38 #544 №631348 
>>631343
Но может ведь, если делать.
Короче, я понимаю делегат как функцию, которую можно запихнуть в функцию высшего порядка.
Аноним 21/01/16 Чтв 21:35:33 #545 №631352 
>>631320
Чеширский кот потому что типа видно только улыбку-обертку, как в сказке про Алису. Алсо, там много разных названий и много разных деталей. Я стараюсь как-то систематизировать это, а не мешать в кучу. Конкретно под мостом у банды подразумевался случай с немного другой мотивацией - разделением иерархий интерфейсов и реализаций, чтобы не плодить классы. А у Скотта pimpl решает именно проблему скорости компиляции, поэтому я обычно различаю эти понятия. Но вообще это просто вопрос терминологии, можно и не заморачиваться.
Аноним 21/01/16 Чтв 21:39:12 #546 №631356 
>>631348
Вики вообще говорит, что делегат это "безопасный указатель на функцию". Зачем, кстати, тянуть в кресты лишнее понятие из шарпа? Есть лямбды, есть функторы, есть function wrappers, хуле еще надо?
Аноним 21/01/16 Чтв 21:41:18 #547 №631357 
>>631356
Разве это не абстрактное, не зависящее от языка понятие?

Да и сабж в крестах появился недавно, лет 5 назад всего. Всякие бусты не смотрел.
Аноним 21/01/16 Чтв 21:42:34 #548 №631360 
>>631356
>безопасный указатель
оксюморон
Аноним 21/01/16 Чтв 22:00:00 #549 №631379 
Посоны, я, короче, отложу перекат до завтра, но зато успею впилить много новых книг при таком раскладе. Наберитесь терпения, пожалуйста. Всем добра.
Аноним 21/01/16 Чтв 22:17:11 #550 №631399 
>>631352
Одно идет со вторым, лол. Компиляция и разделение. Велкам ту исходники Qt.
Аноним 21/01/16 Чтв 22:17:59 #551 №631404 
А нахуя перекоты такие частые? 500 постов на микротематике всего-то
Аноним 21/01/16 Чтв 22:18:33 #552 №631405 
Ребят, спасибо за помощь и за то что заставили осилить таки QSettings (вроде управился, получается)

Также отдельное спасибо анону, посоветовавшему JSON, т.к. он натолкнул меня на реализацию пары полезных фич с помощью этого дела.

Всем доброго времени суток.

>>631269-кун
Аноним 21/01/16 Чтв 22:19:54 #553 №631408 
>>631405
Ну вот :3 Хули там, записать-прочитать, группу открыть-закрыть, сохранить, открыть.
Аноним 21/01/16 Чтв 22:20:23 #554 №631410 
>>631404
Все любят кресты, бамплимит быстро наступает. Скоро джаву с пхп обгоним.
Аноним 21/01/16 Чтв 22:21:04 #555 №631413 
>>631410
Еще работу по ним найти.
Аноним 21/01/16 Чтв 22:26:18 #556 №631421 
>>631399
Зачастую да, но вообще это совершенно разные вещи, так что не обязательно. Например, может быть pimpl без разделения (если impl - конкретный класс без наследования от абстрактного интерфейса, то так и есть: сменить его в рантайме не получится, но зато работает немного быстрее без виртуальности), а может быть разделение без pimpl (когда в силу легкости абстрактный интерфейс отделенной части инклудят сразу, чтобы иметь возможность звать его методы прямо из хэдера).
Аноним 21/01/16 Чтв 23:13:49 #557 №631472 
Напрягает кьют.
Огромнейший фреймворк, можно велосипед написать и не быть в курсе, что это говно уже запилено.
Куча макросов, хуякросов, куэмель, хуеэмель - как это все помнить?
Написание любой хуйни с нуля заканчивается переполнением стека мозга в поиске в глубину.
Аноним 21/01/16 Чтв 23:37:22 #558 №631499 
>>631472
Элементарно. Когда тебе что то нужно - ищешь это в составе Qt и из хуень оттуда, как из кирпичиков, херачишь прогу.

А там есть практически все.
Аноним 21/01/16 Чтв 23:40:33 #559 №631502 
>>631499
Ага.
А потом оказывается, что тебе нужно все перепиливать, потому что хуйнянейм работает по-другому.
Аноним 21/01/16 Чтв 23:41:57 #560 №631503 
>>631502
Ну и что такого. Суть погромирования - постоянно что то перепиливать. В мире постоянно меняющихся хуйнянеймов.
Аноним 21/01/16 Чтв 23:51:33 #561 №631506 
>we can ship only headers and binaries instead .cpp
Как это сделать?
Аноним 22/01/16 Птн 00:21:38 #562 №631523 
>>631506
.h и .lib/.a/.dll/.so Гугли статические и динамические библиотеки
Аноним 22/01/16 Птн 00:22:40 #563 №631525 
>>631523
Это я туплю уже. Сорян.
Аноним 22/01/16 Птн 04:03:30 #564 №631601 
Ребят, я тупой, не могу установить VS, а точнее - не хочет устанавливаться .net framework 4.6.1. Что делать? Окна версии 8.1. Отдельно пытался установить - тоже какая-то проблема у него.
лог ошибки для фреймвока:
OS Version = 6.3.9600, SP = 0.0, Platform 2
OS Description = Win81 - x64 Enterprise Edition
MSI = 5.0.9600.17905
Windows servicing = 6.3.9600.17709
CommandLine = D:\9b9e4e20fea3f3ccdd3319a1\\Setup.exe /x86 /x64 /redist
Using Simultaneous Download and Install mechanism
Operation: Installing
Package Name = Microsoft .NET Framework 4.6.1 Setup
Package Version = 4.6.01055
User Experience Data Collection Policy: AlwaysUploaded
Number of applicable items: 6
RmShutdown failed with error: 351
RmShutdown failed with error: 351
Exe (D:\9b9e4e20fea3f3ccdd3319a1\SetupUtility.exe) succeeded.
Exe Log File: dd_SetupUtility.txt
Exe (D:\9b9e4e20fea3f3ccdd3319a1\SetupUtility.exe) succeeded.
Exe Log File: dd_SetupUtility.txt
Exe (D:\9b9e4e20fea3f3ccdd3319a1\x64-Windows8.1-KB3102467-x64.cab) failed with 0x490 - Element not found. .
Final Result: Installation failed with error code: (0x00000490), "Element not found. " (Elapsed time: 0 00:04:12).
Аноним 22/01/16 Птн 09:00:20 #565 №631664 
>>631601
>x64-Windows8.1-KB3102467-x64.cab) failed with 0x490 - Element not found
Ну очевидно же, что надо поставить эту обнову вручную. Найди ее в центре обновления или скачай у мелкомягких с сайта.
Аноним 22/01/16 Птн 11:21:40 #566 №631752 
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/631744.html
https://2ch.hk/pr/res/631744.html
https://2ch.hk/pr/res/631744.html
Аноним 23/01/16 Суб 16:43:18 #567 №632798 
>>622611 (OP)
><устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004)
Котаны, насколько устарело? У меня издание 2006 года (4е издание). Легко читается. Есть ли смысл учить по этой книге а потом добрать знаний по новшествам либо лучше сразу брать новую кригу? эта в бумажном варианте, а читать с монитора ну совсем не круто
При этом паралельно смотрю разные видео на тытрубе, кстати.
Аноним 23/01/16 Суб 16:48:48 #568 №632801 
>>622611 (OP)
Вот вы мне поясните, почему, если С++ так охуенен, в перепись треде все нормальные зарплаты у тех кто пишет на php и JS а с плюсами там всего пара человек???
comments powered by Disqus

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