Вместо шапки — https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы:- http://en.cppreference.com/w/- http://www.cplusplus.com/reference/Прошлый: >>1169708 (OP)
Как скачать файл одной командой, без winapi и тяжёлых библиотек типа curl, wget. Есть ли специально заточенная под это библиотека?
>>1181872Писать самому. Или отправить команду на скачку через system();
>>1181872http://cpp-netlib.org/
>>1181879ofs << static_cast<std::string>(body(response)) << std::endl;Я должен быть сеньором чтоб эту строчку понять? Из примера simple wget
>>1181883Даже не старайся.
>>1181891ПостараюсьЯ ее впишу, что она делает мне похуй
>>1181883В этой строчки ничего сложного нет. Ты видимо C++ мало учил или наверное не понимаешь как устроен http.
>>1181899> не понимаешь как устроен httpА то ты RFC вызубрил и сходу можешь назвать ключевые отличия HTTP/1.0 от HTTP/1.1
>>1181900Да.
>>1181901Молодец
>>1181899Видимо ты правПойду учить
Ди наху э
>>1181872Это curl то тяжёлый, блеать?Ну ок, пиши сам. Если линупс - всего то, создаешь клиентский сокет, биндишься к нужному адресу (если адреса нет - то ещё ресолвишь его, коннектишься, составляешь ручками GET запрос, ручками парсишь ответ, сохраняешь данные. Если там https то ты соснул, руками это не написать, а openssl таки тяжёлая.
Сап. Есть такая строчка в мануале по OpenCV: CVAPI(IplImage) cvQueryFrame( CvCapture capture );Таки CVAPI - это просто тип указание? При подстановке в код не конпелируется.
>>1182056Это скорее всего какой-нибудь макрос, который подставляет всякие атрибуты и прочее.
FTLK или wxWidgets? Или какая нибудь другая легковесная библеотека для графики? Или сразу нырнуть в бездну шинАпи?Чего поставить начинающему чтобы оно потом могло пригодиться и не испортило вкуса.Из задач - тетрисы там всякие графики хуяфики.
>>1182273C#
>>1182273Qt
>>1182273временами по работе приходится GUI на крестах пилить. Я ибав, если честно( особенно, если требуют WinAPI), однако, знаешь, навострился, а так удобнее qt или embarcadero Ничего не видел.
>>1182273Если чистый WinAPI, тогда бери GDI+, с ним можешь рисовать линии, прямоугольники, круглешки. И классы для загрузок картинок разных форматов там тоже есть. Короче все что нужно для мини игры типа тетриса.https://msdn.microsoft.com/en-us/library/windows/desktop/ms533797(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms533802(v=vs.85).aspx
Почему нихуя не выдаёт, после того как вынес в функцию#include "stdafx.h"#include <iostream>#include "string"#define CURL_STATICLIB#include "curl/curl.h"#ifdef _DEBUG# pragma comment (lib, "curl/libcurl_a_debug.lib")#else# pragma comment (lib, "curl/libcurl_a.lib")#endifstatic int writer(char data, size_t size, size_t nmemb, std::string writerData){ if (writerData == NULL) return 0; writerData->append(data, sizenmemb); return size nmemb;}std::string getFile(std::string url){ std::string content; curl_global_init(CURL_GLOBAL_ALL); CURL *curl = nullptr; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer); CURLcode code = curl_easy_perform(curl); curl_easy_cleanup(curl); } curl_global_cleanup(); return content;}int main(){ std::cout << getFile("https://curl.haxx.se/libcurl/c/htmltitle.html"); std::cin.get(); return 0;}
>>1182382Доебал со своими вопросами уже, неосилятор, может перекатишься на другой язык?
Зачем нужно xvalue?
>>1182382>getFile(std::string url)Где ссылки блять, питуз?
>>1182586А какая тут разница? Ну вызовется лишний move-конструктор (начиная с C++17 даже он вызываться не будет), делов-то.
Есть один виндоус сервер на котором должны проводится тесты гуя.Пока только начал над этим работать, написал простую программку с SetForegroundWindow и SendInput из Windows.hОна прекрасно работает, но ровно до того момента как отключится RDP-сессия. Алсо, тут есть легаси-программа, которой похуй на отключения от RDP, работает как часы. Но сорсов нет.Что делать? Есть ли что-то еще более низкоуровневое для отправки нажатий клавиш в окно? Мышь не нужна.
Есть платка с процессором и ОЗУ. К ней подключено внешнее ПЗУ. ОС нет. Программа переписывает какой-то программный модуль/блок из МПЗУ и запускает его.Вопрос: как это все организовать? Проект на плюсах.Я порылся в документации на линковщик, обнаружил ключевое слово overlay, с помощью которого можно обозначить секции, которые будут запускаться с одного и того же адреса, но по результате сборки будут лежать в другом месте.А как, например, указать входную точку каждого такого оверлея? В моем понимании один оверлей - это несколько функций плюс какие-то данные.
>>1182646Что за процессор?
>>1182686Rocket-chip на архитектуре RISC-V.
>>1182646Убедись, что у тебя адреса основной программы не пересекаются с адресами программы из ПЗУ, а потом смело перекатывай ПЗУшку в память и вызывай её по захардкоженным адресам, скастованным в указатель на функцию. Хидер с адресами генерируй автоматически из map-файла, создаваемого линкером при компиляции кода ПЗУшки (зависит от того, какой компилятор используешь). Если в оперативку всё не влезает, то опять бери map-файл и генерируй из него регионы памяти, которые можно подгружать отдельно.
>>1182911Я использую gcc.Как мне спарсить нужные адреса из map-файла в хидер? Получается, я могу сгенерить этот хидер только после сборки всего проекта, а тогда как его использовать?
>>1182971Почему всего проекта-то? Собирай бинарник для ПЗУшки первым, для остальной программы вторым. Хотя если есть возможность объединить код, то всё проще - читай мануал по ld, раздел Memory Layout, и отдельно про раздел SECTIONS. Линкер позволяет рассовать .o-шки по отдельным секциям, а секции - по заданным адресам. Потом просто разрежешь готовый бинарник на части и после загрузки недостающих частей в оперативку он будет работать как единое целое. Это примерно то, что ты имел ввиду когда говорил про оверлей, но оверлей - это такая устаревшая досовская терминология, сейчас это слово означает пересекающиеся адресные пространства.
Есть программа в 500 строчек на go. Стоит ли её переписывать на c++? Хотелось бы добавить пару функций. А прежний разработчик сдох
Почему вы до сих пор не перекатились на Rust? Работу в расчёт не берём.
>>1183264Менять одни костыли на другие?
>>1183264Зачем нужен раст, когда есть D?
>>1183345Затем, что GC не нужен.
>>1183264Потому-что я работаю на С++/thread
>>1183264Все более или менее приличные проекты, написанные на нём за 8 лет, влезли в 30 строк википедии. На hh целых 42 вакансии с потолком в 4к в москвабаде. Зачем вкатываться в такое дно?
Какую вторую книжку читать после страуструпа?
>>1183370Не нужен - не используй, @nogc в помощь
>>1183441Липпман, Майерс
>>1183432>/thread Питух?
>>1183460Сколько часов уйдет на осиливание?
И вообще, я тут постоянно замечаю, что тут сидят прям закоренелые эксперты, вы серьезные вещи можете сделать на этом языке, и не только?
>>1183504Мастера в своём деле, в левой руке "Hello, world!", в правой сортировка пузырьком.
>>1183466да
>>1183504Пишу на работе виртуализацию ФС. Серьезно достаточно.
>>1183504На одном языке серьёзных вещей уже давно не делают.
>>1183604какая зп? дс?
>>1181867 (OP)Попробую спросить в вашем треде. Часто ли встречаются лексичекие анализаторы с страшными и нечитаемыми таблицами переходов? Я видел такое только в теории, а на практике пока встречался только с простыми анализаторами на ветвлениях и без таблиц. Зачем тогда вообще рисовать эти автоматы, вычислять, составлять таблицы?
>>1183903Извини, что? Лексеры же тридцать лет уже пишут на dsl-ах с регулярками. Бывают парсеры с заданными таблицей автоматами, но только в редких случаях, типа разбора ебанутого синтаксиса Си с кучей исключений. Встречается это почти исключительно в больших проектах, оптимизированных по самое небалуй.
>>1183923Я не разбираюсь и не хочу наговорить лишнего, но мне бы очень хотелось научиться писать парсеры и интерпретаторы/компиляторы. Скачал книжку с драконами на обложке, а там такая адская жесть, что я дропнул в самом начале главы про парсеры. Как раз много рассказывается про конечные автоматы в лексическом анализе, но все это без примеров и нихуя не понятно в итоге. Как вкатиться вообще в это дело? Посоветуй инфы или книжек для простых смертных, будь другом
>>1183935Поиграйся с генераторами парсеров на каком-нибудь динамическом языке: жс, петоне или пыхе. У тех, которые хорошие, есть туториалы чтобы вкатиться, а там экспериментируй и смотри на результаты. Гугли их по запросу "имяязыка parser generator". На жс, например. есть pegjs.org с коротким туториалом. Но если начнешь лепить конпелятор в бинарники, Книга дракона вообще самая годная для начинающих. Хотя можешь сделать просто транслятор из исходника в исходник, это гораздо проще, достаточно просто в несколько проходов пройтись прямо по созданному парсер-генератором дереву и выдать эквивалентный код на другом языке.
>>1183935Свой компилятор собрался писать? Для этого тебе нужен IQ 150+
>>1183903Хуй знает, мы на работке для парсеров-шмарсеров ragel используем. Разве что ебучий минус - хз как к этой хуйне подсветку синтаксиса написать чтобы в ide красной хуйней не заебывало.
>>1183206bump вот сам файл если кому то не лень будет чекнуть https://github.com/superhacker777/hikka/blob/master/src/hikka.go
>>1184029Помнится первая версия этой проги была как раз на с++ написано.Yoba кажется называлась, лол.
>>1183942Спасибо. Я тут нашел цикл простеньких статей для ньюфагов, попробую начать с них. А книга с драконами все равно очень сложная, хоть ее все и советуют для новичков. >>1183947Нет, просто хочется разобраться в их устройстве и не чувстовать себя инвалидом в мире программирования.>>1183952А ты понимаешь принцип работы этой программы?
>>1184034Какой? Ты компилятор столе хочешь написать, лол? Я тоже свой писать собирался, да дропнул - так и лежит эта платка отладочная, пылью покрывается.
>>1184032Что-то не гуглится, можешь более точно вспомнить?
>>1184038https://lenta.ru/articles/2016/05/12/haclercamera/Довольно скоро народ понял, что подбирать пароль вручную сложно и непродуктивно. Так на свет появилась первая версия брутфорса для взлома паролей — «Йоба».
>>1183566Посмеялся, спасибо, крестовой анон.
>>1182382>std::string urlНедавно реверсил одну программу, которую переписывал, судя по всему, шарпист. И он наделал подобных конструкций в каждой функции. Из-за этого перед вызовом любой функции с таким аргументом вызывался конструктор и создавалась новая строка, а перед выходом из функции удалялась. Если не править прототип функции, то в ней получалось по 6 х кол-во строк аргументов, а использовался только первый параметр. И приходилось в каждую интересующую меня функцию добавлять прототип вместо формального void'а. А также, разработчик не придумал ничего лучше, чем добавить строки открытым текстом типа "SecretString1" для генерации ключа, видимо, он надеялся, что никто не поймёт их предназначение (или не найдёт в откомпилированной программе). Версия для маков содержала отладочные символы (не знаком с маком, это поведение компилятора по умолчанию или их нельзя удалить?) со всеми названиями функций. Жаль, что в его голову не пришла светлая идея распространять pdb файлы для Windows-версии. И ещё он забыл удалить отладочный запрос (и все юнит-тесты, которые, вроде бы, невозможно запустить, потому что не было перекрёстных ссылок на функцию), который содержал кучу параметров запроса, имя и пароль тестового пользователя, который мне не удалось по каким-то причинам использовать, но стали понятны некоторые механизмы работы программы без её запуска (самостоятельная регистрация не возможна, а работу программы проверить хотелось). А другой человек в официальном (вроде бы) ролике спалили свой пароль, который можно было увидеть при покадровом просмотре, ведь тот же разработчик сделал мегаудобную вещь, как показ введённого символа примерно одну секунду перед тем, как он превратится в звёздочку. А это, в свою очередь, мне очень помогло понять механизм генерации ключа и даже написать брутфорсер на OpenCL. К сожалению, кто-то подсказал разработчику (сам он вряд ли додумался) использовать большое число раундов для генерации ключа, поэтому брутфорсер оказался практически бесполезным, разве только для паролей до 7 символов. Также разработчик использовал захардкоженый абсолютный путь к файлам программы без возможности его изменения (а если ОС на другом диске или диска C нет). И да, думаешь, что это мелкая никому не известная программа? А вот и нет, без преувеличения, миллионы пользователей, несколько стран, программа платная, аналогов нет, а без неё низзя, обязаловка. И это не в России.Не делай больше так.
>>1184038https://github.com/superhacker777/ivms-bfВ том же репозитории вот это есть с пометкой>UPD: Currently abandoned, rewritten in Go
>>1183798Ну , как сказать, я вот не считаю всякие кути шляпы отдельным языком от плюсов, а они позволяют написать ВСЁ.
>>1184136Так хуле мне делать, на каком языке форк делать?
>>1183935Начни с написания простого форта на асме, дальше оно само пойдет.
>>1184181Блять, ты не можешь добавить функционал в c++ версию или что?
>>1184131Ну достаточно поставить ссылку? Возможно константную, не знаю нужна там работа непосредственно с этой строкой.
>>1184154Если тебе захочется нормальную графику или вычисления на gpu, то придётся осваивать шейдерные языки. Тот же кути в качестве одного из инструментов даёт тебе QML. А в целом экономически неоправданно всё на c++ писать. Ту же автоматизацию сборки и тестирования проекта намного быстрее и проще написать на python (считай дешевле и надёжнее).
>>1184220>то придётся осваивать шейдерные языкиШейдеры и opencl - это сишка, куда - С++.
>>1183853270к чистыми, ДС
>>1184248Наркоман штоле? Шейдерные языки GLSL, HLSL это никакая не сишка и уж тем более не C++. Синтаксис похож, но этим всё и ограничивается (указателей нет, ссылок нет, встроенные типы матриц и векторов, swizzle оператор, динамического выделения памяти напрямую нет, нет рекурсии и ещё сотни отличий).OpenCL C тоже основан на сишке и тоже её стандарт переопределяет.Заимствование синтаксиса не делает Java наследником C++.
Хочу подзаработать на удалёнке, тыщ 30, нужны для апгрейда ноута.Скилы:Англицкий: письменный - ок на слух - более менее говорение - летмиспикфроммайхартОсновные скиллы:-программирование ARM контроллеров-прикладное на С/С++ под Windows/Linux-тулчейны для контроля версий сборки и тестовДополнительные скиллы:-Python со словарём.Как я вижу для удалёнки нужна экспертиза в конкретной предметной области, например Linux Kernel.Пацаны, в какую область можно вкатиться, что разово, за пару выходных поднять немного денег?
>>1184289> Пацаны, в какую область можно вкатиться, что разово, за пару выходных поднять немного денег? Дворником.
>>1184290UPDinb4: дворник, фронтенд
>>1184289Есть у меня подозрение, что у тебя всё перечисленное со словарём, а не только питон. Ищи колым для студентов в дно треде.
>>1184293Проходи мимо.
В чем разница на уровне инструкций? Что оптимальнее использовать?bool func(int a) { return a > 0;}std::uint8_t func(int a) { return a > 0;}
>>1184322Ни в чем. https://godbolt.org/g/Bm4LVRКак по мне, так первый вариант более читабелен.
>>1184273https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/html/vkspec.html#VK_KHR_variable_pointershttps://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-cplusplus-language-supporthttps://www.khronos.org/registry/OpenCL/specs/opencl-2.1-openclc++.pdf
>>1184342Что сказать то хотел? vulkan это очередное api для загрузки на видяху тех же шейдеров, написанных на glsl или hlsl (отличие от opengl в том, что он использует шейдерные программы в виде "байт кода" spir-v).OpenCL C++ по документации не поддерживает такие важные средства C++, как:1.8 Restrictions- recursive function calls (section 5.2.2, item 9)- new and delete operators (sections 5.3.4, 5.3.5)- function pointers (sections 8.3.5, 8.5.3)- virtual functions and abstract classes (sections 10.3, 10.4)- exception handling (section 15)
>>1184369>Что сказать то хотел? Что в шейдерах почти полноценный С++ с указателями и темплейтами.>не поддерживает такие важные средстваНа самом деле указатели на функции там есть, только адово тормозят.А так естественно, что многие возможности не поддерживаются - архитектура у железа другая.
>>1184369Я особо не интересовался OpenCL, я думал это просто API для параллельных вычисленей на видеокарте в языке C/C++. А это получается вообще другой язык? Для него нужен специальный компилятор?
Учу кресты по Страуструпу и что-то я нихуя не понял: у него есть целый параграф, посвященный концептам в шаблонах, но какой бы я компилятор не взял (gcc, msvc, clang), все меня послали нахуй. Хотя Страуструп пишет, что концепты есть с С++14. Получается он наебал или что?
>>1184392>А это получается вообще другой язык?Только для ядра, которое выполняется на видяхе, сам API - сишный. В старых версиях у шейдоров - сиподобный язык, начиная с 2.1 - урезанный С++14. У нвидии на CUDA с самого начала C++.>Для него нужен специальный компилятор? Да, но можно просто текстовую строку с шейдером передавать API.Можешь сам посмотреть (это не OpenCL, а пиксельные шейдеры для WebGL, но суть похожая.): https://www.shadertoy.com/
>>1184397Это экспериментальная фича еще, надо флаг компилятору передать, у GCC -fconcepts, clang вроде не поддерживает еще.
>>1184406Все равно хуита: https://godbolt.org/g/nCnMUV
>>1184407У них по -foncepts старая версия концептов, не та, которая в стандарт войдет, да и та неполная. Так что тебе придется самому нужную ветку GCC собирать.
>>1184322Такие функции лучше через макрос делать или inline.
>>1184583
>>1184322Лучше не заморачиваться такой хуйней, premature optimisation и вся хуйня.
>>1184583В современом C++ забудь макросы, используй их только в крайних случаях. И для таких простых функций, как выше, не надо писать inline. Компилятор сам инлайнит функции где возможно.
>>1184583и constexpr
>>1184757>Компилятор сам инлайнит функции где возможно.Только когда с -O3 компилишь.
>>1184876А посоветуй литературы где подобную информацию можно почитать? Я имею ввиду про работу компилятора. Я просто читал книгу ещё 99 года и там уже писалось что все эти онлайн устаревшие.
>>1184938Инлайнфикс
>>1184876-O3 -fno-inline-functionsшах и мат, атеисты!
>>1184938Есть такая книжка, но она 2004 года
>>1184757> не надо писать inline. Компилятор сам инлайнит функции где возможно. Где-то читал, что какой-то конпилятор если видит слишком много инлайнов (вроде как оценивается не общее количество, а относительно количество функций или что-то подобное), то он считает программиста идиотом и вручную написанные инлайны полностью игнорирует (что стандартом не запрещено, лол). Заставить инлайнить в таком случае можно либо написав перед функцией template <>, либо нестандартными атрибутами (которыми все кому прям сильно надо инлайнить и пользуются).
>>1185076Вроде как единственная 100% гарантия заинлайнить и сделать именно точно как тебе надо - ебнуть асмовставочку.
>>1185076А если инлайн в заголовке, компилятор все равно создает отдельную функцию в программе?
>>1185216По стандарту слово INLINE для функции дает возможность забить хуй на ODR, не более
>>1181867 (OP)Если нужно передавать в функцию или конструктор список чисел определенного типа (int, uint32_t), каким типом данных представить этот список для удобства и производительности? std::tuple?
>>1185076>>1185084Есть еще такая хуйня#define __forceinline inline __attribute__((always_inline))
>>1185380Чем тебе не нравится список из стд?
>>1185380>списокСвязанный список или массив?
>>1185380http://en.cppreference.com/w/cpp/utility/initializer_list
ребзя пару слов, почему -32767 должно возвращатся? if(GetAsyncKeyState(klavisha)==-32767) file(klavisha,"text.txt");
>>1185497Мамкин кулхацкер, открой для себя raw input.
Объясните есть ли смысл расставлять мьютексы для класса, в котором с одним инстансом работает несколько потоков.class A {public:void routine()while ( true ) {if ( _bs_ ) {counter++;}}}std::uint64_t counter;};если два потока выполняют routine();, правда что может произойти креш при одновременной записи в counter?
>>1185505Здесь нужен std atomic
>>1185505Ну это просто критическая секция, потенциально ты можешь просрать данныетак и будет. Если будешь без синхронизации использовать свою функцию.
>>1185505>креш Нет. Если все указатели валидные, чему крэшиться? Но в общем случае у тебя будет обычный race condition, и получится каша, а не данные.Конкретно в этом случае всё будет норм на x64, так как обновление машинного слова - атомарная операция. На этой фишке основана такая штука, как RCU. Но с этим нужно быть очень аккуратно, так как зависит от конкретного проца, поэтому всё равно следуй советам >>1185510 и >>1185533.
А чем отлиается атомик от мутекса?
Пилил програмку с использованием QT в MVS 2015Закончил делать x64 версию, решил скомпилировать и x86. Оригинальная QT поддерживала только x64, пришлось скачать ещё дистр для x86 и развернуть его. В настройках плагина для MVS прописал путь к x86 версии QT. Проект пересобрался и начал сыпать ошибки видаUAC.cpp1>...\qtguiapplication4\qtguiapplication4\UAC.h(3): fatal error C1083: Не удается открыть файл включение: QWidget: No such file or directoryВернул всё обратно. Теперь проект и x64 пишет то же самое. Есть идеи как чинить? Не переносить всё в QT Creator а именно чинить
>>1185777Всем, блять. Суть мьютекса - блокировка. Мьютекс - это считай толчок, срать там может только один человек, а остальные будут ждать пока он освободится, или обосрутся по таймауту.
>>1185777Почитай Таненбаума.
>>1185847Проверяй пути к инклюдам
>>1185889Это в целом понял уже. Я сейчас на этапе - "Как пофиксить QTDIR?"Т.е. насколько я понял проблема в том, что установка второй QT, для x86 где-то распидорасила заданый ранее QTDIR, который указывается в настройках MVS как $(QTDIR)\include\ итд. Но где и как мне прописать теперь QTDIR?Пробовал через дополнительные параметры системы->переменные среды, но 1. Там её вообще не было2. После того как я её задал там - ничего не произошло (Возможно нужна перезагрузка?)
Анончики. Я заебался уже с этими стримами. Мне нужно-то всего лишь получить данные по сети и обработать их. Но я столкнулся с проблемой. Как вообще можно управлять данными stringstream? Как получить количество байт в нем, а не до первого нуля до считать? Со всеми этими вопросами я решил просто отойти от стримов и использовать строки. Но штука, которая считывает данные, работает только со стримами. Я попробовал создавать для неё стрим и в rdbuf подменять буфер данными из строки, но это не работает в msvc по какой-то причине. Слышал есть ещё strstream, который, вроде, для этого и предназначен, но стандарт говорит, что он устарел.Внимание вопрос: как лучше всего навешать istream интерфейс на std::string?
>>1185866Ну извините за такой тупой вопрос, я думал это и атомик делает? Я никогда мултитредингом не занимался. А в чем тогда смысл атомика?
>>1185908Атомик, внезапно, делает операции атомарными. Другими словами, треды не будут видеть "промежуточного" состояния при изменении атомика. То есть в атомиках нет семантики владения каким-то ресурсом в отличии от мьютекса. Вот как атомик реализован (через мьютекс, или архитектура проца такая, что можно лок-фри сделать) - зависит от конкретной реализации.
>>1185908Атомик может быть на инструкциях проца быстро сделан, а мьютекс скорее всего будет ебошить сискол. Атомик нужен тупо на одну переменную потому что даже в сраном инкременте i++ может гонка возникнуть.
Суп. Предпринимаю уже вторую попытку вкатиться в Qt. И уже во второй раз я даже не могу написать не строчки кода. Пикрил ебанина один в один была у меня уже на двух разных компах с двумя разными операционными системамисперма и дрисня. В тот раз я пропердолился с этим немало времени, накатывал блядь всякие разные левые компилы, нихуя не работало. Спрашивал где-то здесь, в /pr, но никто нихуя не знал, говорили что мол все должно из коробки работать и это не нормально. Я уж подумал это у меня в системе что-то поломалось, блядь, раз так, и забил. Но теперь на новой чистенькой ОС и даже на другой пеке та же хуйня. Анон, юзавший сабж, отозвись, прошу.Линк, по которому качал: https://www.qt.io/download (опен сорс версия).Путь к кьюту без пробелов, пикрил.
>>1185949Просто береш и ставиш линупс.
>>1185949Нажми на Примеры.Открой пример.Скомпилируй. Что происходит?
>>1185900Тебе данные в каком виде нужны? Инфа или набор битов/байтов? Если 2, то считай как массив unsigned char
>>1185949У тебя комплекты походу не установлены, открой настройки->cборка и запуск->комплекты. Должны быть хоть какие то комплекты))
>>1185777Атомик — это маленький атом.
>>1185961Проблема в том, что я активно использую библиотеку сериализации Cereal, которая понимает только потоки данных. Так-то они у меня уже в форме массива char-ов, за это и отвечает string, но теперь нужно как-то на этот массив навешать интерфейс потока, что бы его можно было считать. Думаю сейчас просто свой класс-наследник от istream сделать, вдруг получится
>>1186095https://stackoverflow.com/a/43148806
Пагни, гайд из шапки подходит, если я опытная жава-макак, а плюсы решил изучить для общего развития.
>>1186129?
>>1186129Лол, Ява это игрушка по сравнению с си. вкатывайся самый начальный уровень от стрроуструпа, надеюсь хоть что-то поймёшь
Реквестирую годный 16-битный компилятор для С/C++.
>>1186134>Ява это игрушка по сравнению с сиНет, если бы это был яваскрипт, то да. А вот ява еще ему поможет.
>>1186248Чем поможет? Без GC он только и будет что наступать на грабли. Особенно учитывая, что в Си нет умных указателей, которые хоть как-то облегчают работу с памятью.
>>1186255Хотя ты прав. Мне потребовалось целых 2 месяца, чтобы умело извращаться с указателями.
Посоны, что писать: загрузчик или программу защиты приложений от пиратства?
>>1186257Пиши ИИ, а он пусть потом пишет всё что нужно.
>>1186258Я похож на бородатого машинлёрнигопидораса? Нет, я лучше байты посчитаю.
>>1186257Загрузчик чего, оси? Там же всё стандартно делается.
>>1186265Ну я со своими прибабахами хочу сделать. Имел с этим опыт? Посоветуешь лит-ры?
>>1186266Курс осей N лет назад и wiki.osdev.org, так что сейчас уже ничего не помню.
>>1186320Спасибо. Чисто на асме или на слиянии асмы и си делал?
как это кушать?
>>1186245Turbo C
>>1186036
>>1185777race condition в твоей ситуации может быть из за того, что ++ для некоторого типа данных делается в несколько команд на ассемблере. потому один поток может сделать одну команду и внезапно быть прерванным другим потоком, который тоже начнет что-то делать и т.д..так вот - мутекс - это как замок. у тебя переменная лежит в ящике стола запертом на замок и ключ только один. соответственно переменную меняет только тот, у кого ключ.взял ключ - открыл ящик - поменял - закрыл - ключ положил и теперь другой поток его может брать.а атомик - это когда ++ кодируется в ассемблер так, что его нельзя прервать. родные виндовые функции это Interlocked*
>>1186486При установке надо было включить установку mingw. В режиме обслуживания и сейчас это можешь сделать.
>>1186486Ты походу установил только QtCreator. Это только IDE, скачай сам фреймворк. Должно быть что-то типа такого, как на пике.
>>1186497Не отличаешь race condition от data race? В ньюфаг-тред.
>>1186502Sources нинужны, если ты только не собираешься ручками компилировать сам qt.
>>1186504Ну да, из всех галок можно оставить только одну: MSVC или MinGW. Остальное для начала не нужно.
>>1186501>>1186502Уже нагуглил. Сейчас качаю. Посмотрю, что из этого выйдет. 4гб на скорости ~200 кб/с. Филсгудман, блядь.
>>1186537Всем отписавшимся анончикам нефти, заработало.
Шарпоблядок на связи, портирую одну хуйню с этих ваших крестов и есть квик вопрос о порядке математических действий:х y / z будет (xy)/z или x * (y/z) ? Спасиба
>>1186613Так же как и в шарпе слева направо -> (xy)/z.https://msdn.microsoft.com/en-us/library/126fe14k.aspxhttps://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx
Крестогоспода, здравствуйте. Осматривал вакансии, много где пишут про работу с Linux. До этого нажимал всё строго под Виндой в Вижуал Студии. Есть ли смысл накатывать линукс для дальнейшего успешного движения?
>>1186709Не лезь в кресты. Джунских вакансий на крестах практически нет, все ищут уже бородатого задрота с килотоннами опыта.
>>1186729Так уже полез. И там примерно на собеседованиях так и есть. Лол.В духе: ну вы знаете, нам нужен человек, который кроме крестов может в кьют, сети, базы данных, строительство звездолетов, а еще бы неплохо написать под них драйвера
>>1186731Отож. Лезь лучше в петушиный жс, как ни прискорбно - это говно повсюду, и наверное в будущем и питухон с рубями сожрет.
>>1186734Я как-то капитально взялся, так что один хуй буду пробовать вкатиться хоть куда-то
>>1186729Интересно, есть ли вообще кулстори людей, которые вкатились в плюсы с джуна?
>>1186743а нормальные люди вкатываются в кресты уже с других языков?
>>1186743Ну я наверное как раз в последний вагон уходящего поезда запрыгнул.
так, пацаны, а что вот должен уметь джун?если я осилю кроме крестов, еще кьют, ебучие сети, и базы данных, это я уже джун или еще нет?
>>1186745Да хуй знает, я сам студиозус с амбициями "войти в ойти с плюсов". Судя по всему будет тяжело.
>>1186749В том то и прикол что джун должен уметь все. Но хотеть мало денех.
>>1186755так. а если мне по ходу ебашить проектики в няшный гит по мере осиления стека технологий, и все это четенько пояснять в резюме?прокатит?
>>1186755алсо, просил чуть больше скромной тысячи долларов.
>>1186759И как, напросил? Джуна хотят за 40-45к.
>>1186757Нет. Даже если проекты будут охуенными - я тебя уверяю, никто в твой гит смотреть и близко не будет, нахуй это нужно. Сам подумой - там в день несколько человек собеседовать, что у каждого смотреть?
>>1186764но как же тогда вкатирововаться?
>>1186771Никак.
>>1181872UrlDownloadToFileиспользуется всякой шаболдой в верусах, возможен детект аверами(подобные вопросы лучше задавать в топике системного программирования / реверс-инжиниринга и асм)
>>1186771В кресты никак, без шансов. Вкатывайся в жс, питон или ещё какую нить хуйню.Да и писал бы ты на крестах - напротив искал бы как выкатываться тому до это пиздец, язык-червь, язык-пидор, язык-страус, язык-труп.
Стоит ли начать изучение c++ с пикрелейтед? Книга Страуструпа не сильно зашла, так как он заставил скачать библиотеку со своего сайта и которая ни как не принималась Visual Studio 2016. Поэтому ищу другой самоучитель.
>>1186794Начинать изучение c++ вообще не стоит. Язык пиздецки сложный и кривая сложности растёт со временем по экспоненте, а работу на крестах ты все равно не найдешь и с каждым днём найти её будет все сложнее.
>>1186798Не соглашусь, у меня на работе автоматизацию и цеховые программы пишут на c++.
>>1186810Госпараша за копейки не считается. Там и дельфи ещё есть наверное.
>>1186798> Язык пиздецки сложныйСам язык не сложный. Никто ж не заставляет писать код с кучей шаблонных шаблонов. Основная сложность - это инструменыт для работы с C++. Отсутствие нормального менеджера зависимостей и мегаубогие инструменты для автоматизации конпеляции (чего только распиаренный cmake стоит) делают своё дело.
>>1186798>>1186810 Но на самом деле я хочу, может быть, если представится такая возможность, вкатиться в геймдев. Я вот умею рисовать, но неплохо было бы иметь еще и технический навык.
>>1186813 Отнюдь, у них самые большие зарплаты, хоть и госы, да.
>>1186815> > Язык пиздецки сложный> Сам язык не сложный.Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйня>Никто ж не заставляет писать код с кучей шаблонных шаблонов.Заставляет. Посмотри на блядский буст.>Основная сложность - это инструменыт для работы с C++. Отсутствие нормального менеджера зависимостейОн невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нет> и мегаубогие инструменты для автоматизации конпеляции (чего только распиаренный cmake стоит) делают своё дело.Я на работке для себя использую qbs. Так то проекты в boost build захуячены, но IDE jam-хуйню не скормишь, а в виме пердолиться не хочется.
>>1186777Эта хуйня работает максимум в 4 потоках, а мне надо намного больше
Ах да. Ещё пиздец в том, что кресты как бе надмножество сишки - и в то же время - нихуя.
>>1186824Ну нахуярь руками get реквесты на сокетах, блять.
>>1186822> Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйняНикто не заставляет читать всю спецификацию. У спецификации JS тоже около тысячи страниц. Это делает язык мегасложным?> Заставляет. Посмотри на блядский буст.Основная сложность в написании подобных библиотек. При использовании тебе чаще всего ничего кроме как вставить с угловые скобки имя типа и не потребуется.> Он невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нетСильное заявление.
>>1186830> Основная сложность в написании подобных библиотек.Основная сложность потом читать километровые выхлопы шаблонного говна в ошибках компилятора и гадать че этой суке не нравится.
>>1186835Это да. Впрочем обе твои претензии будут исправлены в C++20 (непонятные ошибки - концептами, модульность - модулями).
>>1186798да не сложный он нифига. просто изучать надо постепенно. если начинаешь с нуля - бери какого нить кернигана и ричи и учи то, что там есть.простые типы, указатели, (ссылки тоже добавь до кучи), битовые операции, функции. ВСЁ. в этом куске самое сложно - указатели на функции. уж очень мудреный синтаксис. но их обычно наизусть никто не знает.выучил этот кусок, со всем разобрался? иди дальше.классы (БЕЗ ШАБЛОНОВ!). уровни доступа, статические члены, наследование, множественное наследование, виртуальное, указатели на функции-члены класса. тут тоже ничего сложного нет, вполне себе небольшой кусок знания.дальше шаблоны смотри уже.. даже перед шаблонами или чуть попозже, когда будешь знать что-то типа template <typename T> class C { public: T myvar; } и как использовать STL контейнеры - тебя уже джуном везде возьмут как нефик делать. а то и мидлом.
>>1186838Ты ему советуешь изучать Си, а не С++. В своих проектах я указателями почти не пользуюсь, везде стоят unique_ptr или shared_ptr, а указатели используются только для взаимодействия с Сишными библиотеками.
>>1186837Я про концепты с модулями кажется ещё в ++11 слышал, а воз и ныне там. А какой-то хотя б минимальной рефлексии и близко нет. К примеру - нужен тебе final switch, чтобы покрыть весь enum или не компилировать - а хуй тебе. И костыли-костылики (протобуф вроде генерит Value_MAX и VALUE_MIN). Сука блять.
>>1186841> А какой-то хотя б минимальной рефлексии и близко нет.Рефлексии и в С++20 скорее всего не будет.
>>1186840Самое смешное это потом пробрасывать shared_ptr на unique_ptr на какую то хуйню потому что видите ли Handler в io_service::post должен быть CopyConstructable...
>>1186844А ну да, ещё взаимодействовать с C++98 библиотекми или библиотеками, которые написаны на Си с классами. Впрочем, я их стараюсь по возможности избегать.
>>1186845Ах да, а ещё по стопицот видов строк, массивов и умных указателей, у каждой библиотеки свой блять. И крестопараша которая в стандарте не умеет в юникод - точнее там кажись since c++17 deprecated. Необходимость в блядском icu, ебаный wchar/wstring который в линупсе 4 байта а в шинде - 2. Блядская хуйня уровня "ну ета - в крестах sizeof(void*) не существует а в сишке gcc ета 1" и тупорвлвми мудаками которые написали такого говна в хедерах ядра, так что под шлангом ты в крестах ты хуй че скомпилишь, а в gcc только с fpermissive.
>>1186840но ты же знаешь, что такое ptr вообще? для чего нужны эти unique и shared? вот чтобы с ними работать не как обезьяна с гранатой, а осознанно, и надо понимать что такое обычные указатели.
>>1186851Они тоже костыль блядский. Чего стоит только ебаная параша с enable_shared_from_this
>>1186838Я заканчиваю второй курс, и все что ты написал я знаючасть рассказали на лекциях/практике, большую часть прочитал и понял самостоятельно и то мне кажется, что я вообще нихуя не знаю и дно ебаное.
>>1186850> Ах да, а ещё по стопицот видов строкЭто да, почему-то за столько-то лет сущзествования языка о поддержке юникода никто не задумался. Впрочем надежда есть. Вон недавно std::optional добавили (впрочем он там достаточно неполноценный: без метода map [1], которым я пользуюсь чаще всего, лол)> умных указателейЭто я полагаю из до C++11 эры.[1]: https://doc.rust-lang.org/std/option/enum.Option.html#method.map
>>1186856Так и должно быть.
>>1186850Макак, иди порвись где-нибудь в PHP-треде.
>>1186860И что же делать, изучать конкретные библиотеки? Начинать бездумно изучать буст в надежде, что это понадобится? Или начать делать собственный проект? Все таки какой-никакой опыт, и изучать то в чем будут трудности?
>>1186863Изучай js или пиздон. Не трать зря время.
>>1186856если под винду хочешь работать - напиши пару программок типа калькулятора с mfc или qt (mfc я бы посоветовал - оно к нативным функциям ближе) чтобы разобраться как виндовая гуя работает, почитай чуток теории про коллекции stl - оценки скорости работы, как внутри устроены и т.д. и иди по собесам. под винду на джуна возьмут стопудово.
>>1186869> mfc я бы посоветовалЭто чтобы он 100% отказался от идеи писать что-либо на плюсах? Умно.
>>1186865Двачую этого. Я учил кресты в вузе. Тогда мы сделали с другом небольшую двумерную игрушку больше мне этот язык ни разу не понадобился. В крестах столько говна, что >>1186778 больше прав чем не прав.
>>1186896Кресты могли бы быть спасены если бы популярная ОС имела апи и сисколы на крестах. Но так сложилось что и винапи - сишное, и линупс трольвардс - пердун и неосилятор, и так и повелось. А на крестах ядро емнип только у гаечки-беоси, но не срослось, отличная ОС была в своё время, но убита менеджментом и негрософтом. Было бы ядро на крестах и апи - были бы и библиотеки, и не было бы того говна что сейчас.
>>1186909Прими брому.
>>1186909Гугл Хром и WebKit на плюсах написаны.
>>1186972Firefox и Gecko тоже.
>>1187164Firefox уже частично на расте (как минимум CSS-парсер).
>>1187167ты нихуя не понял.
>>1186871>чтобы разобраться как виндовая гуя работает>под винду на джуна возьмутТы пост-то его прочитай как следует. Он имеет ввиду околосистемное программирование под винду, отсюда и мфц.
Бля, а в неплохое время живем, аноны3-4 четыре годных компилятора, все рвутся вперед, стандарты принимаются, ниша оформилась, от макак мы отличаемся, вась вкатывальщиков я в глаза не виделЧота я даже как-то влюбился обратно в С++
>>1187192Охуенно наверное писать на реинкарнации pl/1.Однажды все рухнет окончательно под весом томов стандарта и костылей.
>>1187229Жопоголик, попей брому.
>>1187229Все другие промышленные языки как-то не рушатся, значит норм. Хотя жабка наверное исключение, там все говно в библиотеках, а не в стандарте языка.
>>1187256Рушатся. Все эти жабы, питоны, раби и жабаскрипты с го вылезли не на ровном месте - они отожрали долю именно у крестов. Теперь пизда последнему оплоту - даже десктопный софт все больше пишут не на крестах а уебищном электроне.
>>1187260С каких пор жабаскрипт с пайтоном отожрали свою долю у крестов? Кресты никогда не были ни сценарным ни веб-языком. Про твой электрон никогда не слышали писаки большинства настольного софта (который пишется таки-на плюсах) имхо.
>>1187260ну да, пусть отожралия и говорю кресты стали таки нишевым языком и это хорошо. графика, финансы, медицина, по тихой embedded подтягивают.
>>1187264Атом, vs code, шкайп и дискорд - да дохуя чего десктопного пишется на электроне. А раньше это были кресты only. И это только начало. Сперва пидорнули дельфи - теперь пидорнут и кресты.
>>1187273>ElectronkekЭту хуету в серьез никто не воспринимает, любая программа на этом говне кроме VS Code лагает пиздец как. Ты дебил? Весь мир борется с электроно-залупой. Даже сами майки которые этот вс код и создали
>>1187277Как борется? Я пока что вижу как то что писалось на крестах теперь пишут на электроне - но не вижу обратного, чтобы веб парашу типичную переписывали на крестах.Когда то кресты и в мабилках были, емнип под симбианом проги на крестах были а он был лидером рынка. Пидорнули-с, жаба правит бал.
>>1187281webassembly жи лолавтокад вот выпустил вебверсию, тот же с++ только в броузере, а это покруче текстового редактора будет. вполне возможно кресты веба порцию заберут себе в ближайшем будушем
>>1187273Дельфи взлетели, на них что-то писали (в т.ч. гуи скайпа под винду), затем плюсы опять взяли свое. Мне кажется это всё хуйня и электрон это просто новомодная тема, которая скоро заглохнет. Осло, не слышал что скайп переписали на электрон. Меньшей хуетой он от этого не стал, лучше бы откатили в 2012.
>>1187273> Атом, vs code, шкайп и дискорд - да дохуя чего десктопного пишется на электроне. А раньше это были кресты only. И это только начало. Сперва пидорнули дельфи - теперь пидорнут и кресты. Если честно, я просто не представляю, как люди пользуются любыми веб-приложениями. Либо я вырос на десктопных, не тормозящих приложениях, и такой требовательный, либо что-то не так с моим софтом, либо люди не знают, каким вообще приложение должно быть.Вот, скажем, открываете вы документ в Google Docs. Открываете страницу, начинаете набирать, и понимаете, что полностью страница еще не загрузилась, и джаваскрипт не успел перевести фокус на поле ввода. Первые три набранные буквы пропали.Это просто первая мелочь, пришедшая мне в голову, но она для меня столько значит, что сразу ставит крест на Google Docs.Или, например, нажимаете во многих веб-приложениях правую кнопку мыши на каком-нибудь объекте, ожидая, что вы получите меню объекта, и видите там «назад», «вперед», «сохранить страницу», и так далее. Понимаю, что нажатие правой кнопки мыши можно перехватывать, как это делает тот же Google Docs, но когда ты такое видишь в, казалось бы, десктопном приложении (написанном на node.js, который тащит с собой chrome.exe и ffmpeg.dll, и простейшее приложение занимает больше 50 мегабайт в архиве), то это просто неприемлемо.«Десктопные» приложения Slack, Mattermost, текстовый редактор Atom, который раньше не умел открывать файлы с размером более 2 МБ, а сейчас открывает мегабайтный файл несколько секунд — просто какой-то мусор, непонятно, кто в здравом уме будет пользоваться такими программами, пока есть альтернативы в виде нормальных десктопных приложений.
>>1187314А я о чем блять. И при всем при этом люди пользуются этой парашей, а не десктоп-прогами. Взлетают всякие говно-хромоси где кроме браузера нет нихрена. А люди смотрят кинчики в веб-интерфейсе вместо того чтобы качать файлики в поррент-клиенте на крестах, слушают музычку вбыдлятне вместо того чтобы делать это в плеере на крестах, пишут мыльца в веб-интерфейсе гмыла и яндекса вместо того чтобы делать это в прогах мейл-клиентах на крестах... Вылезли всякие saas-параши, теперь и фотошопы и прочая хуйня в браузере.А лет 10 назад все было кардинально не так. Кресты пиздец как сдали позиции.
>>1187320Сдали позиции не кресты, а настольный софт. Попробуй-ка поиграй в ААА в вебе, поработай с мультимедиа в вебе, обработай пресловутую бигдату в вебе. Нихуя. Все с крестами нормально, просто половину всякого барахла которое на них писали, утащили в веб и придумали на это новые языки с нескучными обоями.
>>1187348>Попробуй-ка поиграй в ААА в вебеДавно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.>просто половину всякого барахла которое на них писали, утащили в веб и придумали на это новые языки с нескучными обоями.Вот именно. А утащили в веб это по некоторым причинам - из-за крестов и того что на жс макакить проще чем ебаться с шаблончиками, и потому что зонды в анус проще пихать со слежкой.
>>1187362Процент плюсов упал из-за низкого порога вхождения в скриптовые языки, хипстеры и быдло вкатываются пачками, но проблема в том что без плюсов вся скриптопараша просто умрет. Скриптопараша держится на фундаменте из плюсов и си, и без этого фундамента ей конец. Как ты сделаешь гуй на питоне если прекратится разработка qt/gtk+? Что станет с js если хром и вэбкит исчезнут?
>>1187375Си - да, а вот кресты не держит ничего. Си то останется навечно как минимум из-за того что на нем все системные апи, и нет никаких сраных манглингов, имена функций экспортируются как есть.
>>1187417> Си то останется навечно как минимум из-за того что на нем все системные апи, и нет никаких сраных манглингов, имена функций экспортируются как есть. ИРЛ практически все бэкендики-рантаймчики-игродвижочки пишутся как раз на плюсях/си-с-классами потому что reinterpret_cast и прочие ништяки.
>>1187362>Давно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.Что ты несешь? Поиграй != посмотри. >А утащили в веб это по некоторым причинам - из-за крестов...Бритва Оккама отсекает твои охуительные догадки, основанные на неприязни к крестам. Я к ним тоже отношусь настороженно, но мне кажется что в веб всё перешло потому что появился собственно веб (быстрый безлимит, продвинутые сайты уеб2.0, вагон памяти на современных машинках и т.д.).
>>1187532Ну стриминг игр это тоже "поиграй", но он всё равно несёт хуйню, потому что там очень нескоро будет аналогичный уровень, ибо оверхеда овердохуя, никому нахуй не нужно ещё болше задержки в инпуте.
>>1187536G E F O R C E N O W
Плюсач, я писал лабу с деревьями и программа иногда крашится, а иногда не крашится с сегфолтом. Деструктор для узла дерева выглядит так:if (left) delete left;if (right) delete right;В своей программе я создаю один указатель на узел, типа это корень. Но я не написал деструктор, потому что если я явно удаляю верхний узел, то крашиться начинает всегда. Как это можно починить?
>>1188127nullptr в конструкторе присваиваешь? И при удалении ветви?
>>1188127>if (left) delete left;>if (right) delete right;:facepalm:
>>1188127Без всего кода это ни о чём. Действительно попробуй вначале выставить указатели в ноль (хотя я на 99% уверен, что под те ебанутые случаи, когда это не делается за тебя, твой код не подпадает). А так - гоняй код под отладчиком и не еби мозг себе и мне.On a side note, а вот в Русте нужно быть сеньором, чтобы крашить программы как джун на крестах =)>>1188211Хех, лаба же, препод может не знать про умные указатели :3
>>1188127>иногда крашится, а иногда не крашится с сегфолтомenjoy your C++-говно
Кстати, есть крестьяне-задроты с глазами горящими в треде? На днях в Bountysource выложили работу аж за 50 ебаных косарей грина, интегрировать webrtc с остатками сетевого стека firefox-a. Если сейчас сесть и неделю не спать, можно таки успеть :)
>>1188218Дело не в умных указателях.
>>1188259Лучше после делита явно присваивал этому указателю нуллптр, а ещё проверь места где ты ходишь по дереву, сегфолт вылетает в момент когда ты идёшь в память, которую твоему процессу не выделила ОС, скорее всего ты либо пытаешься считать не свои данные, либо вообще с нуллптра считываешь.
>>1188218>Хех, лаба же, препод может не знать про умные указатели :3 Я про то, что на nullptr при удалении проверять не надо. Бох с ними, с умными указателями.
>>1188127Алсо, undefined behavior, как он есть.
>>1188266Ты прав, мне явно не хватает опыта крестьянской жизни :(
>>1188218>Русте Был бы не мёртв ещё
>>1188131>>1188263>>1188218Там как-то интересно получается, что сегфолт вызывает, видимо, строка if(left).class Node{\tNode left;\tNode right;\tint value}У меня даже значения никакого нет
>>1188302Ну по твоим меркам, наверное, всё мертво, что ниже Руби по популярности. Карьерные перспективы меня не особо волнуют, я хочу вкатиться в продакт-разработку и ебашить в одно рыло софт, который иначе пишет отдел из десятка весляров и погонщика. Если наработаю навыки и нахуярю библиотек, то вполне смогу этого добиться.Вообще, ковбойская суть плюсов - не самое в них неприятное. Куда больше меня отвращает от них стремительное устаревание кода, когда то, что писалось под стандарт 2003 сейчас превратилось в технический долг, который нужно изолировать от нового кода. Это не говоря уже о проходящей моде на Буст и извращения дизайна им. Александреску.
>>1188306Это не код, это твои маняфантазии. Код подавай или седлай отладчик и хауау.
>>1188306Вряд ли строка с условие порождает сегфолт.
>>1188328Стремительное? Код на плюсах просто охуительно живуч не в тему. По-моему это нормально что портянки стандарта пятнадцатилетней давности сегодня устарели, вся писечка лишь в том что тебе надо их поддерживать, в какой-нибудь другой среде (соответственно с другим языком, не плюсами) ты бы уже по десять раз переписал их набело с ног до головы и всё было бы ок.
>>1188328Замена крестам - не сраный раст, а няшная дишечка.
>>1187273>раньше это были кресты onlyА Java и C# забыл? По-моему на них гораздо больше писали десктопных приложений чем на C++. Кресты доминировали всегда там где производительность критична, например браузеры, графические-, видео-, 3д-редакторы, игровые движки, драйвера. >>1187299С чего ты взял что Дельфи взлетел? Последний раз я на нем писал лет 10 назад и тогда он уже был на закате.
>>1188636Java и C# тоже появились не на ровном месте и долю отожрали именно у крестов.
>>1181867 (OP)Хочу переписать этот код с Go на C++/Boostpackage mainimport "time"import "strconv"import "bytes"import "crypto/sha256"type Block struct { Timestamp int64 Data []byte PrevBlockHash []byte Hash []byte}Возникли вопросы насчет выбора типов данных. Timestamp из структуры Block можно оставить таким же uint64_t.Data, PrevBlockHash и Hash здесь массивы произвольной длины, кроме хэшей, которые представлены 32-байтными массивами байт. Чем можно заменить эти массивы байт в C++? Использовать std::string? std::basic_string<char>? Я ведь не буду использовать const char* и рисковать сделать учечку памяти.
>>1188636Когда на джаве и сишарпе во времена настольного софта (в нулевые) кто-то его писал? Шарпа тогда не было, а кресты доминировали ВЕЗДЕ на пару с дельфи, это сейчас они в описанных тобой нишах правят бал.
>>1188643Если тебе нужнен динамичный массив, то std::vector<unsigned char>, если статичный то std::array<unsigned char>
>>1188643std::basic_string<char> и std::string это одно и тоже
Аноны, почти нюфаг просит помощи. Разбираюсь с OpenGL, написал небольшую хуйню, всё работает на моей машине. Exeшник собранный в режиме debug весит 50кб и на другой машине требует VCRUNTIME140D.dll, ucrtbased.dll и glut32.dll, первые две это, полагаю, из Microsoft Visual C++ Redistributable, третья это сам OpenGL. Если собираю через Release, то exe весит 12кб и на другой машине требует только glut32.dll.Собственно вопрос: где можно почитать как оно всю эту хуйню собирает?
>>1188713Забыл уточнить, делаю всё в Visual Studio 2017.
>>1188713Гугли "динамическая/статическая линковка". Видимо ты в релизной версии включил статическую линковку.
>>1188713С д на конце это дебажные длл которые у обычных пользователей не стоят.
>>1181867 (OP)Как написать обобщенный код, который бы сериализовал целочисленные типы вроде int32_t, uint64_t, int в массив байт?
>>1188823А в чем проблема? Всего то 2 параметра - тип(или размер в байтах, внутри трейтов натолкаешь что целочисленный) да порядок байт.
>>1181867 (OP)Анон, как в моей функции сериализации выбрать порядок байт?https://ideone.com/kPqKg4
>>1188921Чем тебе не угодили htonl/ntohl?
>>1188921>https://ideone.com/kPqKg4Выбором направления при перезаписи числа в std::array, очевидно же.
В одном файле имеется глобальная константа, хочу "передать" её в другой файл, для этого использую ключевое слово extern.Константа объявлена как extern const int имя = 3.В другом файле написано extern const int имя.Казалось бы все работает, в файле, куда передаётся эта константа я могу создать статический массив размера [имяконстанты], всё компилится, но при этом я не могу создать объект типа std::array<int,имяконстанты>, что с ним не так?Ошибка: "expression must have a constant value"
>>1189806Вообще я там не создаю array, а передаю его параметром в метод класса, но создать тоже не получается, также ошибка.Вдруг это поможет.
>>1189808>>1189806Сделай какой-нибудь хедер misc.h или common.h в котором буду нужные тебе константы и которые могут понадобиться в разных местах программы.
>>1189913Я в итоге просто и объявил её в хедере, просто хотел изменятьизменять до времени компиляции переменную из сурс файла, а буду изменять из хедера.
Помогите с синтаксисом.Ввод на стандартный поток какой-то последовательности. Последовательность завершается признаком конца ввода.Что это за признак? ctrl+d? Если да, то это много проблем порождает.Я питался писать по всякому, и while (cin >> a)и while (!cin.eof())Оба эти варианта не принимаются авто системой - ошибка ввода. При этом во втором случае, еще и последний символ считывается два раза.
>>1190102Ввод, вроде бы, просто представляет собойcin >> aмимо
>>1190103Последовательность. Мне нужно считать последовательность неизвестной длины, концом которой является признак конца ввода. Я спрашиваю как это сделать.
>>1190102Что ты хочешь сделать? Что ты подразумеваешь под последовательностью? Какой именно признак конца ввода? Если вводить через cin >>, то по дефолту признак конца ввода это пробел или собственно конец ввода.Если ты вводишь строку можно использовать getline, у него признаком конца ввода является только нажатие на энтер.
>>1190119Понятия не имею, что вижу, то и говорю. На стандартном потоке ввода вводится последовательность целых чисел. Последовательность завершается признаокм конца ввода. Сделайте там какое-то действие с последовательностью.Компилятор gnu c++В интернете вычитал, что признак конца ввода - ctrl+d или z но у меня во втором варианте, к примеру, программа просто останавливается.
>>1190122Как вводятся числа не сказано? Например через пробел или через строку.Странное задание, какое-то неконкретное.Могу предложить такое решение, чтобы закончить ввод нужно ввести Ctrl+Z.
>>1190127Вводятся через стандартный поток ввода. Нет ни пробелов, ни строк, просто числа идут на стандартный поток ввода.
>>1190122Я не понимаю, что тебе не нравится. Ctrl-Z - признак конца ввода. Грубо говоря твоя последовательность выглядит вот так1 2 43 67 8 43 89 34 ^ZВ цикле while(cin >> a) ты делаешь все необходимые действия со своей последовательностью. Как только встречается конец ввода, программа выводит результат и останавливается.>>1190127Сам найдешь ошибку? Чему будет равно i если я введу строку1 34 67 43 0 76 123 87 ^Z?EOF кстати тоже использовать нельзя. Программа завалится вот на этой строке1 2 3 -1 54 32
>>1190139>Я не понимаю, что тебе не нравитсяКак ловить то конец ввода? Ну допустим пробел. А как мне его ловить, если я считываю в интовую переменную?
>>1190139В первом случае i будет равно 4.Алсо не понял почему она завалится. Ничего не падает вроде.
>>1190143Бля, а ты вообще имеешь право так быдлокодить? Есть гарантия что логические выражения будут справа налево вычисляться?
>>1190144>Есть гарантия что логические выражения будут справа налево вычисляться?Насколько я помню, да, слево направо, лениво
>>1190144Они же слева направо вычисляются.
>>1190145мимо автор исходного вопроса.
>>1189806https://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files
>>1190151Уже разобрался, спасибо.
>>1190140>>Я не понимаю, что тебе не нравится>Как ловить то конец ввода? Ну допустим пробел.А ты можешь скинуть полностью формулировку задачи. По тому что написано можно предположить, что после введения строки чисел пользователь просто нажимает CTRL-Z и программа завершается, выполнив все требуемые действия>>1190143Ну не валится конечно, я неправильно выразился. Просто результат будет неправильным если встречается 0. А если использовать вместо '\0' EOF (выше кто то советовал), то результат будет неправильным если встретится -1.
>>1190308Ну это да, я просто не видел, что кто-то EOF советовал.Теперь понял.
>>1190308На самом деле довольно странно выглядит "пользователь введёт ctrl+z", скорее всего в задании есть какой-то символ который будет играть роль конца строки.
>>1190318>>1190318Да похуй на самом деле что он там введет, главное чтоб это было не целое число. cin здесь ожидает int и как только он натолкнется на первый !int цикл закончится. Так что можно вводить хоть 1 2 3 54 -100 xхоть1 2 3 54 -100х или 1 2 3 4 5;результат один хер будет правильным.
>>1190327Ну это понятно, там ведь результат оператора >> же неявно кастуется к булу через проверку флага потока?
>>1190328Если я правильно понял, то вот ответ на твой вопрос https://stackoverflow.com/questions/38978266/how-can-stdcin-return-a-bool-and-itself-at-the-same-time
Тупые вопросы от вкатывальщика к практикующим крестовикам:1) Как часто используете в проектах ебанутую идиому SFINAE, сколько бы ни читал никак не могу въехать2) В каких случаях пишете кастомный аллокатор?И самый тупой вопрос: никак не могу перейти от написания элементарных заданий из учебника к чему-то более серьезному, проект в голове вроде бы родился, но вот с архитектурой проблемы, как вы проектируете?
>>1190343Я использовал на работе 1 раз по приколу. Просто кусок сделал люто-шаблонным. А так - ты врятли это где-то увидишь в коде.2. В качестве саморазвития онли. Все, что нужно, уже есть в бусте.3.Долбись головой об стену, и старайся писать серьезное, как можешь. Это нарабатывается только опытом
>>1190343> 1) Как часто используете в проектах ебанутую идиому SFINAE, сколько бы ни читал никак не могу въехатьНачиная с C++17 заметно меньше, ибо теперь множество кода можно написать с if constexpr. SFINAE использую в основном только для compile-time определения особенностей типа (где стандартные утилиты из type_traits не помогают) и подобного, чтобы потом написать что-то вроде if constexpr(is_yoba_type<T>), где is_yoba_type - SFINAE-функция для проверки типа.
>>1190343> но вот с архитектурой проблемы, как вы проектируете? Читать книжки по этой теме, посты в блогах/форумах, читать чужой код в похожих проектах (в которых есть похожий функционал)Ну и самое важное: уметь формулировать задачу конкретно, а не слишком абстрактноНапример, думал себе сделать что-то вроде таск треккера в котором был бы функционал парсинга исходников на предмет TODO/FIXME и прочих комментариевСначала тупо решил парсить комменты и смотреть что там в них. Плохой был вариант т.к. много лишней работы.Потом конечно допёр что мне не нужны все комментарии.
>>1186245DJGPP
>>1190102ctrl-z попробуй
>>11903431) Часто. Мета-программирование очень популярно в финтехе, ибо оптимизации.2) Редко. Это сложнее SFINAE и редко нужно.3) сам хуй научишься. Пробуй, но лучше поработать с кем-то, кто тебя будет носом тыкать. Постепенно наберёшься от него.
На следующей неделе иду на собеседование, меня назначили в команду разработки драйверов, посоветуйте, пожалуйста, что можно почитать, а то я только прикладной софт и писал.
>>1191075Драйверов для чего? А то это такое широкое понятие, что "драйвер" может быть и прикладным ПО.
>>1191080Драйвер протокола под винду для отправки/приёма сетевых пакетов.
>>1191103https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/writing-your-first-driver
>>1191132Спасибо.
>>1181867 (OP)Я тоже драйвероеб. У меня стоит VS2017 и WDK для Win7 в директории C:\WinDDK. Я создал пустой солюшен WDM и написал main.cpp с подключением ntddk.h и точкой входа. Ничего не компилируется. Что надо прописать в настройках проекта кроме инклудов?
>>1191144Ну хоть ошибку конпеляции покажи.
>>1191147Building 'Driver' with toolset 'WindowsKernelModeDriver10.0' and the 'Desktop' target platform.1>C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(482,5): error MSB6004: Указанное расположение исполняемого файла задачи "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86\stampinf.exe" является недопустимым.
Привет.Читал пример объявления класса Х (с полем m), встретил такой конструктор:X(int i =0) :m{i} { }Поясните, пожалуйста:1) зачем =02) что такое :m{i}
>>1191580nvm, ответ был через пару параграфов :\
>>1191586Еще и вот так далают :m(i)
>>1191580=0 - значение по умолчанию. {} - 99% на то что долбоеб какой-то узнал про них и прям решил резко их везде юзать. а так обычно () круглые скобки используют для инициализации.
Ананасы, в чём я не прав? С хуев он тип вывести не может?
Короче, посоны, ЕОР. (?:31\.(?:0?[13578]|1[02])\.\d{4})|(?:30\.(?:0?[13456789]|1[012])\.\d{4})|(?:[0-2][0-9]\.(?:0?[1-9]|1[012])\.\d{4})Это дата в формате dd.mm.yyyy(без проверки на високосные года). Хуле оно так медленно работает? Например, взял я текстовый файл(скопировал статью по истории с вики с датами), весом 120кб, оно там что-то ебошит 4 секунды примерно, и это без всяких проверок!С другой стороны, нашел на стековерфлоу вот такое выражение примерно для той же задачи:^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$Оно работает быстро.Еще ранее сегодня я ебанулся и написал такое:((?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d)|(3[01]))[.\-\s](?:(?:0?[13578])|(?:10)|(?:12)|(?:jan)|(?:mar)|(?:may)|(?:jul)|(?:aug)|(?:oct)|(?:dec)|(?:january)|(?:march)|(?:july)|(?:august)|(?:october)|(?:december)|(?:январь)|(?:января)|(?:март)|(?:марта)|(?:май)|(?:мая)|(?:июль)|(?:июля)|(:?август)|(?:августа)|(?:октябрь)|(?:октября)|(?:декабрь)|(?:декабря))[.\-\s]\d{4})|(?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d))[.\-\s]0?2[.\-\s](?:(?:(?:[02468][048]00)|(?:[13579][26]00))|(?:(?:\d{2}[2468][048])|(?:\d{2}0[48])|(?:\d{2}[13579][26])))|(?:(?:(?:(?:\n|\s|^)+0?\d)|(?:1\d)|(?:2[0-8]))[.\-\s]0?2[.\-\s]\d{4}))|(?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d)|(?:30))[.\-\s](?:(?:0?[469])|(?:11))[.\-\s]\d{4}))Правда, эту хуйню я не закончил(не добавил все месяцы),т.к. протестил на том самом файле весом 120кб и увидил, сколько оно работает.Помогите, тапками не кидайтесь, я новенький в этом деле. Что я делаю не так(например, в самом верхнем выражении)? Как это можно ускорить?
>>1191844>увидилКороче, помогите тупому пожалуйста.
>>1191844>Как это можно ускорить?Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код. Не помню как называлась. >Помогите, тапками не кидайтесь, я новенький в этом деле.Есть ли задачи? Не проще ли как диды if( str[2]=='.' ) return str.substr(1,2 и т.д. и т.п?Тем более что разных пар dd.mm всего 356, засунь в хешмапу, хуле ты.
>>1191966>Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код.Не слышал о таком, спасибо, погуглю.>Не проще ли как дидыПроще, но так не интересно.
>>1191966> Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код. Не помню как называлась.Ragel? Там не совсем регексп, там пиздец генератор...Есть boost xpressive, но там в рантайме. Ну а в компайлтайме шаблоном вроде регекспы в дишечке задаются.
>>1191980Вот оно:http://re2c.org/
Господа программисты, как перевести массив int в массив char?Например, у меня есть {231, 5, 78, 45, 89, 9, 0, 12}Надо получить "2315784589012"Да, я совсем нуб, в гугле не нашел.
>>1192075Можно так.Если нужны именно массивы, можно потом из строки каждый символ добавить в массив(и в начале вместо вектора тоже взять массив).
>>1192083> Можно так.> Если нужны именно массивы, можно потом из строки каждый символ добавить в массив(и в начале вместо вектора тоже взять массив).Зачем? Просто union
>>1192087Ты ебобо? Как ему поможет union?>>1192075Именно в массив (в сишном) или строку/вектор? Ты в тот тред зашел? Потому что в первом случае >>1192083. А если имеется в виду сишный массив и работать надо сишными методами (бывают такие ебанутые преподы, если это задание), то там придется чутка поебаться.
>>1192122Не так прочитал.А как он собрался блять конвертить то что в большем типе? Там известно что числа в интах будут влезать в байт?
>>1192125Нахуя МНЕ конвертировать? to_string - стандартная функция, которая делает всю работу за меня. Если бы пришлось самому этим заниматься, я бы брал каждое число из массива, получал его цифры остатком от деления на 10, переводил бы их в char(прибавляя значение нуля из ascii таблицы - 48) и записывал в массив char'ов. Наверное, to_string как-то так и делает для одного конкретного числа.
>>1192125у него есть массив {231, 5, 78, 45, 89, 9, 0, 12}ему нужен массив {'2', '3', '5', '7', '8', '4', '5', '8', '9', '9', '0', '1', '2'}Со строкой выше анон предложил вариант со строками. В пур сишке это бы делалось так. Объявлялся массив чаров. Последовательно берется каждый инт, объявляется для него промежуточный массив, инт конвертится в массив чаров (деление с остатком, потом + '0', потом это записывается в промежуточный массив, потом этот массив реверсится и копируется в результирующий массив - есть и другие варианты с рекурсией, например или itoa(int), короче каждый изобретает свой велосипед на то она и сишка) и так до победного.Тут нихуя непонятна постановка задачи.
>>1192128> Тут нихуя непонятна постановка задачи.Двачую, пусть анон постарается получше объяснить, что ему нужно.
>>1192075Зацени мой велосипед.
>>1192210Потенциально может упасть, если массива чаров не хватит.
>>1192212Да это почти сишный код. А в сишечке потенциально что угодно может упасть. Можно конечно колхозить через realloc'и, но, во-первых, это медленно, а во-вторых область знаний анона-вопросителя вряд ли простирается до этого момента, если он задает такие вопросы.
>>1192210В общем это не критично, но все таки доебусь со скуки. Нахуя писать auto если тип входных данных известен и нахуя использовать магическое 48 вместо очевидного '0'?
>>1192219У него же шаблонный код, поэтому он просто пишет auto вместо чего-то подобного.
>>1192223А насчёт магического 48 согласен, лучше писать просто '0'.
>>1192223>>1192224Хотя частично с тобой согласен, если ему это нужно только для конкретного случая, то можно было даже шаблон не делать.
>>1192219>Нахуя писать auto если тип входных данных известенПатамушта это модерн C++.>нахуя использовать магическое 48 вместо очевидного '0'Да какая разница, 48 это ASCII код цифры 0. И char по сути 8-битный integer, вот и сделал все в интегерах.
А во что обходится использование auto в плане скорости компиляции? Скажем, если юные адепты c++11 засрали им весь код?
>>1192228>Патамушта это модерн C++.Вообщет патамушта там тип не известен до инстанцирования шаблона.
>>1192224А еще можно было вконце стринга вместо c[pos] = 0 написать c[pos] = '\0' , это то же самое. Эти одиночные кавычки же тупо алиас для интегера, можно даже макро назвать. В конце концов компилятор их в интегер превращает. Я тут старался велосипед свой писал, а вы как изверги до мелочей докапываетесь!
>>1192229Лол, спешите видеть! Вместо исправления говнозовисимостей и перекомпиляции сотни файлов при изменении одной строчки спешит заклеймить auto. Старпер ас ис, используй мост деб
>>1192253Ты на вопрос то ответь. Насколько труднозатратно для компилятора выводить тип?
>>1192253Что такое мост?
>>1192223Тьфу блядь действительно шаблон
>>1192260Шаблон проектирования мост, он же pimpl. Разделение объявления и реализации
>>1192399Ну так это обычные вещи, известные до появления auto засирателей (разделение реализации и объявления, минимальность по включению, указатели вместо объектов, etc...). Как auto то использовать, чтобы не тормозить сборку? int i = 0; auto j = i + 1; норм или не норм?
>>1192426В твоём случае никак не повлияет.
>>1191842remove_pointer_t как вложенный относительно самого шаблона тип не является контекстом вывода.Тут подробнее:http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0293r0.pdf
>>1192468а в каком повлияет?
Как нормально сделать switch со string
>>1192485Никак. Он для этого не предназначен.
>>1192480Вообще не встречал упоминаний о том что авто замедляет сборку.
>>1192480Вообще если логически подумать, то компилятор в любом случае проверяет соответствие типов слева и справа от знака равенства. Так что навряд ли замедляет. Просто вместо сравнения делается подстановка в зависимости от выражения справа. Поэтому не должно влиять настолько, чтобы это было заметно
>>1192487unordered map
>>1192229>А во что обходится использование auto в плане скорости компиляции?Очень сильно зависит от конкретного случая. От нулевого оверхеда, вроде auto i = 1, где тайпчекер и так все будет проверять, до теймплейтной пиздецомы вроде эйгена, где на каждом auto будет накапливаться expression template, и в результате тайпчекеру придется ресолвить стоэтажное выражение, где вполне вероятна экспоненциальная сложность от каждого предыдущего auto. В обычных случаях, если не злоупотреблять, больше на читаемость влияет.
>>1192503Не совсем подходит. Если ему нужен именно аналог switch, это значит что все строки известны заранее, а простой unordered map как минимум добавит рантайм оверхеад не просчитывание хэша строк. Лучше всего в данном случае взять какую-нибудь библиотеку с compile-time высчитыванием хэша, к тому же если все строки заранее известны можно сделать идеальное хеширование (т.е. хеши разных строк совпадать не будут), а значит сами строки в бинарнике даже хранить не надо будет.
>>1192505не надо ебать голову и изобретать велосипед там, где можно справиться простыми вещами, которые тяжелее по времени исполнения (в пикосекундах), но в разы сложнее при написании (в часах, а иногда сутках)
>>1192507Самое сложное тут будет написать функцию хэширования, а с C++17 сам АПИ будет выглядеть довольно красиво, как-то так:https://pastebin.com/CKjAx9G5
>>1192503Я бы тебя к хуям уволил за мап ради свитча.
>>1192505Нахуя хэш-то? В свитче обычно меньше десяти значений, проще и быстрее тупо сравнить в цикле.
>>1192513Что плюсик делает перед лямбдой?
>>1192617> Нахуя хэш-то?Чтобы не хранить сами строки в бинарнике, очевидно же. Опять таки можно сделать идеальный хеш (например сам хеш будет занимать 48 бит, а оставшиеся 16 бит будут занимать счётчик, увеличивающийся на 1 в случае коллизии), а значит сравнение строк вообще никогда не понадобится.>>1192619Если лямбда не захватывает значений, то превращает её в указатель на функцию.
>>1192620>превращает её в указатель на функцию. Нихуясе. А где об этом почитать можно?
>>1192620> например сам хеш будет занимать 48 бит, а оставшиеся 16 бит будут занимать счётчик, увеличивающийся на 1 в случае коллизииХотя вру. Придётся делать минимум две таблицы. В первой теблице будут счётчики коллизий (или псевдо-значения, например отрицательные числа будут хешами второй таблицы, а положительные - счётчиками коллизий), а во второй нормальный хеш-мап. Считываем хеш с начальным значением равным нулю, если счётчик коллизий равен нулю, то сразу считываем значение со второй таблицы, если нет, то считаем хэш ещё раз на этот раз с новым начальным значением и затем берём значение со второй таблицы.>>1192628> А где об этом почитать можно? А что читать-то? Очередная неочевидная перегрузка оператора. Ещё можно использовать static_cast, но плюсик занимает меньше места и скобки нинужны. https://ideone.com/WGl8nF
>>1192620>Чтобы не хранить сами строки в бинарникеТебе все равно придется их там хранить - хэш-таблица хранит значения ключей, по хэшу ищется нужная запись в таблице, по которой потом производится сравнение строк. Так что строки в бинарнике по-любому останутся.
>>1192670> по которой потом производится сравнение строк.Я выше обисал алгоритм идеального хеширования. Там строки хранить не нужно.
>>1192672>идеального хешированияЧтобы коллизии считать, тебе все равно исходная строка нужна. Для строк, генерируемых в рантайме такое работать не будет. К тому же идеальный хэш возможен только для строк ограниченной длины. То есть у тебя в программе будет потенциальный баг, когда заматчится неправильное значение. Привет тому, кто это дебажить будет.
>>1192677> Чтобы коллизии считать, тебе все равно исходная строка нужна.Нут так речь идёт о свитче, а значит все строки заранее известны. Все коллизии можно пересчитать ещё при конпеляции и хранить таблицу коллизий вместо самих строк. Идеальное хеширование по-определению будет работать, только если заранее известны все входные данные.
>>1192678>Нут так речь идёт о свитче, а значит все строки заранее известныСтрока, с которой они будут матчится-то неизвестна. Если она задана на этапе компиляции - вопросов нет, но если генерируется в рантайме, твой свитч превращается в тыкву.
>>1192682> Строка, с которой они будут матчится-то неизвестна. Хотя да, если сами строки будут генерироваться непонятно откуда, то может произойти бида.
Почаны, взяли джуном на крестах на испытательный срок, но я давно кресты не трогал, а когда трогал кроме заданий из страуструпа ничего не делал, хотя все их прорешал, сейчас есть пару недель пока переезд вот это всё что можно повторить, чтобы совсем не обосраться?
>>1192699А что делать-то будешь хоть?Вдруг там у тебя будут какие-то йоба-ограничения на стандарт и на функционал?
test
>>1192713Насколько понял юнит тесты писать.Если я правильно понимаю, что такое юниттесты
>>1192721Странно тогда, что с++, а не питон какой-нибудь.
>>1192722Да я сам охуел, я бы лучше на питоне, на нём гораздо больше писал.
>>1192722Как ты собрался тестировать крестовый код на питоне блжад?
>>1192731Так что, может что-то повторить стоит я даже не знаю, я последний раз на С++11 писал, а тут уже 17. Боюсь обосраться.
>>1192731Или норм, объяснят, а там по ходу втянусь, разберусь? Никто же не выгонит меня в первую неделю? Или могут?
>>1192737>>1192733Почитай книжки какие-нибудь про с++ уже после 11 стандарта.Естественно от тебя в первый день не будут требовать йоба магию на шаблонах.Но, например, разобраться в стандартной библиотеке. Какие там есть контейнеры, функции какие и тд.К примеруhttp://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf
>>1192782>http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf Охуенная книга!
>>1192782Благодарю.
>>1192782>http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf>может что-то повторить стоит Анон, спасибо, это то, что нужно.
>>1192128>>1192184Короче, вся суть в том, что мне надо зарандомить число на 128 битов в char. И я думал использовать стандартный rand(). И еще очень тупой вопрос - можно ли преобразовать unsigned char в char*, чтобы все осталось ОК и без лишней возни? Пишу на С++, но использую чужой код, написанный на C.
>>1192923фикс: unsigned char в char
>>1192924звездочки полетели, короче там везде массивы
>>1192805Не понял инклюдов. Ошибка отображения?
>>1192585Хуево быть тобой, фантазер-увольнятель
>>1192923Если значение больше 175, то нет.Вообще рекомендую посмотреть, как считает ли твой компилятор тип char - знаковым или беззнаковым, т.е стандарт этого не оговаривает
>>1192733узнай на чем тесты пишут. буст там, что-то еще.. узнай специфику проекта - что он делает глобально, разберись. сам цпп в тестах тупой как пробка обычно.
>>1192699Охуеть. Я студиозус в ДС1 пилю свою хуйню на гитхабе целыми днями (пизжу, но таки-пилю, пусть не целыми днями) и на работу никуда не берут, а тут тип устроился на кресты, на которых он один только труп страуса и дрочил на предмет заданий. Охуеть.
>>1193443Потому что надо ходить и устраиваться а не сидеть на жопе. Гит это хорошо, но его одного мало.Сам скоро пойду устраиваться в филиал одной большой американской компании2-курс
>>1193443Тренируйся проходить собеседования (продавать себя). А гитхаб можешь смело в помойку выкинуть. В начале карьеры работодатели смотрят в основном на потенциал кандидатов.
Какие библиотеки подойдут для геймдева? Не хочу быть юнити-дебилом.Из очевидных вариантов SDL/SFML + OpenGL, что ещё сюда присобачить?
>>1193467Библиотеку с физикой какой-нибудь.
>>1193469Ну, я хочу некоторую долю велосипедства сохранить, поэтому кое-какой физон сам напишу
>>1193467glm - математикаsdl_image/gli/stb_image - загрузка текстурНу а дальше в меру своих навыков можешь реализовывать функционал который нужен
Можно ли за лето выучить C++ для узкой задачи - программирования avr микроконтроллера? Все нужные библиотеки на C++ для подключаемых к микроконтроллеру устройств есть. Мне нужно лишь всё связать воедино и написать логику обработки информации. Навскидку сколько часов в день нужно будет тратить на обучение?
>>1193532А зачем там C++ учить? Всё равно большая часть стандартной библиотеки там не доступна. Лучше учи Си (ну можешь прочитать ещё про классы) и не выёбывайся.
>>1193537Так язык программирования avr - урезанный C++. И библиотеки с расширением .cpp.Я не выёбываюсь. Просто не очень разбираюсь.
>>1193456А мне тупо не отвечают когда я отправляю письмо в контору.Пили кулстори про свою подготовку.
>>1193460Попахивает хуитой. Работодатель будет кормить меня в обмен на код. Ему что, похуй как я пишу этот код и он будет проверять мой потенциал задачками на собесах? Если у меня есть потенциал, то я раскрываю его в решении боевых задач, я так думаю.
>>1193567Да просто отослал резюме.Компания занимается в основном сетевыми адаптерами и написанием дров под них.В итоге на след. день перезвонили, вот 22 числа пойду на собеседование.
>>1193532>программирования avr микроконтроллераДля восьмибиток кресты излишни. Там и сишка-то жирновата. Лучше сразу на асме кодить.
>>1193467>что ещё сюда присобачить? API блендера, чтобы экспортить модельки.
>>1193574На форте. Там можно даже ООП сделать.
>>1193573Красава.
>>1193574>Лучше сразу на асме кодить.Библиотеки самому написать с нуля тоже? Я не такой программист. Ассемблер слишком слоен для меня.
>>1193578Ага только надо успеть почитать насчёт этих протоколов, NDIS, и остальную хуету вроде WDF и WFP
>>1193581Мне кажется что с таким подходом тебя пошлют на хуй. "Почитать насчет этих протоколов и остальную хуету", лол. Тебе работать с этой хуетой. Главное чтобы собеседовать было некому.
>>1193587Посмотрим, хех.Всё равно у меня опыта в этой сфере нет, о чём я писал в резюме, но всё равно позвонили же.
>>1193587>с таким подходомВсё знать невозможно, тем более джуну, важно обучаемость показать и адекватность.
Если в моей программе больше одного файла, то в одном только функции (добавочный файл), а в другом main(главный файл), где я эти функции использую? Нельзя ли вставить файл в проект и выполнить его перед остальными файлами, при этом не вызывая функции из него?
>>1193605>Если в моей программе больше одного файла, то в одном только функции (добавочный файл), а в другом main(главный файл), где я эти функции использую?У тебя два файла: один с объявлениями функций, полей, вложенных классов, перечислений и прочей хуйни - так называемый заголовочный файл, или header (.h), а второй с реализацией всей этой хуйни.>Нельзя ли вставить файл в проект и выполнить его перед остальными файлами, при этом не вызывая функции из него?Что сделать? Выполнение программы в плюсах начинается и заканчивается в main. А чтобы пользоваться твоими файлами, тебе надо подключить хэдэры в main, или один хэдэр, а он пускай другие подключает.
>>1193609Кажется, задаю тупые вопросы. У меня два .срp файла, в одном пишу функции, в другом сперва объявляю их, потом вызываю. Функций мало, поэтому в .h файл ничего выносить не стал. Две функции main не сделать, так?
>>1193613Ты можешь хоть все функции в одном файле писать. При запуске с++ кода операционная система вызывает функцию main. Соответственно, если у тебя туева хуча функции написано вне мейна, а в мейне ты их не вызываешь, то вызываться они не будут вовсе.Надеюсь ты это имел в виду.
>>1193619Под вне мейна я подразумеваю всякие обычные функции, которые находятся в области видимости файла/класса, а не какие-нибудь лямбда-выражения, функторы, который можно прямо внутри функции объявлять.
>>1193619У меня один файл рисует фрейм и обрабатывает действия, в функцию это не вынести, а майна в привычном понимании там нет, только эвенты и их код.
>>1193628> майна в привычном понимании там нет, только эвенты и их код. Event loop в любом случае находится в мейне, так что не надо тут врать нам.
>>1193589Ни хуя себе. Вакансия "Программист C++, опыт работы 1-3 года", ты приходишь весь такой адекватный, тебе дают работу. Так?
>>1193635Если у тебя нет опыта, но ты идёшь на объявление, где опыт 1-3 года, то ты где-то ошибся.
>>1193636На C++ нет никаких вакансий без опыта.Я листаю hh по Москве, и единственная вакансия джуна, которую я пока что увидел - это Коломна, непонятно как попавшая в выдачу.
>>1193639Забыл добавить, переключаюсь в "Опыт работы -> Без опыта" - заебись, первые двадцать вакансий "Опыт работы с X от 2 лет, опыт работы 3-6 лет, Senior Software Blahblahblah".
>>1193639>На C++ нет никаких вакансий без опыта.Есть.
>>1193642Хотелось бы пруфы трёх вакансий в Москве без опыта.
>>1193646https://hh.ru/search/vacancy?from=cluster_experience&area=1&enable_snippets=true&customDomain=1&experience=noExperience&text=%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA+c%2B%2B&clusters=true&search_field=name
>>1193650Я попросил пруфы трёх вакансий в Москве без опыта, а не ссылку на выдачу, про которую я сказал пять минут назад. Твоя (а по факту моя) ссылка ведет на "Опыт не менее двух лет; опыт CUDA" и прочую парашу.
>>1193650>Написание программ для управления процессом фото съёмки с применением промышленных камер.>Под руководством ведущих разработчиков - работа над проектами, связанными с банковским оборудованием. >Ускорение и оптимизация алгоритмов, написанных на С/С++ или Matlab (эффективная реализация на GPU с использованием CUDA или OpenCL).>Опыт разработки на CUDA. Знание С++11 (особенно concurrency). Уверенное программирование на С++, STL (опыт не менее 2-х лет). Это не вакансии для новичков, это фирмы без денег.
>>1193652>Опыт не менее двух лет>Отличное знание С++, STL (опыт не менее 2-х лет)>Требуемый опыт работы: не требуетсяЭто опыт программирования, а не опыт работы.
>>1193654Ты пытаешься троллить? В этой же вакансии на которую ты ссылаешься, по тексту далее:https://hh.ru/vacancy/25606305?query=%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%20c%2B%2B"пыт написания программ для управления процессом съёмки с использованием промышленных камер (например, камеры Basler, Автоматическое управление экспозицией, Exposure control, Gain)."Тут явно речь не об "опыте программирования", блядь. Угу, студиозусы через одного по приколу пишут софт для камер Basler и т.д.
>>1193657Почему это? Нет, не троллю. Это твоя дипломная могла быть, например.
>>1193659Угу, я покупаю весь необходимый обвес, год пишу эту дипломную, затем захожу на Hh - вакансия закрыта. Доброе утро.Не пизди, что не троллишь. Требования, описанные в вакансии, неприменимы к студенту. Тут же фактически требуется знать относительно узкую предметную область. То есть пришел на работу и сразу хуяришь набело нужный софт для конкретных каких-то камер. Джуна они ищут, прости господи.
>>1193662Ты какой-то дурак, ты хочешь, чтобы тебя взяли работать, платили тебе деньги и при этом ты нихуя не умел.
>>1193664>Всё знать невозможно, тем более джуну, важно обучаемость показать и адекватность.Это твои слова или тот анон куда-то съебал, и ты решил поотвечать за него? Ты (вы) уж определись (-тесь), надо ли задрачивать гитхаб или ходить по собеседованиям (ну я пока что делаю и то и другое), знать предметную область или чисто плюсы с stl. Я студент, блядь, я не могу по выпуску из своей шараги знать технологию производства говяжьих анусов, но я могу ей научиться. Кто может меня взять на работу без опыта, чтобы я (без шуток) вникал в эту самую область и пилил свой говнокод?
>>1193665Я это к тому, что "обучаемость и одыкватность" разбиваются об:>Опыт написания программ для управления процессом съёмки с использованием промышленных камер (например, камеры Basler, Автоматическое управление экспозицией, Exposure control, Gain).
>>1193668>>1193665Ладно, сдаюсь, ты меня подловил.
>>1193664https://career.ru/vacancy/23914795?query=разработчик%20c%2B%2B вот это вакансия без опыта (вернее на нее похожа). Хуета про камеры - это типичный ооо вектор (особенно строчка про исторический центр Москвы порадовала - вектор векторный)
Сап. Вот есть игра Connect-4 на MVC. К основному классу игры со всей логикой я подключаю классы ViewConsole и PlayerConsole - это кагбэ вид и контроллер. ViewConsole отображает игровое поле в stdout консольки (стоит subsystem:console), PlayerConsole читает ходы из stdin той же консольки, я ввожу их с клавиатуры последовательно за обоих игроков. В конечном итоге я хочу дописать класс ViewQtWindow, чтобы играть не из консоли а из окошка. Только я одного не учел - PlayerConsole по-прежнему читает из stdin, а не из кьютовых формочек. Да и с консолью непонятно, линкер же заточен на одну subsystem, чтобы оставить классы прежними, придется проверять, где игра до того как включается вид - в консоли или окошке, и если окошке, то пердолиться со включением консоли, а если в консоли - то с включением окошка.Короче, пора перепиливать всё нахуй не под MVC, а под M(VC), чтобы класс игрока включал в себя и ввод и вывод? Или есть еще надежда на спасение и я не настолько объебался в проектировании?
>>1193665Без опыта наверно только по знакомству сможешь устроиться на такую работу.
>>1194020Пиздец, ты ж не этерпрайзный опердень пишешь.https://habr.com/post/343778/
Есть код, который вывод список файлов и директорий в текущей папкеint main() { setlocale(LC_ALL, "rus"); WIN32_FIND_DATA f; HANDLE hf; hf = FindFirstFile("./", &f); if (hf != INVALID_HANDLE_VALUE) { do { puts(f.cFileName); } while (FindNextFile(hf, &f) != 0); FindClose(hf);}Что сделать чтобы он этот список ещё и в файл сохранял?Пробовал обычным дедовским способом file<<f.cFilename дак он мне туда вместо списка выводит targetver.h* не ебу что это вообще такое
>>1194277блядь почему код так криво вставился
>>1194278Потому что надо было вставить ссылку на код, а не сам код.
>>1194280в первый раз на доске, мискузи
>>1194290Хули шапку прикрепленного треда не прочитал?
>>1194293многабукафф
>>1194277Гугли dirent.h, там попроще работа с файлами - когда-то правил простую прогу для вывода списка файлов в папке, разобрался быстроМожешь кинуть сюда свою почту, но не обещаю, что откопаю файл с кодом
>>1194395> Гугли dirent.h, там попроще работа с файламиЗачем что-то гуглить, если давно есть стандарт для работы с файлами? Пусть изучает std::filesystem и не ебёт мозг. Полностью поддерживается в VS 2017 15.7 - последней (на данный момент) стабильной версии вижуал студии.
>>1194401Да, ты правЯ-то ему сишную библиотеку посоветовал, а про плюсовый filesystem не знал сам
>>1194401>давно есть стандарт для работы с файламиТак давно, что пиздец.Сколько лет он есть? 30? 40? 50?
>>1194425Год уже есть. Если бы это был жаваскрипт, то уже успело бы смениться двадцать фреймворком и три принципиально новых подходов к программированию.
>>1194428>Год уже есть.https://www.iso.org/standard/68564.html ISO/IEC 14882:2017Publication date : 2017-12
Аноны, как проходят собеседования? У меня пиздец, почти паника, иду первый раз.Что обычно спрашивают на что обращают внимание.
>>1194542Я не программист, но некоторые моменты скажу. Скорее всего там будет такой человек, который будет анализировать твоё поведение в обществе и коллективе. Не рассказывай ничего такого, что может тебя показать необщительным и зажатым человеком.
>>1194647Хорошо, попробую, спасибо за совет.
>>1194647>Я не программистЧто ты тут вообще делаешь?
>>1194665Собираюсь остановиться программистом конечно же.
Пацаны, расскажите, если ваш байтострел такой охуенный, то зачемUCLASS()class AMyActor : public AActor{GENERATED_BODY()public: // Sets default values for this actor's properties AMyActor(); // Called every frame virtual void Tick( float DeltaSeconds ) override;protected: // Called when the game starts or when spawned virtual void BeginPlay() override;};А?
>>1194674>остановиться
>>1194675Что зачем?
>>1194687UCLASS()GENERATED_BODY()
>>1194689Макросы
>>1194675>Пацаны, расскажите, если ваш байтострел такой охуенный, то зачемМакросы? Это часть охуенного языка. В чём проблема?
Антоша, подкинь статью про наследование классов. Чтобы понятно было разжёвано. Я прост запутался у Липмана как то хуёво расписано, да и заебал он уже своей хуйнёй про ебучий ,блядь книжный магазин, со скидками. Пиздец ну зачем такую сука скучную хуйню выбирать для примеров. ISBN на хуй.Приват там всякий протектед и ебля с друзьями.Асло, не сумел на скомпилить некоторые либы на минГВ, прост компиляция обрывалась с ошибками и хуй его знает в чём дело. В итоге поставил пингвина порядком подизъёбся с ним недели две, но вся хуйня успешно работает. Насколько полезен вреден/линукс для изучения крестов и Си? Не впустую ли я трачу время читая мануалы?
>>1195085Ты впустую тратишь время изучая кресты
>>1195085Пердачую этого >>1195135Причины аж две - во-первых перейди на язык с ООП, реализованным без киллер-фич вроде дружественных функций и множественного наследования, а во-вторых ты серьезно не осилил всю эту хуйню про ООП? Ну Лафоре штоле прочитай, у него есть книга про ООП. Хотя я когда на втором курсе шараги добрался до нее, мне было очевидно 90% хуйни что там написана, и 80% я умел написать руками сразу и набело.
>>1195136 Липман прост материал подаёт оче последовательно и ни разу не использовал хоть какой нибудь графики для облегчения понимания. Я реально просто запутался, возвращаться к книге после перерыва сложно, там все примеры взаимосвязаны. И в довесок перевод не очень, функции класса вместо методов и прочие неприятные мелочи. Порой такая тавтология получается. А чоу, френды и множественное наследования разве только на крестах есть? За наводку на Лафоре спасибо.
Какая IDE имеет функцию форматирования кода? Лень самому следить за единством оформления кода.
>>1195257Попробуй cline
>>1195257Visual Studio (2017) Ctrl + K, Ctrl + D
>>1195257NetBeans.
>>1195257Наверное любая, потому что этим занимается не ide а посторонние инструменты - astyle, ckang formatter и так далее. К креатору точно подключаются
>>1193613Представь, идёшь ты по дороге, а впереди развилка с надписями. Направо - Москва, Налево - Москва. Тебе это введёт в заблуждение? Так вот, компилятор тоже охуеет.
Надо за неделю написать курсач. Задание - "Разработка информационно-поисковой системы «Деканат»Для хранения информации использовать файл. Функционал программы: 1) добавление информации; 2) удаление информации; 3) редактирование информации; 4) поиск информации по заданным критериям."При написании использовать классы и другую ООП хуйню.Какие книжечки/статьи/сайтики покурить?
>>1195656LibXML кури.По поводу классов — быстрее всего Трей Нэш, учебник по C# 2010 года.
>>1195656>за неделю написать>C++Ебу дал?
>>1195664Ну а хули делать
>>1195661Разреши вопрос, зачем читать книжечку по C#, если мне нужны плюсы?
>>1195670Разрешил.
>>1195684А ответишь?
>>1195689И ещё как!Ты же спрашивал книгу по классам и ООП, а не по языку программирования. По языку — это нужен Стенли Липпман, но вот у него-то как раз совсем и не разобрано ООП, не хватило места, наверное. Тысяча страниц...
>>1195656> Функционал программыА каким образом идут запросы-то? CLI? Или какой-нибудь rest-api?
>>1195656Тут нужна четырехслойная архитектура бизнес-приложения (уровень бизнеса, сценариев, интерфейсов и инфраструктуры). Описываешь сущности на уровне бизнеса, описываешь сценарии работы пользователя с сущностями на уровне сценариев, интерфейсы вызывают активность в твоем приложении, а в инфраструктуре хоронишь всякий убогий вырвиглазный низкоуровневый пиздец.
>>1195696Не ебу, что это
>>1195697Что за четырехслойная архитектура? Где почитать?
>>1195699CLI - консолька. rest - web-сервис (хотя можно сделать и на websocket если нужен пирформанс и получение событий от сервера без геморроя).
>>1195700https://habr.com/post/271157/Это надо долго и внимательно раскуривать, разрабатывая свою архитектуру.
>>1195702Короче, насколько я понял, поху как это реализовано будет.
>>1195704Да ему это нахуй не нужно. Пусть создаст простые классы для хранения инфы (надеюсь хоть типы хранимых данных ему известны). Сделает реализацию сериализации/десериализации. В файл будут записываться классы.Поиск >по заданным критериям< можно сделать элементарно перебором всех классов и сравнением критериев (ну или если хочется пирформанса, то можно сделать индексы).Остаётся вопрос взаимодействия с пользователем. Как мне кажется это будет самая сложная часть, учитывая, что тот хуй даже не знает что от него требуется.Если типы данных неизвестны и могут меняться при работе программы, то только могу предложить сделать недо-документоориентированную БД, а данные хранить и получать от пользователя в виде JSON.
>>1195706Шот сложно пизда.Нахуя я на программиста поступал?
>>1195712Ну, вариант с JSON не такой уж и сложный. Благо библиотек (в том числе header-only) дохуя. Можно сделать няшный CLI, вродеcreate 15:{"name": "Хуй Петрович", "age": 43}remove "@id"=15remove "age" = 43update 15:{"dick_size": 12}delete "@id"=15get "@id"=15Для create или update синтаксис будет такой(create|update) ID:JSONобе функции возвращают id объекта или ошибку, если используется поле с именем "@id" (в нём программа хранить id и его использовать нельзя) или в случае create если объект с id уже существует.remove, delete, get имеют схожий синтаксис. Можешь использовать элементарные логические операции + несколько встроенных функций. Напримерget contains("name", "иван") && "age" > 34возвратить все объекты имя которых содержит "иван" и возраст больше 34.
>>1195720Нихуя не стало понятнее, но все равно спасибо.В пизду, перепоступать буду нахуй
>>1195656> Надо за неделю написать курсач. Задание -> "Разработка информационно-поисковой системы «Деканат»> Для хранения информации использовать файл. Функционал программы:> 1) добавление информации;> 2) удаление информации;> 3) редактирование информации;> 4) поиск информации по заданным критериям."Блокнот что ли?
>>1195656Структуры, сортировка структур, хранение структур в списке, удаление из списка, поиск в списке по критериям, всё это обёрнутое в классы. Эта ебанина на любом С-языке пишется за час под пиво. Не слушай всех этих мудил которые пишут тебе хуйню и записывай подводящие задачи. Решаешь эти задачи и приступаешь сразу к написанию своего курсачеговнокода, никакие статьи с книгами тебе не понадобятся.Итак, задачи:1) Объявить структуру с парой строк и парой чисел, спросить у пользователя число структур, создать массив структур заданной длины, заполнить его вводом с клавиатуры. Далее спросить у пользователя строку и пройтись по заполненному массиву. Если такая строка найдется в поле одной из структур (скажем поле string name), то вывести номер этой структуры и все ее поля.2) Всё то же самое, только не массив структур, а список. Пользователь нон-стоп вводит поля структур (заполняет структуру-буфер, которую ты каждую итерацию присоединяешь к имеющемуся списку), а когда он вводит что-то вроде "$exit" - ты переходишь к поиску по строке, как в предыдущем задании.3) Всё то же самое, только кроме вывода на экран найденной структуры ты ее удаляешь. Из списка.4) Всё то же самое, только поиск по строке, вывод на экран и удаление - функции.5) Всё то же самое, только деканат и список - классы, а вся хуйня которую они делают - методы, чтобы можно было сделать так:db.fill();db.removeByCriteria(db.findByCriteria());и в этих двух строках в main умещался весь ход работы. Не благодари.2)
>>1195656Пиши.
>>1191075>>1194542Меня взяли, держу в курсе.
Итак, я веб-макака, перекатился в этот ваш ДС2. Полгода тут работаю в модном/молодежном стартапе, по вечерам пишу хелоуворды на плюсах. Стартап мой вот вот испустит последний вздох, и надо бы уже искать что то новое, но сука, никто не хочет даже приглашать меня на собеседования. Что делать анонимас? Может попробовать поучавствовать в каком нибудь опесорсном гвонище, или попробовать наговнокодить что нибудь большое в качестве пет проекта. Думаю пару месяцев текущий работодатель еще протянет. Мне 29, нет вышки и разговорного английского, при этом хочу прогроммировать всякие сложные штуки типа распознования ихображений и нейронных сетей, что предпринять в такой ситуации?
>>1196214И да, при этом на отклики по пхп/пайтон-макакингу сыпятся тонны приглашений, а на крестах хуй кто почесался. Хули то так сложно блять сюда вкатится?
>>1196214> что предпринять в такой ситуацииУчиться этим вещам и делать полезные йобы.
>>1196214А зачем оно тебе надо? Вакансий меньше, чем на вёб-макакинг. Зарплаты такие же или меньше. Если ты к 30 годам не смог в английский и образование, то видимо ты не очень умный и "сложные штуки" не для тебя.
>>1193456>>1196215>>1194048>>1193707Вот мои посты:>>1193587>>1193635>>1193639>>1193641>>1193646>>1193652>>1193657>>1193662>>1193665>>1193668>>1194020Короче, вы поняли какой. И я устроился плюсоводом, лол. В понедельник на работу.
>>1196374Надеюсь ты не к нам устроился, лол.
>>1196379К вам.
> О: Связанные с софтом вопросы обсуждаются в /s/. Исключение - IDE и прочие инструменты программирования, которые можно обсудить в тредах соответствующих языков.Ладно, спрошу тут. Перекатился на линух, какой ИДЕ лучше будет? Под виндой юзал Dev C++, вот мне бы такое же, простое и с функционалом. Гуглил, да. Но мне интересен живой опыт, а не описания.
>>1196653Никакой, берешь любой текстовый редактор, прикручиваешь к нему плагин+подсветку на основе элементов установленного компилятора, и работаешь.
https://2ch.hk/pr/res/1196791.htmlhttps://2ch.hk/pr/res/1196791.htmlhttps://2ch.hk/pr/res/1196791.htmlhttps://2ch.hk/pr/res/1196791.html
>>1196653>>1196757Говноедов полон тред. Текстовый редактор блять, линукс нахуй. Дали им вижуал студию, не хочу вижуал студию, хочу говно жрать. И это программисты, тьфу блять
>>1197007А нахуй нужна IDE в плюсах? Всё равно при использовании шаблонов большая часть фич IDE не работает.
>>1196374> я устроился плюсоводом, лол. В понедельник на работу.Ну видишь, а ты переживал.>>1192699-кунЕбать я охуел съёмную хату искать, везде наёбсики.
>>1197012в laba1.cpp да, не нужна. В продакшене нужна.
Есть файл с псевдографикой, хочу написаиь конвертер в эксель. Так как там всякие ебучие таблички, т просто так не сохраняется. Есть готовые или интересные решения на плюсах?
>>1197007Толсто.