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

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

 Аноним 06/11/15 Птн 16:31:16 #1 №574713 
14468166764350.png
git push, когда уже зарделось небо,
Я ввел и слушал, как в слезах сквозь сон
Жена и дети жадно просят хлеба.

Влачить существованье обречен,
Кто лямку крестоебства не отринул
И был Его печатью заклеймен.

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

Таю на сытых джаваблядков злость.


FAQ:

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

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

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

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

Литература:

Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования 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
Скотт Мейерс - Effective Modern C++ (на ангельском) (2015) - https://goo.gl/uImH0J
Скотт Мейерс - Эффективное использование 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/n4527.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++. Справочник разработчика (2003) - https://goo.gl/0M4NpG
Роберт Седжвик - Фундаментальные алгоритмы на C++ (2001) - https://goo.gl/4jwxSl (части 1-4), https://goo.gl/yDuQgG (часть 5)
Ариндам Мукерджи - Learning Boost C++ Libraries (на ангельском) (2015) - https://goo.gl/b0gPN1

Ссылки:

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

Куда писать код:

Под шиндошс удобно использовать 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, например, Code::Blocks (sudo aptitude install codeblocks) и работать в ней.

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

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

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

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

Йоба-набор библиотек, способный удовлетворить даже самые скотские фантазии - http://www.boost.org
Библиотека для удобной высокоуровневой работы с сетью (ахтунг! утягивает за собой boost, openssl и даже Аллаха) - https://casablanca.codeplex.com
Простая в обращении библиотека для работы с графикой и аудио - http://www.sfml-dev.org

И многое другое - http://en.cppreference.com/w/cpp/links/libs

Памятка:

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

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

Старший брат: >>518562 (OP)
Предыдущий: >>566041 (OP)
Аноним 06/11/15 Птн 16:31:52 #2 №574714 
Предыдущие треды на архиваче:
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/
Аноним 06/11/15 Птн 16:49:02 #3 №574732 
>>574713 (OP)
> Последняя на данный момент версия черновика стандарта C++17 (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4527.pdf
Что нахуй.Я же только начал учить, а тут уже новая версия.Есть ли большая разница между версиями?
Аноним 06/11/15 Птн 16:51:09 #4 №574735 
>>574732
Его же еще не приняли, в ближайшие два года можешь не волноваться. Алсо, эта версия не такая уж и новая, последние заседания были весной, так что ей уже полгода, считай.
Аноним 06/11/15 Птн 16:53:00 #5 №574738 
14468179804720.jpg
>>574713 (OP)
Анон, а чего почитать чтобы стать системщиком под линукс? Знание C++ уровня использования Qt.
Аноним 06/11/15 Птн 16:53:49 #6 №574739 
Усатый хуй внял моим молитвам, уже доступен предзаказ: http://www.ozon.ru/context/detail/id/34747131 Покайтесь, ибо грядет!
Аноним 06/11/15 Птн 16:56:19 #7 №574744 
>>574713 (OP)
С какого треда началось поэтическое буйство? Хочу весь сборник прочитать
Аноним 06/11/15 Птн 16:57:33 #8 №574746 
>>574738
Сначала книжки по осям и учи чистый си, потом кури ядро и его доки, можешь попробовать коммитить. https://github.com/torvalds/linux
Аноним 06/11/15 Птн 16:58:30 #9 №574749 
>>574744
>#11
С первого ,но ранние стихи хуево вышли вроде бы.
Аноним 06/11/15 Птн 16:59:44 #10 №574751 
Не совсем по крестам вопрос, по б-гмерзкому Qt. Есть Json, который я получаю в случае такого успешного запроса https://developers.google.com/apis-explorer/#p/gmail/v1/gmail.users.messages.get пиши me в userid, id какого-нибудь мыла можно получить из https://developers.google.com/apis-explorer/#p/gmail/v1/gmail.users.messages.list

Мне нужно получить тело сообщения. Я то его дёрнул инб4:анус себе дёрни , но хуёвым, как мне кажется, способом. Вот он:
QJsonDocument doc(QJsonDocument::fromJson(reply->readAll()));
qDebug() << doc.object().value("payload").toObject().value("parts").toArray().at(1).toObject().value("body").toObject().value("data").toString();

Аноны, есть ли способ получше?
Аноним 06/11/15 Птн 17:10:32 #11 №574760 
>>574738
Полно книг о ядре linux, начинай с них.
Аноним 06/11/15 Птн 17:11:45 #12 №574761 
14468191051540.jpg
>>574751
Аноним 06/11/15 Птн 17:12:55 #13 №574763 
>>574761

Ну так предложи лучше, умник. Пиздеть все горазд.
Аноним 06/11/15 Птн 17:18:10 #14 №574765 
>>574732
>>574735
Пол года назад пизданул из магазина книжку по C++11.К слову, в магазине ничего новее не видел, а тут C++11, поэтому и удивился так.
sageАноним 06/11/15 Птн 17:18:30 #15 №574766 
>>574763
анус себе предложи, говнарь
тебе лучше попробовать пхп, до кьюта ты не дорос
Аноним 06/11/15 Птн 17:19:29 #16 №574767 
>>574763
Я не в курсе, как работать с json, подписался.
Аноним 06/11/15 Птн 17:19:57 #17 №574768 
>>574766

как делать не знай@мамкиным Страуструпом себя считай
Аноним 06/11/15 Птн 21:44:10 #18 №574955 
14468354506360.png
Как на С++ распарсить строку вида "%d/%d/%d", если второе число опционально (может быть "%d//%d"). В Си я бы написал парсер на 30 строк. В Руби я бы сделал s.split('/') (получив O((N*dohuya)^dohuya) по памяти и по времени). Я так понимаю, в С++ должно быть что-то среднее.
Аноним 06/11/15 Птн 21:47:20 #19 №574958 
Аноны , поясните мне за левостороннее значение левого операнда
Аноним 06/11/15 Птн 21:48:34 #20 №574960 
>>574955
#include <regex>
Аноним 06/11/15 Птн 21:50:13 #21 №574963 
>>574955
>O((N*dohuya)^dohuya)
проиграл с дауна
Аноним 06/11/15 Птн 21:52:13 #22 №574965 
>>574960
Спасибо. Я совсем забыл, что они теперь есть в стандарте. Последний раз писал на крестах олимпиады в 2008.
Аноним 06/11/15 Птн 21:53:07 #23 №574966 
>>574963
Ну посчитай мне за минуту, какая там сложность получается по памяти и времени. Мне лень было.
Аноним 06/11/15 Птн 21:57:19 #24 №574974 
>>574960
А регекспы могут сразу читать в переменную нужного типа, наподобие scanf? (ну а вдруг)
Аноним 06/11/15 Птн 21:57:33 #25 №574975 
14468362531570.jpg
>>574966
Аноним 06/11/15 Птн 22:57:47 #26 №575010 
>>574955
Я бы написал велосипед. См. 6-7 параграф Страуструпа для ньюфагов, грамматики и калькулятор.
Аноним 06/11/15 Птн 23:08:09 #27 №575018 
>>574955
Очевидным будет использование stringstream-ов.
Аноним 06/11/15 Птн 23:47:28 #28 №575043 
>>574955
https://ideone.com/OTxWeZ
Аноним 07/11/15 Суб 00:44:44 #29 №575071 
Сосоны, ебусь с многопоточностью. Надо сделать Producer-Consumer не через ивенты не лаба, но близко . Мой взгляд пал на критические секции:
>Поле LockSemaphore используется, если нужно подождать, пока критическая секция освободится. Если LockCount больше нуля, и OwningThread не совпадает с уникальным идентификатором текущей нити, то ждущая нить создает объект ядра (событие) и вызывает ::WaitForSingleObject(LockSemaphore). Нить-владелец, после уменьшения RecursionCount, проверяет его, и если значение этого поля равно нулю, а LockCount больше нуля, то это значит, что есть как минимум одна нить, ожидающая, пока LockSemaphore не окажется в состоянии "случилось!". Для этого нить-владелец вызывает ::SetEvent(), и какая-то одна (только одна) из ожидающих ниток пробуждается и получает доступ к критическим данным.
Соус: http://rsdn.ru/article/baseserv/critsec.xml#E2D

Но я что-то так и не понял, как мне добиться вызова этого ивента. Писал что-то вроде:
DWORD WINAPI Producer(CONST LPVOID param)
{
for(int i = 0;i<100;++i)
{
EnterCriticalSection(&cs);
x++;
LeaveCriticalSection(&cs);
cs1.OwningThread = param;
}
ExitThread(0);
}

DWORD WINAPI Consumer(CONST LPVOID param)
{
for(int i = 0;i<100;++i)
{
EnterCriticalSection(&cs);
std::cout << x << std::endl;
LeaveCriticalSection(&cs);
cs1.OwningThread = param;
}
ExitThread(0);
}

Где param — хендер на другой поток. Но ему похуй на владельца. Увеличивал счетчик LockDown вручную до единицы к этому же(редкое быдлокодерство, знаю), но и это не помогло. Так как же корректно вызвать этот ивент из ядра?
Аноним 07/11/15 Суб 00:46:06 #30 №575072 
>>575071

Табуляция поплыла, сори.
Аноним 07/11/15 Суб 01:44:03 #31 №575089 
Как мне выводить текст в строчку, если оператор ввода находится в цикле?
Аноним 07/11/15 Суб 04:36:41 #32 №575114 
>>575071
>>575071
http://pastebin.com/yMztALzP
Делай семафорами.
sageАноним 07/11/15 Суб 10:40:44 #33 №575165 
>>575089
Ты правда ожидаешь получить ответ?
Аноним 07/11/15 Суб 10:55:10 #34 №575173 
14468829107910.jpg
Правда-правда!
Аноним 07/11/15 Суб 12:36:43 #35 №575214 
Ньюфажие итт. Допустим есть вектор строк, как их сохранить в бинарный файл, чтоб потом можно было считать в другой файл? Длина то у строк разная, хуй знает сколько байт считывать надо. Записывать отдельно перед строкой ее длину?
Аноним 07/11/15 Суб 12:44:19 #36 №575219 
>>575214
Строки разделяй \x00.
Аноним 07/11/15 Суб 13:01:39 #37 №575228 
>>575214
Сериализация, же.
Аноним 07/11/15 Суб 14:35:04 #38 №575287 
>>575228
Че-то как-то слишком сложно для одноразового применения, проще и правда null понапхать в строки.
Аноним 07/11/15 Суб 15:34:15 #39 №575336 
>>574713 (OP)
Почему в списке литературы нету книги Дейтелов?
Аноним 07/11/15 Суб 15:56:22 #40 №575356 
Ребзя. Есть класс динамического массива. Нужно намутить туда счётчик копий (т.н. reference counter) на основе smart pointer'ов. Как это можно реализовать?
Аноним 07/11/15 Суб 15:59:10 #41 №575359 
>>575356
Shared_ptr? А вообще не проще статическую переменную использовать?
Аноним 07/11/15 Суб 16:00:28 #42 №575361 
>>575359
Проще/не проще, одному Одину известно. Задание такое стоит просто, надо его выполнять. Итератор осилил, RC не могу
Аноним 07/11/15 Суб 16:33:11 #43 №575394 
14469031919680.jpg
Реквестирую сайт с задачами по C/C++, для начинающего.
Аноним 07/11/15 Суб 16:33:59 #44 №575395 
>>575394
http://codeforces.com/
Аноним 07/11/15 Суб 16:34:39 #45 №575397 
>>575394
Посмотри http://www.acmp.ru
Аноним 07/11/15 Суб 16:35:28 #46 №575398 
>>575395
Спасибо анон.
Аноним 07/11/15 Суб 16:42:07 #47 №575404 
>>575394
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
Аноним 07/11/15 Суб 17:26:41 #48 №575428 
Что скажете по поводу "Чистого кода" Мартина? Стоит читать?
Аноним 07/11/15 Суб 17:29:35 #49 №575429 
>>575428
По-моему, не о чём. Если ты не совсем дибил, который пишет говнокод, вообще не думая об архитектуре и дальнейшей поддержке, то не нужно.
Аноним 07/11/15 Суб 17:30:40 #50 №575431 
>>575429
Ну я только вкатываюсь в чудесный мир программирования, поэтому говнокод у меня повсюду.
Аноним 07/11/15 Суб 17:34:37 #51 №575436 
>>575428
Я Совершенный код читал, мне понравилось.
Аноним 07/11/15 Суб 17:59:14 #52 №575453 
>>575429
>>575436
А, лол. Я тоже имел ввиду его.
Аноним 07/11/15 Суб 20:21:45 #53 №575518 
Какие либы годные есть для проигрывания всяких мп3, огг, флаков и прочего аудио?
Аноним 07/11/15 Суб 20:26:51 #54 №575526 
14469172117820.png
Пытаюсь читать верхний элемент стека и выскакивает segmentation fault. Стэк на пике в момент чтения. Я нихуя не понял, но там должна лежать строка. Он пуст? И как сделать continue для основного цикла если нахожусь во вложенном цикле?
Аноним 07/11/15 Суб 20:28:37 #55 №575527 
>>575526
>но там должна лежать строка
В смысле только 1 элемент в стеке и это строка.
Аноним 07/11/15 Суб 20:56:06 #56 №575531 
>>575518
libvlc?
Аноним 07/11/15 Суб 21:48:20 #57 №575560 
>>575531
Попробую, спасибо
Аноним 07/11/15 Суб 23:36:37 #58 №575626 
>>575336
Это которой? Я видел только про операционные системы, но она жутко старая, прозреваю, что с крестами так же будет.
Аноним 08/11/15 Вск 00:47:33 #59 №575672 
Хочу задать глупый вопрос, прошу не закидывать хуями. Как мне получить доступ к памяти другой программы т.е. из написанной мной xyuta.exe получить доступ к памяти xyuta_2.exe ? Возможно ли это на c++ ?
Аноним 08/11/15 Вск 00:57:47 #60 №575678 
14469334672860.jpg
А я смогу параллельно читать Страуса для ньюфагов и книгу по Qt Шлее? То есть хватит ли знаний (половину книги прочел) от Страуструпа, чтобы почитать qt? Поясните пожалуйста.
Аноним 08/11/15 Вск 01:01:06 #61 №575679 
>>575672
Зависит от ОС. В винде гугли readprocessmemory
Аноним 08/11/15 Вск 01:02:45 #62 №575681 
>>575678
Да, там минимальные знания нужны. Если знаешь как свой класс создать то можно уже читать.
Аноним 08/11/15 Вск 01:41:15 #63 №575697 
>>575678
Мне Шлее не понравился, Бланшет как-то лучше зашла.
Аноним 08/11/15 Вск 08:27:58 #64 №575783 
Господа, а чем сейчас модно конфиг писать? Данные сложные, текстовый файлик вида ключ=значение не пойдет. XML и boost::serialization тоже не предлагать.
sageАноним 08/11/15 Вск 08:33:44 #65 №575784 
>>575783
JSON.
Аноним 08/11/15 Вск 09:54:58 #66 №575802 
>>575089
Бамп.
Аноним 08/11/15 Вск 10:24:42 #67 №575808 
>>575287
Строки и так терминируются NULL'ом, поехавший.
Аноним 08/11/15 Вск 10:33:11 #68 №575810 
>>575526
>И как сделать continue для основного цикла если нахожусь во вложенном цикле?

Если тебе необходим незамедлительный переход к продолжению внешнего цикла при выполнении условия condition, то в нужном месте вложенного цикла
>if (condition) break;

Если тебе необходимо допройти данную конкретную итерацию вложенного цикла, а затем перейти к продолжению внешнего цикла, то просто допиши проверяемое условие внутреннего цикла с check на check && condition
Аноним 08/11/15 Вск 10:35:10 #69 №575812 
>>575802
Что бамп? Тебе вон выше уже написали, что с подобной формулировкой вопроса не жди ответа.
Аноним 08/11/15 Вск 11:16:10 #70 №575828 
14469705701270.jpg
Мой вопрос туп до жопы: что понимается под "знанием языка"? Как определить свой уровень владения крестами? Под знание крестов входит знание ООП?
Аноним 08/11/15 Вск 11:18:25 #71 №575832 
Чому в шапке нет Qt? Шишка от него стоит, срсли, хорош, понятен, документация норм
sageАноним 08/11/15 Вск 11:20:13 #72 №575835 
14469708135120.gif
>>575828
>знание ООП
Аноним 08/11/15 Вск 11:26:49 #73 №575838 
>>575828
Stl boost как минимум
Аноним 08/11/15 Вск 11:30:17 #74 №575843 
>>575838
>boost
Святая толстота.
Аноним 08/11/15 Вск 11:32:01 #75 №575845 
>>575828
Знать STL, знать что такое virtual method table и подобные детали.
Аноним 08/11/15 Вск 11:34:51 #76 №575848 
>>575845
Stl на 80%, не знаю новую. Все эти ваши таблицы-вектора знаю, ибо приходилось ебашить на arm код, прошаривался.
Аноним 08/11/15 Вск 12:34:41 #77 №575895 
>>575672
Если эта вторая программа не против обеспечить доступ, то все просто, гугли разделяемую память и позаботься об отсутствии гонок. Если она не должна меняться, то сложнее. Напрямую другому процессу это никак не сделать, но можно попробовать обратиться к ОС, у нее есть права на трассировку или функции вроде той, что предыдущий кун сказал.
Аноним 08/11/15 Вск 12:35:41 #78 №575898 
>>575810
Спасибо попробую.
Аноним 08/11/15 Вск 12:38:16 #79 №575899 
>>575832
Я не очень люблю куте неосилятор кококок, немного считаю его громоздким говном, и вообще. Но вполне возможно, что я ошибаюсь, да. Если напишешь внятный параграф про него для шапки и принесешь пару годных книг, то я добавлю, разумеется.
Аноним 08/11/15 Вск 12:44:30 #80 №575902 
Если объявить функцию внутри функции она в сегменте кода будет после компиляции или каким-то волшебным образом на стек будет ложиться? Есть хитрости чтобы её вызвать из вне области видимости?
Аноним 08/11/15 Вск 13:28:30 #81 №575922 
>>575899
Кроме куте я писал как писал, лабы-курсачи на шарпе и яве, и входил в цпп, в основном те же лабы-курсачи, но с объектами.

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

Qt максимально советует использовать свои объекты, унаследованные от стандартных классов виджетов (кнопки, текстбоксы). Шарп чому то не давал такой прозрачности программирования.
Аноним 08/11/15 Вск 13:42:36 #82 №575928 
>>575902
>объявить
Объявление мало на что влияет - только увеличивает область видимости или заставляет линкер искать реализацию в других файлах. На расположение никак не влияет.
Аноним 08/11/15 Вск 13:43:27 #83 №575929 
>>575898
Ты троллируешь нахуй или что? Какой тебе стэк, если ты со вложенным циклом разобраться не можешь?
Аноним 08/11/15 Вск 13:46:01 #84 №575932 
>>575899
Лол, и этого человека саже-кутэ-петух благословил в преемники.
Аноним 08/11/15 Вск 13:53:51 #85 №575938 
>>575928
Не всегда. friend-объявления, например, могут размещать тело в объемлющем скоупе, и это позволяет делать ужасные вещи, как показал тот нигра-швед.
Аноним 08/11/15 Вск 13:56:46 #86 №575940 
>>575932
Не, ну а что тебе не нравится-то? Я всегда и целиком за расширение шапки, пилите же апдейты. В куте я недостаточно компетентен, вот и предупреждаю сразу, что я максимум могу надергать в шапку рандомных книжек, а это вряд ли то, чего мы все хотим от треда.
Аноним 08/11/15 Вск 14:01:22 #87 №575948 
>>575938
Что за нигра?
Аноним 08/11/15 Вск 14:01:56 #88 №575949 
>>575948
Швед который.
Аноним 08/11/15 Вск 14:02:20 #89 №575950 
>>575948
Ну статью которого в одном из прошлых тредов вбрасывали, и все охуели. http://b.atch.se/
Аноним 08/11/15 Вск 14:04:05 #90 №575952 
>>575902
Ну сам-то как думаешь? стек неисполняемый например
Можешь попробовать вычеслить адрес после загрузки и вызвать по нему, но в пределах языка не получится.
Аноним 08/11/15 Вск 15:05:32 #91 №575985 
14469843325140.jpg
Ребят, выручайте. Я в плюсах не силен, вообщем ближе к делу.

Как создать двумерный динамический массив на основе vector'a ? Можно ли создать собственную структуру или есть что-то оптимальней ?

Сама задачка стоит так,
На входе:
в первом ряду - число таблиц для сортировки, потом для
каждой таблицы размер таблицы. И потом парами числа и их кратности разделенные пробелами.
Потом вводим кол-во измерений для поиска.
Потом секвенция этих измерений, разделенная так же пробелами.
Пример такой, на входе :
4
4 199 3 213 2 312 4 324 2
6 79 2 32 1 312 5 24 2 75 10 24 3
4 119 4 413 2 112 4 54 2
6 19 1 32 2 312 4 34 7 13 2 19 3
5
10 19 3 75 77

На выходе :
4 199 3 213 2 312 4 324 2
5 24 5 32 1 75 10 79 2 312 5
4 54 2 112 4 119 4 413 2
5 13 2 19 4 32 2 34 7 312 4
15 13 2 19 4 24 5 32 3 34 7 54 2 75 10 79 2 112 4 119 4 199 3 213 2 312 13 324 2 413 2
0 4 0 10 0

Последняя таблица соединяет в себе предидущие. Если встречаются 2 одинаковых числа, то они объединяются по след принципу:
На входе:
12(3) 5(2) 10(1) 5(4)
А после сортировки :

5(6) 10(1) 12(3)


Собственно реквестирую помощь в создании массива, и че делать с кратностями ? как их реализовать ?
Аноним 08/11/15 Вск 15:11:19 #92 №575990 
>>575985
>Как создать двумерный динамический массив на основе vector'a ? Можно ли создать собственную структуру или есть что-то оптимальней ?
В задачу не вникал, но вектор сам по себе динамический. Вот эти методы могут пригодиться.

http://www.cplusplus.com/reference/vector/vector/erase/
http://www.cplusplus.com/reference/vector/vector/insert/
http://www.cplusplus.com/reference/vector/vector/resize/
Аноним 08/11/15 Вск 15:27:28 #93 №576006 
Сап программисты, ничего не умею и ничего не хочу, сижу дома 24/7, мамка гонит на работу, а я её уже года 2 найти не могу. Можно ли выучить С++ ленивому хую и где-нибудь в онлайне хотя бы 5к в месяц иметь?
Аноним 08/11/15 Вск 15:35:18 #94 №576016 
>>576006
Тебе не в С++, а туда. https://2ch.hk/wrk/res/351733.html
Аноним 08/11/15 Вск 16:21:18 #95 №576072 
14469888786030.jpg
>>575985
>вообщем
Аноним 08/11/15 Вск 16:53:53 #96 №576096 
>>575990
Спасибо. Создал двумерный массив вида [Таблица][Сами элементы]
И отдельный массив ( не из класса вектор), который хранит кратности.
Написал мердже сорт, сортирует норм но с павторами.
Теперь вопрос такой, как избавиться от повторяющихся чисел ?
(Как узнать что они повторяются? При этом не/не сильно увеличивая время исполнения ?)

После этого буду в отельной петле удалять лишние числа при помощи метода erase, и суммировать кратности.
>>576072
Спасибо, я прям прослезился.
Аноним 08/11/15 Вск 16:59:39 #97 №576100 
>>575336
бамп вопросу
Аноним 08/11/15 Вск 17:00:57 #98 №576101 
>>576096
>Написал мердже сорт, сортирует норм но с павторами.
В стандартной библиотеке есть функция сортировки. http://www.cplusplus.com/reference/algorithm/sort/

>>576096
>Теперь вопрос такой, как избавиться от повторяющихся чисел ?
В отсортированном одномерном массиве? Ну хуй знает. Проверять 2 соседних элемента и если они равны удалять 1 из них не пробовал?
Аноним 08/11/15 Вск 17:10:32 #99 №576109 
>>576101
Знаю, что есть, но тк это задачка с алгоритмов то использовать оные библиотеки нельзя )
Там есть и бинарный поиск вида (ключ, размер). Но нужна своя реализация
Аноним 08/11/15 Вск 17:15:51 #100 №576114 
>>576096
3-way quicksort to your aid.
Не благодари.
Аноним 08/11/15 Вск 17:19:25 #101 №576117 
>>575940
Я бы вообще сократил шапку раз в 10.
Аноним 08/11/15 Вск 17:26:19 #102 №576126 
>>576117
Кстати там ещё и опечатка в теме.
>Оффициальный
Пишется с одной ф.
Аноним 08/11/15 Вск 17:27:09 #103 №576127 
>>576126
ньюфаг детектедд
Аноним 08/11/15 Вск 17:28:35 #104 №576129 
>>576117
лучше бы вынесли шапку на стороннююю вики-страничку в гитхаб, как это сделали питоноёбы
Аноним 08/11/15 Вск 17:29:25 #105 №576134 
>>576127
>детектедд
Это у всех олдфагов такая забава писать повторяющееся буквы там где это не надо?
Аноним 08/11/15 Вск 17:30:10 #106 №576135 
>>576134
дда, но я тоже ньюфаг
Аноним 08/11/15 Вск 17:35:02 #107 №576143 
>>576129
Им просто надо было хоть что-то закоммитить.
Аноним 08/11/15 Вск 17:42:50 #108 №576155 
>>576117
Лол, эти школьнички умудряются долбиться в глаза, спрашивая то, что есть в шапке, даже когда она вся перед глазами. Если ее убрать на пастебин, то считай, что ее вообще не будет.
Аноним 08/11/15 Вск 17:58:36 #109 №576172 
>>576155
Именно как раз по причине её слишком большого размера. Если её сократить в 10 раз, то и на пастебин помещать не надо будет.
Аноним 08/11/15 Вск 19:15:54 #110 №576235 
14469993540760.png
>>576143

Аноним 08/11/15 Вск 19:31:22 #111 №576253 
>>576172
Какая конкретно по-твоему информация в шапке лишняя?
Аноним 08/11/15 Вск 19:51:40 #112 №576284 
Как проверить строка является числом или нет. Может быть положительным, отрицательным и дробным. Гугл показывает как конвертировать строку в число и тут я нихуя не понял. http://stackoverflow.com/questions/21807658/check-if-the-input-is-a-number-or-string-in-c
Нужно просто функция которая string принимает и bool возвращает.
Аноним 08/11/15 Вск 19:53:49 #113 №576286 
>>576284
http://stackoverflow.com/questions/4654636/how-to-determine-if-a-string-is-a-number-with-c
Аноним 08/11/15 Вск 20:00:54 #114 №576298 
>>576286
>const_iterator
>[](char c) { return !std::isdigit(c); }
>boost
>regex
Ещё не проходил.
>strspn
А это вообще не правильно работает.
>stringstream
Может пойдёт. Спасибо.

А что в стандартной функции на этот случай нет?
Аноним 08/11/15 Вск 20:09:53 #115 №576310 
>>576298
Я всю жизнь sscanf("%d", s) != 0 использовал.
Аноним 08/11/15 Вск 20:12:58 #116 №576312 
>>576284
Можно проверить по таблице ascii
Аноним 08/11/15 Вск 20:16:56 #117 №576314 
>>576253
Лишней может быть и нет, но есть более необходимая и менее необходимая. Стихи вверху я бы оставил из любви к искусству. В остальном шапка выглядит так:

В самом начале про IDE: или Visual Studio Community 2015 на английском, или g++

1) Информация для не написавших ни одной программы в жизни:
видимо этот ваш Прата и Страуструп для ньюфагов, кто любит пажощще

2) Информация для ньюфагов:
Страуструп для ньюфагов
http://www.cplusplus.com/search.do?q=

3) Информация для стремящихся
http://en.cppreference.com/w/
Скотт Майерс - Наиболее эффективное использование C++ //последняя версия

4) Продвинутый уровень
Книжка Страуструпа C++ Programming language //последняя версия
ещё пяток книг от Александреску, Майерса и т.д.

Всё, всё остальное нахер.
Аноним 08/11/15 Вск 20:17:49 #118 №576315 
>>576310
Всегда true возвращает.
>>576312
Это как через strspn? Тогда если - в середине или . с краю строки, то он всё равно примет за число.
Аноним 08/11/15 Вск 20:21:36 #119 №576317 
>>576314
Джоссатиса надо оставить. Я его потом хуй нагуглю. Единственное лишнее это вот эта вот хуита. Но мне она не мешает поэтому можно и оставить.

>Памятка:
>
>Вопросу по синтаксису идут на хуй.
>Лабы идут на хуй.
>"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
>Все идут на хуй.
>Хейтер сосет члены на пару со своей мамашей.
>
>Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
Аноним 08/11/15 Вск 20:22:35 #120 №576319 
>>576317
>Джоссатиса надо оставить
Годнота?
Аноним 08/11/15 Вск 20:23:37 #121 №576320 
>>576319
Ещё не читал, но оглавление очень понравилось.
Два разных компилятора выдают разные значения. Аноним 08/11/15 Вск 20:57:31 #122 №576358 
14470054515010.png
В общем такая проблема, написал алгоритм для будущего калькулятора, откомпилировал в TDM-GCC 4.9.2, все прошло нормально. Перевел на winapi с кнопочками и откомпилировал в VC - все пошло по пизде, не выводит результат. Подебажив алертами, заметил одну неведомую хуйню: на пикрелейтед переменная existenceFirstOperand имеет значение true, а после завершения условия false, но блять, я там даже не присваиваю нихуя, какого хуя VC изменяет эту переменную? Стоит студия 15-ая, VC взят из папки Microsoft Visual Studio 11.0, компилировал cl.exe c такими параметрами (компилировать нужно именно в этом): >vsvars32.bat
>cl Calculator.cpp

Фулкод: http://ideone.com/rA9mJ6
Аноним 08/11/15 Вск 21:03:53 #123 №576362 
>>576358
В твоём калькуляторе нужно string в double переводить? Как ты это делаешь?
Аноним 08/11/15 Вск 21:05:16 #124 №576365 
>>576362
atof, юзаю char.
Аноним 08/11/15 Вск 21:09:09 #125 №576369 
>>576358
А зачем ты притащил говняшную в крестотред? Дебагер в помощь, поставь watch на переменную да смотри.
Аноним 08/11/15 Вск 21:09:10 #126 №576370 
>>576314
Липмана оставьте!
Аноним 08/11/15 Вск 21:10:57 #127 №576373 
>>576365
А если в str не число, а оператор?
Аноним 08/11/15 Вск 21:17:00 #128 №576380 
14470066209750.png
>>576373
Там для каждого оператора свой идентификатор, который я юзаю через свитч.
Аноним 08/11/15 Вск 21:19:50 #129 №576384 
>>576380
Твой калькулятор 3 слагаемых считает? У тебя там только числа и 4 оператора? А со скобками что?
Аноним 08/11/15 Вск 21:22:38 #130 №576386 
>>576384
Да, два числа и четыре оператора. Со скобочками гичего, по заданию лабораторной сильно не нужно пердолиться.
Аноним 08/11/15 Вск 21:26:58 #131 №576390 
>>576386
А ну тогда ладно. Удачи.
Аноним 08/11/15 Вск 21:34:11 #132 №576393 
>>576358
пословица_про_человека_с_двумя_часами_не_знающего_правильное_время.txt
Компилируй тем что работает.
Аноним 08/11/15 Вск 21:36:17 #133 №576396 
>>576393
Я же написал, что мне откомпилировать нужно именно в ебучем VC.
Аноним 08/11/15 Вск 21:36:47 #134 №576398 
14470078074170.png
>>576358
Потыкал короче код и еще раз призываю не писать в стиле говняшной. Вот из-за таких мудаков о крестиках идет дурная слава. В общем ты память похерил своими strcpy.
Аноним 08/11/15 Вск 21:39:05 #135 №576400 
>>576398
Спасибо большое, я учту то, что ты мне написал на счет стиля, постараюсь больше так не писать.
Аноним 08/11/15 Вск 21:42:29 #136 №576403 
>>576398
Зачем тебе комп anon и юзер anon_pc? И как ты понял что он "память похерил своими strcpy"? Что за цветная каша на пике?
Аноним 08/11/15 Вск 21:51:33 #137 №576407 
>>576403
>Зачем тебе комп anon и юзер anon_pc?
Наоборот же.
>И как ты понял что он "память похерил своими strcpy"? Что за цветная каша на пике?
Догадался, на пике высер gcc-шного AddressSanitizer.
Аноним 08/11/15 Вск 21:55:32 #138 №576411 
>>576407
>Наоборот же.
Ошибся. Но зачем?
>AddressSanitizer
Как научиться им пользоваться? Или каким-нибудь другим дебагером?
Аноним 08/11/15 Вск 22:07:42 #139 №576420 
14470096621160.png
>>576411
>Но зачем?
Ну я прямо в растерянности от такого вопроса, так вот у меня сработало воображение когда ставил прыщи.
>Как научиться им пользоваться? Или каким-нибудь другим дебагером?
Да достаточно добавить во флаги "-fsanitize=address" и внимательно потом прочитать выхлоп. По gdb и valgrind'у в интернетах полно примеров и документации. Упомянутый в шапке cppcheck, кстати, тоже справился с этой ошибкой.
Аноним 08/11/15 Вск 22:27:41 #140 №576429 
>>576314
>>576317
Кароче: пикча + стихи + >>576314 (с Джоссатисом) + короткое-ёмкое "все идут нахуй". Остальное на пастебин или гитухабо. А?
Аноним 08/11/15 Вск 22:44:55 #141 №576432 
>>576420
Ой братан, спасибо за пик, понял где я проебался. Там при инициализации у меня под строку только один символ выделился, следовательно концу строки некуда вписаться. Люблю тебя.
Аноним 09/11/15 Пнд 00:26:06 #142 №576515 
>>576314
Ну давай разберем по частям...
1, 2. Все эти книжки для ньюфагов, вообще говоря, очень вкусоспецифичные. Если оставить только одну книгу, то кому-то обязательно не понравится именно она, из-за строгости/поверхностности изложения, присутствия/отсутствия упражнений, ну ты понел. Кроме того, уровни книг немного различаются, и разные темы освещаются с разным качеством в той или иной книге. Я не говорю, что надо пихать в шапку все существующие учебники, но выбор из трех-четырех самых удачных, ящитаю, должен быть. Тогда читать можно по принципу: не понял/хочешь моар/хочешь другими словами - смотришь эту же тему в соседней книге.
3. Если ты внимательно читал Мейерса, то ты заметил, что советы в разных его книжках практически не повторяются. Вторая книга дополняет первую, эффективный STL ВНЕЗАПНО почти целиком посвящен STL, про которую было мало сказано в первых двух книгах. Ну а последняя книжка вообще рассказывает только о фичах новых стандартов и никак не может заменять ранние. То же самое касается 101 правила Александреску-Саттера, там больший уклон в архитектуру, а не в детали, и формат другой. В общем, я не просто так написал, что пролистать нужно все книги в этом разделе, они действительно все самобытные, одной универсальной книги нет.
4 и далее. Страуструп это глубокая книга, но проблема в том, что она не широкая. Есть очень много аспектов даже стандарта, которые рассматриваются там вскользь, либо сухо и с уебищными примерами. Особенно это касается фич последних стандартов, издание с которыми, кстати, пока есть только на ангельском, а ведь мы должны идти навстречу анонам, которые не умеют/не любят читать на нем. Даже если забыть про это все, в продакшене используется не только стандартная часть, а либы и расширения уж точно не рассматриваются в стандартных учебниках наподобие страуструпова. Вот ты решил, например, вкатиться в кресты, прочитал Страуструпа, написал калькулятор или что там у него. И что? Ты стал погроммистом? Нееет, это только самое начало, и почти все в этот момент испытывают проблемы с тем, чтобы просто понять, в какую сторону дальше двигаться, что читать, что учить, что писать. Я думаю, что шапка должна по крайней мере пытаться дать ответ на этот вопрос в виде ссылок на популярные либы, блоги, документацию к бусту, общепризнанно годные инструменты разработки, короче говоря, должна нести пользу не только ньюфагам с лабами, но и тем, кто всерьез решил вкатиться в кресты.
>>576317
Это как бы легаси, в тредах до меня в шапке было то, что сейчас в памятке. Я решил, что негоже без спросу стирать то, что предыдущий ОП вставлял. Если окажется, что он и аноны не против, то можно убрать или перепилить, конечно же.
Аноним 09/11/15 Пнд 00:38:44 #143 №576521 
14470187246430.png
>>576515
>Я решил, что негоже без спросу стирать то, что предыдущий ОП вставлял
Ни на что не намекаю, просто напомнило.
Аноним 09/11/15 Пнд 00:52:14 #144 №576525 
>>576515
Тогда чтобы таких вопросов больше не возникало надо каждую книгу немного описать 1-2 предложения. И тогда можно убрать подраздел то что для нюфань и отдельные аспекты. Капсболдом темы ЛИТЕРАТУРА, FAQ итд. капсом или прочеркнутым сам выбери как красивее и название и авторов в начале. Писать обязательно год выхода книги, а не перевода и может ещё издание. и курсивом описание короткое и личными вплетениями. Устаревшие убрать. лафоре оставь он очень понятно поясняет и задания хорошие. лучше струструпа только в описании добавь что старая но основные принципы с++ не сильно поменялись или что-то в этом роде и ссылки на скачивание все сократить. Ещё анон гайд по крестам писал следующим следующим постом вброршу. И не хватает пункта типа ТОЛЬКО ЗАШЁЛ В ТРЕД? РАСТЕРЯЛСЯ ОТ МНОГОБУКОВОК? НЕ ЗНАЕШЬ С ЧЕГО НАЧАТЬ? и тут по пунктам поясняют что делать и что ожидает в будущем. это можно на основе FAQ сделать. Как у них. https://2ch.hk/fl/res/160480.html
Аноним 09/11/15 Пнд 00:52:50 #145 №576526 
>>576521
ОБРАТНАЯ СОВМЕСТИМОСТЬ С ПРЕДЫДУЩИМИ ШАПКАМИ
Аноним 09/11/15 Пнд 00:55:47 #146 №576528 
>>576525
Вроде оно. http://pastebin.com/raw.php?i=SbSa47dS
И вот список ссылок на русском.


http://ru.yasno.tv/course/details/programming-start
http://loftblog.ru/category/courses/osnovy-oop-na-s/
https://stepic.org/users/31
https://www.lektorium.tv/speaker/2941
https://stepic.org/users/12
https://www.lektorium.tv/speaker/2678
http://www.amse.ru/courses/cpp2/
http://acmp.ru/index.asp?main=tasks
http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx
http://ru.stackoverflow.com/questions/tagged/c%2b%2b
http://acm.timus.ru/
http://algolist.manual.ru/
http://codeforces.com/
https://contest.yandex.ru/contest-list/?ncrnd=5199
http://cups.mail.ru//
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
https://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs
https://tech-mail.ru/materials/video/
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
http://e-maxx.ru/algo/
Аноним 09/11/15 Пнд 00:56:11 #147 №576529 
>>576525
Я в следующем треде или через один буду обновлять шапку накопившимися у меня блогами, софтом и тем, что анон предложит. Как раз тогда попробую перепилить описания и структуру и использую твои советы. Спасибо.
Аноним 09/11/15 Пнд 00:56:54 #148 №576530 
>>576521
Ни пике джава?
Аноним 09/11/15 Пнд 00:59:52 #149 №576532 
>>576530
Вроде как
Аноним 09/11/15 Пнд 01:01:45 #150 №576534 
>>576530
Если только InputStreamResponse неявно не кастуется из указателей.
Аноним 09/11/15 Пнд 01:39:44 #151 №576554 
Плюсаны, есть задача: ограничить работу программы в определённой директории только одним экземпляром.

На Windows решается просто:

HANDLE m_hMutex = CreateMutex(NULL, FALSE, "YobaMutex C:/YobaDir");
if (GetLastError() != ERROR_SUCCESS) {
std::cout << "FAIL" << std::endl;
exit 1;
}

В проекте используется Qt, но тамошний QSystemSemaphore не подходит -- выполнение просто блокируется, если ресурс уже занят. QSharedMemory уже ближе к делу, но при падении программы он не освобождает ресурс, так что тоже не подходит.

Есть ли в linux'е аналог виндового CreateMutex? Шуршу пока что маны pthread_mutex_*... Можно ли там создать такой mutex, который будет автоматически освобождён если прога упадёт с залоченным mutex'ом?
Аноним 09/11/15 Пнд 02:10:09 #152 №576567 
Нашёл уберкостыль http://habrahabr.ru/post/173281/
Аноним 09/11/15 Пнд 02:10:31 #153 №576568 
>>576567
>>576554
Аноним 09/11/15 Пнд 04:06:24 #154 №576590 
Ананы помогие разбоараться с файлоеблей.
Есть бинарник с 64 битными числами, который надо прочитать кусками.

long long buffer = new long long[size of buffer]
FILE * in = fopen(someshit.bin, "rb");
while(size = fread(buffer, sizeof(long long), sizeOfBuffer, in)){
show_buffer(buffer, size);
}

При каждом запуске выдает разные магические числа, вместо значений в файле. ЧЯДНТ?

Аноним 09/11/15 Пнд 09:02:32 #155 №576628 
>>576393
А потом протоны падают на старте. Все компиляторы должны выдавать одно и то же.
Аноним 09/11/15 Пнд 09:12:44 #156 №576631 
>>576590
>new >fopen >fread

Ужасно. Ты или используй malloc/free, или пиши на C++. В первом случае тебе нужно пилить перекат для вот этого >>518562 (OP) треда, а не тут ошиваться.
Аноним 09/11/15 Пнд 09:21:01 #157 №576634 
>>576529
Я так и не понял, до чего вы тут все договорились, пока я спал, но предлагаю так: (вначале стишки)

1) Легаси <устарело> из шапки выкидываем. Саже-кутэ-петух не вернётся.

2) Ещё раз предлагаю сократить объём шапки в 10-20 раз: Можно создать четыре pastebin для абсолютных ньюфагов, ньюфагов, стремящихся и осваивающих глубокий уровень.

В конце памятка про лабы (теперь-то её будет видно).
Аноним 09/11/15 Пнд 15:10:30 #158 №576792 
>>576634
>pastebin
Там нет разметки. Шапку нужна чтобы была на виду, а не по всяким гитхабаи пастебинам ходить. В прикреплённом треде тоже есть ссылки на литературу на оп-пике, но никто их не смотрит и не читает.
Аноним 09/11/15 Пнд 15:13:06 #159 №576798 
>>576792
Я повторю свою мысль: сейчас шапку никто не читает. Размер шапки сопоставим с 5% материала для базового освоения языка, на кой чёрт в вашу шапку вчитываться?
Аноним 09/11/15 Пнд 15:59:54 #160 №576822 
Почему в списке литературы нету книги Дейтелов?
Аноним 09/11/15 Пнд 16:04:47 #161 №576825 
>>576822
Потому что ненужон нм ваш дейтла! Без него жили и ещё проживём. А шапка и так слишком большая. Мне лень её читать. Надо вообщее сделать её 3 строчки 2 книжки. А если хочешь детла, то на pastebin его заливай.
Аноним 09/11/15 Пнд 16:14:03 #162 №576828 
>>576825
Ну давайте, раздувайте шапку до бесконечности. А потом к вам придут хейтеры с лабами и с вопросами, которые освещены в шапке.
Аноним 09/11/15 Пнд 16:19:03 #163 №576830 
14470751439920.jpg
http://pastebin.com/pjJs5tLt
Почему-то не удаляет нормально элементы из стека. Если три раза ввести pop, то он трижды выведет последний элемент.
А может, дело в том, что он и добавляет их как-то неправильно.
Аноним 09/11/15 Пнд 16:46:49 #164 №576860 
>>576828
Можно попробовать двигаться в сторону спойлеров в самом посте, чтобы по клику разворачивалось в более подробное.
Аноним 09/11/15 Пнд 17:55:08 #165 №576900 
В шапке много текста. Зачем реклама языка, например? Да и много где полно текста, можно сократить многое

>>576860
А вот это хорошая идея. Кидаешь в спойлеры все разделы книг, блоги, либы и IDE, а снаружи стихи, faq и памятка.
sageАноним 09/11/15 Пнд 19:36:41 #166 №576971 
>>576900
Пол шапки под спойлером? Это же пиздец как не удобно. Если что-то в шапке лишнее, то можно и убрать, а не в спойлер. Уже злить начинаешь. То на пастебин шапку ему надо, то под спойлер. Иди заведи свой крестотред с пастебинами и спойлерами.
Аноним 09/11/15 Пнд 19:57:11 #167 №576990 
>>576971
Семён, успокойся. Он не шизойдный. Нас просто несколько. Я за выгрести всё лишнее в пастебин, а он за спойлеры.
Аноним 09/11/15 Пнд 20:31:32 #168 №577026 
>>576971
Нас несколько.

Так-то мне и так сойдёт, в саму шапку раз в несколько тредов заглядываю...
Аноним 09/11/15 Пнд 20:52:59 #169 №577049 
>>576990
>Я за выгрести всё лишнее в пастебин
Я тоже за радикальное сокращение шапки и вынос её в 4-5 пастебинов.

нелюбитель Алёны
Аноним 09/11/15 Пнд 20:56:57 #170 №577057 
>>577049
Ну и зачем? В шапку влазит значит можно оставить. Тут и разметка есть и искать сидя в треде по шапке проще.
Аноним 09/11/15 Пнд 21:24:11 #171 №577074 
>>577057
Кажется, у нас сказка про белого бычка...
Аноним 09/11/15 Пнд 21:54:03 #172 №577104 
>>577049
Не понимаю, зачем вам несколько пастбинов. В один не влезет что ли?
Аноним 09/11/15 Пнд 21:58:51 #173 №577111 
>>577104
Затем, что я уже по которому разу подряд пишу, что:

Никто, никто не читает длинные пасты. Ньюфага не волнует твоя длинная паста. Ньюфага волнует "КАК СОЗДАТЬ МАССИВ". Поэтому должны быть отдельные компактные пасты для:

1) полных ньюфагов;
2) новичков;
3) стремящихся;
4) претендующих на экспертов.
Аноним 09/11/15 Пнд 22:08:38 #174 №577119 
>>577111
>Ньюфага волнует "КАК СОЗДАТЬ МАССИВ".
Пусть спрашивают в треде. В шапке должны быть ответы на самые часто задаваемые вопросы. Стоит учить кресты? Они не устарели? Что меня ждёт когда выучу? Зачем их вообще учат? С чего начать? А что потом? И как проверить уровень владения? На что рассчитывать после того как выучу? И конечно книги с описанием как тут уже предлагал. >>576525 Даже для примера тред из fl привел т.к. у них только вкатившемуся ньюфагу можно легко всё понять.
Аноним 09/11/15 Пнд 22:12:31 #175 №577123 
>>577119
>В шапке
Её не будут читать, НЕ-БУ-ДУТ.
Аноним 09/11/15 Пнд 22:17:41 #176 №577132 
>>577123
Да почему? Кто хочет прочитает. В этом треде я ещё не заметил тех кто задал вопрос который есть в шапке. Но FAQ теперь какой-то неудобный. Надо что-то другое придумать.
Аноним 09/11/15 Пнд 22:22:04 #177 №577137 
14470969249070.jpg
Есть откуда можно вытянуть учебную программу, например, специальности "Инф. безопасность"? Хочу ради интереса поглядеть.
Аноним 09/11/15 Пнд 22:24:21 #178 №577139 
>>577137
Какого вуза?
Аноним 09/11/15 Пнд 22:27:41 #179 №577143 
>>577139
Мне для общей осведомленности, любого.
Аноним 09/11/15 Пнд 22:31:25 #180 №577150 
>>577137
Вот наша:
http://lms-2.kantiana.ru/course/category.php?id=208
asm господин
Аноним 09/11/15 Пнд 22:32:55 #181 №577151 
>>577143
Они обычно в открытом доступе лежат. Просто в гугле пишешь курс и универ.
http://ocw.mit.edu/courses/mechanical-engineering/2-993j-introduction-to-numerical-analysis-for-engineering-13-002j-spring-2005/lecture-notes/lect_1.pdf
Аноним 09/11/15 Пнд 22:33:03 #182 №577152 
>>577137
У любого норм вуза на сайте есть расписание и программы экзамена, есть студенческий форум/паблик с готовыми шпорами и конспектами лекций.
>>577143
https://cs.msu.ru/studies/curricula
Но лучше сразу смотреть https://cs.msu.ru/node/1707 и https://cs.msu.ru/education/aspirantura
Аноним 09/11/15 Пнд 22:33:37 #183 №577153 
>>577150
Только половина гуманитарных дисциплин у нас выкинули. Или даже больше. Оставили только айтишно-математические предметы, а гуманитарщину читают на отъебись: главное ходить на все занятия. Зато по математике спрашивают будь здоров.
Аноним 09/11/15 Пнд 22:35:41 #184 №577155 
>>577153
>главное ходить на все занятия
Это правда что преподаватели не знают студентов в лицо и при перекличке 1 может за двоих ответить?
Аноним 09/11/15 Пнд 22:37:35 #185 №577157 
>>577132
>Но FAQ теперь какой-то неудобный. Надо что-то другое придумать.

Датыштоблять, да неужели. А уж не об этом ли минимум три человека твердят весь этот тред?
Аноним 09/11/15 Пнд 22:38:12 #186 №577159 
>>577150
>>577151
>>577152
Спасибо, мужики, я спрашиваю потому, что захотел упарывать специальность. Есть время утром и вечером. Буду обмазываться параллельно крестами, че думаете? Не совсем безысходная идея?
Аноним 09/11/15 Пнд 22:39:06 #187 №577162 
>>577155
Все всех запоминают уже на первых занятиях, если это предметы по специальности. А если гуманитарщина, то там обычно сидят 2-3 потока, и преподам похуй. На перекличках никто друг за друга не овтечает, да и смысла нет: гуманитарные предметы все и так сдают, а на экзаменах, если ты не учился, то тебя выебут.
Аноним 09/11/15 Пнд 22:40:22 #188 №577163 
>>577157
Нет. Они хотят утащить шапку непонятно куда и оставить только ссылки на копипасты.
Аноним 09/11/15 Пнд 22:46:36 #189 №577169 
>>577159
Главное отдавай себе отчет, что специальность тяжелая и глубоко математическая КБ, про ИБ не знаю, и если тебе не нравится криптография, если ты не мечтаешь применить новые знания для написания собственного криптора ПЕ-файлов или чего-нибудь еще, то скорее всего будет очень тяжело и неприятно.
Аноним 09/11/15 Пнд 23:40:38 #190 №577216 
>>577132
А что поправить в факе? Раньше-то вообще его не было, я на пробу запилил пару тредов назад.
Аноним 09/11/15 Пнд 23:43:28 #191 №577220 
>>577152
А с какой ты кафедры, братюнь?
Аноним 10/11/15 Втр 00:00:39 #192 №577234 
>>577216
Понятия не имею. Он какой-то нудный и там описано то что гуглят в первую очередь. Если уже и возникают такие вопросы, то либо это толстый тролль либо человек хочет гораздо более развёрнутый ответ. Ни для одних ни для других фак не нужен. Можно было вообще пословицами отвечать. Пользы столько же было бы.
Аноним 10/11/15 Втр 00:02:56 #193 №577238 
>>577137
Нечего там глядеть. Работать ты будешь, перебирая бумажки, сертифицируя очередное говно. И особо не важно, что ты там будешь проходить. Не иди туда.
Аноним 10/11/15 Втр 00:11:13 #194 №577245 
>>577137
инф. безопастность на территории бывшего совка -- дно ебанное. это аксиома.
Аноним 10/11/15 Втр 00:19:07 #195 №577256 
>>576830
>он и добавляет их как-то неправильно
this
У тебя head не указатель. При добавлении ты не перемещаешь указатель стека повыше, а просто копируешь *y в head
Аноним 10/11/15 Втр 01:09:23 #196 №577301 
>>577234
Ну не скажи, очень легко нагуглить сотни крестохейтерской пасты и впасть в уныние. Все эти статьи на лурке, малограмотные блоггеры, которые пишут на крестах как на pure c, а потом визжат в своих статьях СИПЛАСПЛАС ГАВНО КЛАССЫ ЭТА СТРУКТУРЫ ССЫЛКИ ЭТА УКАЗАТЕЛИ, ну ты понел. Собственно, я решил сделать фак после того, как у меня люто бомбануло от найденной в вики статьи с коллекцией критики крестов https://ru.wikipedia.org/wiki/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Arachnelis/%D0%9A%D1%80%D0%B8%D1%82%D0%B8%D0%BA%D0%B0_C%2B%2B.
Аноним 10/11/15 Втр 01:11:08 #197 №577302 
Я не понимаю, те люди, у которых в гитхабе CMakeLists.txt - они сами их пишут, что ли? Мой QtCreator генерит только qmake -> make, в других ИДЕ cmake по дефолту идет или как?
Аноним 10/11/15 Втр 01:14:18 #198 №577304 
>>577301
Это ж как у кого-то бомбануть должно было, чтоб такую статью накатать. Поди все успокоительное в соседних аптеках скупил.
Аноним 10/11/15 Втр 01:15:52 #199 №577305 
>>577302
Нет, но это модно и вроде как легко прикручивается везде. Суть в том, что ты типа клеишь проект сразу под CMake, а оно генерит проектные файлы для разных IDE, а не наоборот. Это менее удобно, чем создание проекта сразу в своей IDE, но лучше, чем потом ебаться при портировании. Алсо, подозреваю, что для многих IDE есть плагины обратной генерации CMakeList из проектных файлов.
Аноним 10/11/15 Втр 01:38:09 #200 №577315 
>Замедление относительно C находится в районе 0-20%, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, что не используешь).
Я не согласен. В сишке любят пердолиться с кастами void*, например, что по скорости хуже шаблонов. Правильный ответ - замедление относительно С находится в районе -20%-20%
Аноним 10/11/15 Втр 01:45:47 #201 №577319 
>>577305
>для многих IDE есть плагины обратной генерации CMakeList из проектных файлов.
Наверное, они и не сильно лаконичные, раз автогенерируемые.
Что по поводу
>леишь проект сразу под CMake
как это сделать? В том же Qt.
И чому модно? Потому что кроссплатформенно? Я раньше писал кривенькие мейкфайлы коротенькие, но в CMake куча всякого непонятного бреда, ручками наверное их никто не пишет.
Аноним 10/11/15 Втр 01:48:02 #202 №577320 
>>577315
двачую этага ананимаса. плюсяшный компилятор может вывести получше сяшного. да и криворукость пишушего код тоже влияет. если везде пихать обычно херого заделанные контейнеры (ебал я эту вашу стратегию релокейта с захватом из фристора тупо в два раза большим количеством памяти), то конечно оно будет тормозить. а вот если нежно-бережно мувать в нужных местах вместо копирования, заделать нехерогую архитектуру, то плюсы -- эта вин тысячилетия. пойду спаточки. а то мамка ругается, завтра в школу
Аноним 10/11/15 Втр 02:01:05 #203 №577325 
>>577315
> В сишке любят пердолиться с кастами void, например, что по скорости хуже шаблонов
Сами по себе касты эти ничего не стоят. Они компилируются в ёбаное ничто, на машинном уровне указатели всех типов (в тч void) - это тупо машинные слова (целые числа).
Конечно, если ты возьмёшь какой-нибудь gobject, там будет тормозная херня, но не из-за войдозвёзд, а потому что там блять теги с типом ко всем объектам присобачены, и диспатч по ним.
Аноним 10/11/15 Втр 02:08:04 #204 №577334 
>>577325
Oh, not this shit again. Когда у тебя везде указатели вместо непосредственных значений, это значит многое.
Аноним 10/11/15 Втр 02:19:58 #205 №577341 
>>577319
Ну, проект это дерево тхтшников из CMakeLists, такие мэйкфайлы, только свой синтаксис. Еще есть официальный гуй, через который можно притащить исходники мышкой вместо прописывания, но пердолиться с параметрами все равно придется, если тебя не устраивают ванильные настройки сборки.
Аноним 10/11/15 Втр 02:20:25 #206 №577342 
>>577319
>Потому что кроссплатформенно?
this
Аноним 10/11/15 Втр 02:22:35 #207 №577344 
> И чому модно? Потому что кроссплатформенно? Я раньше писал кривенькие мейкфайлы коротенькие, но в CMake куча всякого непонятного бреда, ручками наверное их никто не пишет.

Это ты еще autotools не пробовал лол

// Мимопишущий CMakeLists.txt руками
Аноним 10/11/15 Втр 02:23:33 #208 №577345 
>>577319
Я пишу их ручками. Беру рыбу из прошлого проекта и редактирую. Это охуенно, что нет привязки к IDE (хочешь емаксом пердолься, хочешь линуксоиде, хочешь msvs), но при этом там нормальный язык, а не autotools.
Аноним 10/11/15 Втр 02:27:35 #209 №577346 
А, еще система модулей удобна. Нагуглил FindFFTW.cmake и подключаешь везде, а не как с мейкфайлами.
Аноним 10/11/15 Втр 09:35:29 #210 №577450 
Я совсем ньюфаг, начал читать липмана из шапки, но совсем нихуя не врубаюсь. Какое-то форсированное объяснение классов началось, указатели, ссылки, идентификаторы, читаю автоматически, понимание придет позже, или нужно осознавать и вникнуть? Мб что еще почитать, или я безнадежен совсем?!
Аноним 10/11/15 Втр 09:39:34 #211 №577452 
>>577450
C++ твой первый язык?
Аноним 10/11/15 Втр 09:43:51 #212 №577455 
>>577452
Я немножко на паскале до этого прогал. Совсем чуть-чуть, что-то типа хобби, которое советуют найти на двачах, чтобы не так уныло было жить. Основная моя работа связана не с программированием, но в целом мне нравится идея что-то прогать.
Аноним 10/11/15 Втр 09:53:43 #213 №577461 
>>577455
У липмана слишком много теории, а какой-то интересной практики я для себя не вижу.
Аноним 10/11/15 Втр 09:57:00 #214 №577464 
>>577450
Попробуй с Лафоре начать.
Аноним 10/11/15 Втр 10:02:51 #215 №577466 
>>577455
>Совсем чуть-чуть, что-то типа хобби
>Основная моя работа связана не с программированием
Тогда возьми какой-нибудь динамический язык питон.
Аноним 10/11/15 Втр 10:05:58 #216 №577469 
>>577256
Братишка, там опечатка? Найди с помощью ctrl+f. Наверно, сначала должно идти "Мнение сторонников C", без плюсов? Или если нет, стоит объединить эти два мнения в список из двух пунктов?

>Мнение сторонников C++

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

>Мнение сторонников C++

>Страуструп утверждает, что сборка мусора как таковая не является неотъемлемой характеристикой развитого языка программирования промышленного применения[70].
Аноним 10/11/15 Втр 10:10:40 #217 №577472 
>>577163
И правильно хотим. Тогда шапку будут читать.
Аноним 10/11/15 Втр 10:12:19 #218 №577476 
>>577466
Мне нравится близость си++ к железу, и в перспективе хотелось бы это как-то задействовать. Те же микроконтроллеры, например.

>>577464
Пробежал сейчас мельком, вроде доходчиво, попробую. Спасибо.
Аноним 10/11/15 Втр 13:42:03 #219 №577577 
>>577469
Так это ведь не моя статья, няш, если я залезу в пространство имен этого чувака, мне пизды дадут. Он небось пока еще правит ее.
Аноним 10/11/15 Втр 14:14:16 #220 №577590 
Аноны, как в Qt остановить поток? Допустим, у меня есть объект, который в одном из своих методов выполняет 1000000 итераций. Я нажимаю на кнопку в GUI и хочу остановить любую работу в приложении, включая упомянутый выше метод. Как мне это сделать?
Аноним 10/11/15 Втр 14:19:02 #221 №577593 
>>577590
http://stackoverflow.com/questions/9075837/pause-and-resume-a-qthread
Аноним 10/11/15 Втр 14:23:12 #222 №577595 
>>577590

Проблема в том, что мне не нужна пауза. Мне нужно остановить насовсем.
Аноним 10/11/15 Втр 14:23:29 #223 №577596 
>>577593
>>577595

Промахнулся.
Аноним 10/11/15 Втр 14:25:07 #224 №577598 
>>577595
Точно так же, только вместо паузы return?
Аноним 10/11/15 Втр 14:26:46 #225 №577600 
>>577598

А если у меня в этом методе 4 асинхронных треда? :0
Аноним 10/11/15 Втр 14:43:41 #226 №577613 
>>577598

Спасибо, брат, я в итоге разрулил с QEventLoop.
Аноним 10/11/15 Втр 15:06:33 #227 №577622 
>>577315
И я согласен с твои несогласием. До кучи constexpr
Аноним 10/11/15 Втр 21:43:03 #228 №577852 
Доставьте мем "ебать ты крестопидор", пожалуйста
Аноним 10/11/15 Втр 21:57:55 #229 №577868 
>>577238
>Работать ты будешь, перебирая бумажки
>будешь
Рабу дяди припекло. После ИБ можно хоть фрилансить или разрабатывать игры, всем похуй, что ты там в вузе проходил. Важно, что ты умеешь.
ПРОГРАММИНГ ЧЕЛЛЕНДЖ Алёна 11/11/15 Срд 00:26:11 #230 №578015 
14471907718390.jpg
Ребята. в общем программинг челлендж.

по списку решил пройтись. До конца.
Хз, может и забью на эту идею к середине,
ну а пока :



http://ideone.com/y4pbxQ

Начал с самого первого :
NAME GENERATOR

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

МОжет к следующей проге стану чуть умнее..
Аноним 11/11/15 Срд 00:33:43 #231 №578025 
14471912236120.png
>>577852
Аноним 11/11/15 Срд 00:54:12 #232 №578051 
>>578015
> 2015
> использовать rand и srand
Аноним 11/11/15 Срд 00:59:44 #233 №578062 
>>578015
Имена лучше генерить из готовых частей, а то получается белиберда, слабо напоминающая имя.
Аноним 11/11/15 Срд 01:00:55 #234 №578067 
>>578051
Что не так с ранд?
Аноним 11/11/15 Срд 01:02:36 #235 №578069 
>>578062
Можно было бы ещё попытаться обучить Марковскую цепь или какую-нибудь генеративную модель.
Аноним 11/11/15 Срд 01:02:49 #236 №578070 
>>578062
Согласен на счёт белиберды.
Но готовые части , получается, нужно самому хреначить, верно?
Аноним 11/11/15 Срд 01:10:19 #237 №578072 
>>578025
Спасибо!
Аноним 11/11/15 Срд 01:32:15 #238 №578077 
Здравствуй, крестач, давно не видились.

Есть одно ебанутое решение:
http://ideone.com/JdfRoP
Как обойти проблему запрета такой специализации?

Семинароход жив? Работу нашёл?
Аноним 11/11/15 Срд 01:34:34 #239 №578078 
>>578062
http://www.dreamincode.net/forums/topic/127035-random-name-generator/

Ты ж про это говоришь?
Аноним 11/11/15 Срд 01:42:14 #240 №578081 
>>578077
Самое очевидное решение, которое приходит на ум - использовать std::enable_if вместо alias definition. Но тогда код разрастётся в жуткое ояебу, читать которое будет главной пыткой для всех крестоёбов в аду.
Аноним 11/11/15 Срд 01:44:54 #241 №578083 
Qt-треды канули в лету, поэтому спрошу тут.

Как убрать элемент из списка флагов?

Имеется список флагов параметров поиска (FindFlags).
Нужно убрать из него уже добавленный в него флаг. Пробую так:
m_flags&=(`QTextDocument::FindCaseSensitively);

Выдаётся ошибка c2018: (неизвестный символ 0x60). Дело в том, что компилятор принимает инверсию флага за попытку присвоить несуществующий флаг. Инверсия нужна для побитового исключения флага из списка.
Аноним 11/11/15 Срд 02:02:41 #242 №578091 
>>578067
Есть random_device же, там сам выбираешь распределение и вообще тип генератора. Очень удобная фича STL.
Аноним 11/11/15 Срд 02:47:30 #243 №578107 
>>578083
Разбей операцию по шагам и посмотри что именно происходит. Чему равна иверсия флага, и что именно получается после побитового И. В енуме, возможно, используется знаковый инт и в процессе какая-то хуйня происходит из-за этого.
Аноним 11/11/15 Срд 03:23:31 #244 №578113 
>>577345
>>577341
Сладенькие, попрошу у вас шаблон / гуйчик для составления этих вещей, буду премного благодарен.
Алсо, стоит ли обмазываться qbs, или это мертвое детище qmake?
Аноним 11/11/15 Срд 04:34:41 #245 №578123 
Хм, CMake синтаксис ебанутый.
Я так подозреваю, либы, которые его используют, предоставляют Find.cmake? Я не могу поверить, что мне придется разбираться в этом ебанутом говне.
Впрочем, один проект я собрал только что.
Аноним 11/11/15 Срд 05:06:53 #246 №578133 
>>578123
кто тебе заставляет использовать cmake?
Аноним 11/11/15 Срд 05:16:49 #247 №578139 
>>578133
Ну хуй знает, судя по всему, он самый дефолтный из всех.
Да и тащемта потихоньку разбираюсь, пригодятся хотя бы основы.
Аноним 11/11/15 Срд 07:56:29 #248 №578173 
http://pastebin.com/sHFcu5xb
Вот почему компилятор бугуртит с того, что не бывает Warrior(int, const char[13]), хотя я создаю именно Wizard? Или компилятор для верняка прогоняет шаблон по всем веткам?
Не понимат.
Аноним 11/11/15 Срд 15:48:50 #249 №578453 
>>578113
https://github.com/opatry/cpp-cmake-template/blob/master/CMakeLists.txt
Но вообще это все очень индивидуально, проще всего прочесть туториал и нахуярить самому.
https://cmake.org/cmake-tutorial/
http://habrahabr.ru/post/155467/
Аноним 11/11/15 Срд 15:57:45 #250 №578459 
>>578173
Когда метод для Ts ... , равного <int, char *>, инстанцируется, все конструкции внутри него должны быть корректными. Компилятору похуй, что ты не будешь вызывать его с визардом, он видит, что ты сможешь вызвать такое, и недоволен. А разгадка одна - ты смешал динамический и параметрический полиморфизм в одном методе. Либо делай нешаблонный метод, в котором параметры конструирования передаются через эллипсис, и контроль будет отключен так деды делали, нирикамендую, либо убери нахуй свой енум и передавай тип юнита тоже шаблонным параметром. Это вообще очевидное решение, я не понимаю, нахуя ты решил смешать две концепции, если уж додумался до variadic templates.
Аноним 11/11/15 Срд 15:59:38 #251 №578460 
Кем идти работать с с++?
Аноним 11/11/15 Срд 16:13:07 #252 №578465 
>>578460
legacy-monkey
Аноним 11/11/15 Срд 16:13:35 #253 №578466 
>>578460
Программистом.
Аноним 11/11/15 Срд 17:50:05 #254 №578517 
14472534057120.jpg
Посоны, могу ли я читать winAPI Рихтера без каких-либо глубоких знаний ОСи? Вообще я собирался Таненбаума почитать, но не в первую очередь. Подскажите пожалуйста.
Аноним 11/11/15 Срд 19:00:52 #255 №578546 
>>578460
С одним С++ ты будешь пердолиться с какими-нибудь высоконагруженными вебовыми йобами или вообще на Qt формошлепствовать, учи computer vision доволнительно или DSP, будешь боярином.
Аноним 11/11/15 Срд 19:03:06 #256 №578550 
>>578517
>Таненбаума
>winAPI
Тогда лучше это https://vk.com/doc10903696_277851797
Аноним 11/11/15 Срд 19:05:49 #257 №578555 
>>578550
Ты меня неправильно понял или может я тебя. Хотел узнать лишь, что смогу ли понять все аспекты работы с Windows API, не зная полного устройства ОСей?
Аноним 11/11/15 Срд 19:08:52 #258 №578558 
>>578555
Поймёшь почти всё.
Аноним 11/11/15 Срд 21:45:44 #259 №578684 
>>578546
Ну у меня есть C++, Java(Android), Matlab, R, Mathematica.
Но нет опыта работы и нормальной корочки. Вот не знаю куда податься.
Хотя успешный batya продвигает меня к своим друзьям писать торговых роботов, хотелось бы ещё варианты посмотреть.
Аноним 11/11/15 Срд 21:50:05 #260 №578686 
>>578459
>додумался
Я о них только вчера узнал и использовать попытался, теперь для меня очевидно, что ?>убери нахуй свой енум и передавай тип юнита тоже шаблонным параметром
Аноним 11/11/15 Срд 22:06:41 #261 №578702 
>>578684
Батю слушай, он тебе хуйни не посоветует.
Аноним 11/11/15 Срд 22:11:30 #262 №578705 
>>578684
А в это время решетко- и джавадебилы получают деньги, особо не задаваясь такими вопросами.
Аноним 11/11/15 Срд 22:24:00 #263 №578716 
>>578705
И пилят очередной бэкенд для говна? Нет уж, спасибо.
Аноним 11/11/15 Срд 22:25:31 #264 №578718 
>>578716
И тем не менее. Хотя я с тобой согласен, путь наименьшего сопротивления это не очень. Наверное, это приведет меня к доширакам и язве желудка.
Аноним 11/11/15 Срд 23:14:41 #265 №578746 
>>578705
А потом мы наблюдаем плач крудошлепов о неинтересной профессии и обслуживающем персонале. А смотрю на новости http://tass.ru/kosmos/2334635 и знаю, что там йоба с моим софтом стоит, и мне сердце радуется, что я пугаю пиндосов, которые платят мне двадцаточку на апворке.
>>578684
Иди к бате и получай опыт, хули тут думать. Разработай им DSL какой-нибудь, который бы кодогенерировал в кресты.
Аноним 11/11/15 Срд 23:16:00 #266 №578748 
>>578746
Лучше грустить о профессии, будучи при деньгах.
Аноним 11/11/15 Срд 23:21:15 #267 №578751 
>>578748
Лучше грустить о проебанной молодости, имея нормальную профессию и деньги.
Аноним 11/11/15 Срд 23:23:41 #268 №578754 
Как писать простые приложения с графениумом в С++? Совсем простые, не круче Змейки или множества Мандельброта.
Чо-то типа Паскаля АБЦ.
Аноним 11/11/15 Срд 23:25:07 #269 №578756 
>>578751
>проебанной молодости
Ты же сейчас про сишарп?
Аноним 11/11/15 Срд 23:26:00 #270 №578758 
>>578754
Так ты определись, блядь, змейку или Мальденброта.
Аноним 11/11/15 Срд 23:29:45 #271 №578762 
>>578758
Какая разница? И для того, и для другого достаточно инструмента, содержащего примитивы типа "нарисовать линию по координатам", "нарисовать прямоугольник по координатам" и так далее. Сначала одно напишу, затем второе блеа.
Аноним 11/11/15 Срд 23:37:21 #272 №578768 
>>578762
SFML посмотри
Аноним 12/11/15 Чтв 00:00:44 #273 №578782 
>>578762
Глянь либу, которую труп страуса в своей книжке использует. FLTK кажется.
Аноним 12/11/15 Чтв 00:02:42 #274 №578784 
>>578768
Похоже, то, что нужно.

Последний штрих – идем во вкладку C++->препроцессор и в первой строке «определение препроцессора» в самом начале дописываем: SFML_DYNAMIC;

А где это? А то у меня Кодблокс, при этом ещё и на буржуйском. И при этом я не ебу даже, что такое препроцессор.
Аноним 12/11/15 Чтв 00:11:58 #275 №578787 
>>578768
Хотел уж тоже СФМЛ посоветовать, но думал, что обоссут.
Аноним 12/11/15 Чтв 00:12:25 #276 №578788 
>>578784
Чего блять?
Аноним 12/11/15 Чтв 00:12:55 #277 №578789 
>>578784
Не еби себе мозг, вот:
https://github.com/SFML/SFML/wiki/Tutorial%3A-Build-your-SFML-project-with-CMake
Аноним 12/11/15 Чтв 00:27:06 #278 №578798 
>>578788
Нашёл статью, где описывается, как это поставить.
Решил, что проще поставить себе Вижуал Студио, как в статье.
Однако один хуй я что-то сделал не так: "1>LINK : fatal error LNK1104: не удается открыть файл ''sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;sfml-audio-d.lib;''
Аноним 12/11/15 Чтв 00:57:59 #279 №578821 
14472790792940.png
>>574713 (OP)
Ребзя, поясните раку за QT, в чем минусы?
Судя по описанию, идеальная IDE с завезенной кроссплатформенностью.
Начал учить C++, работая на ней.
Аноним 12/11/15 Чтв 01:01:54 #280 №578823 
Посоветуйте, пожалуйста, опенсурсный проект, в который можно было бы попробовать коммитить для начала.
Аноним 12/11/15 Чтв 01:03:58 #281 №578824 
>>578823
Ядро линупса.
Компилятор гцц.
Аноним 12/11/15 Чтв 01:04:02 #282 №578825 
>>578782
Опять, ёбаный в рот. Ну всё же по инструкции делал.

Не удается открыть файл include: Graph.h: No such file or directory.
Аноним 12/11/15 Чтв 01:13:08 #283 №578828 
>>578821
Ок, объясняю раку.
QT = QuickTime, на пике Qt.
Qt - не IDE, а фреймворк, IDE - это QtCreator.
Аноним 12/11/15 Чтв 01:13:36 #284 №578829 
>>578823
Такой дефолтный вопрос, на него нихуя нету ответа, серьезно, сипипи не про опенсорц.
Аноним 12/11/15 Чтв 01:19:37 #285 №578832 
>>578824
Смешнона самом деле нет

>>578829
Ну мало ли, может тут какие-нибудь знающие контрибьюторы сидят.
Аноним 12/11/15 Чтв 01:25:19 #286 №578834 
>>578829
> сипипи не про опенсорц
Лол https://github.com/trending?l=cpp
Аноним 12/11/15 Чтв 01:26:35 #287 №578835 
14472807956390.png
>>578828
>Выебнуться, исправив ошибки невежи, но не ответить на вопрос.
Аноним 12/11/15 Чтв 01:38:34 #288 №578838 
>>578835
Но почему нет?
Аноним 12/11/15 Чтв 01:40:00 #289 №578839 
>>578835
А вопрос в чем? IDE QtCreator - норм иде.
Аноним 12/11/15 Чтв 01:48:51 #290 №578846 
>>578821
Лучший язык и лучшая среда. Оправдывайтесь.
Аноним 12/11/15 Чтв 01:52:53 #291 №578853 
Куда пидорнули qt тред? мне к вам со своим говном теперь?
проблема ахуенно банальная, впервые с таким столкнулся

this->testWgt = new QWidget;
this->testWgt->resize(200, 200);
this->testWgt->show();

юазовый виджет, после создания виснет. просто, блядь, виснет (no answering); функция в которой создается сам виджет запускается QtConcurrent::run
Аноним 12/11/15 Чтв 01:57:56 #292 №578856 
14472826768340.png
>>578853
вот еще.
Аноним 12/11/15 Чтв 02:00:37 #293 №578858 
>>578853
> The QtConcurrent::run() function runs a function in a separate thread.
Зачем тебе отрисовка в другом потоке?
Аноним 12/11/15 Чтв 02:02:44 #294 №578860 
>>578858
Зачем, ну, надо, зачем еще. Так получилось. Проблема именно в этом?
Аноним 12/11/15 Чтв 02:04:21 #295 №578861 
>>578860
Может быть.
Аноним 12/11/15 Чтв 02:07:24 #296 №578863 
>>578861
Ну, я убедился в этом, таки да. Окей, как тогда осуществить отрисовку виджета в другом потоке, или как дефолтыми методами отслеживать величину, которая меняется каждые 10 мс?
Аноним 12/11/15 Чтв 02:11:42 #297 №578866 
>>578863
> как тогда осуществить отрисовку виджета в другом потоке
По-моему так вообще не делают, вся отрисовка принадлежит главному потоку.

> как дефолтыми методами отслеживать величину, которая меняется каждые 10 мс
Слоты @ сигналы.
Аноним 12/11/15 Чтв 02:25:02 #298 №578875 
>>578846
Qt с каких пор язык?
Аноним 12/11/15 Чтв 02:25:55 #299 №578877 
Кстати, жря пидорнули куте тред.
Давайте что ли обратно вернем?
Аноним 12/11/15 Чтв 02:28:28 #300 №578881 
>>578875
Язык написания интерфейсиков.
Аноним 12/11/15 Чтв 02:36:14 #301 №578882 
>>578838
>>578839
Прост впервые сюда зашел и не нашел упоминание о Qt в шапке.
Аноним 12/11/15 Чтв 02:40:02 #302 №578885 
>>578882
Это говорит о том, что с ним мало проблем.
Аноним 12/11/15 Чтв 02:41:42 #303 №578887 
>>578885
Да ну, часто очень люди с Куте приходят и вопросы задают, даже не здесь, а вообще в нуфаг треде. Наверное, находят С++ тред нерелевантным.
Аноним 12/11/15 Чтв 02:42:56 #304 №578888 
>>578887
Чет я мало в ньюфаг треде сижу, значит.
Аноним 12/11/15 Чтв 02:43:42 #305 №578889 
>>578877
Я не против, но нужно тогда опа найти, ибо я недостаточно силен в qt для такого. Ну или можно при помощи анона впилить параграф про него в эту шапку, как собирались.

И да, сишники, пересоздайте свой тред, будьте няшами. Как-то негоже давать ссылку на протухший в оппосте.
Аноним 12/11/15 Чтв 02:52:03 #306 №578894 
>>578825
>Не удается открыть файл include: Graph.h: No such file or directory.
>Активирован усовершенствованный протокол подключения заголовочных файлов
>Активирован модуль holySpirit.dll
>Привилегированный доступ к информационному архиву Вселенной получен
>Поиск файла Graph.h...
>Done
>Найдено 0x0EA378FFC935 соответствий
>Активирован телепатический протокол
>Обнаружено соответствие: 571_Humanity/books/Stroustrup/14/libs/Graph.h
>Выполняется загрузка исходных кодов...
>Done
Аноним 12/11/15 Чтв 03:09:02 #307 №578900 
>>578754
Qt.
Аноним 12/11/15 Чтв 03:32:01 #308 №578908 
14472883217370.jpg
>>578900
Аноним 12/11/15 Чтв 03:37:28 #309 №578911 
>>578908
Ну давай, поясняй мне в контейнер, обязательно проверю.
Аноним 12/11/15 Чтв 04:03:38 #310 №578918 
>>578754
C++ Builder. Вот без шуток.
Аноним 12/11/15 Чтв 04:46:33 #311 №578927 
>>578918
Стильно, модно, молодежно ага
Аноним 12/11/15 Чтв 09:27:06 #312 №578977 
>>578828
Саже-кутэ-петух вернулся без сажи. С возвращением.
Аноним 12/11/15 Чтв 10:12:24 #313 №578994 
>>578821
moc - лишний этап сборки
Свои контейнеры, которые индексируются к тому же по int вместо size_t
Куча фич из c++11 и 14 не использована, тогда как с ними многие вещи можно было бы сделать четче и удобнее

Кароче нет явных минусов, просто немного своя специфика. Нет причин не использовать, если нужно склепать gui
Аноним 12/11/15 Чтв 10:14:04 #314 №578995 
>>578994
Забыл ещё одно: объекты, унаследованные от QObject нельзя делать шаблонными
Аноним 12/11/15 Чтв 12:03:24 #315 №579026 
Задам вопрос. Вот появилась инициализация фигурными скобочками в C++11 (в нём же? Или в 14?)

Как вы теперь в новом коде пишете int i =0; или int i{ 0 };

И почему?
Аноним 12/11/15 Чтв 12:11:50 #316 №579027 
>>579026
Так как в остальном проекте. Если только от меня зависит то использую {} чтобы инициализация отличалась от присваивания синтаксисом.
Аноним 12/11/15 Чтв 12:29:14 #317 №579031 
>>579027
>Если только от меня зависит то использую {} чтобы инициализация отличалась от присваивания синтаксисом.

Даже в цикле for?

for (int i{ 0 }; i < n; ++i)
    f(i);
Аноним 12/11/15 Чтв 13:06:39 #318 №579040 
>>579031
Ну да. Любая инициализация. Мне кажется годным что у нее отдельный синтаксис. Хотя врядли это имеет особое значение.
Аноним 12/11/15 Чтв 13:15:27 #319 №579044 
>>579040
Ну я пытаюсь выработать у себя какой-то стиль, будучи новым ньюфагом. Меня не столько беспокоит трудность освоения крестов и даже не столько беспокоит говнокод (он неизбежен), а вот отсутствия стиля напрягает.

На мой взгляд, хороший стиль повышает читаемость.
Аноним 12/11/15 Чтв 13:20:37 #320 №579050 
Посоны, хватит ли прочесть Конкретной математики Кнута, чтобы не быть макакой ебучей?
Аноним 12/11/15 Чтв 13:21:01 #321 №579051 
>>574713 (OP)
Кодить невозможно : не кодинг, а постоянная ебля с компилятором. Поэтому с него и ушёл.
Аноним 12/11/15 Чтв 13:59:18 #322 №579064 
>>578995
Чет не понял тебя, поясняй.
Аноним 12/11/15 Чтв 14:09:14 #323 №579068 
>>579064
Объекты, которые могут использовать плюшки Qt в виде сигналов и слотов не могут быть шаблонными(template<typename T> MyYobaObject). От этого никто особо не страдает -- нужность такого кунфу невелика, но всё равно это недостаток, закрывает дорогу к некоторым особо охуенным извра^Wизощрениям.
Аноним 12/11/15 Чтв 14:40:15 #324 №579075 
>>578994
>Куча фич из c++11 и 14 не использована, тогда как с ними многие вещи можно было бы сделать четче и удобнее
Хм, например?
range-based for работает с Qt-контейнерами.
Новый синтаксис сигналов-слотов, который работает с указателями на функции, а не резолвит функцию по строке.
Возможность подключить сигналы к лямбдам.
Семантика перемещения, вроде, почти во всех Qt классах есть.
Constexpr, override и т.п. тоже есть.
Правда, по поводу потоков я ничего не знаю т.к. не использовал std-шные потоки в тесной связке с Qt.
Аноним 12/11/15 Чтв 15:32:51 #325 №579107 
>>579075
Это всё довольно тривиальные вещи (их быстро и легко внедрили) , я подразумевал потоки, умные указатели, (еще из c++98) исключения
Аноним 12/11/15 Чтв 15:37:38 #326 №579114 
>>579107
С потоками хитрая ситуация (например, гейство с сигналами-слотами между разными потоками да и вообще работа QObject'ов в нескольких потоках), поэтому предпочитаю использовать потоки, которые предоставлены фреймворком при работе с Qt, а в с++ std-шные.
> умные указатели
Там же куча указателей вроде QSharedPointer. QScopedPointer и т.п.
>исключения
Не особо много изменений было, хотя за этим я особо не следил - не люблю исключения.
Аноним 12/11/15 Чтв 15:51:21 #327 №579128 
Ньюфаг ИТТ. Учил плюсики до уровня "посчитай в консоли" по гайдам с ютуба/сайтов. Потом забил, а сейчас снова хочу попробовать. Вопрос: где можно выучить его до нормального уровня, чтоб делать не бесполезные программы? И отдельный вопрос про visual c++, нужен он или нет, и в каких ситуациях?
Аноним 12/11/15 Чтв 15:52:45 #328 №579129 
>>579128
Сорри, тред не читал.
Аноним 12/11/15 Чтв 16:01:06 #329 №579134 
>>579128
На мой взгляд, с++ - это не тот язык, который стоит изучать как хобби: он сложен, разработка на нем сложна и долга и сфера применения достаточно специфична (например, высокопроизводительные приложения да и вообще где скорость работы критична).
Но если решил изучать, то попробуй это:
Prata S. / C++ Primer Plus, 6th Edition
Sedgewick R. / Algorithms in C++, Third Edition
Потом Мейерса с его Effective c++
Аноним 12/11/15 Чтв 16:08:01 #330 №579136 
>>579050
Это все говно. Книги по алгоритмам научат тебя алгоритмам и, возможно, языку (очень мало). Навыки разработки после такого адского дрочения у тебя не появятся. Ты просто проебешь время.
Аноним 12/11/15 Чтв 16:09:09 #331 №579137 
>>578911
>Использовать для однооконной змейки монструозную ебалу для многоуровневых гуев.
Аноним 12/11/15 Чтв 16:09:12 #332 №579139 
>>579134
А если есть желание как хобби пилить игрушки, то что учить, раз цепепе сложно?
мимокрок
Аноним 12/11/15 Чтв 16:10:55 #333 №579142 
>>579136
Т.е. по-твоему они издаются исключительно для проеба времени? А как же применение каких-нибудь мат. навыков в собственном коде? Это же охуенно.
Аноним 12/11/15 Чтв 16:12:24 #334 №579144 
>>579040
А я юзаю только для непримитивных типов. Все равно с полной универсальностью обосрались же, даже Скотт признавал в интервью. По сути, {} в первую очередь нужно, чтобы () не распарсилось как объявление функции, а = для непримитивных типов и так никто не пишет.
Аноним 12/11/15 Чтв 16:12:51 #335 №579146 
>>579136
Это же конкретная математика Кнута, оттуда он языку ВООБЩЕ не научится.
С другой стороны, в сфере применения с++ зачастую требуются знания алгоритмов и определенных областей математики.
>>579139
Берешь какой-нибудь движок (тот же Unity или UE) и используешь его.
В них, вроде, используются скриптовые языки и с# в Unity.
Аноним 12/11/15 Чтв 16:15:05 #336 №579148 
>>579051
>Учиться невозможно : не учеба, а постоянная ебля с зачетами. Поэтому с универа и ушел.
>Отношаться невозможно : не романтика, а постоянная ебля мозга. Поэтому от тянки и ушел.
Аноним 12/11/15 Чтв 16:16:12 #337 №579149 
>>579068
Мне этого уже достаточно, чтобы не юзать куте. В шаблонах вся суть крестов жи.
Аноним 12/11/15 Чтв 16:21:19 #338 №579154 
>>579142
Да. Как ты думаешь, зачем в математике доказательства теорем сохраняются в истории, а сложные и запутанные доказательства заменяются более простыми и ясными, когда такое доказательство придумывают или когда появляется более удобный язык типа теории групп для доказательства теоремы Лагранжа или теория категорий? Чтобы не проебывать время и заниматься актуальными задачами. Это типично программачерская шиза - проебывать время на хуету и велосипеды.
Аноним 12/11/15 Чтв 16:22:59 #339 №579155 
14473345790270.jpg
>>579154
Если так рассуждать, то процентов 80 чистой математики - проеб времени на хуету без прикладного значения.
Аноним 12/11/15 Чтв 16:23:07 #340 №579156 
>>579148
>>Отношаться невозможно : не романтика, а постоянная ебля мозга. Поэтому от тянки и ушел.
Да, все верно, тян должна решать твои эмоциональные проблемы и приносить удовольствие, а не создавать новые проблемы. ТНН, бич.
Аноним 12/11/15 Чтв 16:24:49 #341 №579158 
>>579156
Туда ли ты зашел? Этот тред для успешных женатиков, которые зарабатывают плюсами личинкам на покаки.
Аноним 12/11/15 Чтв 16:26:03 #342 №579159 
>>579155
Математики не получают зарплату за то, что могут повторить развитие дифференциального исчисления от Ньютона до групп Ли, не снимая свитер, и поэтому занимаются исследованиями, а не дрочением, как кодачеры.
Аноним 12/11/15 Чтв 16:27:53 #343 №579160 
>>579146
Мне кажется для моих целей юнити с уе излишни.
Аноним 12/11/15 Чтв 16:28:53 #344 №579161 
>>579159
Так ведь и кодеры не получают за хуйню, даже за сайдпроекты не получают обычно. Есть нюансы с госконторами, которым похуй вообще, что ты написал за восьмичасовой день, или, например, написание велосипедов из-за ебли с лицензиями, но это не так уж часто встречается при годной организации.
Аноним 12/11/15 Чтв 16:29:46 #345 №579162 
>>579160
Тогда какой-нибудь более простой движок.

Просто если будешь разрабатывать игру на плюсах, то (особенно если не знаешь язык уже и придется изучать с нуля) будешь сталкиваться не столько с разработкой игры, сколько со сложностями языка.
Аноним 12/11/15 Чтв 16:30:32 #346 №579164 
>>579144
А для массивов примитивных типов?
Аноним 12/11/15 Чтв 16:33:36 #347 №579165 
>>579164
Тоже только голые массивы редко встречаются теперь.
Аноним 12/11/15 Чтв 16:35:03 #348 №579167 
>>579165
Тоже фигурные скобочки? Но где логика тогда?
Аноним 12/11/15 Чтв 16:35:16 #349 №579168 
>>579165
Думаю, он еще и имел ввиду нечто вроде
std::vector<int> vec {1,2,3,4,5};
Аноним 12/11/15 Чтв 16:39:48 #350 №579170 
Есть какая-нибудь целая книжка или просто адекватная документация по winsock и как правильно(!) делать HTTP запросы. Лазил в гугле, половина найденных - вопросы как раз по этой теме и ответы-костыли.
Аноним 12/11/15 Чтв 16:40:18 #351 №579171 
>>579168
>std::vector<int> vec{ 1, 2, 3, 4, 5 };

Это-то понятно, сложная инициализация сложного объекта, фигурные скобочки идеально подходят. Вопрос с простым массивами, типа int[10]
Аноним 12/11/15 Чтв 16:47:55 #352 №579178 
>>579171
а в чем принципиальная разница в инициализации вектора и обычного массива в данном случае?

Тоже просто список значений.
Аноним 12/11/15 Чтв 16:51:41 #353 №579182 
>>579178
Но тогда почему базовые типы (int, например) не инициализировать как int i { 0 };

? Я попробовал в цикле for и проблевался с неэстетичности...
Аноним 12/11/15 Чтв 16:53:58 #354 №579184 
>>579182
Как-то стремно выглядит.
Ну и разницы нет, все равно в один и тот же код компилируется.
Аноним 12/11/15 Чтв 17:05:43 #355 №579190 
>>579184
Ну понятно, что в один, вопрос в читаемости. Аргумент за: инициализация отличается от присваивания. Аргумент против: всё равно можно втопить только на той же строчке, что и указание типа.
Аноним 12/11/15 Чтв 17:12:59 #356 №579193 
>>579190
В случае примитивных типов - нет.
int x {3};
0x400755 <+0x0008> c7 45 fc 03 00 00 00 movl $0x3,-0x4(%rbp)

int y = 3;
0x40077a <+0x0008> c7 45 fc 03 00 00 00 movl $0x3,-0x4(%rbp)

g++ 4.8.4
Аноним 12/11/15 Чтв 17:16:18 #357 №579195 
>>579193
Я имел в виду в плане читаемости кода. В плане ассемблера понятно, что одно и то же будет.
Аноним 12/11/15 Чтв 17:25:51 #358 №579199 
>>579149
Я бы не стал отвергать столь фичастую кроссплатформенную gui библиотеку из-за невозможности шаблонами наследоваться от QObject. Как я и сказал, это мало чему мешает
Аноним 12/11/15 Чтв 17:29:15 #359 №579201 
>>579160
Возьми шарп и легенькую либу какую
Аноним 12/11/15 Чтв 17:40:29 #360 №579213 
>>579170
неуч
winsock работает на уровне TCP/IP, а ты пытаешься на уровне http работать
естественно, приходится крутить кучу ненужных вторичных костылей
Аноним 12/11/15 Чтв 17:43:28 #361 №579219 
#include <FL/Fl.h>
#include <FL/Fl_Box.h>
#include <FL/Fl_Window.h>
int main ()
{
FlWindow window (200, 200, "Window title") ;
Fl_Box box(0,0,200,200,"Hey, I mean. Hello, World!");
window.show();
return Fl::run();
}
Скопировал код из книжки Страуструпа. Выдаёт ошибку:
error C2228: выражение слева от ".show" должно представлять класс, структуру или объединение.
Что нет так? Это же класс, структура или объединение "FLWindow".
Аноним 12/11/15 Чтв 17:55:54 #362 №579225 
>>579159
Математики получают зарплату за расчет цены опционов и прочей хуиты. И да, постоянно переизобретают велосипеды.
Аноним 12/11/15 Чтв 18:00:31 #363 №579228 
>>579219
Ах, там FL_Window.
Но теперь он выдаёт ошибку в файле fl.h
Аноним 12/11/15 Чтв 18:03:52 #364 №579229 
Я пишу на Си. Пинайте меня, кидайте какашками и говорите, как круты классы.
Аноним 12/11/15 Чтв 19:32:23 #365 №579295 
>>579229
Зачем?
Аноним 12/11/15 Чтв 19:36:31 #366 №579300 
14473461916350.jpg
>>579229
Ты понимаешь, что ты поехавший? Уже всё. Не я, блядь, поехавший… не он, блядь, а ты!
Аноним 12/11/15 Чтв 20:28:26 #367 №579321 
>>579295
Чтобы все охуели как я умею.
Аноним 12/11/15 Чтв 20:47:49 #368 №579333 
>>579026
Стараюсь везде, где только возможно юзать {}.
Во-первых, видно, что это инициализация, а не присваивание. Да и оно как бэ лучше, чем int i( 3 ), проверкой на narrowing на этапе конпейляции. Позволяет обходить ошибку в конструкторах без аргументов, когда койпелятор решает, что это, внезапно, обяъвление функции.
Да и выглядит имх красивше:

[code]
using Coordinate = double;
using Distance = double;

struct Point2D {
  A(Coordinate x = 0.0, Coordinate y = 0.0)
: x{ x }
, y{ y }
, r{ std::sqrt(x x + y y) }
{}

Coordinate x;
Coordinate y;
Distance r;
};

int
main(int argc, char argv)
{
Point2D point{ 3.4, 542.01 }; // goed
Point2D point( 3.4, 542.01 ); // goed
Point2D point(); // опастна, может подумать, что это объявление функции
Point2D point; // надо заменить этим, или
Point2D point{}; // goed
}


[/code]
Из минусов: initialization_list ломает всю лафу в перегрузках конструкторов.
И с auto оно глючит. Тип выводится как initialization_list.
auto a{ 3 }; // не int, а initialization_list.
Хотя, последнее хотят пофиксить в c++17
Аноним 12/11/15 Чтв 21:12:39 #369 №579358 
>>579229
Круты немспейсы и перегрузка функций, например. Про темплейты и анонминые функции я даже не говорю.
Аноним 12/11/15 Чтв 23:44:23 #370 №579456 
есть какие-нибудь годные html парсеры с документацией?
хочу поаутировать со страничками.
Аноним 12/11/15 Чтв 23:45:49 #371 №579458 
>>579229
У няшной сишки ведь свой тред есть
https://2ch.hk/pr/res/518562.html#518562
Аноним 12/11/15 Чтв 23:47:06 #372 №579459 
>>579456
Бери webkit и обходи DOM :3
Аноним 13/11/15 Птн 00:05:06 #373 №579468 
>>579456
Перл?
Аноним 13/11/15 Птн 02:00:12 #374 №579529 
Все эти скобочки, auto - хуйня для хипсторов.
Аноним 13/11/15 Птн 03:45:18 #375 №579567 
>>579529
>Все эти классы, исключения - хуйня для хипсторов.
Аноним 13/11/15 Птн 04:26:03 #376 №579571 
>>579529
У auto есть пара преимуществ, если интересно глянь на YouTube Myeyers auto cppcon
Аноним 13/11/15 Птн 05:37:22 #377 №579580 
>>579571
>Meyers
Слоуфикс
Аноним 13/11/15 Птн 12:06:44 #378 №579691 
>>579529
У Саттера в gotw цикл статей годных про auto и скобочки. Очень хорошо поясняет зачем и почему
Аноним 13/11/15 Птн 14:22:20 #379 №579749 
>>579456
lxml под одноглазым
Аноним 13/11/15 Птн 14:55:00 #380 №579758 
Азаза погромисты, с чего начать свои сайты делоть?
Аноним 13/11/15 Птн 15:27:19 #381 №579772 
>>579758
Для начала, необходимо закончить школу...
Аноним 13/11/15 Птн 17:45:01 #382 №579841 
Господа, в книге Рихтера о программировании под винду рассказывается про работу с секциями в ПЕ-файлах?
Аноним 13/11/15 Птн 21:11:11 #383 №579952 
14474382717600.png
Хотеть такое же для крестов. Реквестирую.
https://github.com/TheKnightsWhoSayNi/info/wiki/Hat#%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%BA%D0%B8
Аноним 13/11/15 Птн 22:21:18 #384 №580000 
>>579459
Как это все делать? Я думал есть простенькие парсеры, а тут чето пиздец. Есть документация или в какую сторону копать?
Аноним 13/11/15 Птн 22:52:05 #385 №580014 
>>579952
В эйлере хоть, ручкой, бумагой и гуглом решай. И это возможно, хоть и сложнее. Сразу научит не искать тупых путей, уровня брутфорса.

А поиграться в гугле полно сервисов. Тот же codingame.
Аноним 13/11/15 Птн 23:05:48 #386 №580020 
Есть std::map<SceneID, std::unique_ptr<Scene>> m_scenes,
где SceneID - енам кароч.
Вопрос такого плана, нужен метод для удаления одной пары и очистки всего контейнера.
Я верно понимаю, что мне достаточно m_scenes.erase(std::find(id)) и m_scenes.clear(m_scenes.begin(), m_scenes.end()) соответственно?
Вопрос-то в чеем стоит, лол. Умные указатели догадаются самоуничтожиться в таком случае?
Аноним 13/11/15 Птн 23:07:34 #387 №580024 
>>580020
m_scenes.clear(), конечно же.
Аноним 13/11/15 Птн 23:41:07 #388 №580033 
>>580020
Да
Аноним 14/11/15 Суб 00:12:50 #389 №580057 
>>580033
Уже убедился, с помощью логгера деструкторов.
Аноним 14/11/15 Суб 00:18:33 #390 №580060 
Тут пацаны писали про dsp. Для него сильно физику знать надо? И что можно почитать на эту тему, с энтри левела?
Аноним 14/11/15 Суб 05:42:51 #391 №580147 
>>574713 (OP)
int c, d;
int gcd (int a, int b) {
if (b==0) return a;
else return gcd (b, a%b);
}

Поясните принцип работы этого кода. Он находит НОД, но как он это делает?
int main () {
    //ifstream cin("input.txt") ;
    //ofstream cout("output.txt") ;
 
cin >> c >> d;
cout << gcd(c,d);
Аноним 14/11/15 Суб 05:45:58 #392 №580149 
>>580147
Проебал код, вот так он выглядит.
int c, d;
int gcd (int a, int b) {
if (b==0) return a;
else return gcd (b, a%b);
}
int main () {
//ifstream cin("input.txt") ;
//ofstream cout("output.txt") ;

cin >> c >> d;
cout << gcd(c,d);
Аноним 14/11/15 Суб 05:48:27 #393 №580150 
>>580147
Гугли алгоритм Евклида.
Аноним 14/11/15 Суб 05:52:55 #394 №580151 
>>580150
Его я знаю.
int gcd (int a, int b) {
if (b==0) return a;
else return gcd (b, a%b);
}
Как вот эта штука работает?
Аноним 14/11/15 Суб 05:54:48 #395 №580152 
>>580147
>>580150
>>580151
А все уже, разобрался.
Аноним 14/11/15 Суб 08:08:24 #396 №580158 
>>578994
>Свои контейнеры, которые индексируются к тому же по int вместо size_t

Оказывается, int таки лучше для этого, потому что меньше вероятность ошибки при сложении и вычитании индексов. Сами создатели признали это: https://youtu.be/Puio5dly9N8?t=3767
Аноним 14/11/15 Суб 11:53:03 #397 №580206 
Всем доброго времени суток. Есть я, ньюфаг с огромным желанием стать быдлокодером. Что имею сейчас - ничего (начал на самом деле книгу по Objective-C, т.к у самого вся техника на апле, но там вначале C объясняется, а потом уже сам обж-си). Я нюфана, опыта программирования - ноль. Пока не выбрал направление (метаюсь между iOS разработкой и web backend и базами данных). Хочу получить дозу C++ чтобы натрахаться (как говорят в закреплённом здесь треде), понять работу ООП, научиться работать с памятью, писать на таком мощном языке и обязательно понаделать велосипеды (чтобы при переходе на джаву/скалу/обж-си или может даже пых) мой уровень знаний превышал уровня быдлокодера который прочитал "Философия Джава". Собственно с чего начать? Что уже знаю - типы данных из книги по Си, что такое функции, как их создавать и возвращать значения. Дошёл до темы "Указатели", но читать пока не начал.
Аноним 14/11/15 Суб 12:49:30 #398 №580220 
>>580206
>ыдл
Лучше учи джаву или обжС и начинай что-то писать. Плюсы тебе скорее помешают. Потом уже можно плюсы подтянуть, если захочешь. Как минимум для iOS разработчика знание плюсов дает небольшие профиты (в некоторых вакансиях это бонус) хотя конечно не особо нужны.
Аноним 14/11/15 Суб 14:26:06 #399 №580266 
Привет, анон. Я тут хотел спросить. Насколько реально для меня устроиться погромистом на крестах в какую-нибудь контору, если я допустим понимаю ООП, знаком с паттернами, алгоритмами и структурами данных(только с деревьями трудности небольшие возникают), немного знаю Qt и когда-то был знаком c WinAPI и писал когда-то при помощи MFC? Вообще, что сейчас с вакансиями для крестокодеров?
Аноним 14/11/15 Суб 14:30:11 #400 №580269 
>>580266
зависит от того, перевернешь ли ты однонаправленный список на собеседовании
Аноним 14/11/15 Суб 14:32:48 #401 №580270 
>>580269
Если у нас есть указатель на первый элемент, это более чем просто.
Аноним 14/11/15 Суб 14:43:16 #402 №580273 
>>580269
Берем список. Ставим один указатель на начало, другим ищем конец. Затем меняем местами. Далее, указатель, который был в начале продвигаем дальше по структуре и повторяем те же действия. Для оптимизации, чтобы не искать каждый раз конец списка, с учетом изменений, думаю на может понадобится сохранять указатель на предшествующий последнему, элемент.
Я прошел собеседование?
Аноним 14/11/15 Суб 14:43:53 #403 №580274 
>>580270
ну одно дело что ты тут кукарекаешь, а другое, когда будешь писать на бумашке на собеседовании
Аноним 14/11/15 Суб 14:44:51 #404 №580276 
>>580273
нет
talk is cheap, show me code
Аноним 14/11/15 Суб 14:47:33 #405 №580277 
>>580276
>talk is cheap, show me code
А код, на листике писать придется?
Аноним 14/11/15 Суб 14:49:29 #406 №580278 
>>580277
yep
Аноним 14/11/15 Суб 14:52:02 #407 №580280 
>>580278
Ясно. Благодарю за разъяснение. Буду теперь готов к этому.
Аноним 14/11/15 Суб 15:18:30 #408 №580291 
>>574713 (OP)
Какой минимальный набор знаний и умений, чтобы вкатиться джуниором в C++? Какие направления более востребованны?
Аноним 14/11/15 Суб 15:19:54 #409 №580292 
>>580291
>джуниор
>С++
Никак. Иди жабу учи.
Аноним 14/11/15 Суб 15:43:25 #410 №580298 
>>580292
Хочешь сказать, на крестах сразу ВНЕЗАПНО йобы приходят? Начинать с чего? Жабы и прочие руби знаю.
Аноним 14/11/15 Суб 15:45:05 #411 №580300 
>>580298
Нет. Просто надо откинуть петушинные звания для начала. Затем можешь писать на богоподобных языках.
sageАноним 14/11/15 Суб 15:45:40 #412 №580301 
>>580274
>ну одно дело что ты тут кукарекаешь

Агрессивный в интернетах, не в реале обиженный жизнью ублюдок детектед.
Аноним 14/11/15 Суб 15:48:36 #413 №580303 
>>580301
В контакт, быдло.
Аноним 14/11/15 Суб 15:49:31 #414 №580304 
>>580303
>В контакт
Значение знаешь?
Аноним 14/11/15 Суб 15:59:39 #415 №580306 
>>580304
В контакт, быдло.
sageАноним 14/11/15 Суб 16:01:52 #416 №580309 
>>580306
>В контакт
Значение знаешь?
Аноним 14/11/15 Суб 16:16:43 #417 №580319 
>>580269
Просто и без задней мысли за один проход next каждого элемента приравниваю предыдущему. Ну со всякими оговорками типа next первого будет указывать на NULL, ещё понадобятся временные переменные для хранения предшествующего и следующего элементов.
Аноним 14/11/15 Суб 16:20:50 #418 №580323 
>>580014
>codingame
Ах да. Забыл что английский знать надо. Ну и где курс по алгоритмам чтобы с весёлыми задачками и кнопочкой нихуя не понял поясни искать?
Аноним 14/11/15 Суб 16:26:31 #419 №580327 
>>580319
Как количество необходимых проходов по списку определять будешь?
Аноним 14/11/15 Суб 16:27:16 #420 №580328 
>>580327
> Просто и без задней мысли за один проход
Аноним 14/11/15 Суб 16:41:42 #421 №580330 
>>580328
За один проход не выйдет же. Ты просто немного поменяешь расположение элементов. Пожалуй дополню, что придется идти по списку, как в сортировке вставками. Берем указатели на текущую позицию и на первую(или текущую - 1) и меняем местами предыдущий и следующий элемент. Ну конечно же с учетом всех нужных проверок.
Аноним 14/11/15 Суб 16:42:51 #422 №580332 
>>580330
Вообще. Это сорт оф сортировка с худшим случаем(то есть отсортировать то, что уже отсортировано в обратном порядке).
Аноним 14/11/15 Суб 16:44:52 #423 №580333 
ИТТ бугурт даунов, не осиливших рекурсию.
Аноним 14/11/15 Суб 16:46:13 #424 №580334 
>>580333
Выдвигай свою идею. Или ты просто вскукарекнул?
Аноним 14/11/15 Суб 16:47:05 #425 №580337 
>>580309
В контакт, быдло.
Аноним 14/11/15 Суб 16:47:23 #426 №580338 
>>580337
>В контакт
Значение знаешь?
Аноним 14/11/15 Суб 16:47:45 #427 №580339 
>>580338
В контакт, быдло.
Аноним 14/11/15 Суб 16:47:59 #428 №580340 
>>580330
Я тебе описал, как сделать за 1 проход. Меняются не элементы, а next'ы этих элементов.
Аноним 14/11/15 Суб 16:48:35 #429 №580341 
>>580334
Зачем? Неосиляторы рекурсии не должны проходить собеседование. Иди разбирайся в этих ужасных push push call.
Аноним 14/11/15 Суб 16:50:06 #430 №580342 
>>580341
>КУКАРЕКУ!! РЕКУРСИЯ!! МАМ!! Я НОВОЕ СЛОВО ВЫУЧИЛ!! КУКАРЕКУ!!!
Ясно.
Аноним 14/11/15 Суб 16:50:49 #431 №580344 
>>580340
Теперь я понял. Благодарю за идею.
Аноним 14/11/15 Суб 16:52:17 #432 №580348 
>>580333
Если не хвостовая, то заочно обоссан.
Аноним 14/11/15 Суб 17:04:49 #433 №580356 
>>580266
Реально. Первый год-два на легаси посидишь, "поразбираешься в чужом коде". Потом, если ты не совсем конченный дебил,уйдёшь из легаси в дизайн. А если в плюсах предложения по дизайну не будет, свободно перекатишься на решёточку или на жиденькуюjava.
Аноним 14/11/15 Суб 17:05:35 #434 №580358 
>>580356
Чё за дизайн?
Аноним 14/11/15 Суб 17:06:39 #435 №580359 
>>580358
Это, когда ты не в чужом говне ковыряешься, а своё пишешь и команда поддержки его фиксит.
Аноним 14/11/15 Суб 17:08:50 #436 №580361 
>>580359
А почему нельзя сразу писать неговно, которое потом не надо фиксить?
Аноним 14/11/15 Суб 17:15:55 #437 №580364 
>>580361
Зачем писать неговно, если нечего будет фиксить потом?
Аноним 14/11/15 Суб 17:18:47 #438 №580367 
>>580364
Зато тогда все будут дизайнерами.
Аноним 14/11/15 Суб 17:18:57 #439 №580368 
>>580361
Вылазь уже из своего манямирка. Программизм в роисси и всём бывшем снг - это, либо быстрый способ отмыть нелегальные доходы, либо работа на западного (реже восточного) заказчика. Ибо в снг, где экономики и производственных мощьностей нет, программное обеспечение нахуй никому, кроме оборонки не сдалось.
Обычно у закачика практически всё уже написано, надо лишь поддерживать.
Это общий экскурс в ситуацию на рынке.
Теперь, с точки зрения работадателя. Ты вот сам честно сможешь вьебать целый йоба-модуль на 10000 sloc (в команде конечно)? Опыта у тебя нет. Так какого хуя тебя сразу брать к макакам, которые кодят, а не фиксат.
Аноним 14/11/15 Суб 17:21:58 #440 №580370 
>>580364
Кстати, да. job-safety -- все дела.
Аноним 14/11/15 Суб 17:23:36 #441 №580374 
>>580368
> Программизм в роисси и всём бывшем снг - это, либо быстрый способ отмыть нелегальные доходы
Это когда просят написать ненужную хуйню, чтобы освоить бюджет?
Аноним 14/11/15 Суб 17:33:02 #442 №580378 
>>580374
Ага. Но к крестам это слабо относится. В основном надрачивают однотипные апликухи для vk/android store за пряник. В то время, как баринзаказчик одной рукой мнёт титьку няши, а в другой держит бокал с винцом. И всё это где-нибудь (в это время года обычно) во вьетнаме.
Аноним 14/11/15 Суб 17:35:15 #443 №580380 
>>580378
Хочу титьку няши. Что для этого учить?
Аноним 14/11/15 Суб 17:42:41 #444 №580388 
>>580380
Haskell
Аноним 14/11/15 Суб 17:45:21 #445 №580390 
>>580380
Жди очередного треда унижения программистишек, там спросишь. Вроде давно уже небыло, так что скоро должен появиться.
Аноним 14/11/15 Суб 17:45:34 #446 №580391 
>>580380
Анатомию. Пойдёшь патологоанатомом. Титек, хоть отбавляй.
Аноним 14/11/15 Суб 17:49:23 #447 №580394 
>>580390
Вроде надо менеджером пакетов становиться? Или тимлидом? А как тимлидами становяться? Свергают текущего?
Аноним 14/11/15 Суб 17:51:07 #448 №580395 
>>580394
> менеджером проектов
Аноним 14/11/15 Суб 17:58:23 #449 №580398 
>>580394
> менеджером пакетов становиться? Или тимлидом?
Почитай Маркса, же. Тебе нужно стать эксплаутатором. Крадешь деньги - нанимаешь на них рабов - эксплуатируешь рабов - профит. А менеджер/тимлид это обычный домашний раб, конечно лучше чем полевой программистишка, но все также эксплуатируемый.
Аноним 14/11/15 Суб 18:01:28 #450 №580401 
>>580398
Это надо иметь жилку.
Аноним 14/11/15 Суб 18:08:57 #451 №580402 
>>580401
И разрабатывать жеппку.
Аноним 14/11/15 Суб 18:38:11 #452 №580412 
Как понять, является ли генерируемый конструктор перемещения достаточным? Часто вижу, что используют std::move() без явного объявления конструктора перемещения.
Аноним 14/11/15 Суб 22:29:02 #453 №580609 
>>580412
Например, на случай, если он наследуется от класса с нетривиальным конструктором перемещения, для родителей он вызовется автоматически тогда.
Аноним 15/11/15 Вск 00:24:56 #454 №580690 
Короче прекращай хуйней страдать. У среднетян в голове на 3 миллиарда нейронов меньше чем у куна, а синапсов меньше на порядок. Если у тебя получится найти тян, мозги которой как минимум равны твоим по возможностям, ты охуешь от того как эффективно она их использует и сольешься. Они и с усохшими мозгами почти на людей похожи за счет заводского разгона а с нормальными превращаются в орудие моральной пытки просто по факту существования и развальцовывают мужиков как ерохины сосок.
Аноним 15/11/15 Вск 00:26:05 #455 №580692 
>>580690
Ты не только сексистскую хуйню написал. Ты ее еще походу не туда написал.
Аноним 15/11/15 Вск 01:16:04 #456 №580709 
>>580690
Does not compute. Как я узнаю равную себе тян, если я охуею и буду думать, что она круче меня?
Аноним 15/11/15 Вск 01:20:39 #457 №580710 
14475396398110.jpg
>>580709
>Как я узнаю
Она захочет тебя убить.
Аноним 15/11/15 Вск 01:24:19 #458 №580712 
>>580609
Понятно.
Для умных указателей std::move всегда тащемта срабатывает как нужно?
Аноним 15/11/15 Вск 01:37:17 #459 №580716 
>>580712
Ну да, хотя там основная идея именно в том, что конструктор перемещения обязан обнулить старый указатель. Если ты сам это делаешь, то можно и копировать, по производительности разницы нет.
Аноним 15/11/15 Вск 01:40:00 #460 №580718 
>>580716
Ни пони.
По производительности разницы нет в случае указателей или что? Иначе как-то сбивает с толку, ведь перемещать всегда выгоднее, чем копировать...
Аноним 15/11/15 Вск 01:58:49 #461 №580719 
>>580206
> понять работу ООП
Можно и на примере любого другого ОО-языка. В C++ оно даже не самое красивое. Попробуй Ruby или Python.

> научиться работать с памятью, писать на таком мощном языке и обязательно понаделать велосипеды
Имхо, лучше учи С, а не С++. С++ слишком сложный, чтобы изучать его просто так. К тому же сейчас апологеты языка не жалуют С-style и низкоуровневые возможности (такие как ручное управление памятью). В результате на любом крестовом форуме на тебя будут смотреть как на дурачка и советовать использовать стандартные коллекции и алгоритмы, шаблоны и constexpr вместо макросов и т.д. (и будут правы). С же очень простой язык, в котором есть все низкоуровневые ништяки, которые тебе хочется освоить. И по сравнению с С++ у тебя не будет соблазна использовать, например, std::string вместо string.h, что хорошо. Не будет и трудных для понимания ошибок компиляции, что для новичка очень хорошо. Не будет ступора от того, что язык огромен и не понятно, что учить дальше. K&R можно прочитать за пару дней (и ты обязательно это сделай). Изучи указатели, память, реализуй деревья поиска на структурах, поиграйся с указателями на функции и макросами. Потом переходи к ObjC, если не передумаешь.
Аноним 15/11/15 Вск 02:03:56 #462 №580722 
>>580719
ООП в динамических языках и статических отличается принципиально. В динамических им даже можно пользоваться, потому что основной недостаток ООП - интерфейсы, не нужны из-за duck typing'а.
Аноним 15/11/15 Вск 02:12:38 #463 №580724 
>>580710
Юно?
Аноним 15/11/15 Вск 02:22:20 #464 №580727 
>>580718
Перемещать выгодно, когда происходит глубокое копирование гугли deep copy. В случае одного указателя будет просто скопирован адрес, как в случае копирования, так и в случае перемещения.
Аноним 15/11/15 Вск 03:31:13 #465 №580743 
А вот и платина подъехала!
Добил Лафоре, чувствую мотивацию и готовность ебашить. Ящитаю что мне нужно больше практики, что мне сейчас делать? Ради доп знаний ковыряю код чита для кс го на крестах и не могу понять как он инжектится в процесс каэсочки, разве так можно? алсо по-возможности ответьте развернуто, анончики, в кресты я намерен заехать основательно.
Аноним 15/11/15 Вск 03:40:02 #466 №580744 
>>580743
>Ради доп знаний ковыряю код чита для кс го на крестах и не могу понять как он инжектится в процесс каэсочки, разве так можно?
Тебе определенно необходимы знания о том, как работает ПО. Почитай что-нибудь по системщине, тогда к тебе придет понимание. И да. Больше практики. Ковырять читы, тебе видимо рано. Поэтому просто пиши разную мелочь на пару сотен строк кода.
Аноним 15/11/15 Вск 03:41:39 #467 №580745 
>>580743
Я где-то выше уже советовал. Пиши либы, которых еще нет, и выкладывай на гитхаб.
Аноним 15/11/15 Вск 05:30:19 #468 №580762 
14475546200210.png
Подскажите, как в CMake настроить компиляцию примеров использования моей либы для разных платформ? Поясняю:

/src - код либы

/examples/desktop - кроссплатформенные десктопные примеры (компилируетс под текущую платформу)

/examples/emscripten - примеры, компилирующиеся Emscripten'ом (путь к тулчейну в переменной среды $EMSCRIPTEN/...../....../Emscripten.cmake)

Либу можно скомпилировать один раз в байт-код LLVM, емскриптен его тоже кушает, флаги те же.
Аноним 15/11/15 Вск 07:12:22 #469 №580770 
>>580762
Я вообще нихуя не понял... Ну ты и мозг
Аноним 15/11/15 Вск 07:14:28 #470 №580771 
>>580727
Тю, блять.
Ну ладно.
Спасибо, няша, твоя мать - замечательная женщина.
Аноним 15/11/15 Вск 11:17:10 #471 №580809 
>>580710
/_avatar/
/_sparegun/
https://youtu.be/MEzhGHMOicw
Аноним 15/11/15 Вск 13:08:15 #472 №580850 
Анон, вот допустим дочитал я Липпмана, Мейерса и Саттера. Как мне теперь писать, к примеру, свою ОСь? Как писать востребованные приложения?

Что мне дальше читать?
Аноним 15/11/15 Вск 13:20:51 #473 №580854 
>>580850
Читай и патчи чужой код.
Аноним 15/11/15 Вск 13:21:31 #474 №580855 
>>580854
даун блядь, я спросил
>Как мне теперь писать, к примеру, свою ОСь? Как писать востребованные приложения?
Аноним 15/11/15 Вск 13:23:15 #475 №580857 
>>580855
Ты спросил "Что мне дальше читать?". Впрочем, иди нахуй.
Аноним 15/11/15 Вск 13:23:51 #476 №580858 
>>580850
Читать stackoverflow. Design patterns наверни, если ещё не в курсе, просто чтобы понимать, как и почему устроены библиотеки и прочий код, который будешь подглядывать тут и там.

http://s28.postimg.org/e8c2lpb4d/14117553476900.png

Если нечего написать, вот тебе рулетка.

Если хочется большое толстое приложение, напиши мне менеджер задач (органайзер). Добавляешь в него задачи, можешь настраивать повторение по дням недели, дням месяца, N дней и прочие варианты повторения. Чтобы красивый гуй на Qt (или gtkmm :3 ), разные варианты показа (глобальный календарь + просто список, отсортированный от ближайших к дальнейшим. И чтобы можно было указать, сколько занимает задача и потом подсвечивать в календаре, сколько процентов от 16 часов (время бодрствования) занимает задача.
Движение авто на перекрестке быддло 15/11/15 Вск 18:00:34 #477 №580971 
14475996344840.jpg
Шалом ребя, нужно запилить движени авто по перекрестку, чтобы дтп и прочей еботни не было, тачки могут превышать и творить разную хуету. С чего начать? киньте плз книжку там какую нить, статейку там, и проч полезную хуету, ок?
Аноним 15/11/15 Вск 18:08:15 #478 №580976 
>>580971
искусственный интеллект юзать надо, забыл черкануть
Аноним 15/11/15 Вск 19:55:01 #479 №581043 
>>580971
Ты охуел, по-твоему мы не знаем про мэйлрушный конкурс?
Аноним 15/11/15 Вск 23:08:45 #480 №581102 
Двач. Есть где-нибудь годная обертка над epoll?
Аноним 15/11/15 Вск 23:17:13 #481 №581106 
Симулякр - это вовсе не то, что скрывает собой истину, - это истина, скрывающая, что ее нет. Симулякр есть истина.
Аноним 15/11/15 Вск 23:20:06 #482 №581109 
Потребление - это симулякр счастья, бесконечная погоня за тем, чего нет.
Аноним 15/11/15 Вск 23:57:09 #483 №581115 
>>580744
Спасибо за совет. Мб посоветуешь что-нибудь по этой самой системщине? Буду очень благодарен.
Аноним 15/11/15 Вск 23:57:36 #484 №581116 
>>580971
Да без базара, бро. Сейчас накидаю тебе всей литературы и всех статей по cv и ml, которой хватит минимум на написание отличной магистерской или средней кандидатской.
Хуёв сосни, если ты задаёшь подобные вопросы, то ты нихуя не готов к разработке проекта такого уровня.
Аноним 16/11/15 Пнд 00:44:40 #485 №581125 
Кто-то использует пистон как второй язык?
Аноним 16/11/15 Пнд 03:46:43 #486 №581169 
>>581125
>пистон
Чет он какой-то стремный. Я сишарпом балуюсь.
Аноним 16/11/15 Пнд 08:18:02 #487 №581194 
>>581169
Он, наверное, спрашивал про использование его вторым языком в проекте.

Так-то я пользуюсь иногда. Язык для домохозяек жи
Аноним 16/11/15 Пнд 15:14:07 #488 №581345 
Реквестирую фильма про программистов. Типа Джобс: Империя соблазн, Социальная сеть, Пятая власть.
Аноним 16/11/15 Пнд 15:14:53 #489 №581346 
>>581345
Ой простите. Это крестотред, а не прикрепленный. Перепутал.
Аноним 16/11/15 Пнд 15:34:57 #490 №581352 
>>574713 (OP)
Чем объявление переменной отличается от определения?
Аноним 16/11/15 Пнд 15:37:07 #491 №581354 
>>581352
Объявление -- это открытие области видимости переменной.

Определение -- это объявление + инициализация в тот же момент.
Аноним 16/11/15 Пнд 17:46:20 #492 №581428 
http://pastebin.com/itWhqZrj
По задумке, программка должна двигать квадрат по окну и менять его цвет. Однако квадрат оставляет след, который, что самое удивительное движется. Что я делаю не так?
Аноним 16/11/15 Пнд 17:59:26 #493 №581436 
>>581428
Не знаю как это делается в крестах, но нужно блокировать вывод и удалеть текучий квадрат. потом рисовать новый на новых координатах и обновлять поле вывода.
Аноним 16/11/15 Пнд 18:02:47 #494 №581437 
>>581436
Что значит "блокировать вывод"?
И правильно ли я понял, что он не просто рисует на матрице экрана квадрат, а запоминает его и рисует его каждый раз?
Аноним 16/11/15 Пнд 18:07:49 #495 №581440 
>>581437
>Что значит "блокировать вывод"?
Не знаю как пояснить, но суть в том что после блокировки вывода, экран не будет меняться что бы ты туда не рисовал, пока не выполнишь команду обновить. Хз как в крестах это делать, redraw функция должна называться или как-то так.
>И правильно ли я понял, что он не просто рисует на матрице экрана квадрат, а запоминает его и рисует его каждый раз?
Да. Удаляй квадрат и рисуй заново. А чтобы не было морганий блокируй у обновляй экран.
Аноним 16/11/15 Пнд 18:10:05 #496 №581441 
>>581437
У OpenGL есть 2 кадра, один, в котором ты рисуешь, а второй - который отображаются. С помощью glutSwapBuffers ты их меняешь местами. А тебе надо действительно перед отрисовкой чистить экран с помощью glClear, установив нужный цвет с помощью glClearColor.
Аноним 16/11/15 Пнд 18:15:31 #497 №581446 
>>581440
Я понял, в Паскале АБЦ "lockdrawing" и "redraw". Но тут вроде первое подразумевается "double" в строчке, где определяем параметры окна. А вместо редроу "glutSwapBuffers".
>>581441
Это всё объясняет. Но почему они меняются местами? Не проще ли сделать один, на котором рисуем. И второй, на который перерисовывается содержимое первого при какой-то команде? А если SINGLE выбрать, то так и будет, а вместо redraw() flush?
Аноним 16/11/15 Пнд 18:19:38 #498 №581448 
Всё, разобрался, спасибо, ребят. ^_^
Аноним 16/11/15 Пнд 18:30:09 #499 №581452 
>>581446
Потому что при перерисовке видюха просто меняет 2 указателя местами, а не копирует мегабайты пикселей. Эти буферы в видеопамяти находятся, если что.
Аноним 16/11/15 Пнд 18:36:55 #500 №581456 
>>581452
А если выбрать single, то тогда копирует мегабайты при вызове flush? Или что происходит?
Аноним 16/11/15 Пнд 18:50:51 #501 №581458 
>>581456
Ничего не происходит, видюха при отрисовке кадра тупо берет буфер и рисует, даже если там что-то наполовину отрисовано.
Аноним 16/11/15 Пнд 18:51:11 #502 №581459 
14476890710760.jpg
Не подскажете в чём дело может быть? Прога на qt, раньше был отдельный тред, сейчас не нашёл его.
Аноним 16/11/15 Пнд 19:02:23 #503 №581461 
>>581458
В чём смысла тогда выбирать DOUBLE?
Аноним 16/11/15 Пнд 19:05:24 #504 №581464 
>>581461
У тебя никогда не будет на экране кровь-кишки из-за того, что видюха отрисовала кадр в середине того, как он был готов. Кадр рисуется только уже готовым.
Аноним 16/11/15 Пнд 19:07:43 #505 №581465 
>>581464
Но ведь пока не вызовешь FLUSH, кадр не рисуется. Рисуешь одну кишку, вторую, третью, вызываешь его, и уже тогда обновляется.
Аноним 16/11/15 Пнд 19:09:15 #506 №581466 
>>581459
Нехватает какой-то хуйни, библиотеки или екзешника еще какого.
Аноним 16/11/15 Пнд 19:12:24 #507 №581469 
>>581465
Тогда не знаю. Я говорил о буферизации в opengl, а не в твоей либе.
Аноним 16/11/15 Пнд 19:15:39 #508 №581471 
>>581469
Но у меня же opengl. Вот пример программы с single:
http://pastebin.com/buZYyXpG
Нажимаешь m - он начинает, либо перестаёт перерисовать изображение при нажатии клавиши.
Правда у меня почему-то через раз работает клавиатура в программах (зато мышка всегда).
Аноним 16/11/15 Пнд 19:25:08 #509 №581472 
Начальник! Пили перекат, я сидеть в тонущем треде не буду!
Аноним 16/11/15 Пнд 19:28:00 #510 №581473 
>>581472
Шапку ещё не готова.
Аноним 16/11/15 Пнд 19:37:18 #511 №581477 
Простите за, возможно, глупый вопрос - я вылез из-под камня. Почему часто критикуют boost и Qt? Я понимаю, что это огромные фреймворки, большую часть которых не особо хочется тянуть из-за громоздкости, но ведь они предоставляют столько готовых решений для стольких проблем. Да и на работе часто только с ними и работают на крестах. Поясните, пожалуйста, я что-то не то учу и просрал приличное количество времени на юзлесс говно? Что тогда нужно на С++ ынтырпрайз-разработчика? Спасибо.
Аноним 16/11/15 Пнд 19:52:00 #512 №581483 
>>581477
Да чо там критикуют... Просто школиё качает чужие проекты и охуевает "о нет, тут бубсы надо ставить"...

Либы как либы
Аноним 16/11/15 Пнд 20:36:07 #513 №581501 
>>581477
Boost - годнота, ибо все есть и делать ничего не надо, позволяет юзать плюшки в продакшине на каком-нибудь 6м центосе, например. Qt - кросплатформенные гуйцы, тоже годнота.
Аноним 16/11/15 Пнд 22:25:35 #514 №581585 
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/581583.html
https://2ch.hk/pr/res/581583.html
https://2ch.hk/pr/res/581583.html
Аноним 17/11/15 Втр 21:41:30 #515 №582307 
>>581116
Ой не пизди, я ж блять не прошу код,я про ебучие статейки на хабре там, клеточные автоматы и проч занимательная еботня.
Аноним 17/11/15 Втр 21:42:54 #516 №582309 
>>581043
да пошли они на хуй со своим конкурсом, курсач пилить хочу на эту тему, заебали прикладные темы, ИИ новье для меня.
comments powered by Disqus

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