>>1973041 (OP) Есть чудаки, которые на mingw-g++ умеют компилировать?
Короче решил себе на голову кросскомпиляцией на винде озадачиться, да еще OpenCL в программе использовать. Без ОпенСЛя прога норм собиралась как в вижуалке, так и с mingw. С подрубкой ОпенСЛя возникли проблемы. Сделал отдельную прогу для проверки СЛя: https://pastebin.com/fDGituYE В общем сейчас дошел до того, что в 32-битном режиме с win32 исходниками СЛя (от nvidia cuda) оно даже работает. Но с 64-битными исходниками пахать не хочет - компилируется без ошибок, но где-то при первом же вызове clGetPlatformIDs оно просто выходит без слов. Пробовал даже с отладкой компилить и gdb шагать, но он естественно не показывает где возникает проблемес (либо я нубас и не разобрался). В итоге обнаружил еще, что есть отдельный mingw-w64 под 64-битные сборки, но его использование не дало новых результатов.
Есть конечно варик, что мингв криво установлен, или какие-то библиотеки g++ не рассчитаны, чтобы работать с opencl, или сама opencl.lib не годная. И возможно под линухом оно нормально запашет, я еще не тестил. Но хотелось бы иметь возможность прямо с винды проверять возможность сборки под g++. Есть какие-то идеи?
>>1973041 (OP) На самом деле крестозадроты и есть самые лютые анимешники, хоть и кидаются какашками в сторону Java/JS, чтобы хоть как-то подозрение отбить. Сидят перед компом круглыми сутками, получают красные шаринганы в обоих зенках, мечтая достичь мастерства хокаге, чтобы приняли в деревню Зеленой Сакуры писать батники.
>>1973051 У той же CUDA есть ограничения на версии gcc. Так же скорее всего и тут - попробуй версии, предшествующие твоей (начни с 5.4). А вообще лучше запили себе виртуалку с лялексом, смонтируй туда паку с проектом и там компилируй.
>>1973199 На лялексе намного удобнее кросскомпиляцию делать - там есть всякие пакеты полезные для этого, проще синхронизация сорцов и дебаг удалённый (особенно gpu). Поебстись с настройкой действительно придётся, но на виртуалке у тебя всегда будет готовое рабочее окружение, которое ты сможешь на любом компе поднять в пару кликов (и точки отката, если после грейда до новой версии gcc/cuda/cl у тебя всё по пизде пошло).
>>1973741 → Надеюсь, cpr из этой коллекции уже умеет отменять запрос. А то в недра curl, по-моему, в своё время нельзя было влезть через эту библиотеку. Так я понял, что надо очень осторожно подходить к выбору библиотек для проекта.
>>1973041 (OP) Есть тут продвинутые юзеры Visual Studio? Мб знает кто плагин какой-то для текстового редактора, чтобы из файлов исходников каждый метод можно было в отдельном окошке открыть и там же дебажить его? Или какие альтернативы есть с аналогичными фичами? Доебывает в простынях кода по 5к лок прыгать между функциями. Закладки или навигация в неймспейсе не вполне подходят.
Сап, крестаны. Хочу перекатиться в HFT. Что для этого надо знать? Всякие баззворды из вакансий типа FIX, FASt, CoralFIX и иже с ними - это вроде просто интерфейсы к биржам. А по самим торговым алгоритмам есть что-нибудь почитать? Когда я полгода назад обосрался на собесе в Московскую биржу, меня дрючили lock-free многопоточностью. Там это реально активно используется? Опять-таки, что про это почитать? Кроме Уильямса
https://pastebin.com/kj2mVqQm В чём проблема? Если for убрать то всё вроде работает. А если get size отъинтовать пропадает третья ошибка сверху, хотя по коду там везде инт как оно испортилось то?
>>1975306 И какие такие вопросы были там, что сам Вилли не котируется (которого начиная с главы про атомики приходится по 100 раз каждое слово перечитывать чтобы хоть что-то уловить из написанного)?
Как перегрузить оператор ++? Написал void operator++(structname* a), а компилятор говорит, что функция должна иметь at least one parameter of class or enumeration type.
Приходится свой язык программирования пилить, потому что C++ ужаснейший. Мой ЯП сразу понял бы, что если в оверлоаде оператора указатель, значит надо указатель на переменную кинуть и функция сама всё устроет в структуре, что надо и ничего возвращать не надо
>>1975494 >Как перегрузить оператор ++? Взять class or enumeration type и перегрузить, или тебе мало способов выстрелить себе в ногу без модификации операций с указателями?
>>1975494 >Приходится свой язык программирования пилить В сердцах бросаешь эту затею с визгами "ебал рот это айти" на попытке реализации хранения 32 битного инта.
>>1975498 >2021 >Использовать class в C++ Ага, смешно. А насчёт энамов поподробнее. Я правильно понял, C++ даёт возможность взять enum {ABC; ABV; GDEYOZH} и перегрузить оператор на него? Но зачем?
>>1975508 Совсем того, что ли? Мне не нужно думать о хранении интов, этим занимается LLVM Где вообще может возникнуть проблемы хранения интов? В ПЛИСах? Главная проблема в разработке компилятора моего ЯП была и сейчас является это темплейты. Я изначально очень плохо продумал архитектуру. Думал это будет препроцессинг -> парсинг -> байткодирование -> LLVM IR вкратце, у меня препроцессинг как в C, ещё перед LLVM происходит преобразование в "байткод" моего ЯП, но когда начал вводить темплейты, так таких костылей надобавил, теперь весь проект переписывать приходится. Между парсингом и байткодированием добавляю новый слой — обработка парсинговых данных, чтобы сразу сгенерировать все темплейты, заменить в операндах название темплейта на название полученной функции (исходя из нейм-манглинга для темплейтов моего ЯП), а также с перегруженными операторами и функциями так поступить. Когда доделаю это придётся ещё и парсинг разделить на 2 уровня — токенизация и парсинг токенов, чтоб можно было чекать на ошибки сразу много инструкций и выводить хотя бы номер строки, где ошибка.
>>1975551 В очередной раз убеждаюсь, что крестаны хейтят всё, что не велосипед. Казалось бы: есть инструмент - пользуйся. Но нет, хочу заново писать 1001-ый генератор парсеров, очередной оптимизатор, свой гуй поверх GDI, свой игровой движок поверх OpenGL, свой буст, свой STL, свои строки, свой юникод, свой cmake. А некоторые ещё удивляются, почему крестотред один из самых живых, а просто все нон-стопом обсуждают, как правильнее велосипеды писать.
>>1975494 Если гипотетически изъебнуться и заставить скомпилироваться твой код, то твой оператор++ не будет вызываться с переменными structname. Он будет вызываться только с указателями на structname. А так низзя. Такая операция уже определена в языке и имеет смысл сдвига указателя на конец твоего structname.
Если тебе надо инкрементить внутренности structname, то передавай его по ссылке. А лучше объявляй как член structname и ничего явно не передавай structname& structname::operator++(); // преинкремент structname& structname::operator++(int); // постинкремент
>>1975563 Тут ведь как дела обстоят. Вот допустим есть тест на коронавирус. JS/Java/Python господин будет пользоваться им без сомнений. Плюсовик залезет посмотреть чё там за тест - а он оказывается китайский и там палкой в жопе ковыряют. Доложит куда надо. ПМ скажет, что на американский рынок мы с такой медициной не пролезем, поэтому надо переписывать.
Разбираюсь, как подключать динамические библиотеки, и чот мне пригорело. Укажи путь до недера, укажи путь до дллки при компиляции, а для исполнения все равно положи дллку в одну папку с exe-шником. Что за мудак это выдумал?
>>1975829 При том что я подключаю библиотеку на крестах, очевидно. И нахуй мне знать, как работает ОС, я у мамы погромист, а не одмин. Может, мне еще схемотехнику изучить?
>>1975840 Чтобы нажать кнопку смыва, не обязательно знать, как устроен унитаз, там интуитивно понятный интерфейс. А тут какое-то говно на костылях, работающее через жопу.
>>1976017 Так это и есть один класс на 5клок. Ну лан, не 5, несколько файлов по 2клок. Реализации методов строк по 100-200, меньше уже не сделаешь. В любом случае бывает приходится из одного конца файла скакать в другой, чтобы раскурить что как связано, откуда куда какие данные текут. В ВС можно конечно несколько раз файл открыть, но оно через жопу делается, и можно потерять нужный метод.
>>1976026 Меня как-то приглашали в одну контору, где все, от эйчара до тимлида, были тянки. По крайней мере те, с кем я собеседовался. разумеется я туда не пошел
>>1976120 Ходил как-то в контору, где игрульки под мобилки делают. Там бабцов вот прям овердохуя было. Довольно смело подкатывали, хотя видели меня первый и последний раз. А ты продолжай отрицать и рефлексировать.
>>1976197 Был у нас лид-натурал. Он когда на дейли митинги приходил от него метра за два несло немытым телом (такой лайтовый аромат бездомного). Чуваку было немного за 30 и он всего пару недель ходил чистым и стриженым как раз перед увольнением.
Доброго дня, такая проблема, пользуюсь VS code комп маломощный. Установка С++ прошла успешно, при компиляции возникает лишь файл .exe, но мне нужен obj, как его получить?
Кто-нибудь имел дело с книжками Столярова "азы программирования"? По отзывам слышал, что помогает сохранить очень много времени, но смущает паскаль в начале и линуксо-направленность. Стоит ли тратить время на эти 2000+ страниц?
>>1976584 >мертвый язык Именно. Сейчас даже в школах питон учат. Ты для себя определи чем хочешь заниматься и исходи из этого. Для т.н. os unix - гуглишь lpic сколько-то там.
>>1976590 Так паскаль там только в начале, потом будет ассемблер, си и в конце плюсы. Можно конечно идти по пути гугла и тому подобному, но в этой книге вроде как всё настолько хорошо написано что позволяет сэкономить время на обучении.
>>1976584 а еще у Столярова ассемблер есть Паскаль не мертвый, это учебный язык нахуй, и он охуенен в этой роли. То что сейчас в школах учат питон очень заметно по современному софту, как сраный текстовый редактор или сайт в браузере отжирает половину ресурсов. >>1976578 А книжки Столярова годнота, на самом деле. По крайней мере для тех, кто хочет угореть по хардкору, а не сайты на вордпрессе клепать под смузи с кейками. Причем они разделены по уровням, так что ты можешь начать откуда сочтешь нужным.
>>1976640 Она ещё со времён DOS и оставлена для совместимости по приколу. Для своих хеллоуворлдов юзать можно, но для чего-то серьёзнее лучше взять что-то другое.
>>1976645 >для чего-то серьёзнее Ну консольные игры - это скорее из области ненормального программирования, чем что-то серьезное.
>лучше взять что-то другое А что конкретно?
В свое время искал альтернативы, лучше getch() для ввода ничего нашлось. На винде либо винапи, либо PDCurses. Все остальное слишком тяжеловесно и нелепо для консольной игрушки. Не КуТэ же наворачивать ради этого.
Винапи в части консольного ввода более многословный и дает какой-то невнятный фидбек (отклик в смысле), что важно для игры.
>>1976782 Ставишь MS Visual Studio Enterprise и у тебя автоматом включается самый лучший в мире дебагер. Ну или ебись с поделками, типа code::blocks и иже с ним. А лучше gdb в зубы и отлаживай. Ха ха.
>>1976793 >Ставишь MS Visual Studio Enterprise про него тоже думал но на диске свободно только 4 ГБ. у меня сверхдешёвый планшет. >>1976800 на пике вкладка фортран
>>1976953 Некоторое время назад мы активно весь этот фортран выкидывали из системы под MPP. Математика там была действительно хороша, но что толку, если таких программистов нужно выковыривать из НИИ в каком-нибудь зажопинске.
>>1975833 >как работает ОС >погромист, а не одмин Пчел, это троллинг тупостью или ты реально довен? Видать век петушиных веб-технологий заставил всех зумеров деградировать до уровня овощей. Пиздец, я просто в ахуе, мне нечего больше сказать.
>>1977137 откуда подпрограмме знать чо там делает программа основная и какая там сраная фс? есть только инструкции для вызова апи типа открыть файл и т.д.
Всем привет. Для тех кто меня не знает, предствалюсь: я Владимир, программист с 20-летним стажем. Если вам надоели ошибки, возникающие из-за работы с памятью, предлагаю перекатываться в C#. Там вы получите преимущества языков с виртуальной машиной и GC, а также производительность, почти сравнимую с плюсами. вот этот текст копируй в их тред
Как рассчитать амплитуду, фазовый сдвиг и частоту сигнала, представляющего собой массив выборок? Слышал, что можно с помощью фурье-преобразования, но не знаю как. Максимум получалось с помощью фурье гармонические составляющие найти.
>>1977687 В 11 очень много всего. В 17 из полезного filesystem, string_view и распаковка структур. Остальное всё хуйня или доработки и упрощения того, что и так было. Для 98% задач C++11 вполне достаточно.
Чем обусловлена невозможность присваивания элементом массива после его объявления? int a[10]; a = { 1, 2, 3, 4... }; Аналогично для векторов и т.д. Откуда вообще тянется запрет на такое присваивание? Причем если обернуть массив в структуру, то такое присваивание будет работать, то есть технически нет никаких ограничений на работу такого присваивание. Зачем создавать их искусственно?
>>1978161 Потому что это синтаксический сахар, вот так вот сделали, по другому значит не сильно нужно. Нахуя тебе в середине кода реинициализировать целиком? Наверняка ты делаешь какую-то дичь, если у тебя возникла такая потребность.
>>1978180 Ну, начиная с 11-го стандарта это уже uniform-инициализация в контексте второй строки. >>1978181 Например, буфер сделал большой, в который надо иногда перезаписывать данные
>>1978186 Перезапиши в цикле, в чем проблема? Сделай отдельный массив с дефолтными значениями, если тебе нужно забивать именно конкретными ненулевыми значениями.
>>1978161 Массивы не поддерживают копирование еще со времен C. В сях все сделано таким образом, чтобы оно наиболее прямо ложилось на ассемблерные инструкции. Иногда C называют "кроссплатформенный ассемблер".
>невозможность Копирование массивов можно реализовать по разному. Если бы в языке жестко закрепили какой-то один способ, вот тогда можно было бы говорить о невозможности (других способов). А так мы имеем не невозможность, а возможности для реализации любых фантазий: хочешь - заворачивай в структуру, хочешь - вызывай memcpy(), хочешь - обмазывай функциями на все случаи жизни в процедурном стиле.
>a = { 1, 2, 3, 4... }; Не всем может понравиться то, что тут происходит "между строк".
>>1977687 >Нужно освоить стандарт 11-го и 17-го годов. Если кратко, что самое основное и самое важное привнесли в эти стандарты? метапрограммирование стало возможным делать в итеративном стиле, а не трюками в функциональном стиле как раньше (( по итогу стало удобней, но менее интересней :P еще добавили всякого синтаксического сахарку в виде вывода типов, лямбд, using и прочаа.. по итогу стало многое писать тупо короче и еще можно "по месту" юзать.. r-value ссылки и move-семантика с этой точки зрения одно из важнейших изменений языка, тк действительно добавляют новые семантические модели в язык :P
Кто в qt разбирается, я так понял там можно пилить гуй на qml и на c++? В чем прикол такого разделения я чет въехать не могу, че они там изобрели такое, че за qml коляска?
>>1978422 Раньше можно было только на C++, QML появился позже, чтобы вместо ебли с виджетами на плюсах клепать гуй примерно так, как это делают вебмакаки для браузеров, а на плюсах писать только логику.
>>1978437 QML - это сейчас норма, но нельзя сказать, что прям стандарт. Конечно, он более прожорливый, чем обычные плюсы, и тут предполагается выбор между производительностью приложухи и скоростью её разработки. >>1978455 Да куда там, жопаскриптеры вон высрали Electron, в котором каждое такое приложение запускает по хромиуму и работает почти как обычная веб-параша. У них и логика на жопаскрипте.
>>1978422 Это как ксамл у шарповодов, только не такой всратый. У тебя грубо говоря приложуха разделяется на фронт на кюмл с жс и бек на крестах. Довольно удобно на самом деле.
>>1978422 О, братиш, я тоже только осваиваю qt бомбит с кривости среды после б-жественной студии qml это как xml, только альтернативно одаренный, как и весь qt. На самом деле стандарт интерфейсов сегодня, по такому же принципу строятся гуи в ведроиде, в шарпе(WPF) и даже в браузере, чтобы жавамакакам не нужно было излишне нагружать мозг и переучиваться. Хотя это в самом деле удобно, по сути просто скрипт, описывающий элементы интерфейса, по которому компилятор потом строит рабочие объекты.
Есть какая то либа помимо https://www.libssh2.org для работы с ssh2? Очень долго настраивать. Там в каких то примерах вообще функции strcasecmp(), которые вообще не входят в библиотеку. Куча ошибок, даже если все скомпилируется. У меня нет желания сидеть и кучу времени тратить на возню с этой либой, но ssh мне нужен в программе. Хотя бы просто чтобы текст передавать между клиентами
>>1978511 Массив - это не указатель, а отдельный тип. В большинстве контекстов он неявно преобразуется в указатель, но по "факту рождения" указателем не является.
>>1978571 Мне по правде говоря ваще похуй как оно там внутри работает. Мне нужно чтобы я мог ключи заранее создать, потом файл в exe скинуть на другую машину и безопасно подключиться.
>>1978570 Инициализация значением - это int a[n]={ ...}, а все остальное это присваивание. А чтобы научить компилятор разбираться в сортах присваивания, придется полностью переделать компилятор, и на выходе получится шарп/джава. И все только потому что какому-то ленивому хую на дваче лень прописать цикл.
Накидайте плез ресурсов для чтения. Суть в том, что нужно написать программу, для обмена сообщениями между компьютерами, при этом реальный ip одного из компьютеров должен быть скрыт. Я так понимаю нужно поднять тор сервер и уже стучаться к домену. Но я в сетях очень не силен. Мне нужно максимально просто реализовать обмен текстовыми и файловыми данными между tor сервером и обычной машиной. Что читать по этому поводу?
>>1978672 У меня лет 15 ушло. На переход с Си. Сначала классами обмазывался. Затем и STL тоже. Но вот сложный шаблон без справочника до сих пор не нарисую. Да и не нужно это в обычной практике. Классы и stl покрывают 90% потребностей.
>>1978776 Нет, под капотом это олдскульлый сишный массив, в котором переменная это физический указатель на нулевой элемент, и в котором прокатывают такие конструкции как b = *(a+i)
>>1978785 >assigning to an array from an initializer list >присвоение массиву списка инициализации. Ты сам-то прочитал? Все как я и написал >>1978585 И ни слова про std, еблан.
>>1978573 >>1978677 Вы ебанутые? Сырые сишные массивы никогда не были отдельными типами, это синтаксический сахар над указателем на указанный тип данных (int, char, struct Huy и т.п.). int arr[5]; - arr это указатель на int и никак иначе. А конструкции типа arr[1] = 1337 это ничто иное нежели ⚹(arr + 1) = 1337. То бишь можно свободно юзать ту же арифметику указателей для данного массива, не используя индексирование через оператор [] вообще.
>>1978804 Ну и структура данных - это синтаксический сахар над парой указателей - на начало структуры и сдвиг элемента. Не понятно о чем вы вообще спорите. кро
Встречал ли ты, анон, такие репозитории, глядя на которые, восхищаешься, как там всё хорошо, и одновременно сокрушаешься от того, как в твоём пете/рабочем проекте всё хуёво по сравнению с увиденным? Чтобы свежий стандарт языка с современными фичами, чистый код, продуманная архитектура, покрытие тестами, вылизанный билд конфиг и т. д. и т. п.. Делись ссылкой!
>>1979219 Ну в частности правильно ли я сделал ебанув 5 геттеров для своего класса. >>1979220 Ладно, как дорасту до них разберусь. >>1979222 >конечно они не приватные в базовом классе Во, у меня приватное. Значит надо геттер.
Есть один базовый класс с двумя protected переменными и один класс наследуемый от этого базового класса как protected. Наследуемый класс должен иметь 6 тех самых protected переменных от своего базового класса, то есть делать что-то вроде: Derived::Derived(int value1, ... int value6) : Base(value1, value2), ... Base(value5, value6) Вопрос, как получить к этому всему теперь доступ? Геттеры и сеттеры есть в базовом классе, но теперь в наследуемом классе нужны геттеры и сеттеры для назначенных выше трёх базовых классов. Как это решить и понять? Либо я неправильно понял ООП, либо делаю совсем не то. Примерно накидал как это выглядит вне реального проекта: https://pastebin.com/zTMGb17m
>>1979262 Здесь вот суть даже не в модификаторах, он здесь вообще не важен сам по себе, я его поставил с мыслью: "А что если в наследуемом классе писать private: Base kk[3];, а потом в конструкторе просто инициализировать этот массив инстансов и тогда уже получать к каждому из них доступ который даёт модификатор protected". Но тогда получается я делаю хуйню, потому что зачем наследоваться, если это уже фактически другой класс и я так же могу геттеры использовать или же наследоваться в таком случае есть смысл?
Имеем class A { int b; }; При создании экземпляра этого класса, поле b будет инициализировано нулем или будет иметь значение, которое хранится в выделенном куске памяти? В прошлом треде спрашивал подобный вопрос, но там я приводил пример с классом, который имеет явный пустой конструктор по умолчанию без параметров. Понятное дело, что тут итак будет неявно создан такой же конструктор, но на всякий случай лучше переспросить.
>>1979212 Схуяли у тебя восьмибайтный указатель, а инты занимают по 4 байта? Обычно на x64 машине инт по 8 байт ведь тоже, чтобы соответствовать машинному слову
>>1979280 В прошлом треде анон отвечал со ссылками на стандарт, что с пустым конструктором по умолчанию, созданным вручную, поле is default-initialized, то есть нулем проинициализирует. А почему ситуация меняется, если используется неявный сгенеренный конструктор по умолчанию?
>>1979286 В первом же ответе по ссылке написано If no initializer is provided, the rules of default initialization apply. Что имеется в виду под initializer? Кто выступает инициализатором?
В общем, как я понял. Если мы создаем конструктор по умолчанию вручную, либо не создаем и компилятор его генерит за нас, в любом случае, если мы явно не предоставили initializer для переменной (не важно, поле это в классе или статическая/глобальная переменная), то эта переменная будет default-initialized. А по правилам default-initialization, поля класса инициализируются мусором из куска памяти, который они получили. Глобальные и статические переменные инициализируются нулями, так как global data memory весь зануляется при старте программы. Кресты - это когда ты разбираешься в инициализации переменной целый час, при этом и то получаешь лишь общее понимание без деталей
>>1979311 Да, конкретно по этой части, вроде, все правильно, но там еще есть пикрил. Я до этого момента думал, что выделяют всего три типа инициализации: копирующая, прямая и uniform (начиная с C++11). А тут обнаруживаю, что еще есть value, list, reference и aggregate инициализации. Я до сих пор не могу сказать разницу (под капотом, если она вообще есть) между int a = 5; и int a(5); А теперь еще и как понять, что происходит в момент char str[] { 'h', 'i' } и char str[] = { 'h', 'i' } ? Короче, взрыв башки '
>>1979326 Всю жизнь думал, что размер int'а соответствует размерности регистра процессора. На 16 бит int двухбайтный же. На 32 - четырех. А поч на 64 бит он тоже 4 байта?
>>1979327 Тут скорее всего так: byte (1) <= short(2) <= int(4) <= long(8) <= long long(8) Если int будет равен 8, то для 4 или 2 байт просто не будет подходящего типа.
>>1979327 В данном случае инт сделали поменьше для экономии памяти, благо скорость от этого не страдает. По той же логике виндудятники и лонг сделали 4.
>>1979404 Откуда вы лезете, блять? Это тред студентов, у которых в универе все ещё деды C++ насаждают, что ли? Один тут писал, что массивы - это указатели, теперь, оказывается, целых фиксированной ширины в стандарте нет. https://en.cppreference.com/w/cpp/header/cstdint
>>1978804 >Сырые сишные массивы никогда не были отдельными типами, это синтаксический сахар над указателем на указанный тип данных (int, char, struct Huy и т.п.). нет, это неверно для си и с++ массив это массив, отдельный тип данный
Каждый раз захожу в тред и стыдно становится. Сидят несколько дурачков, рассказывают что массивы и указатели это одно и то же, напротив них сидит ещё один дурачек, который рассказывает что это не так, но не может внятно объяснить почему, проносит хуйню про структуры данных, видимо на лекции вчера услышал от препода и решил выебнуться итт. Поясняю, упрощенно это одно и то же, но под капотом вещи разные, кому интересно, читайте тут: https://eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c
>>1973041 (OP) Немного изотерического программирвания. Короче бумер девственник решил сканировать свой мозг и переселиться в тело зумера чтобы сбросить листву. Думер и Зумер это внутренние объекты Бумера. Каким образом он может передать два числа в Зумера и инициализировать его крохотный мозг?
>>1975361 Пытаюсь перекатиться с шарпа на кресты. Чувство, что из новой тачки с АКПП, климат-контролем и ассистентом парковки пересел на отрытый в сарае на даче дедушкин драндулет.
>>1979758 optional - это не значит, что это расширение компилятора, это значит, что это часть стандарта, которую необязательно поддерживать, чтобы считаться имплементацией с++
>>1979827 Концептуально как раз это абсолютно разные вещи. То, что в плюсах и си массив неявно преобразуется в указатель на первый элемент в большинстве контекстов, не дает им никакой концептуальной общности. Массив - это объекты, лежащие друг за другом, а указатель - ну это, бля, указатель.
>>1979833 Я тоже подумал сначала что они разные потому что бля, поинтер содержит только адрес а первый элемент массива еще и значение. Но родство у них есть. Просто это руссошвайн с последней стадией деменции, шизы и рака мозга придумал клийбейтную идею для статейки. Ненависть.
>>1979874 >а первый элемент массива еще и значение Хуею с даунов. a[0] - значение. a - указатель. Строго говоря, ты можешь создать указатель int* p = new int(); и провернуть такую хуйню: p[10] = 1488; Если не вылезешь за пределы выделенной памяти, то даже не заметишь, что тут что-то не так.
Дочитал тут Страуструпа с ravesli. Начал Мейерса. И как же сука сложно. Я думал что уже более мене менее знаю плюсы а тут без бутылки не разобраться. И вообще насколько все эти охуенные советы актуальны в 2к21?
>>1979882 квадратные скобки для доступа к блоку памяти это просто сахарок, безбожное ты скотоублюдище. квадратные скобки при объявлении массива это другое. p[10] это ты просто сдвинул указатель на 10 позиций. понял?
>>1979889 >квадратные скобки при объявлении массива это другое Да-да, это другое. Компилятору только рассказать не забудь. >>1979894 Квадратные скобки это операция разыменования указателя, блеать. Поэтому p[10] это запись в ячейку памяти (p+10sizeof(int)). Это именно то, как работает сишный "массив". спасибо, что поднимаете мою самооценку
>>1979897 Ну ок я разобрался. Теперь бы еще разобраться как в точности scanf работает. Или лучше getline. Хочу например считать csv файл. В файле эксель он в несколько строк (как это влияет не знаю). cin.getline(x, n, ','); написал но почему то крашится в конце файла.
>>1979897 Я че дебил с компилятором разговаривать? Выделение памяти под несколько последовательных блоков памяти и как ты сам написал операция разыменования указателя. Чуешь разницу?
>>1979903 >Выделение памяти под несколько последовательных блоков памяти Наконец-то ты понял, чем отличается массив от указателя. Только выделением памяти при инициализации.
>>1979912 Так у меня нет доступа через голову серединного объекта. Только если функцию в функции вызывать чтобы пробить инкапсуляцию. Я по-умному хочу.
>>1979909 Во-первых ты не прав, во-вторых я вообще на другое отвечал, на разницу между доступом к памяти с использованием квадратных скобок и объявлением массива.
>>1979915 >Во-первых ты не прав Ну раз ты так сказал. >на разницу между доступом к памяти с использованием квадратных скобок и объявлением массива. Ну то есть опять, массив отличается от указателя только инициализацией. >>1979916 Речь не о разнице между абстрактными понятиями, а о фактической разнице в конкретно взятом языке.
>>1979918 > Ну раз ты так сказал. Да, я выше написал разницу, разуй глаза ебать. > Ну то есть опять, массив отличается от указателя только инициализацией. Ты тупой или прикалываешься? Ты разницу между ДОСТУПОМ и ИНИЦИАЛИЗАЦИЕЙ понимаешь? Понимаешь, что это разная семантика у скобок в разных случаях, на хуй ты переводишь тему на сравнение инициализации массива и инициализации указателя? НУ БЛЯ ЕПТА МАССИВ ОТЛИЧАЕТСЯ ТОЛЬКО ИНИЦИАЛИЗАЦИЕЙ ГЫГЫГЫГЫ Давай пукни еще что-нибудь не по теме, чепуха.
>>1979907 Да, это C++ тред, самый что ни на есть типичный. Я сначала хотел бомбануть на тему "какая нахуй разница", а затем вспомнил, в каком треде нахожусь.
Вы чего, ребята? Массив--это константный указатель, который в точке определения инициализуется адресом куска памяти. А в точке объявления (параметр функции) это просто указатель.
>>1979940 Я пользуюсюсь 14. Слышал тут один понтовался что на собесах спрашивал конторы какой у них стандарт чтобы если они начнут мямлить сразу нахуй. Он переворачивал игру.
>>1979954 Ну смотри, есть тип int. Я могу его вернуть. Есть типа int звезда. Его я могу вернуть. А есть типа int[3]. Что с ним не так, почему его не могу вернуть? Зато могу вернуть struct { int[3]; }.
>>1979960 А как это сделать? Все массивы вида int [] совместимы. Сколько байт должен заготовить caller на стеке, чтобы ему вернули массив? В случае структуры это константа.
>>1979967 ТО. В функции ты оперируешь вновь созданной ссылкой. Все, что нужно, было скопировано в эту новую ссылку при ее инициализации.
"Передача по указателю" и "передача по ссылке" - это просто устоявшиеся фигуры речи. Фактически у функции существует всего один механизм передачи - это копирование.
>>1979931 >Ты разницу между ДОСТУПОМ и ИНИЦИАЛИЗАЦИЕЙ понимаешь? Так я с тобой совершенно согласен, чего ты усираешься? Я про то что дальше инициализации массив по сути это указатель. >>1979944 Нет, не знаю. мимо статик каст
>>1980004 >чтобы по возвращении в результат записалась копия? Но зачем? Ты и так можешь обращаться к указателю через квадратные скобки. int* p = func(); cout<< p[7]; >>1980006 Вызывающая функция, про delete слышал?
>>1980003 Это рофл или так ирл где-то бывает? Мой препод таскает мою группу по С и говорит что струны это говнище. Говорит будем писать свои библиотеки и мы будет профи. На полном серьезе говорит.
>>1973041 (OP) Your license has gone stale and must be updated. Что за хуйня нормально vs работала, как это пофиксить? (аккаунт аутлука саспендед, просимт номер)
>>1980010 Все верно говорит. Любая дефолтная либа - кратное падение скорости выполнения. Там где можно обойтись встроенными средствами, зачем усложнять себе жизнь?
Дайте какой-нибудь максимально короткий но исчерпывающий шаг за шагом гайд, минут 30-40, желательно в видео, как на С++ сделать с нуля простую 3Д-анимацию с использованием OpenGL? Ну скажем вывести на экран вращающийся куб с разноцветными гранями.
>>1973041 (OP) 1 ifstream csvfile("ms3.csv"); 2 while (csvfile) { 3 csvfile >> W; 4 ... 5 } В сsv закончились записи и во время выполнения третьей строки ошибка. Какую проверку мне сделать чтобы избежать краша? Пробовал good() не помогло
>>1979954 Массив нельзя вернуть и вообще вся семантика pointer decay появилась потому, что похожее поведение было в B, и чтобы меньше тратить время на портирование программ из B в C решили захачить похожее поведение.
Правильно ли я понимаю, что с помощью Clang, я могу скомпилировать С++ исходник в байт код llvm, затем провести там обфускацию байт кода, а затем скомпилировать уже в натив под конкретную ОС?
>>1980364 >байт код llvm Нет такого, есть обычный intermediate representation компилятора. Когда-то LLVM и хотели сделать а-ля Hotspot (откуда VM в названии и пошла), но так и не сделали и теперь это обычный компилятор.
>>1980631 Ты нихуя не защищаешь обфускацией, Дуняша. Если ты нахуй никому не нужен - то никто трогать не будет, если ты нужен - то тебя разберут хоть узащищайся.
>>1979983 >, додики? Семантические свойства Значение жарг. гомосексуалист (в уголовном арго — молодой пассивный) В неестественно раскрытых совиных глазах Ястребова вспыхнули ржавые белки, в них металось безумие… Под ним бился молодой додик по кличке Снежинка. Л. П. Костомаров, «Десять кругов ада» жарг. ирон. женственный, женоподобный мужчина И реально, что бы вы думали, из-за кулис выходит какой-то додик, тощий, в зелёных очках и с лысой головой, подходит к микрофону и начинает вещать что-то тонким, по-бабьи жеманным голоском.〈…〉Он очень томно растягивает слова, выпячивает губы и делает все эти педиковские ужимки, которые я так ненавижу. С. С. Минаев, «Духless. Повесть о ненастоящем человеке», 2006 г. (цитата из Библиотеки Максима Мошкова, см. Список литературы) жарг. презр. или пренебр. хилый, ничем не примечательный человек Например, решит профессор закончить пару пораньше и для приличия спросит, всё ли всем понятно. Группа уже сложила вещички и ждёт предложения разойтись по домам, и в этот момент Борис поднимает руку и говорит: «А вот я не понял один момент…». В результате народ тоскует и томится, один лишь Борис внимательнейшим образом слушает и кивает головой. Чаще всего в процессе кивания у него появляются и другие вопросы. После проявления такого интереса к предмету преподаватели начинали его уважать, студенты называть додиком, а девушки не любить, несмотря на очевидную красоту. Эльвира Барякина, Анна Капранова, «Рыба в чайнике», 1999—2002 г. На прогулку во двор старейшей московской психиатрической больницы выпускали только с часу до двух дня и только самых спокойных обитателей. / — Маша, загоняй додиков! — кричала из окна второго этажа тётка в замызганном голубом халате и косынке. П. А. Астахов, «Квартира», 2010 г. Синонимы гомосексуал, гомосексуалист, педераст; устар.: мужеложец, мужеложник, содомит; устар., частичн.: малакия; книжн.: уранист, урнинг; разг.: гей, гом, гомик, гомосек, мужелюб; разг., субстантивир.: голубой; эвф.: сидор; сленг: в теме, зайка, крашу ногти, сижу в окопе, тематический, яойщик; жарг.: ахтунг, барсук, василёк, васька, галя, гамадрил, гамаз, гамазей, гамак, гном, гобсек, говносек, голубарь, голубец, голубок, голубчик, голубь, гома, гомарь, гомс, гомусик, двустволка, дирижёр, дочка, дуплан, ермак, жоподрючник, жополаз, жопочник, жопотрах, заднепроходец, звезда, кентавр, котик, кьюр, квир, маркоташник, мастёвый, мужиковед, папа, парафин, пед, педагог, педарь, педе, педерага, педераго, педеряга, педигрипал, педик, педр, педрик, педрила, педрило, педрильник, педруччо, педя, петух, пидарас, пидарь, пидер, пидор, пидорас, пидорасина, пидораскин, пидораха, пидорюга, пидорюжник, пидорюк, пинчер, половой демократ, пэдэ, рудокоп, руслан, субчик-голубчик, такой, темовой, тёпленький, тёплый брат, универсал, уник, уни, хали-гали, чебурашка, чичеряка, шахтёр, шкицнурик, шура; активный: акт, актив, активист, георгин, глиномес, говномес, дятел, кочегар, марксист, педикатор, печатник, печник, печной ящер, ромео, солидол иванович, топтун, трубочист; активный, субстантивир.: уважаемый; вульг.: чужежопник; пассивный: акробат, ананаска, армянская королева, бархотка, валет, вафел, вафёл, вафлеглот, вафлёр, вафлист, вафло, гребень, дама, даша, дашка, жена, женива, женщина, жопа, жопник, козёл, козлик, козочка, конь педальный, кочет, манька, маня, маргаритка, маша, машка, моргалик, мурка, наташа, наташка, незабудка, пассив, пассивка, пассуха, педер, педерасик, педермот, петюнчик, петя, пидовка, пидорша, пидаль, пидесса, пинч, плашкет, подруга, пярну, санта-лючия, Светка, сестра, туз червонный, умница, шпидагуз, шурик, шурин; субстантивир.: округлённый, заднеприводный, заднеприводной, дырявый; изнасилованный: обиженный, опущенный, проткнутый, петух, петушня, петушок, петяра, пятёра, пятёрка; собир., бран.: пидорасня Антонимы Гиперонимы Гипонимы Родственные слова Ближайшее родство Этимология Происходит от ??
Фразеологизмы и устойчивые сочетания у каждого додика своя методика
>>1980633 так давай я тебе кину либу, ты мне разберешь алгоритм? Умник ебучий. Как же я ору с далбаебов, у которых логика: если взломают, то нахуя защищать? ))
>>1980650 >Денува нужна, чтобы сломали не в первую неделю, потому-что ровно на первую неделю приходятся бОльшая часть покупок. а это значит не относится к софту?
>>1973041 (OP) Насколько сложно написать простую отслеживающую программу под Android, (кейлогер) (с учетом если ставить её самому и логи на почту к примеру отправлять)?
>>1980597 Возможно, но он не переносимый и не является байт кодом в том же смысле, что байт-код JVM или CLR.
>>1980600 У LLVM есть программные апи для построения IR и его компиляции прямо во времени исполнения (кажется его, например, RPCS3 использует), но это по сути только бэкенд компилятора. Фронтэнд и рантайм всё равно самому нужно будет писать, нельзя взять готовый LLVM язык и из коробки флагом подцепить к нему JIT-компиляцию.
>>1980703 Да что ты доебался. И схуяли IR является непереносимым, если сам смысл его существования в том чтобы создавать из него бинарники под любую поддерживаемую платформу?
>>1980703 >LLVM Говно ваш LLVM. Не первом месте интеловский компилер. Затем MSVC Затем gcc/g++ И только затем LLVM Ниже только С-компиляторы от Борланда или кто он там сейчас Embaradero? И где-то на дне всякие tinyC и прочая поебень.
>>1981001 Да, это я сказал. Намедни вот видел старую тему на linux.org.ru, где один пятизвёздочный агрился на молодняк, за то, что тот хотел поставить gcc на Андроид в termux, вместо идёщего по дефолту Clang.
И тут подумалось - а чего это "илита" так надрачивает на Clang? Дык, Эппл же его внезапно использовала как основной компилер. Вот вы и слились в экстазе.
>>1981016 >ти исе не родися кадя йя тям завестивався пчел, конечно аппле использует шланг, ведь они в него уже много лет контрибьютят. Ничто не компилирует обжц лучше шланга
Друзья, подскажите или подкиньте дельную статью, как хранить секреты? Мое приложение содержит id клиента и токен. С одной стороны, даже если злоумышленник узнает их - да и поебать - при помощи них на сайте авторизуется юзер, причем своим логином/паролем, токен только для oauth. С другой стороны - это в любом случае плохо, Кто-то может хуярить запросы и заблочат мой токен. Так вот, как хранить это? Т.к. сам веду разработку и открытый проект на гитхабе. В коде - очень плохо. Внешнего сервиса, откуда можно запросить - нету. Бд - не вариант - это будет один бинарник. Можно конечно что-нибудь вроде файла конфига не под контроллем версии, а под контроль - пример файла и инструкцию где взять токен. Хз короче, нужна подсказка.
Пожалуйста, помогите разобраться как либу (bullet для физики) поставить и запустить любой hello world через cmake.
Я пробовал несколько лет назад, но тогда я ещё не понимал ничего - и увидев 43 ошибки с ужасом закрыл, при том что я специально сказал ту же версию визуалстудии, что и была указана в либе. Сейчас то же самое. Открыл для сравнения другую либу для физики (newton dynamics), запустил cmake - всё работает тут же, в cmake понятное содержание - а демки создаются и редактируются. Cmake даже пишет, что либа собралась и объектные файлы вот там-то. Почти как на питоне. Запускаю bullet, какие-то значения в cmake не прописаны, какие-то файлы питона и луа там ещё, а в дополнительных папках странные уже скомпилированные екзешники. Ни в одном readme ни слова о том, как этим пользоваться. Мол просто запусти батник. Эм, а дальше?
Это не либа, а бред шизофреника - как будто кто-то несколько лет писал код "для себя" и в нём ориентируется, а потом прямо так и выложил его. Вот я хочу скопировать код из демки с одним кубом и запустить её - какие мои действия? Сначала cmake пишет "Cannot find source file" - я исправляю cmake (кое-как по смыслу там понятно какой файл ему нужен - но почему-то путь в cmake прописан неверно) - ошибка в нём исчезает, но появляется ошибка в самих хедерах, потому что они раскиданы по разным папкам, но в самих хедерах названия этих папок никак не указаны (а некоторые указаны). Ну и так далее. Пятый час пытаюсь этот мусор хоть как-то запустить.
17 стандарт и другие обновления языка это круто конечно, но нельзя было бы как-то в стандарт занести системы сборки, модули или ещё что-то? Это намного, мать его, важнее и полезнее для языка, чем template guides, которые в каком-то месте позволят записать шаблон не в три строчки, а в две с половиной. По назначению как pip в питоне. И более юзабельный аналог cmake само собой.
Уже не надо помогать, я просто сгорел и хочу выговориться, чтобы уснуть без дёргающихся конечностей. Я куду и torch быстрее настроил под кресты, чем этот мусор. Уже решил попробовать поставить нвидиевский физикс - и почему-то я уверен, что за 30 минут снова всё заработает как надо, потому что я уже на странице загрузки вижу больше инфы по установке и настройке, а по первой же ссылке сразу же увидел смысл значений в cmake-файлах.
>>1981044 Ну это типичный крупный попенсорс проект из начала 2000-х. У некоторых вся документация сделана через doxygen или прям в коде комментариями. Сама попенсорс концепция - это конструктор из говна и палок, которыми надо самостоятельно научиться жонглировать. Как ты это сделаешь - всем похуй.
>как pip в питоне sudo apt-get install -y libbullet-dev
>более юзабельный аналог cmake У yandex есть yamake, у google - gyp. Ещё можешь обмазаться maven или gradle как в питоне.
>>1981053 >Сама попенсорс концепция - это конструктор из говна и палок Зачем так усложнять, есть же простая русская пословица: "Дареному коню в зубы не смотрят"
>>1981107 че рили такие есть? Я помню как пиздюком был, тогда текстовые игры были в треде. И один лох написал аутоит скрипт для автоматизации) Я скрипт тогда декомпильнул, и там в исходниках, в комментах - был его логин и пароль) Тогда я себя хакером почувствовал, да)
>>1981109 разработчик для тестирования своего приложения вбивает пароль в код приложения, спецбот это обнаруживает. Слышал новости про утекшие пароли от amazon ws, тогда хакеры просто майнили крипту на сервере амазона
Правильно я понимаю, что openCV на Python это обертка над С++? И где используется "чистый" openCV? В ембеддеде, роботах, где нужео быстродействие и экономность?
>>1982078 Да, OpenCV написан на с/c++, местами на ассемблере и cuda. Для связки с другими языками сделаны бинды. Сам OCV всегда компилируется под целевую платформу и поэтому "чистый и быстрый". А обёртку вокруг него можно и на питоне писать, если нет других сложных вычислений и железка по типу raspberry pi. В остальных случаях делают на плюсах.
Никогда. Ни разу в жизни я не использовал не-public наследования. Всегда class D: public B. Я примерно знаю эффект private наследования, типа B целиком прячется в D, но мне никогда этого не надобилось. А тебе анон? Уж про protected вообще не говорю.
>>1973041 (OP) На вкат дается 3 года. Твои дейтсвия? Мои - читаю книги и литкодю. Получаю степень. Пробиваюсь на должность в шараге. Вроде ничего не забыл.
>>1982136 Protected иногда реально помогает, когда иерархия глубже двух. Но почти всегда лучше следовать принципу composition over inheritance, если можешь.
Исходный код JDK (компилятора, тулзов и вирутальной машины джавы) перешел на стандарт С++14, а до этого у них был C++98/03. Какие киллер-фичи есть в 11/14 стандарте, без которых вам некомфортно писать?
Что за манера такая, везде явно писать вызываемый конструктор? sf::View view(sf::FloatRect(0, 0, winSize.x, winSize.y)); view.setCenter(sf::Vector2f(0, 0));
Какие от этого профиты в сравнении с sf::View view({0.0f, 0.0f, winSize.x, winSize.y}); view.setCenter(0, 0);
>>1981044 А в физиксе только под говностудию код, да что такое то...
Может кто-то с настроенной студией скачать 4.1 физикз и написать мне как много времени он потратил чтобы запустить одну любую демку?
Я не понимаю что делать, пристрелите меня пожалуйста. Правил cmake, дошёл до "evaluating generator expression: $<NOT:> $<NOT> parameter must resolve to exactly one '0' or '1' value" - оно никак не подсвечивает где ошибка произошла и приходится самому искать этот NOT через поиск, потому что там много раз значение одной переменной перезаписывается в другую, а ошибка только в самой последней строчке отображается. Потом пришлось вычищать всякие /d2Zi+. В итоге cmake сработал нормально, и компилятору доставил нормальные флаги. После чего там какой-то rc-файл инклюдится с мусором вместо кода. Я таким уродом-говночистом себя чувствую занимаясь этим, что просто капец. Ну не newton же в самом деле использовать. И мне верёвки нужны, который newton не потянет. Упёрся в итоге в simd, который видимо сильно иначе записывается в студии.
Хочется скачать студию, написать dll-враппер на студии, чтобы код физикса не взаимодействовал с моим, и закрыть студию навсегда. Но это снова рутина, к тому же не факт что всё будет работать, если там какой-то кастомный join делать с каллбеком, или как там это организовано.
>>1981053 >У yandex есть yamake, у google - gyp Анекдот про шестнадцать конкурирующих форматов помнишь?
Нет никакой проблемы, пока сам что-то делаешь - я бы использовал во всех своих проектах cmake на 10-20 строк с одним и тем же компилятором, и горя бы не знал. Проблема возникает, когда ты делаешь что-то используя условный yamake, а потом скачиваешь три либы - и одна из них это проект визуал-студии, вторая cmake, а третья вообще что-то безымянное - и нужно эту хуету вручную переписывать.
>>1982924 Не пиши. Там же вроде бы есть перегрузки, а если нету - можно добавить за пять минут. Ты ненормальный, если на серьёзных щщах используешь sf::View, лол. Дико неудобная же штука (кажется, там setScale не устанавливал новые масштаб, а перемножал уже имеющуюся матрицу, так что правильнее было бы назвать функцию addScale - и в документации тоже как-то хреново про это написано), gluOrtho2D (или что-то поактуальнее на glm) в разы удобнее.
>>1982924 Понятность кода и исключение неоднозначных трактовок при его чтении. Видно, что куда и какого типа передается, без вот этого вот питон-стайла.
>>1983030 Так видно и без типов. Мой опыт 2 года программирования с нуля и моя позиция такая - если код нормально написан, он будет нормально работать. Типизация чисто для проверки - сомнительная вещь. К слову видел чуваков которые "кодят 10 лет" и ничего не умеют.
>>1982964 Вся твоя проблема в отсутствии опыта. У меня в крупном проекте (под студию) был bullet и с ним всё норм было. Даже июни на нём код писали.
>Проблема возникает Когда ты собираешь проект из кучи thirdparty компонент. Так было всегда. Собственно поэтому все крупные конторы сидят на своих велосипедах.
>>1983099 Верно. И я горю от того, что не знаю как его получить, нет точки приложения сил - я не понимаю что мне сделать, чтобы разобраться в этом.
Сложный код можно разбирать и разделять на фрагменты, понимая как он работает. Можно прочитать книгу. Можно посмотреть другие примеры на похожую тему. Да что угодно можно, но трата времени приводит к пониманию рано или поздно. Здесь же я могу пытаться нагуглить похожие ошибки в cmake/компиляторе и ... - и ничего из этого не приближает меня к понимаю как сделать правильно. Я нахожусь там же, где три дня назад. И книг по примерам настройки чужих либ на различных компиляторах и системах сборки я тоже не видел, на форумах на такие вопросы не отвечают, так как это не с++ код, которые касается всех с++ программистов, а какие-то конфиги или строки в cmake, которые касаются лишь ту часть программистов, которые используют тот же компилятор и систему сборки.
Вот сегодня вечером у меня будет ещё несколько часов - чем мне заняться, какое действия я должен сделать? Я не понимаю, это бесит и раздражает, и у меня возникают вопросы к "кому-то" и желание никогда с этим не разбираться, а вместо чужих либ писать свой велосипед - за это время я бы уже наговнокодил хоть что-то, пусть там бы и проваливались иногда одни фигуры сквозь другие, а башенка из кубов начинала бы дёргаться и дрожать - но даже это было бы лучше, чем ничего.
Я скомпилил демку bullet. Случайно. И горит от того, зачем я сидел ночью последние несколько дней и если "проблема была в этом!?" (нужно было исправить две строки в cmake и проблема решалась за пять минут - после которых 20 минут оно компилировалось) - то почему мать его гори оно в аду синем пламенем нельзя было сразу на своём говносайте написать, что нужно с вашим cmake сделать? Или хотя бы cmake так написать, чтобы ошибка происходила в этом месте - а не где-то совсем в другом.
>>1983275 Ну это часть нашей работы. На bullet хотя бы есть документация, а на проекты, которыми тебе придётся заниматься в реале, её нет и писали их редкостные мудаки. Считай что ты сейчас заглянул в горлышко бутылки, а приседания ещё впереди.
>>1984431 не знаю что ты имеешь ввиду, но мы все проекты новые сейчас пишем только на шарпе. И разработка в разы быстрее, и писать приятнее. А по сравнению с девелоперской зарплатой - ну будем мы на 100 бачей в месяц больше за амазон платить ну и хуй с ним.
>>1984292 Проиграл. В расте в 3 раза более развитая инфраструктура, чем в плюсах. Все сейчас на раст поголовно переходят, на нем уже даже начинают писать драйверы в Линуксе, чтобы избавиться от сиподобного дырявого говна с UB. Бумер, плез.
>>1984849 Стандартная библиотека раста в несколько раз богаче стандартной библиотеки плюсов. И не забывай про crates, плюс не забывай про карго, который ссыт всем убогим симейкам и мейсонам на ебло. Дедуль, пиздуй реализовывать свои строки и split, это удел плюсодебилов-пердунов. Это же каким надо быть некрофилом, чтобы на сиплюс говне писать код в 2к21 году. Ладно там уже существующие проекты, их переписывать невыгодно, и разрабом приходится анально терпеть эту парашу, но новые проекты на плюсах ни одна уважающая компания пилить не будет. Гугл свою новую ОС на расте пишет с нуля, дабы выкинуть в помойку сраный ведроид, где линуксовое ядро, написанное на сиговне, изобилующее дырами в безопасности. Всех уже заебало это говно, от сиговна идёт активное избавление, что не может не радовать.
В пистоне есть такая штука, как id объекта. Возвращает целое число для любого объекта языка, будь то хоть литерал: `id(2) == 1234567`. Понимаю, что это высокоуровневая хрень в интерпретируемом языке, но есть ли в плюсах что-то подобное? Сразу приходит в голову адрес, но адрес литерала, например, взять нельзя - `&2` - ошибка.
>>1984905 >>1984912 Да, спс, тоже уже разобрался. В пистоне переменная - просто ссылка на объект в памяти, не полноценная переменная в смысле C/C++. Из-за этого и "литералы" трактуются по-другому.
Сел вот тут изучать плюсы, задрала эта скриптопараша, которая еще и тормозит постоянно.
>>1984950 потому что асм нужен как минимум реверсерам, про разработку на нем никто и не заикается, разве что в рамках lab.asm А плюсоговно и сиговно тоже уже сейчас полностью заменимы Растом, засим новые проекты пилят как раз на Расте, а не на допотопном дерьме. Пример я уже приводил - новая ОС от гугла пишется на Расте. Даже красноглазики, пилящие прыщеблядикс, осознали насколько Раст охуенен, и пулят фичи, позволяющие писать драйверы на Линукс на Расте, тем самым спасая свои жёппы от уязвимостей наилучшим образом. Всем адекватным людям, живущим в СОВРЕМЕННОМ мире, давно ясно, что с/с++ - это бесполезная отрыжка прошлого. Легаси на нём ещё очень долго будет гнить, распространяя зловоние на весь белый свет, но всё новое в лоу-лвл системщине УЖЕ пишут на Расте, это факт. И со временем будут писать на нём только больше, ну а сиплюсговно будет уже сейчас является нямкой для некрокопрофила, который любит обмазываться смердящим легаси и дрочить, заглатывая сегфолты и сея UB по всей кодовой базе, юзая допотопную парашу. Sad but true.
>>1985014 Про то, что сиплюсоговно хоть чего-то стоит в 2к21 году. Я по факту привёл несколько факторов почему Раст лучше сиплюсговна, и это неоспоримо. Безопасность, инфраструктура, стандартная библиотека, система сборки - в Расте всё это лучше, чем в плюсоговне. Любой твой высер в защиту говна мамонта будет в 100% случаев затрагивать легаси софт, но никак не новые крупные системные проекты, которые предпочитают писать на современных ЯПах, а не на окаменелом говне мамонта из 80ых, где весь код - это UB.
>>1985017 Которые начали писать в 90ых, лол. Ну, как я и говорил, плюсодебил всегда будет приводить в пример софт, написанный 25 миллионов лет назад. Тупая ты башка, это произошло только потому, что раньше не было альтернатив. Все НОВЫЕ проекты предпочитают писать на Расте по очевидным причинам. И я с самого начала говорил именно о новых проектах, так что ты сам себе нассал на хрюльник.
>>1985026 Fuchsia - новая ОС от гугла, где почти всё ядро написано на Расте. Примерно весь современный финтех. Блокчейн стартапы пишут ТОЛЬКО на расте. Драйвера на Линукс скоро можно будет полноценно писать на Расте. Мелкософт переписывает много чего на Раст, включая винду. Мозилла переписывает движок лисы на Раст. Все чураются от сиплюсговна, как от прокаженного, и это недаром.
>>1985029 300кк/наносекунду blockchain developer в перспективном старт-апе. Не в пределах стран СНГ, естественно. В СНГ параше с Растом точно туговато. Он пока выстрелил только в развитых государствах, но через лет 10-15 дойдет и до сраши/еблорусии/копроины. Наверное.
А на плюсоговне разве есть работа, кроме парашного легаси? Вряд ли. Эмбедщину, кстати, тоже на Расте писать начинают.
Какие есть фреймворки, помимо qt, чтоб кроме интерфейса еще была работа с сетью и бд? qt какой-то хуевый, на баги забивают по несколько лет. Не знаю как там в коммерческой версии.
>>1985036 Сейчас тебе два местных шизанутых долбоёба посоветуют электрон и шарп. Вообще, если даже в Qt не сделали что-то хорошо, то в других либах всё намного хуже.
Вот этот товарищ >>1984292 что-то там прокукарекал про то, что в расте нет инфраструктуры что еще ожидать от плюсодебила, кек, оттуда всё пошло-поехало.
>>1985071 Мало того что зачем-то переписали контейнеры, так еще и их интерфейсные методы по другому назвали (не говоря о введении очередного markup языка, подпертого костылями со всех сторон и неочевидного как ориентация любителей потаскать пару десятков метров куты либ в дистре).
>>1985019 >весь современный финтех Пруфов опять не будет, конечно >блокчейн Ну это серьезная область, конечно, тут твоя взяла >все пишут много чего Много чего неизвестно чего. Прямо как servo. Плавали, знаем.
Я бы и не против поизучать Раст, но будем объективными. Работу на нем я не найду. Даже в тех 15 вакансиях на страну, что есть, какие-то мутные конторы и требования C++ 2 года опыта.
Так что кидаться говном можно сколько угодно, но толку-то. Захоти я борщи хлебать, насаживал бы какой-нибудь Идрис на Кок.
>>1985145 Люди, у которых каждый час стоит денег, работу не ищут так-то.
ИМХО, гораздо лучше запилить тестовое задание и на собеседовании вести предметный разговор по существу, чем отвечать на дебильные вопросы, взятые с потолка.
Схуяли тебе платить, если тут общий интерес? Работодатель тоже тратит время на собеседования. Что ему теперь тоже деньги брать с каждого соискателя?
>>1985264 Там надо мат модель под оптимальную выработку месторождения придумать, доказать и запилить в виде либы под фиксированный формат данных. Ты такое не осилишь. Да и пахнет наебаловом в чистом виде как раз вот для этого >>1985219 лошка.
>>1985273 >оптимальную выработку месторождения придумать Придумывание это работа. Тебя похоже просят им работу за бесплатно сделать. Я не спец в собесах, но да. Нормальный собес по-моему выглядит так что тебя справишваю что-нибудь теоретически отвлеченное. Но бля, лол ты можешь реально придумать модель но потом все перевернуть чтобы если они её примени все пошло по такой пизде что они бы там знатно прихуели.
>Сейсмическая инверсия - наиболее популярная на сегодняшний день технология прогноза эффективных толщин и пористости будет неэффективной.
>Ее применение может привести лишь к недостоверным результатам.
>Крупные нефтяные и газовые компании решают эти проблемы через создание собственных научно-аналитических центров. >Но и это не дает гарантию качественной оценки проекта.
>>1985276 Вот еще. Общая структура процесса создания трехмерных геологических моделей приведена на рис. 1. Он состоит из следующих этапов:
разработка структуры базы данных для хранения первичной информации по данным геологической разведки; наполнение базы информацией геологического и геофизического опробования; статистический анализ первичных геологических данных, исправление ошибок, группировка данных, заверка базы, выявление закономерностей; построение скважин в пространстве модели, группировка по профилям; выделение и оконтуривание рудных и нерудных интервалов по стратиграфическому принципу, уточнение интервалов по значениям бортового содержания (интерпретация геологических данных); уточнение границ пространственного размещения пород, с учетом тектонических нарушений, а также за данными геофизических исследований (сейсмика, гравиметрия, электроразведка); каркасное моделирование месторождения (выделение рудных тел и пород сопутствующей вскрыши, моделирование пластов, аномалий, ловушек и пр.); создание пустых блочных моделей; геостатистический анализ данных разведки, вариография, определение законов пространственной изменчивости геологических характеристик компонентов; моделирование содержания компонентов математическими методами: ближайшего соседа (полигональный метод), обратных расстояний в степени (IDW), крайгинга (в модификациях) и др.; моделирование гидродинамических систем, расчет массопереноса, загрязненности, химического состава и пр. уточнение контуров распространения пород в месторождении по заданным кондициям. С сайта http://www.mrwolf.ru/
>>1985276 Не, ну там касается только истощающихся месторождений. В описании есть кое-какие формулы, даже пара законов упомянута. Но один фиг исследовательская задача. Сам я вообще не в теме, как там нефть сосут по науке.
>>1985273 Ты с чем вообще пришел сюда? То ему вакансия покоя не дает, то ему наебалово мерещится. Наебалово - проходи мимо. Ну или одевай костюм супермена и борись.
>вот для этого 1985219 (You) лошка. Ты зачем блатную музыку включаешь, дурень? Всяк, кто работает на дядю, блатным уже никогда не станет.
>>1985274 >Тебя похоже просят им работу за бесплатно сделать. Классная бизнес-модель. Сидеть ждать неопределенное время, разгребать предложенные варианты решения. И все это ради того, чтобы запилить таску объемом в пару рабочих дней с ценой вопроса в пару сотен долларов?
>>1985309 Фига какой крутой. Ответь для проверки как вызвать оператор присвоения для базового класса из произодного. Чел не может быть таким злым если ему хорошо платят.
>>1973041 (OP) Есть один вопрос. Как перестать считать себя программистом? Я просто чмоха которая ковыряет код для того чтобы поднять ЧСВ и опустить в треде пару анонов.
Дайте советов как вкатиться на работку. Есть 1 петпроект а-ля круд с 20 звёздами на гите. Около знаю и понимаю 11-20 + STL, немного шарю в опельгле и азии.
>>1985855 >Код пиши, а не книги читай Ебать дебил. Я вот за ночь прочитал почти половину Яцека по STL и ща весь день переписываю свои костыли в петах потому что там где можно было обойтись структурами и их методами из стли я везде хуярил векторы и велосипеды для них.
>>1985921 Да в растротреде они такие же: чуть что - а зато в плюха еще хуже, а вот плюсы... и т.д. Язык то хороший, но со своими недостатками, которые шизики упорно не видят, но обильно срут в сторону других языков, особенно плюсов
>>1987766 Сеньёр - это тот, кто в состоянии ставить задачи мидлам.
То бишь, не бывает такого, как ты скозал. Ты либо синьор-помидор в некоторой команде, занятой некоторым проектом, либо хуй сосёшь без команды и без проекта.
>>1987972 Пишет 1.5к. Думаю затребовать 2к. Меня не пошлют нахуй? Вообще как относятся к тем, кто требует больше чем компания может предложить? Я могу затребовать 2к, но потом получить оффер на 1.5 и сказать: "ну лан, давайте 1.5к" ?
>>1987664 Вот этот чудик правду стелит. Пидорские языки для выебонов по типу растра собственно и людей (если к ним применимо это слово) соответствующих притягивают.
>>1989164 Есть вообще в принципе только два варианта чтения файлов: mmap и read (замени на аналоги из винапи, если у тебя венда). По идее mmap должен проигрывать в чистой скорости: ему нужно маппинги страниц настроить, TLB зафлашить, все дела, прежде чем ты начнёшь читать. Да ещё page fault будешь хватать на каждой странице если I/O подсистема не успеет запрефетчить их. А последовательный read в один буфер и его обработка - самое то.
В любом случае тебе придётся самому мерить производительность. На дваче тебе могут лишь сказать "обычно вот это быстрее" без каких-либо конкретных цифр, потому что они от слишком многих факторов зависят.
У меня С++ latest, студия знает об static inline variable. Так почему компилятор ругается? И почему он пишет про какой-то там конструктор? Ведь конструктор по умолчанию есть (выше)
>>1989657 Меньше кода писать. Смотри - раньше ты должен был объявить имя статической переменной внутри класса, а потом где-то еще в каком-нибудь cpp написать ее реализацию... (а что делать если cpp нет, так как класс шаблон и полностью описан в h?)
В с++ 17 ввели вот эти static inline variable которые позволяют все это сделать одной строчкой внутри класса как на пикче (width/height/frame/visible - раньше ты так не мог написать)
>>1989669 >>1989670 Тогда та хуйня выглядит как баг или фича, абсолютная логичность и неизбежность которой становится понятна только после прочтения всего стандарта три раза. Попробуй дефолтный конструктор тоже инлайнить. Вообще же для объявлений внутри класса этот самый класс никогда не считался неполным типом?
>>1989676 >для объявлений внутри класса этот самый класс никогда не считался неполным типом? Только для статических членов. Иначе че ты в конструкторе будешь делать с этим членом, если у него конструктор еще не определен?
>>1989702 >в этой точке C - уже полный тип, иначе хуй бы скомпилилось Нет, тут он еще неполный. Компилируется потому что в объявлении функции полный тип и не нужен. Для указателя тоже не нужен полный тип.
А для объявления data-члена уже нужен будет конструктор. Фокус со статическим data-членом прокатывает потому что он инициализируется не в конструкторе.
Есть простая альтернатива GBL? Чтоб можно было создать обычный взвешенный граф и пройтись парой алгоритмов по нему? Без ебли с дискрипторами, проперти мамами и прочей шизой?
Подскажите, пожалуйста, что нужно сделать, чтобы я мог использовать эту библиотеку - https://github.com/Kolsha/VK? Я просто скопировал файлы и инклуднул их, но проект не собирается error LNK2001. Мне в другом чате сказали "Нужно все библиотеки, если ты их используешь, указать линкеру при сборке." но я нихуя не понимаю что это значит и что мне надо сделать
>>1991139 Кста меня наебали в чате. Я думал надо просто самый главный файл инклуднуть, а он все поднтянет, но оказывается надо было все 7 и все заработало. А я думал там с cmake возиться надо
Что скажете в своё оправдание, плюсодебилы? Раст начинает вытеснять легаси говно из мира системщины семимильными шагами. В гугле мимокроки явно не работают, и они понимают, что перед ними будущее системщины - Раст.
>>1991419 >Что скажете в своё оправдание, плюсодебилы? Плюсы и раст это язык для бэк энд богов бумеров которые вкатились 20 лет назад. Остальным остается приминять софт скилы (отсос бибы) чтобы получить должность html макаки. Но это чисто мое личное мнение.
Когда сундук находится на освящении то обводка рисуется нормально и её прекрасно видно. Но почему-то когда сундук без освящения (закрыт блоками например) обводка становится темной. Почему? Как фиксить?
Сап плюсовики. Такие вводные и вопрос в том насколько трудно будет вкатиться на первую работку. А то время уже поджимать начинает, а прогать на чём-то дельном охота вместо всяких жс помоев. Сам чичас на 3 курса средневуза в дс по технической специальности. Выиграл пару тройку хакатонов. Правда на питонах писал, которые знаю +- норм, но в сравнение с плюсами особо не идёт, ибо на них я тоже раньше ради интереса блокноты. Думаю наебнуть кормена, пару петпроджектов уровня своя рисовалка
Как сейчас с десктопом вообще? А то сидел дрочился с бэкэндами, а тут пришло время работку новую искать и думаю в десктоп закатиться. Имеет смысл вообще? Или сейчас абсолютно всё в облаках
Как сделать так, чтобы один пользовательский тип приводился ко второму автоматически? Пишу свои велосипеды, сейчас пишу аналог optional, и хочу чтобы было возможно писать что то типо return null_opt, в функции которая возвращает option<T>, где null_opt - какая нибудь константа от моего типа пустышки Ну и хотелось бы чтобы T в Option<T> сам преобразовывал
чото ничего найти не могу в гугле, а как в стандарте это реализовано тоже непонятно
>>1992467 Как тебе выше ответили - пет это то, что нравится писать. Так что тут есть два варика - либо пишешь что-то по твоей любимой предметной области, либо пишешь что-то базовое из той, которую не знаешь, но хотел бы освоить. (СУБД, сервер, движок..). Второе позволяет объединить приятное с полезным.
Есть ли смысл в 2к21 вообще вкатываться через плюсы? Какие преспективы? Ведь как я понимаю кроме как яндекса - мейла ,embeded и формошлеперов на кьюте из около гос контор плюсы уже не нужны?
Так же интересны аноны которые уже вкатились(надеюсь они тут есть): Какая зп, чем занимаетесь?
Стыд-то какой. Решил вспомнить как на С++ писать спустя 3 года как закончил вузик и соответственно 4 лет работы на жаве и код не компилируется. Пиздос. Скажите хоть что я не так делаю.
>>1992665 Еще телеком. Но чтоб нормально получать, надо выучить не только стандарт крестов, но и стандарты LTE, 3/4/5G, SIP, SCTP, SNMP, AMPQ, XCAP и хуй знает что еще.
>>1992744 В проде выше 14 вообще редко где встречается. 17 и 20 нужны только чтобы на собесах выглядеть бодрее. Иногда банально нет нормального компилятора под устаревшее железо. Иногда ведущим прогерам не особо всралось чё там опять навыдумывали. Ещё есть чехарда типа before c++14 так, since c++14 сяк, after c++14 хуяк (зачем использовать инструмент, если он раз в 3 года меняется, а порой улетает в deprecated). Ну и основное, что в плюсах любой хуйнёй можно ногу прострелить себе, ему и вон тому парню, поэтому вменяемые кодеры молодых и шутливых с с++20 сразу шлют нахуй.
>>1992665 Именно вкатываться - нет. Сейчас проекты пишутся сразу на нескольких языках, поэтому в одну и ту же тематику можно через любое место заехать, а потом переобуться. Вкатывайся в пихон или джаву - там банально больше платят. Работа на пихоне часто соседствует с работой на плюсах.
>>1992898 Ну да, ну да в 2018 году c++17 вышел, а с++20 в середине 20-го. Что там у тебя за прод такой, что ты его менее 2 лет писал? Или вы там навалились и всю кодовую базу на новый стандарт перекатили?
>>1992909 >Или вы там навалились и всю кодовую базу на новый стандарт перекатили? Заменить -std=c++14 на -std=c++17 и в паре мест сделать s/auto_ptr/unique_ptr/ - не то что бы очень сложно или долго.
>>1992925 Ну тут по настроению. Обычно к концу вузика очень нужны деньги. Хату снять, тянку заинтересовать, поехать мир посмотреть. С плюсами ты тоже будешь иметь денежку, но сильно не разгуляешься.
>>1992931 На данный момент да. Вообще деньги там, где есть работа с иностранцами (до короны ещё командировки были). На плюсах тоже такое бывает, но это чаще топ тир типа nvidia, huawei, intel и прочих.
>>1992926 Депрекейтили да, а перестать компилироваться код с 17-ого стандарта начал. Или для тебя "писать на 17-м стандарте" значит сразу весь код переделать с новыми фичами, иначе не то?
>>1992933 Алгоритмы на питоне пишут (и иногда потом портируют на с++ чтобы быстрее работало). Всякий ML, нейронки и прочее на питоне сейчас. Java это enterprise - всякая корпоративная хуйня по управлению ресурсами компаний (документооборот, ERP системы, складское по...). Там нужно писать всякую заумную логику, которая нужна заказчику. Алгоритмов там мало. Есть ещё мобилки на java/kotlin - там поинтереснее.
>>1992944 Мобилки интересное направление? Под алгоритмами я кстати имел ввиду всякие сортировки, обходы графа и прочую красоту. А что сейчас с мобилками? Хорошее направление для вкатыша в плане тасков и денег?
>>1992939 У меня были недавно траблы, когда коллеги накатали на 17 стандарте, а тулчейн одной из целевых железок его не вывозит. Сидел ковырял ебучий стандарт, в котором оказалось, что фича не компилится из-за before 17 and since 17.
Писать на 17 стандарте, это когда у тебя активно используются наиболее полезные нововведения (filesystem, string_view и from_char/to_char, распараллеленные алгоритмы, std::any ...).
>>1992946 Спроси в android треде. На плюсах обычно оптимизацией под мобилки занимаются (допустим когда игры портируют и там больше не алгоритмы, а возня на границе структур данных и аппаратной части).
>>1993064 >>1993066 Спасибо за ответы, но я имел в виду функции с различными сигнатурами. Допустим, я хочу, чтобы одним элементом мапы была void функция без параметров, вторым - int функция с параметрами double, float и т.д.
>>1993091 Ладно, изложу задачу: программа должна парсить строки, в которых даются команды. Например, имеем файл: get pet play take Каждая подразумевает определенный уникальный алгоритм. Я решил написать n методов с такими же названиями, т.е. методы get(), pet(), play(), take() и загнать их в мапу вида <string, функция>. Таким образом, если мы получили строку pet, то будет вызываться функция pet() и т.д. Можно сделать через свитчи, но код получится хуево масштабируемым и медленным. Методов может быть сотня. Однако вариант с мапой походу нерабочий, так как сигнатура у каждой функции разная. Какие еще могут быть варианты для решения такой задачи?
>>1993107 >какие еще могут быть варианты для решения такой задачи? Если общее решение, то это стейт-машина. Возможно, у конкретно тебя, прокатит что-то попроще.
В любом случае расслабь булки: за один вечер не осилишь.
>>1993122 Сорри, не дописал и случайно нажал отправить. Можно пойти путём Джависта и сделать класс Function, который принимает массив объектов Parameter. И каждая твоя функция будет обёрнута в этот класс и сама проверять и разворачивать параметры. Но вообще >Можно сделать через свитчи, но код получится хуево масштабируемым и медленным Через свитчи все виртуальные машины работают, не должно быть долго. Читал недавно, что threaded-code (оптимизация над такой структурой) даёт всего несколько процентов на текущих системах, поэтому не должно быть медленно.
>>1993118 стейт-машина - это делать enum команд и через свитчи вызывать нужную функцию? >>1993123 Честно, нихуя не понял первый способ, можешь в виде кода написать, как это примерно должно выглядеть? Но я так понимаю, что надо делать свитчами
Какое же говнище этот Asio, просто пиздец. ИО-сервисы, аксепторы, эндпоинты, асинк, несколько способов обработать ошибки, хуй проссышь. Никаких ламповых connect/listen/accept/send/recv. Как это вообще в хеллоуворлде юзать, у меня же не хайлоад сервер мморпг с сотнями команд, а учебная приложуха. Слишком сложно, ниасилил.
>>1993155 Ну тут дело не в лишних тактах цпу, а в том, что если у тебя будет 1000 методов, а потребуется самый последний, то тебе придется проходить через тысячу кейсов. В то время как unordered мапа даст O(1)
>>1992909 Когда мы писали прод в 2017, у нас был experimental filesystem и костыли вместо structured bindings, Когда мы переехали на 17 стандарт - мы просто все TODO починили, убрали эксперимент фс, и активно начали пользоваться ништяками типа if constexpr, structured bindings, и прочей милости.
Как переедем на 20 - сразу же весь проект переведем на модули (проебем прилично времени, но нам разрешают), и активно будем юзать std::format.
Проду - 6 лет. Я лично его переводил с 11 на 14, и с 14 на 17.
>>1993158 >Как будет выглядеть класс Action? Как пожелаешь, так и будет. Главное, что ты все сумел обобщить в одну сущность и Страуструп тебе больше не ебет мозг со своей проверкой типов.
>>1993159 >если у тебя будет 1000 методов, а потребуется самый последний, то тебе придется проходить через тысячу кейсов Свитчи, в которых выбор делается по набору интов в каком-либо непрерывном диапазоне, компилируются в jump table, что есть O(1) и очень и очень быстро.
>>1993161 Ты конечно знатный сиделец, что 6++ лет на одном месте продержался. Это и дало тебе возможность портировать проект, потому что ты знал в нём все входы и выходы. В реальной жизни часть кодовой базы тебе не известна и даже тестами не обложена. Не говоря о том, что кто-то что-то там закладывал в виде experimental. Ещё надо обосновать переезд, выбив под это время и деньги.
Почему const методы начинают возвращать const значения, даже если те не являются таковыми?
Пример: class A { public: int m = 5;
int& getM() const { return m; } // 1 const int& getM() const { return m; } // 2 };
Вариант 1 не сработает, будет ошибка пикрил, мол, нельзя const int передавать в неконстантную ссылку. Хотя m у нас константой не является. Выходит, мы помечаем метод словом const, то компилятор делает (или расценивает?) возвращаемое значение из этого метода как const? И где про это можно почитать?
Из отладочных символов в готовом бинарнике можно выпилить имена классов и методов? Или это чревато? В VS 19 все что можно - включал, все оптимизации, но в отладчике все равно имена классов и методов как на ладони. Может другой компиль попробовать, или там так же?
Страуструп(Бьярне Страуструп - Программирование. Принципы и практика с использованием C++ (2016)) или Липпман(Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му - Язык программирования C++. Базовый курс - 2014)?
>>1994226 да я юзаю x64dbg, заебали. Точно. Ведь экзешник содержит путь к локальному файлу pdb, и отладчик его подтягивает, куда не перемещай бинарник, хоть в жопу себе запихни.
>>1992946 Помню, видел на хх подходящую тебе вакансию - математик-программист для онлайн казино. Рофлы рофлами, но там скорее всего минимум проги и максимум матеши - теорвер, матстат, дискретка. Мб и оптимизации тоже, т.к. стек был c++/жаба
>>1973041 (OP) Унижения крестоёбов бесконечны: >C++ developer >Локация: Санкт-Петербург >Высшее техническое или математическое образование (магистратура), существенным плюсом будет обучение в аспирантуре или наличие PhD. >10+ опыт работы в проектах, связанных с разработкой высоконагруженных сервисов >Зарплатная вилка: 150-350 т.р.
>>1994659 >10+ опыт работы в проектах, связанных с разработкой высоконагруженных сервисов >существенным плюсом будет обучение в аспирантуре или наличие PhD.
>>1994640 cherry picking as is. Ты можешь таких же вакансий на любой язык понадёргать. Плюс это ДС2, там зп ниже на 20-25%, чем в московии. За 150к на такую позицию никто не пойдёт, даже нахуй слать будут (сам порой отбиваюсь от таких "работодателей").
>>1994783 Есть целый пласт вакансий на удалёнку, где ушлые масквичи ищут лошков подешевле. Не обязательно на плюсы. А ещё залётные из всяких НиНо и Новосибирсков на fullstack за 120к.
Анон, можешь помочь с регуляркой для строк типа: "name: xxx dob: 23.09.1235 time: +12:34:45 up: never kdd: P1D->324 tdd: n g 1/3 и т.д. + мусор в конце" Имена перед символом ":" могут быть совершенно любые. Для одного значения я написал такую "\\s\\:\\s(.\\S+)", а как сделать для нескольких я вообще не знаю.
Сап программисты, помогите зеленому. Есть экземпляр класса Hero, ссылка на который передается в класс города City(пик 1). Он передается в метод EnterTheCity(пик 2), где после передается в метод EnterTheMarketPlace(Пик 3). Баг заключается в следующем: Все действия по изменению полеё к воспроизводимые над экземпляром hero в EnterTheMarketPlace пропадают, после возвращения в метод, которым он вызывался. Соррян за такой вопрос, понимаю что нужно знать код, чтобы фиксить баги, спрашиваю тут затем, что думаю, что ошибка возможна в передаче объекта класса в параметрах методов(хз как)
>>1996072 В энтерсити нужно передавать указатель или ссылку, а у тебя передается по значению, т.е. внутри этой функции действия выполняются над внутренней копией.
>>1996346 Ты выражения "Expand embrace extinguish" и "вендор лок" не знаешь? Они же не от всего сердца язык и экосистему делают. >смайлики Тебе тут не контактик
>>1994322 Конечно можно сказать что ты там нахуевертил, но чисто со стороны - охуел. У меня все тестовые были максимум на 2 часа кодинга и строк на 500. Правда я шарпоеб.
Мастера сиплюсплюса. Поясните за структуру в ваших проектах. Я вот хочу побаловаться с сиплюсплюсом и сделать простенький платформер. Ну так вот, я не совсем понимаю, как должна структура выглядить. А еще, что произойдет страшного если я в hpp файле буду сразу в классе хреначить реализацию? На других языках же вроде так делают. Я пока что вот такое вот решил использовать. Но думаю что надо бы делать правильно и как у вас принято, раз уж решил сиплюсплюс использовать. Потому - поясните за ваши бест практис по организации структуры прокета. Как отделяются клссы что должны быть доступны только в рамках проекта от тех что должны быть публичны ну и вообще, если не сложно.
>>1996420 Препроцессор c++ подставляет текст hpp файла в те места, где он включается. Соответственно если ты что-то в hpp меняешь, то все cpp, в которых есть include, нужно перекомпилировать. Поэтому в hpp обычно реализацию не пишут (кроме шаблонов, где по-другому нельзя).
>>1996588 Единственное, зачем мелкософты создали шарпы - чтобы ты не перешёл к Sun (ну или к Ораклу сейчас) и, Господи прости, на какой-нибудь Solaris.
Матерые эмплойщики подскажите, а через сколько после собеса могут офер предложить? Есть какая-то стандартная практика? Или обычно если через час там не перезвонили, то мимо крокодил?
>>1996735 Когда как. Один раз в тот же день позвонили (хотя сказали, что нужно посовещаться с каким-то челом, который из отпуска только через неделю выйдет - наверное так он и не вышел), один раз ~через 5 рабочих дней.
>>1977312 В стабильном Дебиане всё древнее в целях стабильности (а testing для экстремалов), поставь лучше производные убунты, например Xubuntu (хоть в виртуалку) или Mint. Самый простой и привычный дистрибутив, в котором всё есть и довольно свежих версий. В Дебиане компилятор будет как говно мамонта, где древние глюки давно исправлены. А какие-нибудь библиотеки с гитхаба заебёшься им собирать. В Ubuntu можно через ppa поставить белое свежие компиляторы и библиотеки, если уж совсем припрёт.
Наверное, платина, но как ньюфаг спрошу. Есть метод,возвращающий маршрут между городами vector<City> getRoute(City&, City&); В него как-то вложен метод, возвращающий путь в графе: vector<Vertex> getPath(Vertex, Vertex); находящий путь между 2мя вершинами.
Если пути нет, оба этих метода должны сообщить клиенту (в разной форме) причину Как это лучше всего сделать? Завести две структуры вроде PathSearchResult и RouteSearchResult? Кажется громоздко.
Кидать исключения? Но ситуация вроде бы не тянет на ошибку.
>>1997131 Возврат кода результата, возврат структур, эксепщоны - Choose your poison, как говорится. Делай как покажется удобным. Если есть доступ к 17му стандарту, то можно посимпатичнее сделать со structured binding. На моей рабочей кодовой базе очень часто встречаются функции, возвращающие буль и дергающие пачку не-конст референсов. Мне это не очень любо, сам предпочитаю для простых наборов данных вернуть простую структуру с флагом успешности операции. 17ых плюсов нет, потому не так симпатяво как хотелось бы.
Заебало, уже 4ый день пытаюсь собрать libcxx для clang, чтобы библиотека std заработала. В cmake все сконфигурировал, вроде, ошибок нет, генерация файла сборки (Ninja) тоже без ошибок. Начинаю собирать, все успешно (с несколькими warning'ами), но на 217/219 исходнике, где начинается сборка потоков (файл libcxx/src/support/win32/thread_win32.cpp), начинаются error'ы. Их много, но по порядку: самыми первыми начинают обсираться вот эти и подобные им ассерты: >E:/dev/libcxx/src/support/win32/thread_win32.cpp:20:50: error: static assertion failed >static_assert(sizeof(__libcpp_recursive_mutex_t) == sizeof(CRITICAL_SECTION), ""); Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/src/support/win32/thread_win32.cpp
А все потому что __libcpp_recursive_mutex_t (которая определяется в #include <__threading_support>; путь libcxx/include/__threading_support) имеет размер 8 байт, а размер CRITICAL_SECTION (которая в windows.h где-то, и является надстройкой typedef _RTL_CRITICAL_SECTION CRITICAL_SECTION) имеет размер 40 байт. Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/include/__threading_support
Далее, смотрю содержимое файла __threading_support, внутри которого есть конструкция из директив #if / #elif / #ifndef и макроса defined(), выглядит это так: https://pastebin.com/N2QgtQ5h Здесь самое интересное то, что происходит внутри _LIBCPP_HAS_THREAD_API_EXTERNAL, где для каждой архитектуры (моя должна быть __x86_64__) объявляется нужный размер для той самой __libcpp_recursive_mutex_t. В данном случае это переопределение типа указатель на массив размером 5 типа void, что как-бы намекает на тот самый ассерт, где сравниваются размеры __libcpp_recursive_mutex_t и CRITICAL_SECTION, и на то, что в этом случае ассерт должен пройти, т.к. размер void равен 8 байт, а т.к. это еще и массив из 5 элементов, то 40 байт, что равно sizeof(CRITICAL_SECTION).
Но! Проблема в том, что я в эту область при компиляции не попадаю и мой sizeof(__libcpp_recursive_mutex_t) == 8. Я начал проверять конфигурацию в cmake gui, вот список моих настроек: https://pastebin.com/19ZN610p В нем есть шесть переменных с моими настройками потоков: 1. LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF 2. LIBCXX_ENABLE_THREADS:BOOL=ON 3. LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS:BOOL=ON 4. LIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF 5. LIBCXX_HAS_PTHREAD_API:BOOL=OFF 6. LIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF
Теперь, возвращаясь к файлу __threading_support и имея вышеупомянутый набор переменных, я пытаюсь поймать момент, когда я смогу попасть в необходимый _LIBCPP_HAS_THREAD_API_EXTERNAL. Работоспособность и реакцию на различные настройки этих переменных я проверял с помощью добавления ассерта_static(0, "") в интересующую меня область. По порядку: 1. LIBCXX_ENABLE_THREADS влияет на работу условия #if !defined(_LIBCPP_HAS_NO_THREADS) 2. далее, первым должно проверяться условие #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) и оно выполняется почему-то всегда, даже если LIBCXX_HAS_PTHREAD_API:BOOL=OFF 3. следующее условие #elif defined(_LIBCPP_HAS_THREAD_API_C11), оно наоборот, не срабатывает никогда (честно, я даже не знаю, связано оно как-то с переменной LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS или нет) 4. наконец, условие #elif !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL), тут все не совсем ясно, если я отключаю все, кроме LIBCXX_ENABLE_THREADS и LIBCXX_HAS_EXTERNAL_THREAD_API, то появляется уже новая ошибка на 180/219 исходнике во время компиляции: >E:/dev/libcxx/build/include/c++/v1/__threading_support:23:11: fatal error: __external_threading: No such file or directory >#include <__external_threading> Я пытался найти этот файл, но его нигде нет, даже в исходниках директории libcxx/src/src/..., тут замечу, что файла нет уже в директории, где библиотека собирается - libcxx/build/include/c++/v1/__threading_support
В общем, я пытался жонглировать разными настройками перемнных для потоков в cmake, но ничего из этого не вышло.
Моя конфигурация: OS: Windows Arch: x64 Compiler: gcc, g++ (порт под винду mingw-w64 с posix потоками <pthread.h>, целевые сборки которого i686-w64-mingw32 (32-bit) и x86_64-w64-mingw32 (64-bit)) LLVM ver: 11.0.0 (от туда же и библиотека libcxx https://github.com/llvm/llvm-project/tree/llvmorg-11.0.0)
П.С. Казалось бы, раз порт mingw настроен под posix потоки, достаточно просто включить LIBCXX_HAS_PTHREAD_API:BOOL=ON, но нет. Нельзя просто так взять и собрать библиотеку, хотя llvm и clang были собраны успешно.
Зеленый опять выходит на связь. Не до конца понимаю принцип работы с ссылками и указателями, пожтому прошу вашей помощи. Посмотрите пожалуйста на данный пример говнокода. Прогга должна возвращать вектор объектов класса, чтобы использовать их в другом классе, однако return mercenaries вызывает Segmentation fault. Подскажите пожалуйста, в чем может быть ошибка?
>>1997376 Ты возвращаешь ссылку на вектор, создаваемый функцией на стеке и уничтожаемый после выхода из нее. Возвращай по значению, после 17 стандарта это оптимизируется.
>>1973041 (OP) У меня есть два года опыта плюсов. Сейчас есть компании, которым нужны такие спецы? Я типа уже мидл, кста? А то думаю свалить из своей компании нахуй.
>>1997590 На проекте бекендом занимался. Логикой всякой там продуктовой. Иногда АПИ писал, иногда просто в коре чето делал. Ну, допустим, если сильный джун. Могу я расчитывать в другой компании на зарплату выше 1к$? Чтобы я понимал имеет ли смысл вообще рыпаться.
Гайс, не могу заставить проггу работать в консольке, билдится нормально, но при открытии экзешника пик. Как фиксить? Комплиятор - Mingw. при закачке этих файлов и ручной установке их программа грит, что необходимо переустановка, при переустановке повторяется та же история.
Почему нельзя объявить глобальную переменную, а затем присвоить ей какое-то значение? Обязательно надо инициализировать её, либо делать присваивание уже в блоках кода? Прикладываю пример.
>>1998621 Потому что нельзя вне метода/функции выполнять операции, которые не являются инициализацией. Ты же не можешь вне метода/функции написать cout<< "[eq"<<endl? Вот здесь та же морковь.
>>1998641 >>1998657 Я правильно понимаю, что буквально всё, что мы можем сделать вне блоков кода, это только объявлять и определять объекты? И я так и не увидел ответа на вопрос почему, вернее сказать, для меня ответ нельзя это неполный ответ.
>>1998836 >Я правильно понимаю, что буквально всё, что мы можем сделать вне блоков кода, это только объявлять и определять объекты? по сути - да >И я так и не увидел ответа на вопрос почему, вернее сказать, для меня ответ нельзя это неполный ответ. такой синтаксис, стандарт языка. Ты всегда можешь написать свой компилятор, с блэкджеком и шлюхами
>>1998836 Код в функции выполняется когда вызывается функция. А когда должен исполнятся твой код? А если его много в разных местах файла? А если много цпп файлов с таким кодом и работают они с одними и те же данными? А если это вообще код в статически или динамически подключаемой библиотеке?
Столяр - это говно. Только время потеряешь. К тому же этот чудик зашифровал свои книги так, что из них никакой текст скопировать нельзя. Т.е. хочешь пример кода из книги скопировать к себе в IDE, а хуя - на выходе будет не код, а мусор.
Есть задача очень быстро выгружать странички из интернета (только GET/ os: Win10), у кого был опыт работы с подобным, какой инструмент можете посоветовать? Wininet / Winhttp / boost / sfml / ... ? Может быть у кого завалялись статьи/гаиды. Сейчас через Wininet выходит около ~0,8-1 сек. на страницу... не очень хочется распараллеливать выгрузку
>>1973041 (OP) Начал писать на крестах скетчи для ардуино, для управления шаговыми двигателями @ час не мог понять, почему, когда я задаю больше колличество импульсов, двигатель делает меньшее количество оборотов @ в результате проблема оказалась в типе int, в который указывал количество импульсов и умножал это на микрошаг, а моём случае на 16 @ в результате на выходе получалось обрезанное число, и не возникало никаких ошибок, просто число обрезалось, чтобы уместится в тип int @ мне страшно представить, если подобная ситуация возникнет на каком-нибудь ядерном реакторе, короче типизация может быть опасной
>>1999193 >типе int, в который указывал количество импульсов и умножал это на микрошаг, а моём случае на 16 >типизация может быть опасной Зато мы нашли причину проблем! Чертов инт, убрать его везде.
>>1999248 кек ну тогда получается, что на каждый пук нужно создать новую переменную которая будет принимать произведение двух чисел, а просто подставит как в моём случае микрошаг к переменной в которой указано кол-во импульсов нельзя, и в итоге мы получим лапшу из сотен переменных, нормально наверное писать такой код, когда ЗП почасовая
Аноны, произошла какая-то хуйня. В общем, реализовал дек (двустороннюю очередь) через указатели, с примитивными типами данных работает нормально, но если пробовать засовывать туда строки, то всё идёт по пизде (пик1), после ретрая указывает на место в коде в пике2. Я пробовал создавать динамический массив стрингов отдельно и удалять его, и там всё было ок, но почему-то именно в этой функции всё идёт по пизде. Подскажите, где я опять обосрался, а то весь день уже ебусь, нихуя понять не могу.
>>1999412 >Если у Type нет дефолтного конструктора У строк есть.
>Если Type не POD Вот по этому поводу у меня было предположение, что со сложными структурами memcpy() не работает. В таком случае использовать std::copy? Или как в таком случае вообще копировать данные из одного участка памяти в другой?
>К моменту выполнения этой строчки ты уже пошел нахуй. Ну это понятно, иначе бы ошибки с памятью не повалились бы. Просто не совсем понятно, как фиксить.
>>1999413 >создал в функци тип, удалил его Удалил динамический массив объектов в данном случае же. Почему это не должно работать? В противном случае будут утечки памяти или я опять пидорас и что-то перепутал?
>>1999426 По нормальному, твой контейнер должен хранить не массив Type, а массив байт, в частности std::aligned_storage или его самописный аналог. (да, я же еще к memory alignment забыл доебаться) И не копировать туда, а вызывать конструктор копирования/перемещения на нужном участке с помощью placement new. А перед освобождением вызвать у каждого элемента деструкторы. То есть контейнер управляет временем жизни своих элементов.
>>1999454 Не проще Type тогда в vector хранить, чтобы не городить велосипед? Просто то, что ты предлагаешь в качестве решения, слишком сложно и муторно лично для меня, а сделать с этими ёбаными деками надо ещё кучу всего.
>>1999475 Проще, но есть один нюанс в лабе написано, что классы стека и дека надо реализовать самому)))0)))0) и при этом они должны хранить строки))))0000))))0)))0))))0000
лол и разрешить это не так просто как кажется, нужно прямо вот так:
long stepsToGo = 2500L * MICROSTEP;
>2500L
L там для левого числа, что бы показать компилятору, что это тоже long
что удивительно, код отрабатывает без выброса ошибки и как в случае на скрине, и так же в случае попытки типизации, но без L после числа @ это такие особенности крестов, или конкретно среды ардуино?
вот эта хуитка, как я понял, может в себе содержать инструкции, которые указывают на переменные из родительской области видимости, как я понял, лямбда в крестах по умолчанию нихуя не видит переменные из своего контекста, их нужно указывать в этой хуитке вроде как
>>1999673 Дефолтные размеры типов платформо зависимы, например лонг инт на винде 32 бита, а на линуксе 64, на ардуине хз сколько. Если пишешь для ядерного реактора - указывай везде явные размеры.
ё, Анон, я сейчас поговорил с одним коллегой, который тоже угорает по крестам, и у меня возникли вопросы
почему ардуино выдает при умножения двух чисел, которые не вошли в границы типа int отрицательное число, конкретно в моём примере, если 2500*16 получается -25536 @ что это за число, как оно получается? Архитектура чипа 8бит, если это как-то поможет найти ответ.
там указаны для типа int границы -32,768 до 32,767
вот, если ожидаемый результат в 40000 отнять 32767, то остаётся 7233
и если теперь -32,768 прибавить 7233, то мы получим -25536
ок, всем спасибо @ лол я боюсь спросить, а почему именно остаток прибавляется к нижней границе типа? @ это просто как типо чтобы всё пошло по кругу, без всяких там проблем и заморочек, где это прописано в спецификации крестов, можно ссылочку?
-25535 на самом деле если считать как я, но алгоритм работы компиляции я понял похоже верно, и единица уходит на округление или ещё куда-то, вангую это не существенно
>>1999272 >пок пок пок >For example, an unhandled arithmetic overflow in the engine steering software was the primary cause of the crash of the maiden flight of the Ariane 5 rocket
всё эпичнее чем ты думаешь Маня...
это кстати из спеки языка, которую я искал тут >>2000440
>>2000483 спасибо, теперь я знаю вроде особенности типа данных int в крестах
кек на очереди узнать как работает массив
Такой вопрос, а в крестах есть что-то похожее на объекты как в жс? @ Чтобы я мог декларировать объект например с именем stepperMotor и использовать его для хранения состояний без всяких заморочек, или тут всё по хардкору, нужно пилить класс stepperMotor, и потом наследовать в класс, например extruder?
И я же правильно понимаю, что в крестах нет мульти наследования, т.е. каждый класс можно делать extend одним, и только одним классом?
>>2000556 Эээ Возможно мы говорим про разное, но кресты это вроде единственный мейнстрим язык с множественным наследованием (не интерфейсов, а вообще всего)
Также это сказано и по твоей ссылке: > When signed variables are made to exceed their maximum or minimum capacity they overflow. The result of an overflow is unpredictable so this should be avoided. A typical symptom of an overflow is the variable "rolling over" from its maximum capacity to its minimum or vice versa, but this is not always the case. If you want this behavior, use unsigned int.
как по мне, это овер гибкая и понятная архитектура приложения
как я вижу ситуацию в своем проекте с шаговыми двигателями и крестами @ в общем у каждого шаговика есть концевики, которые нужно опрашивать беспрерывно на фоне работы двигателей и есть ещё некоторое оборудование, которое тоже нужно опрашивать беспрерывно, чтобы когда сработает какой-то концевик, то основной цикл микроконтроллера loop должен продолжить выполняться, и эти статусы от концевиков должны быть переданы инстанциям, которые являются абстракциями шаговиков @ эти инстанции полученные из соответствующего класса будут содержать в себе поля для записи статусов и некую логику, которая будет реагировать на статус и затем влиять на работу других инстанций @ влиять в плане, я думаю запилить некий messages layer, куда логика инстанций будет скидывать команды или статусы, которые будут "слушать" другие инстанции и как-то реагировать согласно своей логики
Получается, что мне нужно запилить один класс для концевика и один класс для двигателя, потом нужно один класс для оборудования, но у нас в сумме 5 концевиков и 3 шаговика, как наследовать от трёх классов для 8 физических объектов инстанции, я это смутно представляю, а вот как сделать композицию из этого всего я вижу вполне чётко
>>2000891 >овер гибкая Всегда проигрываю с "гибкости". Типичная ситуация, когда писатели не видят дальше своего носа, поэтому делают "гибко". В итоге получается безликое нагромождение абстракций, которое еле-еле держится на ногах.
Вопрос, имеет ли смысл вкатываться в плюсики, если хочу заниматься не рисованием формочек в qt, а заниматься бекендом или даже хуйлоадом? По последнему вакансий маловато, в основном яндекс и на этом все. Или лучше взять какой-нибудь мейнстримный язык вроде джавы или жс, и уже пытаться на нем въехать в ит? Собственно я и учил жабу, спринг, хибернейт и т. д., но не понравилось - по факту занимаюсь только тем, что перетягиваю данные из бд во вью и назад, используя кучи аннотаций, а программирования как такового и вовсе нет.
>>2000965 Шаблоны действительно ушли в прошлое. Хайп пришёлся на 2007, потом пошёл на спад. Сейчас можно увидеть конструкции отдалённо похожие на, но в чистом виде уже шишек набили. Одна из проблем - слишком вязкая система получается, чтобы её нормально дебажить, рефакторить и расширять. Другая - в большинстве случаев шаблон костылями подпирается под текущие реалии, что вызывает анальные боли у тех, кто потом его использует или пытается осмыслить. За тот же синглтон с фабриками можно нынче и по ебалу получить.
>>2001395 Именно стандарт на c++ (официальная документация) для всех платный. Поэтому существуют сайты подобные cppreference с бесплатной выжимкой из стандарта.
>>2001395 Чел, ты вообще непонятно что хочешь. Начинаешь про шаговые двигатели и управление железом, потом перескакиваешь на бэкенд, а потом уже на sdk ко всему этому. Все эти три штуки пишутся абсолютно по-разному.
>шаговики, двигатели, микроконтроллеры это С с классами без виртуализации, наследования и ексепшенов
>один класс для концевика и один класс для двигателя это объектный бэк, скрывающий работу с железом в C++ классах. делается в виде смеси функционалщины и ооп.
>как тогда структурировать код это уже про sdk. тут либо на чистых функциях и структурах либо на шаблонах и опп с паттернами (то, что ты привык видеть в Java)
Ну и наконец >чем-то похожего на 3д принтер подобные железки работают на базе g-code и ты видимо вообще не в ту сторону воюешь.
>>2001515 Для совместимости с си при передаче массива в функцию он декеится до указателя, и его сайзоф внутри функции всегда будет размером указателя. Чтобы избежать этого используют стд аррай или обертки вокруг массива типа спан.
>>1973041 (OP) Почему найти работу с++ программистом сложнее чем С#. Я 2 года прогаю на плюсах, вроде хорошо и глубоко знаю, а на собеседованиях спрашивают ебанутые впоросы на которые хуй ответишь. Когда на Шарпе простые вопросы по спрашивали, спросили про паттерны и работу предложили с ЗП выше чем у плюсистов. Почему?
>>2001729 Потому что рыночек. 1. Существенная часть вакансий это российское производство. Денег там как не было так и нет. Ждать, что оно на самоподдуве начнёт выходить на внешние рынки и расти без адекватного государственного участия просто наивно. 2. Плюсы долгое время теряли позиции по целому ряду направлений в пользу других языков. Соответственно предложение сократилось, а конкуренция среди работяг выросла. 3. На плюсах нынче важна специализация (по которой задают ебанутые вопросы), что мешает перекатываться между вакансиями. Вы знаете фильтры калмана, алгебру и стат моделирование? Нет - идите нахуй, у нас тут сигналы обрабатывают, а сетевое взаимодействие и микроконтроллеры ваши нам нахуй не всрались. 4. C# это часто энтерпрайз - там в принципе нельзя изучить предметную область. Ты приходишь на проект и месяц вникаешь в ебанутую логику очередной десктопной ERP системы. Собственно знание языка и паттернов это всё что надо знать.
>>2001747 Ну то есть получается замкнутый круг. Предприятия вузу - нам надо столько-то молодых спецов. Вузик - обучил, люди пришли поработали годик за 30к с дедами, клептократами и прочими в проперженом офисе по графику с 9 до 18 и съебали в ужасе. Предприятие снова - нам не хватает кадров. И так из года в год строится учебная программа.
>>2001010 C++20 компиляторы пока толком не поддерживают.
По С++17 на русском есть краткий курс Страуструпа (но это не учебник, а беглый обзор) и пара книжек по STL 17 (но это только про STL, а не про язык в целом). Короче, нет на русском.
Есть тор сервер и я хочу подключиться к нему со своей машины. Норм ли обмениваться сообщениями через get/post запросы или есть более подходящие для этого средства?
лол что значит можешь? @ кресты по умолчанию стандартный ЯП в экосистеме ардуино, вот это поворот, да?
>>2001788 началось, слабая, конкретно этой нано-пердуинки хватает для управления тремя осями станка и ещё останется несколько свободных пинов, куда можно подключить оборудование @ у неё минимальное временное разрешение в основном цикле 4 микросекунды, это хватит для управления даже ядерной ракетой, которая будет лететь на гиперзвуковой скорости @ насчёт языка, смотри ответ чуть выше в этом посте
>>2001843 Так это типичное розовощёкое начало. Пок пок пок, у нас ещё пины есть и микросекунды. А потом под лупой код будешь колупать, чтобы ещё где-нить ресурсов наскрести (оптимизация на ассемблере, виртуализация - удоляем, ексепшены удоляем, стандарт кода сползает до с++11, оказывается что есть годные либы на С, которые вы сами навелосипедили на С++).
>>2001861 с++ в экосистеме ардуино стандартный, в плане по дефолту, под который есть сразу IDE с коробки, но есть возможность сделать так, что бы можно было писать код на любом языке, но я не хочу даже пытаться это сделать, так как на крестах для ардуины есть уже все либы и куча гайдов на ютюбе @ пример, ЖС на ардуино вместо крестов: https://flaviocopes.com/johnny-five/
>>2001873 спок, если мне буден мало этой нано-ардуинки, там ещё есть мега, у неё достаточно ресурсов и пинов для постройки целого робота, а не просто станка с 3 шаговиками @ такая ситуация как ты там себе нафантазировал, может возникнуть, если в дальнейшем я решу допилить туда дисплей, но это вроде как и не нужно
пацаны, а как найти первую работу на плюсах? сижу почитываю мейерса, решаю изи задачки с leetcode, но настоящего кода не видел и кажется занимаюсь хуйней вместо того чтобы получать какой-то опыт настоящей разработки. по вакансиям всем нужны мидлы\сеньеры. как вообще начать работать хоть за еду? или забить на плюсы и начать учить питон? я из хохляндии если что, так что свои НИИ не предлагайте
Тестил подключение к тор, но произошло что то удивительное. Когда собираю в релизе, то вижу пик 1,а в дебаге пик 2. Как возможно такое, что код по разному работает в зависимости от типа сборки? И что делать? Код https://pastebin.com/eGizLebw
Кто ниубдь занимался автоматизацией установки кучи программ? Вот есть куча exe, я не хочу на каждом из них 10 раз кликать далее, а просто хочу написать прогу, которая сама установит мне все в нужный мне путь. Как это сделать?
Почему общепринятой практикой не является написание в таком стиле: class MyClass { bool flag1 : 1; bool flag2 : 1; // ... } ? Или является? Экономия памяти же налицо, почему всегда не писать так?
>>2003240 Чем больше ты сэкономишь на памяти - тем меньше сэкономишь на процессоре. Проц быстрее всего работает с байтами, а не кучей побитовых операций. Ну и это экономия на спичках, обычно у тебя не насколько булов, а куча указателей, строк, массивов и прочего.
>>2003240 Реализация битовых полей зависит от компилятора и может быть проблемой для совместимости. И нельзя взять их адрес или сделать нормальную ссылку.
>>2003240 Память ты так не сэкономишь. Структура будет выровнена на размер машинного слова. Даже если и нет, то минимальный размер объекта будет 1 байт - минимальный адресуемый объём памяти. У твоих полей нельзя взять адрес и сделать на них указатель.
>>2003185 С++ относится к семейству C-family. Из этого семейства я писал код на 6 языках. Python туда не входит в принципе, хотя и был "создан под влиянием".
>>1975361 Приходится иногда писать на C# и сложно перейти с плюсовой модели памяти на модель памяти .net, не привык вызывать конструктор вместе с оператором new.
>>1976614 Прямых путей мало, или через winapi получаешь размер экрана консоли и отлавливаешь символы через cin, обновляешь экран консоли путем полного засирания его новой картинкой, либо юзаешь getch (который вообще POSIX насколько я знаю, Windows не POSIX совместима).
>>1978161 Невозможно присвоить массиву initializer_list. Для C-style массивов не определены конструкторы копирования перемещения и вообще любые RAII фичи, потому вторая строка вообще недопустима. Если хочешь юзать C++11 фичи переходи на std::array.
>>2004021 Чтобы .hpp файлы не раздувались. Если от инклюд необязателен, как в случае, когда нужна только ссылка на объект, то лучше его не делать, так как это может привести к большим заголовочным файлам и медленной компиляции больших проектов.