Вместо шапки - https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/Прошлый - https://2ch.hk/pr/res/1016662.html
Первый.
Будете перекатывать сл. раз - обязательно напишите про то, что братья тех, кто:- спрашивает про ВинАПИ- говорит "не работает" без копирования сообщения об ошибке- спрашивает "как сделать Х", где Х никак к плюсам не относитсясдохнут от СПИДа.
>>1028038С этим полностью согласен. Ещё было бы хорошо, чтобы им выдавали бан на годик.
>>1028038> говорит "не работает" без копирования сообщения об ошибкеА если не работает не потому, что не компилируется?
>>1028044gcc a.c 2> /dev/nullОстальное для слабаков, да?
>>1028044Ой, тьфу ты, сорян.Почти все ОС выводят хоть какое-то сообщение.
>>1028044Некоторые даже не пишут, где у них проблема - в рантайме, или в компайлтайме.
Объясните дебилу, почему этот код выводит 'f', когда по идее должен вывести адрес?
>>1028056Потому что char ЗВЁЗДОЧКА - это строки. Тебе ещё повезло, что он выводит f - может вывести все ненулевые символы, которые в стеке после f.Если хочешь адрес, приведи к void ЗВЁЗДОЧКА.
>>1028056Толсто.
>>1028082Из крестов всегда можно перекатиться в веб за полгода, особенно если уже знаешь алгоритмы и структуры данных.
>>1028064>>1028056На самом деле потому, что у std::cout оператор << перегружен для поинтера, и автоматически разыменовывает и выводит данные.
>>1028123Тогда почему здесь не разыменовался?
>>1028140Потому что operator << ostream& o не определен для int*, инстанцируется специализация шаблона для указателей (или просто T, хуй знает, никогда не интересовался что там внутри).
>>1028056>>1028140В первом случае вызывается второй оператор отюсдова http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2Во втором — седьмой отсюдова http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt
http://boost.2283326.n4.nabble.com/CMake-Announcement-from-Boost-Steering-Committee-tt4696934.htmlПоздравляю, ананасы. Не прошло и 20 лет как экосистема плюсов начала объединяться. Наконец-то буст можно будет собирать и подключать без ебли даже на винде.
Какую автоматическую систему сборки лучше удобнее использовать для проекта на крестах? Есть прожект в кодеблоксе, но я его хочу сделать удобным для сборки на других пк.
>>1028297CMake
>>1028225Уважаемым спермогосподам хозяева подарили облегчалку анальных болей. Мои искренние поздравления.
>>1028305У спермогоспод есть VS с отличным отладчиком, а что есть у тебя?
>>1028315У меня майки в cmake устаревший findboost положили, в результате он не правильные постфиксы пытался найти.Было это пару месяцев назад VS2017, boost 1_64Такое себе быть спермогосподином.
>>1028315>У спермогоспод есть VS с отличным отладчиком, а что есть у тебя?Анальная девственность.
>>1028123Дело не в "перегрузке для поинтера", а в перегрузке для C-строк.
>>1028387Я бы продал анальную девственность за хорошие инструменты.
В каком стандарте появились листы через фигурные { } скобки?
>>1028398Еще в С95 (AMD1) появились
>>1028398Сам я знаю только часть языка по стандарту 2003 года, но сейчас надо понять что делает говнокод написанный по новому стандарту.
>>1028315А у нас есть прекрасный Clion, в котором есть все что есть в студии кроме профайлера, только еще с нормальным редактором текста, и без прибитых к полу деревянных игрушек.
>>1028405>ClionОн же тормозит как дрисня
>>1028407Дрисня как раз быстрая.
>>1028407ШпермоСтудия как раз куда тормознее.
>>1028419>ШпермоСтудия как раз куда тормознее.Последние версии стали быстрые на самом деле нет .
>>1028421Последние 7 лет штудия от релиза к релизу только деградировала по производительности. Ладно, 7 это я, к конечно загнул, но до 17-й это совсем кромешный пиздец был.
>>1028422Хуй знает, у меня VS работает достаточно быстро на моем не очень мощном ноутбуке с HDD.
>>1028400initializer_list и aggregate initialization - разные вещи.>>1028398В 11, вроде.
>2017>сидеть на VS вместо Сlionне секрет, что диды плохо адаптируются к новым вещам. перемены вызывают у них дискомфорт и страх
>>1028424> не очень мощном ноутбуке с HDD.Твой HDD влияет только время стартапа. Когда начинаются свопы (или просто 100% нагрузка на цпу анализатором кода) никакой SSD не спасает.
>>1028429У меня i7-3630QM и все летает
>>1028432Хэловорды где угодно летают.
>>1028433>Хэловорды где угодно летают.Как раз в Clion не летают.Там редактор кода очень сильно лагает на моей HD4000
>>1028435>редактор кода очень сильно лагает на моей HD4000совсем ебанулся?
>>1028437Что не так?Выделение кода сильно лагает, под мою видеокарту плохо оптимизировали
>>1028438Чото я в голосину орнул.мимо-сижу-на-встроенных-видюхах-5-лет-и-нихуя-не-лагает
>>1028440Она просто старая у меня да еще и мобильная
Java не тормозит. Теперь и в крестотреде! Не переключайтесь!
>>1028438Я даже не хочу знать, тролль ты или нет. Просто съебись.
На чистых сях (gcc с пакета MinGW) собирается без проблем с двумя хэдерами. Почему на плюсах необходимо не инклюдить gl.h? В ином случае пишет что некоторые функции не определены.
>>1028475Я всё понял, ребята. Я еблан и заинклудил то, чего в примере не было (он не из книги).
Насколько сложно крестовику перекатиться забугор?Или вебмакакой легче?
>>1028480Нам-то откуда знать?
>>1028495Может кто пытался перекатываться/перекатился
>>1028501не, тут только борщи сидят, почитай тред
>>1028225ты само обсуждение читал, лупоглазый? во-первых, там только поднимается вопрос, как к концу года сделать план по переходу на cmake, а не перейти на него. во-вторых, сообщество, скорее всего, пошлёт тот комитет найух.
>>1028505Сообщество стопроцентно против не будет — сплошные плюсы же.
>>1028298Можешь годных гайдов подсказать?
>>1028225>бустнахуй он нужен?
>>1028572Нахуй ты нужен?Наверно потому что это главный плюсовый фреймворк.
>>1028585Это не фреймворк, это большая коллекция разнообразных библиотек.
>>1028588Индус блять, куте тоже куча разных библиотек, иии?
>>1028600куте виджет фремворк, а буст сборище какийто нинужной хуеты. че правда смузихлебы для тогоже хэша или ололосортировки прикручивают целый буст?
>>1028600Куты - большая коллекция разных библиотек, использование которых предусматривает использование остальных библиотек, поэтому Куты - фреймворк.
>>1028615Куте виджет фреймворк. Ясно.Борщехлёб ничего в жизни не писал на крестах и спрашивает зачем языку у которого в стандартной библиотеке есть хуй с кривыми строками нужен буст.
>>1028679В бусте всю его дженерик часть тоже легко использовать вместе.Ладно, скажем так — буст это то, какой должна быть стандартная библиотека у плюсов, чтобы на них можно было написать что-то большее чем сортировочку.
Ололо. Индусы не знают, как отличить фреймворк от не-фреймворка.
>>1028683>борщехлеб порвался
>>1028688Так зашивайся скорее.
>>1028689>жяваиндус так горит что не может сагу отцепить)
>>1028428Сидеть на джавапараше, которая не может распарсить сложные тимплиты вместо богоподобной студии?
>>1028696Студия, которая как в прошлом треде уже доказали, не поддерживает до конца 98-й стандарт, видимо, распарит их.
>>1028698Не поддерживает какую-то юзлесс хуиту никем не используемую, да?
>>1028703>никем не используемуюОлоло. Поэтому у них исправление two-phase name lookup стоит на втором месте по важности после поддержки expressions SFINAE (которое уже запилили).https://www.reddit.com/r/cpp/comments/3g3aa1/what_do_you_want_to_see_in_vs_2015_update_1/ctukcl4/https://blogs.msdn.microsoft.com/vcblog/2016/06/07/expression-sfinae-improvements-in-vs-2015-update-3/
>>1028711Ещё про поломанный препроцессор и two-phase lookup https://blog.jetbrains.com/rscpp/microsoft-cpp-compiler-bugs-ambiguities/
>>1028711Скорее, все на это клали хуй, и все без этого и так работает без проблем, включая трехэтажное говно из буста
>>1028703и после того как они в бинарники телеметрию свою записывали ты все еще пользуешься разработками от MS? Удивительно сколько человек говна готов сожрать лишь бы оставаться в своей комфортной коробочке.
>>1028711>>1028714Почему эти дурики не могут сделать переключатель диалектов, чтобы таки можно было включить стандартное поведение? У ГЦЦ есть же диалект gnu++, почему МС так не может?
>>1028742ты читал, что там была за телеметрия вообще? Или увидел слово и сразу истерить? Так вот, это было сделано только для эвентвьювера виндового, и все.>>1028759есть такой свитч в 17ой версии.
>>1028762>Так вот, это было сделано...мне до пизды для чего это было сделано:) очередная попытка damage control от индусятников
>>1028720Тебе-то, тупому борщехлёбу с дивана, конечно лучше всех знать, что буст работает без проблем просто так, а не потому, что определяет для MSVC макру BOOST_NO_TWO_PHASE_NAME_LOOKUP и обходит костылями поведение этого недокомпилятора.>>1028759>Почему эти дурики не могут сделать переключатель диалектов, чтобы таки можно было включить стандартное поведение?Потому что написали убогий парсер 30 лет назад и пока бабки текли рекой и никто не задавал много вопросов "почему соответствующий стандарту код ведёт себя у вас как-то странно", его не трогали.
>>1028762>есть такой свитч в 17ой версииОн только отключает нестандартные расширения, типа байндинга неконстантных lvalue-ссылок к временным объектам или передачи строковых литералов по указателю на char (без const). Two-phase name lookup никаким ключом не включается, т.к. там нужно серьёзно лечить парсер.
>>1028786Хотя, нагугливается, что у них с месяц-два назад появился ключ /Zc:twoPhase[-]
>>1028782Почему ты такой злобный, сажееб?
>>1028791Почему ты такой тупой, борщехлёб?
>>1028793Как тебя коллеги терпят на работе?
>>1028797Не беспокойся, я с тупыми не работаю.
>>1028798Я думаю, что ты такой злой только в интернетах, а в реале ты забитый омеженька. Хороший и умный специалист не будет разводить такую злобу на АИБ.
>>1028801>Я думаюНе пизди, ты не умеешь.
>>1028803Судя по всему, я попал в точку.
>>1028808Думай что хочешь, борщехлёб.
>Лето в /pr/
>>1028682лучше было бы чтобы на плюсах вообще не было стандартной библиотекии буста не было быа юзали бы алгоритмы и структуры, предлагаемые ядром конкретного фреймворка qt, gtk, mfc, atl..тогда весь код был бы написан в единообразной манере (и не только сам с собой, но и с кодом фреймворка, который он использует)
Привет.Проблема с выводом PWSTRВыводит непонятную дичь вместо имени процесса.Прим. на пике (Process name: 004B3FD8 | ...)Х3 как выводить ЭТО.1.Касты крашат.2.<code>std::wcout</code> и прочее крашит.https://pastebin.com/5ZswuCBC
>>1028891wcout на винде не выводит то, что непредставимо чаром. Гугли, в четвёртый раз эта ебалайка уже.
>>1028891И вообще, смотри третье сообщение треда.
>>1028898Бтв, а за что тут хейтят ВинАПИ?
>>1028900За не переносимость софта использующего WinAPI на другие платформы. Нефига на ровном месте vendor-lock устраивать.
>>1028900За то, что это не WinAPI-тред.
>>1028925Ты так говоришь, как будто посих переносим. Никому не нужна твоя программа, если ты привык ограничиваться стл и бутсами.
>>1028940СТЛ и буст - это не посикс, лалка. Ты можешь спрашивать про что угодно, но будешь обоссан, так как мы тут обсуждаем КРЕСТЫ.
>>1028940>Ты так говоришь, как будто посих переносим.Ты знаешь, что значит первая буква в аббревиатуре POSIX?
>>1028942Portable между сортами прыщеблядского говна, да
>>1028981Часть POSIX была/есть в винде. Упс!https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem
>>1028198Получается, у char нету вывода адресов и нужно привести указатель на char к типу указателя на void чтобы сработал метод класса ostream №7 из вот отсюда?http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltltя понимаю, что всего лишь повторяю твои слова, но мне важно разобраться до конца.Не ОП.
>>1028986>нужно привести указатель на char к типу указателя на void чтобы сработал метод класса ostream №7 из вот отсюда?Да.
>>1028033 (OP)Посоветуйте лучшую ORM для SQLite.
>>1028985Она никогда нормально не работала, и была сделана исключительно для какой-то йоба сертификации в америке ровно настолько, чтобы пройти эту сертификацию. И потом ее нахуй выпилили.
>>1028940POSIX принят как стандарт и работает вообще везде — от линуксов до маков с прочими бздями.Но сперма дауном мало кривой фс и реестра, и кучей говнища которое тянется еще из доса, они тут сидят выебываются что у них компилятор нормально работает (при том что под ним даже буст, который пишется на самых канонических стандартах, не собирается без допилки костылями коими козыряли выше (привет Borland c++)).
>>1028988Спасибо
>>1028990бла бла блаа на деле это была разработка сторонеей фирмы, потом ее прикупила майкрософти да, на судя по формумам где сотни тысяч сообщений, она таки активно юзаласьблядь, нахуя ультимативно писать о том, в чем не разбираешься?
>>1029018>и да, на судя по формумам где сотни тысяч сообщений, она таки активно юзаласьну-ка?
Какой будет оверхед по скорости, если кидать массивы туда-сюда по 100 мб через C pipes против разделяемой памяти и Boost.Interprocess?
>>1029152А вот хуй знает. Точно известно только то, что при использовании пайпов придётся на каждую передачу делать по несколько сисколлов и аллоцировать сам массив по 2 раза.Точнее тебе скажут бенчмарки, если тебе не лень.
>>1029152Напрогай и попробуй. Самый простой вариант - запустить $ cat /dev/zero | wc -cи посмотреть IO в iotop или в /proc/ . На винде сложнее. Оверхед зависит от воплощения.>C pipesЭто POSIX, если что.
>>1028989Я хуй знает как насчет этих говнореализаций маппингов сущностей БД к объектам крестов с использованием макросов относиться (вроде бы это и отвратительно, стоит лишь посмотреть на то, как делаются всякие кастомные классы дескрипторов для COM, но с другой стороны у языка никаких средств для организации статической рефлексии нет), так что я бы предложил использовать внешний парсер для описания сущностей на нейтральном языке, который бы сам генерировал и запросы и исходный код, наподобие protobuf. Если проект будет долго жить и весьма серьезный, вполне имеет смысл написать собственный такой пре-процессор.
>>1029217>> Это POSIX, если что.Вроде же в winapi есть свои пайпы, только они там какие-то ебанутые. Я как-то решил попробовать две программулины скрестить при помощи их пайпа, но в итоге говна объелся. Меня люто бомбануло с их LPOVERLAPPED, TCHAR, и прочей поебистики, ну и еще то что это не тот пайп, который я ожидал получить из никсов.
Анон, сейчас начал разбираться с тредами и не совсем понимаю. Есть три классаПервый класс - основной, содержит в себе основную программу.В нём, по событию, запускается исполняемая функция из третьего класса и всё работает отлично. Но, кроме этого события в первом классе создается объект из второго класса, который, в свою очередь создает тред, в котором происходят события, которые запускают функцию из третьего класса и всё, пизда. Причём не работает не весь код третьего класса, а только его часть, связанная с библиотекой. Собственно не стартует CApplicationКак это починить? Сам код, ниже. class first#include "CApplication.h"...#include "third.h"#include "second.h"...void first::OnBnClickedCheck(){... third myTimer.stop(); myTimer.start(5); second::checkIt();...}class second#pragma once#include "CApplication.h"...#include "first.h"...bool checkIt::OnBnClickedCheck(){... CApplication app; // Start Excel and get an Application object. if (!app.CreateDispatch(TEXT("Excel.Application"))) { AfxMessageBox(TEXT("Couldn't start Excel and get Application object.")); }...}class third#pragma once#include "CApplication.h"...#include "first.h"...void timer(){... second::checkIt();...}void third::start(int sec){ std::thread th1(timer, this, sec); th1.detach();}
>>1029452В первом классе неправильно скопипастилvoid first::OnBnClickedCheck(){... third myTimer; myTimer.start(5); second::checkIt();...}
>>1029452Эту неформатированную хуйню никто читать не будет
>>1029462Сорри.Вот корректно отформатированный код https://pastebin.com/hcPzckH0
>>1029465И картинка, для тех кому лень идти по ссылке.
>>1029466>>1029465И я проебался опять, спать хочется кошмарно. Конечно же не class secondbool checkIt::OnBnClickedCheck()А class secondbool checkIt()
>>1028989>лучшую>ORM
Поясните за c++ builder
>>1029478Это программа.
>>1029478Лучшая IDE своего времени (до выхода Visual Studio 6)
>>1029466Бамп вопросу.
>>1029599Нарисуй диаграмму последовательности и тебе все ясно будет. Uml никому еще не мешал.
>>1028033 (OP)Пацаны, я знаю, я говноед и всё такое, но, пожалуйста, помогите с примером, C++ Builder, надо в dbgrid окрасить ячейку в столбце в зеленый, если ее значение == "Принят", и в красный, если == "0".Есть вот такой код:http://ideone.com/DIB0HPОн работает, но окрашивает всю строку, соответственно вся таблица у меня пикрелейтед, что мне нужно добавить, чтоб окрашивал только в первом солбце? Просто ткните носом, я охуительно буду вам благодарен!
>>1029625>> int DataColЭто ли, случайно, не та самая переменная, указывающая номер столбца?!Ну и оттуда уже исходи если это так.
>>1029627спасибо, анон.я видел эту переменную, но сначала не вдуплял как её задействовать, тугодум с утра маленько.Огромное спасибо, анон, всё получилось, в if доп.условие прописал.Тонну нефти тебе
>>1029452>и всё, пизда.Иди нахуй. Ты даже коды ошибок в консоль не выводишь.
Отлично блэд, УРА! После крэша студии у меня наконец начали сыпаться осмысленные ошибки. Что же им до крэша не сыпалось то?>>1029466 -кун
>>1028990>Майки делают не посикс совместимую систему>РЯЯЯ ВАШ ПОСИХ НИГДЕ НЕ РАБОТАЕТ!!! НИПЕРЕНАСИМО
>>1029709>ТОЛЬКО МАЙКИ
Анончики выручайте. Как использовать каскад Хаара в opencv под vs? Вот у меня есть xml файл https://pastebin.com/9AwMYgsn, как его в проект впихнуть?
кросспост - вопрос к плюсобогам:>>1029737какой самый анальный метод проверки файла на аутентичность?
>>1029740>какой самый анальный метод проверки файла на аутентичность?Я хз. Но я бы попробовал прочитать видео ффмпегом. Если читается, то значит без приписок. С фото наверн тоже аналог есть.
>>1029740Если тебе нужно убрать все лишнее, то проще всего перекодировать.Иначе нужно обрабатывать КАЖДЫЙ контейнер отдельно, и городить логику сплитинга мержинга (учитывать, что у видео может быть несколько дорожек озвучки, или субтитры, например. или теги в музыкальных форматах)
>>1029742>Если читается, то значит без приписокНе факт, он вполне может пропустить все до обнаружения контейнера, обработать его содержимое, а на остаток забить.
>>1029731как раз в твоем вопросе и заключается твоя же работаиди копай, сука
>>1029747Бля, не прокатило. Пойду капать
>>1029745спс
>>1029709им это нахуй не надо, отбитый красноглазик
Аноны, а вы юнит тесты гоняйте?Блять я попытался к проекту линуксовому гугл-тесты подрубить и ахуел, какого хуя Эко система плюсов такая уебищная и сложная?
>>1029803Ну гоняй QTest, если гугловские тебе не нравятся. Проект то в итоге от Qt зависимостей не будет иметь.
>>1029803А что пошло не так? Вроде уж проще чем гуглотест подрубить ничего нет.
>>1029824> А что пошло не так?У него ошибка в ДНК
>>1029829Охуенно пиздец, когда уже делал что то, задротина ссаная.
>>1029829>>1029824асислил. Стоило всего лишь загуглить.
>>1029740Самый анальный - только ЖПЕГ. Тебе нужно реализовать поддержку всех контейнеров, никакой общей проверки нет (но тебе не нужно поддерживать все кодеки, например).
Бамп.
>>1030058
Крч. В новом треде надо было писать ::CoInitialize (NULL);>>1029466 -кун
Два года говнокодил в НИИ, используя Qt, потом отдыхал полгода. Недавно попробовал устроиться в коммерческую контору, где дали тестовое задание перед собеседованием. Нужно было сделать за неделю многопоточную внешнюю сортировку с ограничением по выделяемой памяти, используя только STL. В итоге обосрался. Мерж распараллелить не смог, постоянно смотрел в референсы по каждому чиху, и все это было медленно, больно, и вообще наговнокодил, хотя старался придерживаться принципов SOLID. Два раза просил перенести срок сдачи. Сдал им свой opus magnum через две недели, и уже неделю нет ответа. Пришел к выводу, что я - ебучий макак нужно больше практики. Посоветуйте где взять задачи, решая которые можно натаскаться на решение настоящих повседневных рабочих проблем, подтянуть знание STL и повысить самооценку.
>>1030190> тестовое задание> перед собеседованиемнахуя ты вообще за него взялся, лол?
>>1030195Хотел освежить свои навыки, полгода не кодил же. Да и не зря взялся, как оказалось.
>>1030190У сортировки слиянием же минимальное ограничение по памяти равняется памяти исходного массива или я что-то недопонимаю?
>>1030208Не в этом случае. При внешней сортировке размер сортируемого массива данных значительно больше объема доступной оперативной памяти (M), его в ней просто не уместить.Поэтому он читается кусками размера M, сортируется как угодно и сбрасывается на внешнее хранилище отсортированными кусками. Потом эти куски читаются одновременно во входные буферы, объединяются и пишутся на место оригинального файла. Здесь описано подробнее. https://en.wikipedia.org/wiki/External_sorting
Анон, подскажи. Только начал изучать C++ (второй день), читаю книгу Стивена Праты, всё нравится, но никак не могу ответить на один вопрос. Смотри, тут сказано:>"1 Байт обычно означает 8-битную порцию памяти. В этом смысле байт представляет собойединицу измерения, которая описывает объем памяти в компьютере, причем 1 Кбайт составляет 1024 байта, а 1 Мбайт — 1024 Кбайт. Однако в C++ байт определен по-другому.Байт C++ состоит из минимального количества смежных битов, достаточного для того,чтобы вместить базовый набор символов для реализации. Другими словами, количествовозможных значений должно быть равно или превышать число индивидуальных символов.<...>С другой стороны, в интернациональномпрограммировании могут использоваться намного большие наборы символов, такие какUnicode, поэтому в некоторых реализациях могут использоваться 16-битные или даже 32-битные байты. Для обозначения 8-битного байта иногда используется термин октет"Я всегда думал, что байт - это байт и он всегда равен 8 битам (ну, может иногда 9), а тут выходит, в C++ под байтом понимается немного другое. И что это вообще значит? >минимального количества смежных битов, достаточного для того,чтобы вместить базовый набор символов для реализацииЭто символы, с помощью которых может быть записан исходный код? Ненавижу, когда в книгах ставится какой-то тезис, но потом он нигде не объясняется. Соре, если вопрос элементарный, можешь назвать идиотом, но объясни, плиз.
>>1030218Неудачно процитировал, книга в пдф, сори. Надеюсь, ты поймешь085Самофикс
>>10302181 байт это 8 бит, не переживай. Исключением являются всякие ебанутые системы, которым по 40 лет.
>>1030222Благодарю
>>1030218Как-то немного странно описано. Конечно, байт — char, unsigned char, std::byte — должен вмещать символы из стандартного набора (хранятся в char) и быть как минимум 8 бит (чтобы с помощью char можно было кодировать UTF-8).Но вообще его размер выбирается как размер минимально адресуемого куска памяти, а не из соображений кодирования базового набора символов.
Есть один заголовочный файл и 5 cpp файлов. как откомпилировать в консоли шиндоуса весь проект? g++.exe, а дальше что?
>>1030218>причем 1 Кбайт>составляет 1024 байта, а 1 Мбайт — 1024 Кбайт. Наглое гонево. 1024 байта - это кибибайт, а килобайт - это 1000 байт. Винда тоже считает, что гигибайт - это гигабайт.
>>1030255Ну йоу, это же упрощения. Конечно, кибибайт, но их тупо непривычно использовать простым смертным, которые привыкли к стандартным единицам измерения. Поэтому по соглашению, 1 килобайт = 1024 байта. Так просто принято.Но да, фактически, 1 килобайт = 1000 байт.
>>1030271>Поэтому по соглашению, 1 килобайт = 1024 байта. Так просто принято.Срочно вытравлять. При переходе на гигабайты разница достигает 10%.
>>1030255Всем насрать на СИ (Систему Интернациональную). Что физикам, что айтишникам.СИ жопой спроектирована.
>>1030294Значение приставки "кило" от твоего взгляда на систему Си не меняется.
>>1030317Скажи ещё что скорость света не равна единице.
>>1030190Скинь свой код, я как-то делал абсолютно тоже самое. Только я использовал in place parallel merge sort написанный с нуля где часть кода была написанна на avx intrinsicts, для сортировки блоков и priority queue для слияния отсортированных блоков ( на самом деле там было несколько вариантов алгоритвом слияния, priority queue был дефолтным ). В качестве либы для потоков использовал Intel TBB. Вообще там я долго возился с оптимизациями, прифилировал и замерял производительноть практически каждой инструкции. Но на моей машине все упиралось в memory bandwidth на фазе сортировки ну и соответственно IO делей хоть я и использовал всякие техники для оптимизации IO и memory paging.
>>1030371Ты слишком крут. Я едва наговнякал параллельную сортировку на тредах из STL с интросортом, и слияние при помощи priority queue. Пытался его распараллелить, но не осилил вовремя. Рожал это с перерывом на сон и еду в течение двух недель.Не знаю зачем это тебе. Посмейся хоть https://my.mixtape.moe/pfruig.7z
>>1030379Собрать не смог на Arch Linux GCC 7.1.1make[2]: No rule to make target 'CMakeFiles/large_file_sort.dir/src/settings.cpp.o', needed by '../tests/check_sort_order'. Stop.Но беглый осмотр кода, показался мне слишком запутанным с этими разными классами, и я не понял момента с потоками. Ты создаешь тред пул на n потоков и потом читаешь туда n чанков при заданном лимите в 512 мб это уже получает 512 n что на 8ми ядерной системе уже будет уже 4 гб памяти только для данных. Да и использовать поток для сортировки каждого блока мне кажется не лучшей затеей, мне кажется работадатель прежде всего хотел бы увидеть как ты реализуешь параллельный алгоритм сортировки. Покури divide and conqueror алгоритмы типа мерж сорта которые хорошо паралеллятся, хоть он и не inplace по дефолту, но существуют inplace реализации, конечно не так просты в реализации как оргинальный алгоритм, но если не заморачиваться над производительностью то реализация в лоб тоже не плоха и достаточно проста. А можешь вообще юзать memory mapped file в качестве auxiliary массива. И кстати мелочи, но все же, твоя очередь с названием Atomic ничего общего с atomic не имеет, она Blocked. Могут подумать что ты не шаришь в этом.
>>1030394>BlockedТо есть Blocking
>>1030371>TBB>avxЗачем? Просто интересно чем обычный вотерфольный код не зашел.
>>1030212А все, допер, внешняя жи. Спасибо.
>>1030394А я и правда не особо шарю.Я использовал там доморощенный контроллер выделения памяти вместо аллокаторов, потому что не знал как их использовать. Не знаю и сейчас, лол. Он делит заданный объем памяти на определенное количество "слотов". В такой слот читается кусок исходного массива, затем слот перемещается в задачу сортировки, которая в свою очередь скармливается пулу потоков. В этот же пул отправляется ещё одна задача, которая по завершении сортировки запишет содержимое слота во временный файл на диск. И так до конца исходного массива.Когда "слот памяти" выходит из scope, он сигнализирует об окончании своего существования из деструктора в контроллер памяти. Таким образом контроллер делает очередной слот доступным. В итоге используется только заданный объем памяти плюс оверхед хуй знает на что где-то в пять мегабайт. По умолчанию предел выделяемой памяти равен 512 МБ, но можно указать другое значение из командной строки.Спасибо за совет мудрый, так и сделаю. Иначе мне нехуй в этой профессии делать.
>>1030190>Нужно было сделать за неделю многопоточную внешнюю сортировку с ограничением по выделяемой памяти, используя только STL. Мне одному, блядь, кажется, что "многопоточная" - то не о тредах на ЦП, а о N-way merge?
Короче, быстро решительно накидайте ссылок или ключевых слов, чтобы написать бота для игры, т.е. мышка сама должна двигаться находить участок на мониторе для клика (то окно игры), кликать, двигаться и снова кликать и двигаться и снова кликать. В чем пейсать вижуал студио или QT? Кресты учить лень, я веб макакен, просто накидайте в какую сторону гуглить и какие либы накатывать или что там.
>>1030583https://www.autoitscript.com/site/autoit/ и быстро решительно иди нахуй с таким отношением.
>>1030597спасибо и тьфу на байтоебов))
>>1030597>Compatible with Windows XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2 / Windows 8 / 2012 R2оу вей, оно 10ку не поддерживает??
>>1030607Зато десятка поддерживает говно еще с икспи. Где-то книжка даже была про long term support в сперме, где рассказывалось как в хп и висте даже старые баги эмалировали чтобы софт на них накостыленный работал.
>>1030607Тебе лень попробовать запустить, уёбок? Иди нахуй из крестотреда, пидорас.
Ребята, стоит ли начинать вкатываться к вам с си или с спп? Читал что спп это тот же си только с классами, пояснити за это. Спасибо, Максим
>>1030634воу, кокой грубый))да уже все запустилось, прикольная штука. а как можно кому-нибудь на комп секретно установить этот аутольт, чтобы прожки на нем запускались?))
>>1030640С Хаскеля начни.
>>1030644Чем докажешь что ты не монада?
>>1030640lol
>>1030699я к тому, что называть кресты "С с классами", глупо
Гайз, нид хелп. Как последовательно воспроизводить видеофайлы, не меняя постоянно сурс в коде? Файлы имеют почти одинаковые имена, кроме цифр. типа file1.avi file2.avi
>>1030754Какое отношение это имеет к крестам?
>>1030754Ты дверью ошибся, съебись.
Пасибки за совет ЯП, уже столько сырья накрафтил :3
Обьясните нулевоу. Что мне скачать для обучения с?Ткните ссылкой в торрент. Там этих вижул студий 150 разновидностей.
>>1030805Ставь vim
>>1030808Что это?
>>1030810Компилятор.
>>1030754int i = 0;While (1) {i++;std::string nameBegin("file"), extension(".avi"), fullname;fullname = nameBegin + i + extension;// do smth w fullname}
>>1030805Качай Айвора Хортона и соответствующую версию VS
>>1030805если тебе принципиально VS - качаешь community edition, тебе хватит. Бесплатно, с офф сайта
Что делает приведенная ниже функция?double f(int x){ return (pow(x, -6) - 15 pow(x, -3)) / (5 - pow(x, -3)) + pow(((pow(x, -3) - 9) / 25 - pow(x, -6)), -1)((pow(x, -3) / pow(x, -3) - 5) - 4 pow(x, -3) / (pow(x, -6) - 10 pow(x, -3) + 25));}
>>1030995Как-то оно не очень хорошо вставилось сюда. Быстрофикс.https://pastebin.com/MsFDqk9Y
Как присоеденить два компа по UDP, если каждый из них находится в своей подсети (нет глобального IP / port forwarding).Скайпы и прочие средства коммуникации не передают же все данные через помежуточный сервер?
>>1030995Возвращает double
>>1030805Если точно с, а не с++ и собираешься изучать это по K&R, ставь codelite c mingw https://www.codelite.org
>>1028033 (OP)аноны, сап, вкатился только что, объясните почему такто есть, там же бляжд не должно быть хелло ворлд Что не так?
>>1031042Твой прошлый проект был hello world ?Вот он его и запускает.
>>1031042выброси нахуй кодеблокс, поставь студию
>>1031042>execution time 5.5 секундВаши оправдания, байтобляди?
>>1030995http://en.cppreference.com/mwiki/index.php?title=Special%3ASearch&search=pow>>1031012Нагуглил для тебя: STUN, UPnP
>>1031053У челика калькулятор вместо ЭВМ либо ЖД дохнет.
>>1031053WINDOWS XP
>>1031012UDP hole punching
>>1031047А как сделать, чтоб он запускал нынешний?
>>1031056>>1031053На работе кодю
>>1031057>>1031056Я бы охуел на его месте.
>>1031060Я хз, как это точно в код-блокс, проверь что ты запускаешь программу через debug->start
>>1031062я вкатился минут 5 назад
mods=gods
??
>>1031961solved
Я всё продолжаю потихоньку читать книгу из шапки "Принципы и практика С++" и возникают некоторые вопросы. Дело в том, что я чёрт знает где, и до места, где ловит интернет надо больше часа ехать, а с собой загрузил только несколько книг. Заместо звёздочки • пишу, звёздочка уходит в разметку.Прочитал главы про классы, и там много воды и недосказанностей.Картинка 1.Т1 наследует Т2. При этом все члены Т1 переносятся в Т2. Насколько я понял, переопределить можно только виртуальные методы. И через =delete можно удалить любой метод. Выходит, наследуемый класс может только дополнять предка, и очень ограниченно его изменять?1. Как сделать так, чтоб в 45 строчке вызывался только конструктор для Т2, без Т1. Например, какая-то инициализация данных замещается другой и старая уже не нужна. Можно конечно в T1 сделать ещё один конструктор и в T2() вызывать именно его.2. Размер T1 - 4 байта, Т2 - 8 байт, то есть старая 'а' из Т2 ещё жива. Как получить к ней доступ без функции T1::аа()? Из того, что я смог придумать работает только жуткое static_cast<T1&>(h).а, остальные варианты порождают временые копии, вызывают всякие деструкторы и ругаются на lvalue. 3. Есть ли возможность изменить тип 'а' или вовсе удалить это поле у потомков? Не вижу никаких технических причин, почему классы могут только расширяться. Если не использовать виртуальных методов, то это будет просто более краткой записью.4. Почему если я объявляю деструктор виртуальным, то вызывается всё-равно оба? По видимому в ~T2() неявно вызывается ~Т1() для наследуемой части, верно? 5. Про new/delete. Предположим, существует массив на 200 мб. Для того что бы добавить один элемент, нужно выделить ещё один массив на 200 мб памяти (+1 элемент), скопировать туда первоначальный массив и только потом его удалить. То есть фактически для функционирования программе нужно в два раза больше памяти, чем она реально потребляет. Тем не менее все вокруг пользуются new/delete (даже, если верить книге, STL работает по умолчанию через них) и никого нисколько не задевает эта проблема. Это нормально? Я немного не понимаю как это вообще так.Чем был плох сишный realloc? Немного допилить, чтоб оно не требовало непрерывного приведения типов, да и всё.6. Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях довешивает const, inline и прочее или надо каждый раз писать всякие const char• const str, лол?Картинка 2. 7. Что имелось ввиду то про const? В книге это пункт 18.5.1, но в реальности всё работает вполне логичным образом. 8. void• operator new() В книге ничего про это нет, случайно в подсказках ide увидел такую конструкцию. Выяснил, что можно перегружать даже оператор ->, только как это использовать не совсем ясно. Посоветуйте хорошую книгу или статью про перегрузки, пожалуйста.9. Использую qtCreator+cmake. Есть проект, в его папке находятся файлы h, cpp, CMakeLists.txt и CMakeLists.txt.user. Как-то по нормальному его можно скопировать в другую папку? Если не удалять CMakeLists.txt.user, то он лезет в оригинальные директории. Заменять в нём пути через поиск попахивает извращением, а если удалять этот файл, то заместо красивых папок "Release"/"Debug" там чудовища. Это мелочь, конечно, но всё же. Может быть как-то в CMakeLists.txt можно строго определить некоторые настройки из CMakeLists.txt.user, не знаю.10. Есть h-файл (картинка 3) c реализацией функций(в нём не только определения), в нём обычный #ifndef, но если я через include подключаю его более чем в одном cpp файле, то он ругается на multiple defenition функций. Если вынести реализацию в cpp файл, который цеплять в CMakeList.txt, то всё ок. Если явно вставить это в код в двух разных cpp, то та же ошибка. То есть #ifndef работает как будто независимо. Нельзя создать немного кода в h-файле, так чтоб для подключения не приходилось вообще трогать CmakeList.txt? Прощу прощения - это очень-очень нубский вопрос, но мне просто прочитать негде, в книгах, что имеются, про это вообще ничего нет, а искать что-то очень сложно, страницы по две-три минуты открываются, если вообще открываются. Сейчас же новые веб технологии - страницы жутко тяжёлые.
>>10319741. Конструктор родительского класса будет в любом случае вызван перед вызовом конструктора наследуемого класса, при этом, если конструктор не указан явно, будет выполнена попытка вызова конструктора по-умолчанию.2. Измени области видимости переменной на protected, к примеру3. Удалять члены из родительского класса нельзя. Это привело бы к печальным последствиям, к примеру, взять урезание типов (когда классы передаются по значению, а не по указателю или по ссылке)4. Сначала вызывается деструктор наследуемого класса, потом родительского в порядке обратном инициализации конструкторов, насколько я помню.5. Ты не можешь постоянно хранить данные в стеке (смотри что это такое), при этом размер стека на поток очень ограничен (например в моем линупсе он 8 мегабайт на процесс), конечно, можно увеличить лимит стека, только вот принципа работы стека это не меняет.7. Например, у тебя есть два объявления:a. void T1::a() const; иb. void T1::a();Тогда если в конструкторе с переданным в него константным объектом ты вызовешь метод n.a(), то будет вызвана перегрузка a, а если конструктор определен как:T1::T1(T1 &n) { n.a(); }тогда будет вызвана перегрузка b8. Ну ебать9. CMakeLists.txt каак правило, является единственным скриптом, ответственным за генерацию проекта CMake (хотя есть и множество ислючений)
>>1031974>> инициализации конструктороввызова конструкторов, конечно же>>103199010. За объявления отвечает one definition rule, его сразу сложно описать, так что лучше тебе посмотреть на cppreference и заодно прочитай про линковку.Если не хочешь сильно заморачиваться, можешь просто добавить inline к объявлению твоего метода и тогда все должно заработать.
Как по человечески перекатывать гору кода из 2012 студии в 2017? Ясен хуй в 2017 оно не собирается просто так, ошибок дохуя и за ними идут новые, гугл почти нихуя дельного по ним не пишет. Лопатить 500 метров исходников не улыбается, там ещё и зависимости урчат на студию. Киньте ссылок, чтоб я в человека превратился.
>>1032082Ты что auto_ptr использовал где ни попадь. Сильно много с тех времен из станарта не удалили или дело в том, что студия криво импортирует старый проект?
>>1032090> студия криво импортирует старый проект?Вроде ровно, предложила обновить целевую платформу, но что-то пару проектов так и не осилила. Там какие-то батники, из которых ошибки лезут, выход с кодом 2 и прочая ересь. Ну и вообще ошибок мне 1386 штук накидал. Мне теперь руками всё это пердолить? Я, если что, это говно вообще не трогал раньше, но у людей по 2012 студией собиралось.
>>1032097Покажи ошибки, может я подскажу что такое.
>>1032106Ну вот например на пиках обновил до 141, а ему всё 140 мерещится. Можно ещё раз обновить, он напишет - да, обновил, заебись теперь, но нихуя.
>>1032111Ебать. Ну с такой хуйней я точно никогда не сталкивался. Можно попробовать батником каким-нибудь пройтись по всем файлам проектов (vsproj которые) и посмотреть вхождения 140 версии, больше мне на ум ничего не приходит.Я оттого давно и пересел на внешнюю систему сборки, потому что обновить проект на студии это как обновлять линупс до нового релиза, без еботы почти никогда не бывает.
Парни. А в какую сторону САМОРАЗВИВАТЬСЯ. Я вот год сервак для игор в ДС на плюсах катаю, думаю чему бы еще научиться?Выбираю между вкатом в системщину под линукс (embedded, драйвера итд) и чем то рядом с МАШИН ЛЕРНИНГОМ и обработкой изображений.Есть идеи?
>>1032263В бабло вкатывайся
>>1032263специализируйся, углубляй знания того что уже дает работу, денежкуне распыляйся на сторонние вещи
>>1032263> Саморазвитие> На плюсахВ ближайшие 10 лет работы на крестах будет все меньше и меньше, в целом все будет медленно загнивать.Можете скринить
>>103230510 лет назад так же говорили.Однако я в ДС год назад работу джуном меньше чем за неделю нашел.
>>1032305он на бекенде геймдейва, зп там маленькие, вернее неадекватные требуемым скиллам, но работка есть
>>1032116>обновлять линупс до нового релиза, без еботы почти никогда не бываетДиванного кукаретика видно сразу. Апнул версию абанты уже как минимум 3 раза. Самое еботное что при этом нужно было делать — перезагружать ЭВМ. Ну это, впрочем, как при любом обновлении ядра.
>>1032378ты доебан попробуй обновить у которого релизы раз в пятилетку выходятА если у тебя была ката от амуде и ты ставил фглрх, вот тогда то и начинается поебота, если его не удалить
https://pastebin.com/6WGeCbiuМожет ли алгоритм BFS вывести сам путь? Как его можно модифицировать?
>>1032522По сути в очереди должны храниться все точки? Может из очереди точки кинуть в массив?
>>1032506> производитель поставляет кривой драйвер — виноват линуксЛ — Логика.
>>1032555я говорю о том, что это контрольный выстрел, там дохуя проблем вылазит, перелезь со своей попсы на что-то другое (только не на rolling версию) вероятность прихуеть от смены версий увеличится
>>1028033 (OP)приветкто нить пробовал линукс поковырять, например допилить шифрование и доп функционал? я не про бужедор ось, а просто подпилить что то к существующей оси
>>1032569кто допиливал свою ось? или чью правки принял Торвальдс?
>>1032654Нет, например добавить в дебиан шифрование. Весь входящий трафик, а также информацию на диске шифровать.
>>1032569Сделай микроядро из монолитного
>>1032660>Весь входящий трафик, а также информацию на диске шифровать.Гугл не для нас с тобой, детка, мы летаем выше!
>>1032522Нихуя не понял. Что за col и row? Что такое k, и почему итерируется только до 4? У графа какая-то сомнительная реализация. Почему не используешь контейнеры?А по делу, visited можно хранить индекс предыдущей вершины, а когда найдешь искомую вершину пройтись по visited в обратном порядке. Если путь неважен, то вместо вершины можно сумарную дистанцию пихать.
>>1028064Нахуя это сделано?
>>1031042Не слушай эту студиеблядь ( >>1031051 ), ставь MinGW и Cmder, вписывай папку bin в PATH и радуйся :3
>>1033045А в чём плюсы Cmder'а?
>>1033045щас бы пердолиться даже в винде, вметсо нажатия одной кнопки, лучшей IDE и волшебного дебаггера.
>>1033069Вот всегда не понимал этого. Причем обычно этим занимаются те, кто пишет на всякой хуйне вроде ruby или php.То есть как байтоёбить, так это пердолинг. Только байтоёбство и отсутствие абстрактной хуиты приносит пользу. А вот то что ты git юзаешь из консоли и набираешь код в vim'е - пользы тебе не дает никакой. Всю жизнь сидел в студии, юзил решарпер, отладчик и оконные приложения для контроля версий. Вот зачем?
>>1033081кнопкодрочер уровня бох. з.ы. большего говна чем вс не сыскать, даже джетбрейнс не такое говно.
>>1033081я ходил на собесы в москвоский Яндекс недавно. Спецом спрашивал про студию у людей, т.к. заебало сидеть с красноглазой парашей.Так вот - мегакрутые чуваки, которые меня собесили (бывшие работники гуглов\майкрософтов и прочего), все пользуются студией и им норм. А илитарии с двачей юзают исключительно вим и тратят хуеву гору времени на то, что нормальные люди делают 1 клико.м
>>1033087>мегакрутые чувакиэто которые контекстную рекламу делают?
>>1033087Помню у меня в универе был один такой арчеблядок. У него вечно бомбило когда я его спрашивал вопросы по железу. Например "от скольки вольт работает процессор", или чем "RISC отличается от CISC", или "чем отличаются защищенный режим от реального"?Вот скажите, линяри, почему пердолиться с софтом это благородно, а пердолиться с железом - зашквар? Компьютер - это электронное устройство. Я считаю что его надо знать. А компьютеры поставлять в наборе "спаяй сам". А то раньше мой батя звуковуху сам паял, были времена. Упрощение - это хорошо.
>>1033092>звуковуху сам паял,тебя тоже сам спаял?
>>1033094С твоей мамкой. Но мы не братья, он её в жопу ебал с:
>>1033091которые сделали топ2 поисковый движок и кучу ин-хаус вещей для машинного обучения
>>1033098>поисковый движокоторый кроме рекламы и говна нихуя не находит, впрочем как и гуглапараша>для машинного обученияхуинного, бигдата и машинленинг бесполезная хуета для развода лохов
аноны, в чем хуйня? cpp.sh/66fmk впервые с такой ошибкой столкнулся
Насколько уёбищно с архитектурной точки зрения запускать метод класса в другом потоке?
>>1033143> ...> line 12: coat << "Vvedite ocenki, dlya vihoda napishite -1";> ...> 12:5: error: 'coat' was not declared in this scope> 'coat'>'COAT'Быть может там всё же должен быть cout?
>>1033148ой, спасибо. очень жаль что я сам не додумался. теперь работает
>>1033145Ничего плохо, если правильно синхронизируешь. Ну и не используешь потоко-зависимые хендлы, которые нельзя создавать в одном потоке, а использовать в другом
>>1033148goat
>>1028033 (OP)Пишу приложение для расчета зарплаты на QT + SQLite. Уже охуел от архитектуры. Посоветуйте книги по ООП-дизайну приложений, чтобы не охуевать так.
>>1033202Двачую этого
>>1033044Так можно про все плюсы спросить. Для C-строк это сделано, читать могёшь?
Короче, есть статически скомпилинная кутя. Всё компилится, линкуется и запускается, но QAudioDeviceInfo и QCameraInfo наотрез отказываются обнаружать динамики, микро и камеру хотя с обычной кутей все заебись. Есть предположения что это и как исправить?
>>1033256смотри флаги с которыми скомпилин кьют
>>1033256Самый тупой вариант: собрать дебуг-версию и подрубить к дебуггеру. Что бы ни было проблемой, ты это найдёшь.
>>1033256>есть статически скомпилинная кутяЛицензию-то уже купил?
>>1033140> хуинного, бигдата и машинленинг бесполезная хуета для развода лоховЯ тебя понял
АНАНАСЫ, не пойму что я делаю не так. Нужно найти QWidget в std::vector<QWidget>. std::find работает, выдает итератор. Пытаюсь удалить объект delete *iter, а потом убрать из вектора .erase(iter), но программа крашится.http://ideone.com/sywQxB
>>1033092>У него вечно бомбило когда я его спрашивал вопросы по железу. А при чем тут те, к кому ты обращаешься?
>>1033092>Компьютер - это электронное устройство. Я считаю что его надо знатьНахер иди. Это нужно знать только если ты школьник с васма и разрабатываешь вирусы. Там постоянно ведутся вялотекущие срачи об архитектуре штеуда и его реальном и защищенном режимах. Зачем все это знать человеку, который не пишет драйверы или малварь? Не навязывай людям свои интересы, и не будешь послан или унижен, не ответив, в чем разница между pop и ROP
>>1033092>от скольки вольт работает процессорОт 220.
Поясните за пикрил. Эта хрень имеет какой-то смысл? Если не имеет, то почему на нее не ругается компилятор?Можно ли безболезненно удалить один экземпляр void operator++?Код не мой. Его не правили уже лет 20.
>>1033365>Код не мой. Его не правили уже лет 20.Тебе его тоже не стоит трогать. С твоим-то уровнем.
>>1033368Я не виноват, что Страуструп намеренно придумал язык, в котором нет никакой логики. Такая хуйня даже под наркотиками не может прийти в голову. Он намеренно делал ебанутый язык, чтобы не пердоля 5 лет книги по нему нельзя было вкатиться.
>>1033378>Страуструп намеренно придумал язык, в котором нет никакой логикиНет или ты не видишь?> Такая хуйня даже под наркотиками не может прийти в голову. Твой вариант синтаксиса для перегрузки префиксного и постфиксного ++
>>1033379Ты просто сектант.Все что придумал Страуструп -- это лютая нечеловеческая бессмысленная хуета. Достаточно выучить любой функциональный язык, чтобы это понять.
>>1033382>Достаточно выучить любой функциональный языкС твоим подходом вряд ли ты выучил хоть один из них, лол.
>>1033382Есть 2 типа языков, на которые все ругаются, и которыми никто не пользуется.
>>1033252Да ясно, что C-строки, но почему так, а не через отдельный тип данных?
Паршу файлик через boost spirit x3. Следуя примерам из доков получается что-то вроде: https://pastebin.com/VZ5LGwQ8Много кода дублируется, и возник вопрос, можно ли сделать изx3::rule<class %rule_name%, %SynthAttrType%> %rule_name% = "%rule_name%";auto const %rule_name%_def = %some_nonterminals%;BOOST_SPIRIT_DEFINE(%rule_name%);что-то вродеMakeRule<%SynthAttrType%> %rule_name% = %some_nonterminals%;?
>>1033054Ну, во-первых, стандартный cmd.exe пиздецки уебищный и неудобный, Cmder поприличней будет. Во-вторых, есть встроенные linux-комманды (типа "ls", "cat", "sh" и т.д.).В принципе, может кому-то и удобно стандартную консоль использовать, и наверняка многим linux-комманды не нужны, я просто предложил как вариант.
>>1033407>>Два бидона чая сиру
>>1033359Вы вольты с ваттами перепутали
>>1033421Хорошо хоть не с люменами.
>>1033421Вы чувство сарказма потеряли.
>>1033069Никогда не любил студии, лично для меня они неудобные. Консоль, к тому же, в отличие от IDE, дает тебе полный контроль над файлами. Не люблю я, когда студия сама решает, что и куда ей девать.
>>1033425А что и куда она девает вне рабочей папки проекта?
>>1033425Плюс, в процессе программирования нет ничего лишнего, только консоль и текстовый редактор. Все максимально минималистично.
>>1033426Я не говорю, что файлы пропадают из рабочей папки проекта. Я просто хочу самостоятельно контролировать каждый файл. Я не хочу, чтобы в папке с проектом лежали еще какие-то спец. файлы (например .toml файл у rust). Я не хочу нажимать на ебаные кнопки, при этом не понимая, что конкретно они делают.
>>1033087Не понимаю зачем использовать Vim, если есть нормальные текстовые редакторы, типа Sublime Text, например. Консоль использую чисто для компиляции/запуска программы.
>>1033433>нажимать на ебаные кнопки, при этом не понимая, что конкретно они делаютобычно на них написано весьма конкретно что они делают.>Я просто хочу самостоятельно контролировать каждый файлно ты и так контролируешь все файлы ПРОЕКТА, все остальное это выхлоп компилятора и системы сборки, и они в папку проекта не лезут.
>>1033437define 'нормальные текстовые редакторы'.Вим тащит своим функционалом. Но чтобы его использовать нужно просто привыкнуть.
>>1033151Блядь, ты хоть читаешь то, что тебе выдает компилятор?
>>1033416Ну чтож вы крестаны? Никто не знает?
>>1033438>обычно на них написано весьма конкретно что они делают.Я имею ввиду на более низком уровне. Какие параметры передаются компилятору, линкеру. Мне важно это контролировать.
>>1033441>Вим тащит своим функционаломЧем именно?
>>1033458Это все в свойствах проекта содержится, где твоим параметрам еще быть.>>1033460Спроси у какого-нибудь кто пользуется вимом. Вроде как там можно мутить крутые макросы.>Vim (сокр. от Vi Improved, произносится «вим») — свободный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам.>Одна из главных особенностей редактора — применение двух основных, вручную переключаемых, режимов ввода: командного (после запуска редактор находится в нём) и текстового (англ. insert mode, режим непосредственного редактирования текста, аналогичный большинству «обычных» редакторов). Существуют и другие режимы.
>>1033467> Вим тащит своим функционалом> Вроде какТы сам то им пользовался? Нах ты утверждаешь, при том, что сам не можешь быть уверен. "Я им не пользовался, но это охуительный редактор."
>>1033474Ахуительный редактор. Я, когда пытался его освоить, так ахуевал, что словами не описать говно какое-то, имхо
>>1033474Это прежде всего инструмент, под свои задачи. Кто как хочет тот так дрочит, что ты сразу раскукарекался: "гувну какуето, засен ано нузна?"
>>1033483Когда я сказал, что это говно? Ты сказал:> Вим тащит своим функционаломЯ задал логичный вопрос:> Чем именно?И тут оказывается, что ты этим редактором вообще не пользовался>Спроси у какого-нибудь кто пользуется вимомА дальше ты отвечаешь текстом из википедии.Вопрос: нахуя писать, что это крутой текстовый редактор, если ты, мало того, что не можешь объяснить почему именно, так еще и не пользовался им вообще.
>>1033293То шо такие же долбоёбы.>>1033326Именно. А программисту не обязательно учить vim и git, не зазорно юзать GUI-Версии.Я наоборот сказал что знать, с таким как у вас подходом, нужно дохуища.>>1033359Редко превышает 3.3
>>1033418Посмотрел, годнота. Беру :)
>>1033427В мире С++ возможно сделать 100% верное и правильное автодополнение и статический анализ. Когда ты просто делаешь ставишь точечку, и тебе IDE показывает, что с этим можно сделать. Такая самодокументация. Ошибки в коде, которые тебе IDE услужливо подсказывает, чтобы двадцать раз не перекомпилировать. Подсказки, предложения по рефакторингу. А ты выбираешь карго-культ тех времен, когда топовой тачкой был пентиум.
>>1033489Ты спросил, я ответил. Тебя вообще ебет пользовался я им или нет?>Вопрос: нахуя писать, что это крутой текстовый редактор, если ты, мало того, что не можешь объяснить почему именно, так еще и не пользовался им вообще.Потому что мне так сказала википедия, например.
>>1033504С этим, пожалуй, соглашусь. Это одно из немногих преимуществ IDE перед текстовыми редакторами.
>>1033506По-моему, нехуй пиздеть, если не знаешь точно.
>>1033506че за даун))
>>1033507Может тогда проще сделать в ide режим минималистичного функционала, чтобы кроме текстового файла и подсветки с автодополнением ничего не показывалось?VS вроде поддерживает перепиливание компоновки окон?
>>1033515Я вот так работаю вообще1033504-кун
>>1033518Не достаточно, лично меня отвлекает все, что наверху.
>>1033515Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта? А ведь вполне реализуемо.Хмм.. может самому сделать?
>>1033535Для разбора шаблонов чуть ли не пол компилятора придется написать, наверное.
>>1033540И то верно. Сложно, но ведь не невозможно
>>1033535>Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта?Completion с помощью clang сейчас не завёз в свой текстовый редактор только ленивый.
>>1028033 (OP)Расскажите о разнице между типами unsigned int и unsigned long. Какой тип выбрать для использования аппаратных регистров целиком?
>>1033573Long больше
>>1033573зависит от железяки и битности.А вообще #include <cstdint>
>>10332831) LGPL (под которой выпускается Qt) не обязывает к распространению исходников, всего лишь надо предоставить любой способ замены либ Qt на произвольные, например - распространять .obj-файлы и инструкцию о компиляции.2) Пока он ничего не распространяет, он вообще ничего не должен.>>1033289В этом куске всё правильно, ищи ошибку в другом месте.>>1033365>Эта хрень имеет какой-то смысл?Первое - это прединкремент. Второе - постинкремент. Поищи обсуждение в прошлых тредах.>>1033410Предлагаешь писать string("huypizda") вместо "huypizda"?>>1033416>BOOST_SPIRIT_DEFINEЭто макро. Вместо макро может быть только другое макро, тимплитом ты его не заменишь (если ты не знаешь, что делает это макро.В бусте не шарю.>>1033424А у тебя его и не было.>>1033425Сколько строк/байт в самом большом твоём проекте?>>1033458>Я имею ввиду на более низком уровне. Какие параметры передаются компилятору, линкеру. Мне важно это контролировать.Специальная страничка в свойствах есть, где это написано, и напротив большинства свойств написан компиляторный свитч.>>1033522КутыКректор тебе подойдёт, как и мне, но он не без недостатков.>>1033540Clang Code Model.>>1033573>Какой тип выбрать для использования аппаратных регистров целиком?1) Посмотреть размер регистров.2) Использовать uint32_t, uint64_t и так далее.
>>1033584>зависит от железяки и битностиКак это? В C++ нет типа, который на любой платформе процецируется полностью на регистр?
>>1033597>распространять .obj-файлы и инструкцию о компиляции.По существу, если это "работа, которая использует библиотеку", тогда должна быть возможность линковки программного обеспечения с новой версией продукта, лицензируемого под LGPL. Самый часто используемый метод это сделать это использовать "подходящий механизм разделяемых библиотек для линковки". В качестве альтернативы разрешена статическая линковка если предоставлен исходный код или объектные файлы для линковки.[2]https://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_LicenseОга
>>1033598С++ (и даже C) - это высокоуровневый язык. Максимум того, что ты можешь найти - uint32_fast_t. Есть процессоры с 32-битными адресами и 64-битными регистрами. Есть и ARM - в 64-битных операциях пара регистров используется, как один, и никакой практической разницы между парой и одним регистром нет.Если ты дошёл до использования регистров, ты пишешь под одну архитектуру, и размер регистров ты знаешь.
>>1033620>С++ (и даже C) - это высокоуровневый языкДа не, это хуево задизайненный низкоуровенный язык и еще один язык от него эту хуевость унаследовавший. Хотя в то время, когда С появился,пока все писали себе компиляторы сами и это проблемой не было.
>>1028033 (OP)Анон, кто нить пробовал переписать драйвер для какой нибудь железки. Например мп3 плеер, чтобы помимо всего прочего он отправлял данные (как делают антивирусы и многий другой софт);
>>1033597>Предлагаешь писать string("huypizda") вместо "huypizda"?Зачем, если можно писать "huipizda"s ?
>>1033662Юзер-дифайнд литерал или уже есть в стандарте?
>>1033678Начиная с 14-го.
Нужен tab bar из андроида (material) в Qt Widgets. Как такое реализовать? Наследоваться от QTabBar, а потом что? Как там кастомные кнопки делать? Или можно как-то с quickcontrols вытащить?
>>1033772Можно либо использовать мобильные контролы на мобилках с мобильным QML, либо использовать десктопные виждеты на десктопе.>Наследоваться от QTabBar, а потом что?А потом с нуля всё обрисовывать ручками, писать всю логику вроде переключения табов и их анимации.
>>1028033 (OP)Какого хуя uint8_t выводится в std::cout как символ?Как вывести эти значения как байты в 10-чной или 16-ричной системе?
>>1033898uint8_t a = 65;cout << +a;
>>1033819как? я так понимаю мне нужно реимплементнуть paintevent, но не у qtabbar ведь? или нужно создать новый виджет, потом реимплементнуть addTab и каким-то образом пририсовывать полоску выделения снизу?
>>1033898>Какого хуя uint8_t выводится в std::cout как символ?Возможное объяснение тебя не устроит. uint8_t - это typedef char uint8_t на большинстве архитектур, а char - это тип для букв в Си.Мне бы тоже хотелось, чтобы uint8_t выводился числом, а char - символом.
Поясните в чем смысл подобной декларации класса Hash внутри пространство имён Foo::Bar?Чтобы не нужно было инклудить хедер? Программа потом линкуется с либой, где этот класс определен. Очень часто в файлах, которые я рассматриваю классы декларируется таким образом, но никак не используются. Т.е. если сделать Ctrl+F по файлу, то слово Hash там встретится 1 раз -- только в самой декларации. В таком случае можно эту декларацию удалить?
>>1033912>uint8_t - это typedef char uint8_tТолько unsigned char :)
Forward declaration; Класс в неймспейсе, если его задекларировать не его, он не отрезолвится
>>1033939>>1033913
Подскажите сайт с задачками, чтобы подтянуть скилл в C++
>>1028315NetBeans+gcc.
>>1034089Напиши кроссплатформенный (windows xp-7-8-10(metro-интерфейс тоже) x32x64, linux, MacOS) ежедневник с почтовым клиентом и интеграцией с мобильными (ios, Android 4 и выше, WP) приложениями (их тоже напиши)
>>1033939> Класс в неймспейсе, если его задекларировать не его, он не отрезолвитсяЯ один нихуя не понял?
>>1034143> (windows xpЗачем писать под трупов?
>>1034154Просто, чтоб заебаться.
>>1034154В ентерпрайзе до сих пор ms dos есть, а на вин хр еще очень много машин осталось.
>>1034214Там очень не хватает ежедневника с почтовым клиентом.
Вкатываюсь в С++. Есть какие-то охуенные задачки и манулалы к прочтению и изучению?
>>1034153>> Я один нихуя не понял?да
>>1034262Стандарт — охуенный.
>>1034229>подтянуть скилл
>>1031961Для флага -std=c++xx в cmake используют другое. set(CMAKE_CXX_VERSION xx), насколько помню
>>1034317set(CMAKE_CXX_STANDARD xx)hotfix
>>1034296Языком вдоль уздечки подтяни.
Ребзя, го попердолим чонибуть)) Браузер свой запилим или джаваскрипт sasach_version ))Что мы ради хеловротов учим си пюспюс
>Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях добавляет const, inline и прочее или надо каждый раз писать всякие f(const char* const str) const {...}, даже для функции на одну строчку, лол?Всё ещё очень интересно и любопытно.>>1031990Понятно местами, благодарю.2. Кстати говоря, я подобрал. Можно использовать h.T1::a и h.T2::a для получения доступа к "а" предка и потомка. И как я сразу не догадался. Конечно, всё ещё не совсем понятно, зачем мне такой синтаксис.
>>1034333>Браузер свой запилим Форчонг/г пилит, можешь с ними поделать.>>1034334>f(const char* const str) const {...}Второй конст не нужен, третий конст - только для методов конст-классов. Что ты порешь? Это консты с тремя разными ролями.>это существенно?Всего лишь не сможешь передавать часть констант, делов-то.
>>1034229Представляешь себе, на msdos действительно нужен почтовый клиент, потому что без него сложно в энтерпрайзе.
>>1034361>msdos действительно нужен почтовый клиентКстати, неплохая идея! Почтовый клиент с календарём под мсдос на псевдографике.
Вопрос скорее не про C++, а про ООП в целом.Есть ли какой-то традиционный синтакс/способ для обозначения членов класса с разными модификаторами доступа public, private, protected в документации? Цветом или еще как-то (звездочками, крестиками, плюсиками)?Какой-нибудь стандартный стиль?
>>1034368Прайвет часто ообозначают замком в ИДЕ, например. Про протектед не знаю.
>>1034361msdos в энтерпрайзе это какое-нибудь управление станком с ЧПУ.
>>1034368Ищу в гугле. Один ваш запрос — 50$. Первый бесплатно.https://www.google.com/search?q=uml+protected
В чем смысл создания таких классов? Когда такое бывает нужно?
>>1034415Каких "таких"? Уточни вопрос.
>>1034415Когда программист ебланит и пишет костыли. Виртуальный деструктор может быть нужен только в базовом виртуальном классе, но явно не в унаследованном интерфейсе.
>>1034424>Каких "таких"? Уточни вопрос.Таких ебанутых, как на пике. Я до сих пор не понял зачем все это нужно. Класс Foo потом еще раз наследуется в Foo2, который в свою очередь наследуется в Foo3.
Почему подобный класс (у которого член его же типа) не создает ошибки ни во время компиляции ни во время работы программы?
>>1034494http://en.cppreference.com/w/cpp/language/staticThe declaration inside the class body is not a definition and may declare the member to be of incomplete type (other than void), including the type in which the member is declared
я правильно понимаю, что для сложного бота в игре нужно писать распознаватель картинок, т.к. доступа к апи игры нет, тока к изображению?
>>1034512Что за игра? Лучше бы в gd спрашивал. Хотя там тоже нет смысла.Нужны скриншоты и насколько сложные штуки должен делать бот.Думается, с таким подходом оно не сможет в реальном времени работать, а если и сможет, слишком это ненадёжно и кучи нерегулярных ошибок будут. Только миникарту и другие детали интерфейса потрогать есть смысл, ну или если игра двухмерная, конечно.
Аноны подскажите норм компилятор под дроид да я знаю это извращенство для изучение сабжа
>>1034526А если игра трехмерная? Как вообще тогда делают ботов для 3Д игор? Я именно про сложных ботов, способных самостоятельно гасить мобов, распознавать, умер ли моб, где умер, есть ли личные сообщения и приглосы. Про данжи пока не говорю.
>>1034540https://play.google.com/store/apps/details?id=champion.gnuroot&hl=enhttps://www.xda-developers.com/guide-installing-and-running-a-gnulinux-environment-on-any-android-device/5 секунд в гугле.
>>1034542Никак без АПИ не сделаешь. Все полноценные боты пишутся авторами игры.
>>1034440Я думаю нет тут глубинного смысла. Тем более с такой иерархией наследования. Просто кто надергал кусков из гугла\SO и попытался слепить то, что скомпилится.
>>1034542Снифаешь трафик между клиентом и сервером, пытаешься понять протокол.
>>1034512Сложный бот читает память процесса игры
>>1034542Читаешь память, перехватываешь функции в самой игре (обмен сетевыми данными и тд)Для этого тебе потребуетсяя Winapi и скилл. Функции вроде WriteProcessMemory/ReadProcessMemory и тд.Перехват пакетов на уровне Winsock (Send/Recv) и тд.Это дело не легкое но интересное. Нужно хоть чуток АСМ-а еще знать.
Я понять не могу, qvector что, не умеет хранить объекты без конструктора копирования?
анон что за хуйня? двое суток уже разобраться не могу.
>>1034996Пэ.Сэ после консоли просто вылетает и всё.
>>1034997Может ты не тот проект запускаешь?
>>1035008а как тот?
>>1035010Ну а че за хуйня у тебя ConsoleApplication3.cpp не ебу даже. В списке проектов смотри, жирным выделен активный. Может ты вхуячил гору проектов и выбрал пустой для запуска, а изменяешь совсем другой.
>>1035012новая хуйня
>>1035014Ты олигофрен?!
>>1035016настолько, насколько это возможно. В чем моя ошибка?
>>1035014Андрей, иди нахуй
>>1035023ну чего ты
>>1034981По-другому автоматическое расширение вектора ты не организуешь. Более того, std::vector тоже не может без констр. копирования (если я правильно помню).
Объясните на пальцах, как работают ядра процессора и их потоки. Какими единицами оперируют ядра и потоки, - процессами? Если php или java приложение работает в одном процессе, оно может выполняться на нескольких ядрах и потоках? Есть ли смысл брать процессор 6 ядер (12 потоков), вместо 4(4)?
>>1035147Ядро - это физическая единица, поток - логическая. С помощью разных ухищрений разработчики могут упихать команды в одно ядро так, чтобы оно исполняло команды в два потока быстрее, чем в один (но в каждом потоке будет медленнее).Обычно делают два потока на ядро, в Ксеон Фи 6 потоков на ядро.>Если php или java приложение Пошёл нахуй. Тут мёдом намазано? Как вы находите именно этот тред для своих уёбищных вопросов?
>>1035150Все что ты написал понятно и ребенку, не нужно мне пересказывать вики. Чем оперируют ядра и потоки ты не назвал, и можно ли параллелить один процесс на несколько ядер и потоков, тоже не ответил.
>>1035162Процесс может иметь несколько потоков, почти все ОС разносят потоки по логическим ядрам. Если твоё говно работает в несколько потоков (ГЦ, например, в отдельном потоке или внутри программы есть создание потоков), то смысл есть.
>>1035189Спасибо за вменяемый ответ. Получается с ядрами работает ОС, с потоками ядер процессор уже сам? Собственно выбираю процессор между i5-7600K и Ryzen 5 1600. В райзене 6 ядер и 12 потоков, против 4 и 4 у интел. Поэтому возникла дилемма выбора, смогут ли большинство программ использовать много ядер, или же стоит выбрать высокую производительность в однопоточных задачах.
>>1035199Либо пиши про свои ядра в контексте программирования на c++, либо пиздуй в /hw.
>>1035203Там никто не шарит. Поэтому здесь спрашиваю. У меня есть путаница в голове, потоки на уровне ядра, потоки на уровне ОС, процессы, threads, fibers, actors, поток выполнения,конкурентность, параллелизм, и т.п, все это смешалось у меня в голове. Еще интерпретаторы и виртуальные машины, у них свои единицы выполнения, они же тоже как-то ложатся на процессы и потоки ОС.
>>1035206А с чего ты взял что здесь "шарят"? Мы тут сремся за ide и не можем компилять хелоуворлды. Тут тебе спрашивать не чего.
Когда стехи?
>>1035210Печально всё это. Никто не пытается понять общую картину получается. Джависты пишут под JMV и не знают, что происходит вне её. Кто пишет на C/C++, знает только как что работает в контексте C/C++. Джаваскриптеры вообще не имеют понятия о многих вещах, потому что этого нет в языке и в V8. Рубисты не знают о конкурентности и параллелизме ровным счетом ничего. На винде свои абстракции, на линуксе свои. У всех свои абстракции, и их так много, что можно ногу сломать.
>>1035206Таненбаума читай иди, хрюря пампукская
>>1035232А у тебя нет выбора, умник. Рулить тредами все равно будет менеджер ОС. И выделять процессорное время им, когда посчитает нужным.
Кто-нибудь подскажите, что я делаю не так?
>>1035239Если переместить реализацию конструктора Bar в bar.h, то всё компилируется
>>1035239Думаю, Bar пытается после своего деструктора выбвадь деструктор Foo, но не может, так как ты его не реализовал.
>>1035239У виртуального деструктора в любом случае должно быть тело, даже если он чисто виртуальный.
>>1035244
>>1035247Стандарт запрещает тело после = 0, выноси в .cpp.
>>1035247лол.
>>1035248А не лучше объявление прям там сделать?типа Foo::~Foo() {}
>>1035250или =0 или { }. Стандарт носит не рекомендательный а обязательный характер.
>>1035247https://habrahabr.ru/post/51398/>>1035253Вне класса же. Я хедер имел ввидуclass Sample {public:virtual ~Sample()=0;};Sample::~Sample() {}
>>1035248Пиздец какой-то. Теперь новая срань пикрил 3.Студия без проблем жрёт варианты и без тела деструктора и с телом после = 0;Но тогда ещё вопрос
>>1035257Но тогда ещё вопросбыстрофикс
>>1035257В глаза ебусь, у Bar забыл конструктор.Всё работает, благодарю
>>1035257Может ты забыл реализовать деструктор Bar?
>>1035259Деструкторопять быстрофикс
>>1035255Нельзя, odr поломается. Объектники компилятся независимо, гарды на хедер не помогут. Линкер сообщит об одинаковых символах.>>1035257Студия имеет воз и маленькую тележку послаблений в плане стандарта, особенно по референсам и шаблонам. Чтобы их отключить раньше флажок был -Ze
Так, а почему тогда если всё вынести в хидеры он компилирует без тела деструктора для Foo?
>>1035232>>1035206Берёшь Process Explorer или другую тулзу для твоей ОС и смотришь активность потоков. Если у тебя один на 100% одного ядра - жопа. Если у тебя много с сопоставимой загрузкой - уже лучше. Берёшь свой php, java и запускаешь и пробуешь.>>1035239Ты запрещаешь существование деструктора для базового класса и потом другой класс от него наследует. Такого быть не может, деструктор должен быть всегда.http://ideone.com/5wjvrNВот сообщения от GCC.
>>1035267А он используется?
>>1035270А, действительно. Совсем забылВсё ещё раз благодарю за помощь
>>1035269>Ты запрещаешь существование деструктора для базового классаНет, это просто чисто виртуальный деструктор. Его нужно реализовать в наследнике, но это не значит, что его вообще нет.
>>1035267Можешь считать это багом студии.
>>1035273Обращайс.
>>1035275Блет, это не студия.>>1035274>>1035273>>1035270Извиняюсь, но теперь я не понял. То, что он должен быть определён в наследнике - понятно, но почему перенос КОНСТРУКТОРА в другую единицу компиляции что-то меняет?
>>1035282Перенос конструктора ни на что не повлиял.
>>1035283-->>1035240-->>1035267
>>10352861. Судя по всему у класса было 0 единиц трансляции (см. 2).2.Во втором случае была ошибка: автор перестал использовать класс foo, а отслеживание корректности неиспользуемых функций не требующих диагностики (т.е. не завязанных на инстанциацию) - оставлены на откуп реализации компилятора. MinGW/GCC во многих случаях не считают это ошибкой.
>>1035287Правда ли то, что без реализации деструкторов всех классов в иерархии нельзя использовать класс (т.е. определить его)?
>>1035292Да.
Сап анон. Есть ли тут, кто занимается open source проектами? Какой уровень знании требуется для участия в них?Веб макака, которая перекатывается в плюсы.
>>1035440> Какой уровень знании требуется для участия в них?Выше твоего, не умеющая гуглить амеба.
>>1035440Для участия в opensource-проектах (дефис, блядь, это русский язык) нужны разные уровни знаний. Во многих продуктах велика доля кода уровня C. Если ты никогда в жизни этим не интересовался, ты сломаешь лицом сто граблей и прочитаешь несколько книг перед тем, как начнёшь писать надёжный код.
Блять, хотел взять QT и пилить свою недостратежку, не осилил даже настройку Креатора. Пойду теперь пытаться для обычных Си найти аналогичную либу. Не на винапи же писать, в самом-то деле. Выглядеть будет хуево
>>1035570Че за хуйню ты выдумал? Возьми юнити или другое говно для умственно отсталых.
>>1035573Я слишком отсталый, чтобы осилить C#.
>>1035570Нахуй писать недостратежку на Qt? Возьми sdl, sfml, что угодно.
>>1035578Есть подозрение, что я не осилю реализацию интерфейса. Но вариант хороший, да.
>>1035578Лучше Python+Kivy
>>1035580Для тебя даже книжку написали, про недостратежки.
>>1035576Смочь в ресты/си и не смочь в шарп? Это тип толстота такая?
Чтобы инициализировать контекст тебе достаточно будет GLFW и GLEW в нему в придачу (хотя последнее не понадобится, если ты некрофил), для аудио используй OpenAL, например. API у них схожий, насколько я понимаю, так что это не вызовет бугурта при переходе от одного к другому (а если ты белый человек, то вместо того, чтобы делать постоянные вызовы:glGenTexturesglBindTextureglTexStorage2DglTexImage2D... ты завернешь в какие-нибудь свои вызовы), ну и там еще дохуя либ потянется.Действительно, проще использовать Qt.
>>1035583>нет русека
>>1035643>ты завернешь в какие-нибудь свои вызовыПо хорошему, под это дело нужно свои менеджеры писать, а для этого нужно представлять как будет выглядеть архитектура движка. А это уже довольно сложно.
>>1035644Есть же.
>>1035645В этом то и дело. Если начинать проектировать приложение без представления хотя бы общего вида архитектуры, в конечном счете все это выльется в дикий рефакторинг и расхочется работать дальше или все будет переделываться заново.
Что означают такие функции? У которых в аргументах есть тип, но нет имени переменной?
>>1035779Переменная есть, только её имя не называется в предварительном объявлении. Означают то же самое, что и те, в которых есть названия параметров.
>>1035780Спасибо!
>>1035780Зачем в функцию передавать аргумент, если к нему нельзя обратиться?
>>1035873Почему нельзя? К нему обратиться можно, просто это предварительное объявление (forward declaration), а сама функция находится где-то далеко в другом месте, и, возможно, к ней даже нет исходников, и она в какой-нибудь библиотеке, скажем. А для обращения к ней имена параметров знать не нужно, нужно знать только их типы.
>>1035779>Что означают такие функции? У которых в аргументах есть тип, но нет имени переменной?Ещё и тела нет. Совсем ппц. >_<
>>1035877Жил один рыжий человек, у которого не было глаз и ушей. У него не было и волос, так что рыжим его называли условно.Говорить он не мог, так как у него не было рта. Носа тоже у него не было.У него не было даже рук и ног. И живота у него не было, и спины у него не было, и хребта у него не было, и никаких внутренностей у него не было. Ничего не было! Так что не понятно, о ком идет речь.Уж лучше мы о нём не будем больше говорить.
>>1035877Это скомпилируется, но не слинкуется.
>>1035779Это прототип функции append, который получает в качестве аргумента адрес Foo
>>1028315Vim
>>1028315Atom и миллион плагинов для разработки, сборки, дебага и прочей хуйни
>>1030251пишешь простецкий make-файл и всёпо сути каждый cpp файл компилируется в объектные файлы, потом эти объектные файлы уже линкуются в исполняемый файл
>>1033256Как ты ее закомпилил? А то я что-то гайды читал-читал, глядел-глядел, нихрена не понял. Все гайды какие-то древние, какие-то еще на 4 версию, какие-то на 5 с начала. Теперь надо качнуть все ихсодники самому с их сайта, куда-то, блядь, распковать, чего-то делать, ничего не пойму.
>>1033256Сильно ли, кстати, размер исполняемого файла в конце стал меньше, чем было бы обычной Qt - когда файл исполняется только c десятками DLL
>>1036021К стыду, не я её не билдил, кутя корпоративная, так что работаю стем что выдали.>>1036022Меньше при статической линковке? Это как? Наоборот размер увеличился. У меня, с ядром, виджетами, сетью + платформенные либы экзешник весит 40-50 метров.
>>1036087>Меньше при статической линковке? Это как? Размер DLL-либ просуммировал?
>>1028033 (OP)В крудошлепной программе у меня есть классы Employee, Manager и Sales, на которые я отображаю таблицы БД. При создании экземпляров этих классов в фабрике мне надо убедиться, что сотрудник с данным id имеет определенную должность, для этого я делаю выборку position из БД для id сотрудника и сравниваю ее со строкой, в которой хранится название позиции. А где мне хранить саму эту строку? В constexpr поле классов сотрудников?
>>1036181Если эта строка никогда-никогда не будет меняться - да. Причём твоём случае разницы между constexpr и const нет.
>>1036181В constexpr ты не можешь создать объект, данные которого аллоцируются в реальном времени, std::string к таким относится. Так что твой constexpr мало того, что будет бестолковым, так еще и вывалит ошибок при компиляции. Более того, так как должности получаются выборкой из базы данных (я так понимаю, они нихуя не захардкожены), то constexpr работать не будет, потому что это ключевое слово для оптимизаций времени компиляции, когда часть работы по определению значений можно доверить компилятору.
>>1036181На пальцах:-- constexpr значит, что ты знаешь значение переменной во время компиляции, она литерал, а литералы ты менять не можешь, что похоже на const -- отсюда путаница.-- const означает немутабельность, неизменяемость куска памяти после инициализации, но ты можешь и не знать что там будет лежать во время компиляции.
>>1035987Нет.
>>1035876Я думал что объявление должно быть 1 в 1 как в реализации, включая имена аргументов. Спасибо анончик.
>>1036088Вопрос же был именно про исполняемый файл)Проверил на текущей проге:Статик: 34.6 МБ.Динамик: 40.0 МБ (windeployqt.exe), 32.3 МБ (windeployqt.exe --release --no-translations --no-quick-import --no-system-d3d-compiler --no-compiler-runtime --no-angle) и 31.9 МБ (вручную, минимум на моей машине).Как по мне, так несущественные различия.
>>1028033 (OP)Куда ОП-стихописец делся?
Умеет ли cmake создавать Makefile сразу с двумя таргетами - Debug и Release, или каждый раз нужно всё вычищать и заново пересобирать с -DCMAKE_BUILD_TYPE=TARGET?
>>1036267Ты инклудишь модули целиком? Компилятор выбрасывает неисользуемые функции? (не помню, какой параметр этим управляет)
>>1036250Я пытался, лол. А что это тогда?
>>1036305Ты перепутал указатель (адрес?) со ссылкой.
>>1028033 (OP)На Coursera появился годный, как по мне, курс от Яндекса и МФТИ для вкатывающихся, наверное стоит добавить в шапку
>>1036277Да, инклюжу целиком, в прекомпайлд хидер, компилер выбрасывает неиспользуемые функции По крайней мере флаг стоит. Когда убираю размер на 4 МБ увеличивается
Идиотский вопрос, но. Есть ли оврехед на каст сырых указателей?Например есть uint8_tptr и несколько вложенных циклов, где внутри шняга вроде ((uint32_t)(ptr))[j]. Должен я кастануть его до циклов или можно не париться, лишнего ассемблерного кода сгенерено не будет?
>>1036346звездочки проебались
В чём смысл сигналов в QT если можно использовать события? Они, к тому же, еще и более быстрые, нсколько я понял.
>>1036364Передавать данные.
>>1036366Ок! Чёт я задвачевался.
>>1036311Сейчас тут напишут про то, что ссылка это просто разыменованный указатель (или ещё какую подобную чушь) и начнётся срач.
>>1036346>лишнего ассемблерного кода сгенерено не будет?Не должно. Но сама идея херовая, очень легко можно вылететь за границу массива. И с переносимостью косяк, на некоторых платформах (MIPS например) многобайтовые значения должны лежать только с определенным выравниванием.
>>1036397Насколько херовая? Допустим мне нужна структура из данных, состав которой неизвестен на этапе компиляции. Как вообще подобная задача решается на плюсах?
>>1036477> мне нужна структура из данных, состав которой неизвестен на этапе компиляции. Как вообще подобная задача решается на плюсах?Конечно же созданием программы, код которой не известен на этапе компиляции.
>>1036477[bold]STD::VARIANT@STD::ANY[/bold]
Как вы живете с тем, что обосцаная жава быстрее вашего бегемота?
>>1036523Смогли создать тест в котором джава обогнала кресты? Тащи.
>>1035779Это прототип функции, в прототипах функций можно не писать имена формальных аргументов, так как у них локальная область видимости, никто о них не знает за границами блока, в прототипах граница блока заканчивается за скобками прототипа. Когда будешь писать определение функции имя формального аргумента понадобится, в прототипе можно забить. В данном случае передается формальный аргумент ссылка.
ПЕРЕКОТhttps://2ch.hk/pr/res/1036675.htmlhttps://2ch.hk/pr/res/1036675.htmlhttps://2ch.hk/pr/res/1036675.html
>>1036527>Смогли создать тест в котором джава обогнала кресты? Это не возможно, т.к. в С++ всегда можно начать использовать только сабсет си + инлайн ассемблер и подебить в любом тесте.
>>1029001Зачем нужно что-то кроме стандартной библиотеки для мультитрединга и Boost для сети, файлов и всего остального? Буст же отличная обёртка и над сетевыми функциями, и над прочим. мимонуб
просто бамп
>>1028033 (OP)
>>1047131Чяднят?