"Я отношусь к среднему классу", — с гордостью говорит человек на Западе, а потом выходит из ветклиники, в которой работает, садится за руль автомобиля и возвращается в свою виллу. На балконе виллы — благоухающие цветы и обеденный столик со стульями. "Я отношусь к среднему классу", — с гордостью говорит врач в России, а потом подходит к подъезду, возле двери которого толпится круг из десятка курильщиков, протискивается между ними, заходит в свой подъезд и нажимает на копчёную, обугленную кнопку, которая изначально была белоснежной, чтобы лифт (картинки 26 и 27) его поднял на 8-й этаж "виллы". На балконе "виллы" — лестница-стремянка, матрац, удочка и старый холодильник.
>>2004208 > "Я отношусь к среднему классу", — с гордостью говорит человек на Западе, а потом выходит из ветклиники, в которой работает, садится за руль автомобиля и возвращается в свою виллу. На балконе виллы — благоухающие цветы и обеденный столик со стульями. "Я отношусь к среднему классу", — с гордостью говорит врач в России, а потом подходит к подъезду, возле двери которого толпится круг из десятка курильщиков, протискивается между ними, заходит в свой подъезд и нажимает на копчёную, обугленную кнопку, которая изначально была белоснежной, чтобы лифт (картинки 26 и 27) его поднял на 8-й этаж "виллы". На балконе "виллы" — лестница-стремянка, матрац, удочка и старый холодильник.
Уважаемые плюсогоспода, помогите неучу. Учу эти ваши С++, сейчас хочу в учебных целях написать шаблонную функцию,которая может принимать и вектор и мап. Сам не придумал, нашел в интернете такую конструкцию : template<class T, class... Rest, template <class, class...> class Container> void foo(Container<T, Rest...>& v) {} Оно работает, я не понимаю как, объясните плиз.
>>2004069 (OP) есть 2 треда которые вызывают в одно время одну и ту же 1. static функцию класса 2. обычную функцию класса б. разные функции одного инстанса 3. глобальную функцию это thread safe или не thread safe
>>2004435 Вообще объединить в одной функции такой функционал трудно, потому что итератор вектора возвращает само значение, а мапы - пару ключ-значение. Поэтому я советую сделать обычной перегрузкой. Ну или брать два итератора как стандартные алгоритмы и как-то с помощью if constexpr или SFINAE разруливать, но это уже если хочешь позадалбываться.
>Оно работает, я не понимаю как Посмотри на определение мапы: template<class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T>>> class map; Скажем, ты передаёшь в функцию x = std::map<MyKey, MyValue, MyComparator, MyAllocator>; и делаешь foo(x); Далее компилятор автоматически определяет шаблонные аргументы (https://en.cppreference.com/w/cpp/language/template_argument_deduction) и понимает, что T=MyKey, Rest={MyValue, MyComparator, MyAllocator}, Container=std::map<T, Rest...>. Шаблон функции инстанциируется и получается обычная функция void foo(std::map<MyKey, MyValue, MyComparator, MyAllocator>);
Планирую перекатываться на другую работу (тоже на C++), а то на текущей начальник мудак. У меня два с хуем года опыта работы. Какую зарплату требовать можно?
Через 100 лет, когда кодить все будут как сегодня писать, настоящих виртуозов кода будут почитать как Пушкина, а говнокодеров позорно забудут. Сначала опозорят, а потом забудут. Задумайтесь, говнокодеры...
>>2004616 Понятное дело, что про проблемы на работе сообщать вообще не стоит, а то подумают, что я еще какой-то конфликтный или еще хуй знает что подумают. Вот что говорить им, кста, на вопрос "А почему решили сменить работу?". Сказать что-то типа "Ну, там был большой проект и на меня вешали задачи по фиксу багов и по поддержке легаси кода, а не по созданию чего-то нового. Поэтому захотел сменить работу, а то чувствую, что не развиваюсь". Норм? Или хуйня? Или можно что-то получше придумать?
>>2004655 Да нет. Два с половиной года (хорошего) опыта меня в ДС как раз свели на несколько офферов с как раз на 140-180к рублей, а тогда доллар примерно по 60 был.
>>2004663 Зачем ебать мозги себе и людям? Идёшь на собес и говоришь, что хочешь больше денег. Вот к тебе будут потом всякие отбитыши приходить и мямлить, что их обижали, не давали развиваться, их тонкая натура хочет большего... Ты их сам то к себе возьмёшь?
>>2004655 Если ты июнь, то можехь хоть на х2 хоть на х3 идти. Если старщой, то тебе за х1.25 придётся бочку делать (это про чистый доход без учёта инфляции).
>>2004217 → >Чтобы .hpp файлы не раздувались. Если от инклюд необязателен, как в случае, когда нужна только ссылка на объект, то лучше его не делать, так как это может привести к большим заголовочным файлам и медленной компиляции больших проектов. Но этот .h все равно потом вставляется в .cpp, и в .cpp все равно необходимо сделать полноценный инклуд для имплементаций. В итоге (после подстановки) .cpp получается точно такой же + предварительная декларация в довесок.
Сами по себе заголовочные файлы не компилируются, так что не пофиг ли его размер?
>>2004736 Ну, бля. Если же сказать, что хочу больше денег скажут что-то типа А ЕСЛИ ВАМ ЕЩЕ БОЛЬШЕ ПРЕДЛОЖАТ, ТО ВЫ ОТ НАС УЙДЕТЕ?))) поэтому, думаю, нужно придумать какую-то другую причину. Про то что "обижали" вообще говорить не стоит, а то подумают, что не могу работать В ДРУЖНОЙ КОММАНДЕ или что я вообще КОНФЛИКТНЫЙ.
В моем проекте уже две функции, которые компилятор ругает и не хочет компилировать, ссылаясь на безопасность. Это fopen из курла вроде и еще какая то из сетевой либы винды. Это фиксится дефайном, но вот с вашей точки зрения стоит ли эту хуйню исправлять или и так сойдет, учитывая, что код я копировал частично отсюда https://stackoverflow.com/questions/1636333/download-file-using-libcurl-in-c-c
Короч есть класс `Data` и в нём определено такое: `operator QVector<double>() const`. Я правильно понимаю что это тоже самое что `QVector<double> operator () const` или это какая-то новая приколюха из С++1488
>>2004853 >компилятор ругает и не хочет компилировать, ссылаясь на безопасность Это же с функциями си случается.
>Это фиксится дефайном Еще, как правило, есть "безопасные" версии функций.
>с вашей точки зрения стоит ли эту хуйню исправлять или и так сойдет Смотря какие цели твой проект преследует. По идее ты должен знать, что делаешь, если используешь библиотеки си.
>>2004856 >fopen и запись Чем тебя iostream не устраивает?
>>2004886 > По идее ты должен знать, что делаешь, если используешь библиотеки си. нуууу, я надеюсь челы, у которых я этот код скопировал, знают свое дело. > Чем тебя iostream не устраивает? Так я через curl скачиваю файл. Мне без fopen никак
>учить плюсы для вката бесполезно Ну лично мое мнение - да. Хотя есть немало знакомых, которые вкатились с нуля в плюсики и уже пару лет работают крестогосподами.
Проблема плюсов - нужно хорошо знать предметную область. И она везде разная. Где-то графику требуют, где-то глубокие познания в сетях, байтоебстве, где-то вообще пишут адово многопоточные вещи и нужно шарить за распределенные системы етц.
А условному прогеру на жс, go, джаве, питоне, шарпе, и т д достаточно знать несколько основных фреймворков, с которыми он сможет устроиться везде.
>>2004898 >Проблема плюсов - нужно хорошо знать предметную область. Иди работать в над PVS-Studio. Там сферические кресты в вакууме и есть твоя предметная область. Правда плотют всего лишь 30к.
>>2004913 Я для себя решил, что не стоит. Потому что мой говнопроэкт совсем не про это был. К тому же - это априори оверхед во всех смыслах. Аще сэйф-версии даже количеством параметров могут отличаться.
А если у тебя все пиздец серьезно, то спроси у начальника.
>>2004913 >>2004927 >>2004931 На Опеннете или ЛОРе вас бы разорвали на части за такое. Вы уже считай не программисты вовсе, а только на работу в гугл/мозиллу/фейсбук на годитесь. Позорище.
>>2004938 Криворукие программисты (99,8% всех программистов) пишут проги с дырками. Вы же еще хуже, зная что там потенциальная дырка - отказываетесь ее исправлять.
Олсо каждому ЛОРовцу/поппентетовцу очевидно что это из-за вашей врожденной лени.
>>2004945 Криворукие бывают только фронтендеры, а если ты плюсер ты сразу уважаемый разрабочик и архитектор, который не ошибается а делает закладки на будущее.
>>2004945 Я сейчас для себя пишу. Если я каждую такую хуйню исправлять буду сразу же, а не когда понадобится, я свой проект буду год писать, вместо месяца
>>2004945 >Криворукие программисты Всмыси "криворукие программисты"? Если ты соответствуешь своей должности, то ты мне нормально задачу поставишь, так чтобы я никде не наебался. Ты за это бабло получаешь.
Ньюфаг в треде. (1) Если я подключаю хедер из стандартной библиотеки, то мне не надо передавать компилятору отдельных .cpp с определениями функций. (2) А для собственных хедеров все туториалы говорят - объявления пиши в .h отдельно, определения пиши в .cpp отдельно. Получается во втором случае я ебусь с заголовком дважды, тогда как в первом только один раз. Я был бы не против компилировать еще string.cpp, vector.cpp и т.п. ради универсальной логики, но нахуя делать по разному? Как вы пишете свои классы? Алсо реквестирую не мусорный гайд по заголовкам.
>>2005224 Компилятор знает, где искать бинарники стандартной либы и даёт тебе хедер просто как интерфейс, чтобы ты если что получил вменяемую ошибку компиляции, а не простыню из "undefined reference to" во время линковки. У него может и не быть исходников. Зачем компилиррвать исходники стандартной либы, если они уже скомпилировпны? Это как минимум очень сильно замедлит скорость сборки проекта. Более того, хедеры могут включать другие хедеры, другие - третьи и т.д. Представь, что для одного инклуда тебе придётся передавать компилятору десятки cpp-файлов. Таких проблем ты хочешь ради "универсальности"?
>>2005228 Нет конечно, это я написал, чтобы объяснить, что именно меня смущает. Ну вот это значит к каждому собственному .h хранить в паре .cpp, а если они используются в нескольких проектах, да с модификациями, то хранить копии их обоих. Помнить что где и как то всем этим управлять. Сложна!
>>2005449 Как религию. ООП это триединство - наследования (если оно множественное, то в 2021 недопустимо) - полиморфизма (бывает полезно, но злоупотреблять и везде пихать просто так не принято в 2021, а только по необходимости) - инкапсуляции (в 2021 считается самым полезным качеством ООП) И над всем этим ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ, которые надо учить.
>>2005835 ==19125== HEAP SUMMARY: ==19125== in use at exit: 0 bytes in 0 blocks ==19125== total heap usage: 3 allocs, 3 frees, 73,748 bytes allocated ==19125== ==19125== All heap blocks were freed -- no leaks are possible ==19125== ==19125== For lists of detected and suppressed errors, rerun with: -s ==19125== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Приветствую, братья-плюсовики. Есть функция с сигнатурой bool is_intersect_r_r(Rectangle a, Rectangle b); есть std::function<bool(Shape, Shape)> f; Я хочу сделать f = is_intersect_r_r; Но выдаётся ошибка error: conversion from ‘bool(Rectangle, Rectangle)’ to ‘std::function<bool(Shape, Shape)>’ requested
>>2006263 Соответственно ты и можешь передавать Rectangle в std::function<bool(Shape, Shape)> f; При этом, ты можешь использовать только поля и методы Shape.
Но у тебя не указатель на Shape, а указатель на функцию с определенной сигнатурой. Если ты не можешь написать is_intersect_r_r() так, чтобы она принимала указатели на Shape, то и натягивать ее на сигнатуру bool(Shape, Shape) нет никакой пользы, кроме вреда.
>>2006301 А как запилить контейнер, который принимает пофигу что, хоть инт, хоть железный винт? А как потом работать с контейнером, который на очередной итерации выдаст тебе неизвестно что?
В языке со строгой типизацией это является признаком плохого дизайна.
>>2006428 В качестве контейнера у тебя set. Iterator у такого контейнера константный. Т.е. тебе запрещено менять значение, так как оно является ключом, а на ключ завязана внутренняя структура данного контейнера (там может быть хэш или сбалансированное дерево поиска). Если ты обходными путями снимешь const и изменишь значение, то у тебя всё пойдёт вразнос. Соответственно либо убирай && и работай с копией либо меняй тип контейнера (допустим на std::map).
>>2006881 Пок пок пок, мне тут нужно символ в строке заменить. Напишу str[pos] = 'а'. Как это нужно создать копию, потому что строки неизменяемые? Вы ебанулись?
>>2006825 Пирожок, ты пойми, что другой язык это другой образ мышления. И это касается не только синтаксиса и знаков препинания, но и работа с инфраструктурой. Принципиальное отличие от пихонов в том, что нет одной коробки из которой ты достаёшь ништяки. Таких коробок много и нужно ими жонглировать и натягивать на свой проект.
>>2007707 Я в том смысле что сахар не такой эффективный как хардкорный вариант. Я это так понимаю. Сделать если все на массивах то будет быстрее но объемнее, поэтому не "сахар".
Граждане работающие крестоносцы! Как у вас дела с зарплатами и поиском работы? Я работаю на бесперспективной работе на C++, и у меня по сути два варианта - вкладываться в дальнейшее изучение C++ или другого языка (и сопутствующих технологий). По приложениям C++, конечно, интереснее, но насколько реально на нем найти работу с достойной зарплатой, если ты не в условной топ-1000 РФ по скиллам и таланту...
Не могу понять зачем в функции move() нужен втооой цикл for(). Он вообще ни разу не давал true: void move(std::string str) { Vector2f oldPos = toCoord(str[0],str[1]); Vector2f newPos = toCoord(str[2],str[3]);
for(int i=0;i<32;i++) if (f.getPosition()==newPos) f.setPosition(-100,-100);
for(int i=0;i<32;i++) if (f.getPosition()==oldPos) f.setPosition(newPos); }
Нахуя в каждой документации пишут абсолютно не читаемую шизоприставку :::::::::::::: для блядского пространства имен? Особенно для std кому это нахуй надо. Нельзя сука указать юзинг стд где-нибудь, зачем читателю ссать в глаза?
Анон, в инете часто вижу в проектах, посвященных машобу или каким-нибудь алгоритмам оптимизации простую трехмерную графику, типа https://youtu.be/EhDr3Rs5fTU . В чем ее делают? Это что-то типа sfml? Или чистый opengl с какой-нибудь обёрткой типа Qt? Как максимально быстро создавать такие визуализации?
Тут пишут нереальные страшилки про сложность вката, необходимость знания предметной области и т.д. Вы с Си тредом не перепутали? Вкатился плюсовиком стажером на 70к в дс2. Никакой предметной области, только знание стл, стандартов и алгоритмов. Считаю, что если тянете кресты, то надо искать работу именно по ним, ибо это лучший вариант для переката заграницу/удаленку на запад.
>>2009351 Я оспорил тезис сложности вката в кресты. А потом сказал, почему вообще нужно вкатываться именно в плюсы, а не на фронт какой-нибудь - легче переехать >>2009366 Десктопное приложение, финансовая система
>>2009178 >это лучший вариант для переката заграницу/удаленку на запад На запад смысла ехать ровно 0, так как уровень жизни сильно просядет + высокая преступность во всех крупных городах где есть айти.
>>2009388 Ну тут всё относительно. Московские айтишники очень неохотно уезжают с сытных мест. В ДС2, наоборот, быстро пакуются и на несколько лет сваливают. А так как получится.
>>2009375 >Я оспорил тезис сложности вката в кресты Тезис не в сложности, а в соотношении усердие/результат. Если бы пошёл в ДС2 на пихон, то получил бы 90к на старте.
Также есть тенденции, происходящие во всём ойти, которые ты не учитываешь. В 2020 из-за коровы часть контор тормознули набор и запуск проектов и сейчас есть сильный отложенный спрос (вакансий стало на 30-35% больше). Далее демография. Из вузиков выходит всё меньше и меньше народу. Затем удалёнка (в ДС2 не самые лучшие зп). Когда откроются границы - сеньоры с мидлами начнут дружно давать по съёбам. В такой обстановке будут брать кривых, косых, и даже тупых. В ДС 3-4-5 уже конкретно занервничали из-за нехватки мидлов и старше.
>>2009411 >В ДС2, наоборот, быстро пакуются и на несколько лет сваливают
А смысл? В ДС2 зарплаты не сильно ниже чем в Москве, а жилье подешевле будет. Плюс, если своя хата есть, то смысла куда-то ехать нет, ну может только в долину на грейд L5 и больше, но я бы вряд ли там выдержал работать. Здесь как-то спокойнее, хоть и раз в несколько лет происходят забавные события уровня крымнаша или обнуления.
>>2009425 >Из вузиков выходит всё меньше и меньше народу Спорный момент, конкурс в топ вузах Москвы и СПб на ИТ направления за последние годы заметно увеличился. Но и народ не только после вузиков вкатывается.
>>2004475 Thread safe - это не про то, где объявлены функции, а про то, что у них внутри. Если возможны ситуации, когда в двух разных потоках функция работает с одними и теми же данными, причём один поток в любой момент эти данные может изменить, пока с ними работает второй, то второй поток может получить несогласованные данные, и это нихуя не thread safe. Такая ситуация может возникнуть в любом случае, и неважно, статик или не статик.
>>2009591 Средняя зп на ~20% ниже. Вообще из ДС2 в Москву желающих не много. В основном в Европу и Северную Америку. В Испанию в тепло из болотного климата, в Канаду за деньгами, в гермашку, чтоб спокойно, в Швецию, чтоб ещё спокойнее. Многие живут в стиле Digital Nomads и постоянно перекатываются. Ещё у некоторых в ЕС есть родственники, знакомые по вузику, кто-то там учился или дела мутил. Движ постоянный идёт. ДС2 це ж Эуропа.
>не только после вузиков Эти дольше обучаются, а прыгают также часто. С них профита намного меньше.
Почему когда передаю данные которые сохранил в локальной переменной (т.е. прямо перед вызовом RegisterWaitForSingleObject) то приходит нихуя? А если переменная с данными объявлена глобально, то данные приходят.
Я так понял потому что локальная переменная создаётся в стеке и когда вызывается callback эти данные уже стёрты т.к. функция с этой переменной уже отработала?
Ни у кого не завалялась случайно картинка с роадмапом по изучению комп. графики? Помню, что она была достаточно большой, и в разделе с плюсами были книги Майерса.
Оба енума констэкспры и выражение вычисляется, но как аргумент шаблона во втором случае компилятор не хочет принимать. Решение - костыль, и это сделать switch блок для всех MyEnum
>>2011007 Насколько я помню, в режиме c++latest они не дают никаких гарантий по бинарной совместимости. То есть использовал класс, а потом раз - и его layout в следующем обновлении студии может поменяться, и библиотеки, собранные предыдущими версиями, будут тыквой при взаимодействии с более новыми.
Привет всем, кто неравнодушен к плюсам. Я - прогер-плюсовик, в конторе считаюсь миддлом. Но до сих пор имею один вопрос. r-value ссылка - суть l-value?
Реквестирую фидбеков джунов-крестоёбов которые вкатывались в ДС. Расскажите что знали на момент устройства, были ли пет проекты, куда устроились и на какую зп?
>>2011661 rvalue reference, которые && - это просто возврат временной переменной. Т.к. lvalue хранится на стеке, ты просто говоришь компилятору не дропать это lvalue, а вернуть в вызывающую функцию. По сути, объявление && это типобезопасный аналог указателя на указатель.
>>2011881 Ах да, нужно это для избежания копирования. Т.к. ссылка даёт только доступ к объекту, его придется переписывать, а это при присвоении копирующий конструктор. rvalue ссылка просто поменяет указатель исходного объекта, копирования не произойдет.
>>2011362 У студии есть совместимость, со 140 тулсета (главное, использовать линкер не ниже чем сама высокая используемая либа), пока они не скажут, что вот, меняем abi
>>2011661 r-value ссылка и const lvalue продлевает время жизни объекта. В сущности предназначение rvalue ссылок состоит в продлении жизни временных объектов. Если временным объектом не владеет rvalue или const lvalue ссылка то он для него вызывается деструктор. lvalue ссылка указывает на объект имеющий идентификатор. const lvalue позволяет передавать в функцию временные объекты и объекты с идентификатором, но запрещает их изменение. При инициализации lvalue rvalue ссылкой используется конструктор перемещения. Объект по rvalue ссылке опустошается и его содержимое передается в инициализируемый объект. Из любого lvalue можно получить rvalue ссылку c помощью std::move. Вот вкратце и без многих деталей.
>>2011362 Ну как нет, как-то что-то есть (говорят на "новый" std::string ещё не все перешли) и комитет старается как можно меньше изменять существующее ABI. Здесь в секциях 7-9 описаны пропозалы, которые не вошли или даже не написаны лишь потому что изменяют существующее ABI. А ведь некоторые очень полезны. Но нефиг, у <энтерпрайз_нейм_в_комитете> есть библиотеки пятнадцатилетней давности, которые нельзя перекомпилировать - поэтому все должны страдать с ними.
>>2011818 Уже пол года как вкатился на 80к в ДС в около гос контору.. В основном, это работа с удаленными устройствами, да десктоп на кьюте под линукс... На собесе поверхностно спрашивали про многопоточку, сетевые протоколы, да про стандартные структуры данных, про линукс спрашивали... были два простых пэт проекта, но их никто даже не смотрел)
>>2013181 Взяли один каст и разделили на 4 частных случая. Зачем? Сократить количество неочевидных ошибок. Допустим по цепочке вызовов сняли константность с объекта и модифицируем - по факту имеем ub.
Какие принципиальные проблемы возникают при попытке писать мультиос код с нуля применяя только стандартные либы разумеется без ос специфических типа windows.h и юзом внешних вроде какого-нибудь qt или буста без особых выебонов?
Вы не видите где тут ошибка? Я уже не могу... Функция убирает все пробелы из string и возвращает его копию, которая была создана конкатенированием из char string. Индексы пробелов сверху помещаются в черный список и перед самой конкатенацией индекс добавляющегося элемента сравнивается с этим массивом запрещенных индексов.
>>2015120 В цикле по ii инкремент i, а не ii. Но вообще у тебя безумный индусский код - что тебе мешало в первом же цикле пихать в ответ непробельные символы без запоминания их индексов? А на stl это решается в одну строку.
Не совсем по теме, но всё же, родной тред. Хочу бекенд на плюсах писать, где можно коротко и ясно прочитать про работу с http и вообще о внутреннем устройстве http и https?
С dbus кто-нибудь работал? Как у timedated убрать запрос пароля на методы? Насколько я понял нужно создать файл конфигурации org.freedesktop.timedate1.conf в /etc/dbus-1/system.d и там прописать политику типа: <busconfig> <policy user="user"> <allow own="org.freedesktop.timedate1"/> <allow send_destination="org.freedesktop.timedate1"/> <allow receive_sender="org.freedesktop.timedate1"/> </policy> </busconfig> Но это не работает (по крайне мере в дебиане). Анон, подскажи, что я упускаю?
>>2009425 сыглы у нас уходят люди выше мидла, ибл с короной просели зп, на прошлой неделе ушел товарищ в сишарпы, потому, что зп на 50к больше. тоже думаю катиться, ибо в отделе осталось 3 человека (было 9 когда я пришел год назад).
Господа крестоносцы. Какие шансы переехать в ваш круг работать в контору (дс5 екб) на того же джуна. Сейчас получаю в среднем 40-50к (зеленый и стажа оф год), пришел с нуля. Навыки - линух, контроллеры (c. codesys. st. немного руби), занимаюсь безопасностью в основе. Тема интересна, сейчас учу кресты. Где можно применять их в иб, да и вообще, куда можно податься с этим набором, к 2022 думаю перекат оформлять? мейби кто из екб, подскажите конторы (кроме газпрома), так же в целом идеи и освятите путь жаждущему познать истину. Всем спасибо
Я не помню, чтобы я вообще хотя бы раз использовал какой-нибудь std::forward или вообще перфект форвардинг, declval или enable_shared_from_this(). Даже имея на вооружении LLVM 12 продолжаю писать в стиле С++11, только ranges вот пизданул. Это нормально?
>>2017094 Да, вполне. Есть задача - есть инструмент. Нет задачи - нет инструмента. Для какого-нибудь SDK forward нужен. В остальном всем похуй, ибо это лишний уровень "гибкости".
>>2016790 Корова ускорила рыночные процессы. Сам перекатился на пихон, а до этого писал зрение на плюсах. Сейчас занимаюсь тем же самым, но за больше деньги.
>>2017094 Я, ебаша в проде адовый С++17 с переездом на С++20 как только будет Студия 2022 - так же нираху не использовал стдфорвард, деклвал по-моему 1 раз было где-то в самопальной СФИНАЕ лапши, и енабле_шаред_фром_зис тоже ниразу не использовал.
>>2017101 >>2017454 Я даже не соображаю, зачем нужен optional/any. Наверно, потому, что не видел никаких адекватных красивых кодовых баз с этими фичами. Из 17-ых дёргал только structured binding и расширенный if. Даже не нашел, где можно было бы decltype(auto) воткнуть.
Фич дохуя, и мне кажется, что их точно нужно использовать, не просто так же ввели.
Насколько нормально создавать объекты для подстановки в decltype? Типа того: volumeField<decltype(Type() & vector())> divergence(const volumeField<Type> & inField) ? В примерах обычно ставятся переданные аргументы, но у меня Type и vector засунуты в поля внутри inField, и доступ к ним многословен.
>>2017945 >decltype(Type() & vector()) Я нихуя не понял, но возможно тебе надо писать возвращаемый тип через ->? auto divergence(const volumeField<Type> & inField) -> volumeField<Type> {...}; или типа того.
>>2017959 > -> volumeField<Type> В том то и дело, что у возвращаемого значения тип не Type, а должен вычисляться на основе произведения Type & vector, но чтобы взять объекты для этого из переданного inField, мне придётся написать decltype( inField.ref()[0] & inField.meshP()->surfaces()[0].N() ), что выглядит очень громоздко.
Почему GCC не может в OpenMP? Производительность при использовании более 8 потоков на 12/24 процессоре, не увеличивается и даже с увеличением немного падает. В MSVC линейно увеличивается и по максимум пользует 24 потока.
Ребят. Такое дело. Я пишу кастомный логер, который может синхронизироваться с разными тредами, но у меня каждый раз, когда идет чейнинг выводов типа так: logger << "out" << "a" << endl; То на "a" вызывается деструктор и анлочится мьютекс. Как фиксить? Помогити...
>>2019495 Забыл сказать. Если возвращать из логера по значению SynchronizedStream, то он падает сразу. А если по ссылке, то только уже на втором чейне. (Тот самый "а")
>>2019495 И еще, нужно чтобы оно вызывало деструктор для SynchronizedStream в конце чейна. То есть есть у нас такой чейн: logger << "Print me!" << "And me!" << "And me!" << endl; (здесь вызывается деструктор SynchronizedStream)
>>2019495 Посмотри как в бусте сделано. https://github.com/boostorg/log/blob/master/include/boost/log/sources/record_ostream.hpp#L566 Там специально хитровыебнулись, чтобы не вычислять аргументы, если у тебя уровень логгирования ниже (через цикл for), и через мать его lifetime extension сделали record_pump чтобы объединить всю цепочку "<<" в одну логическую запись - сюда ты как раз и сможешь мьютекс вставить. Но вообще << логгирование уже прошлый век, у нас есть вариадические шаблоны и можно спокойно сделать логгирование обычными функциями а-ля spdlog (сам недавно реализовывал свой велосипед в таком стиле - очень просто и лаконично получается).
>>2019564 > а-ля spdlog Я вьебал в свое время 5 выходных дней, на то, чтобы с уебищного самопального<<логгера, переписать вообще все логирование в проекте на fmt (spdlog низя было, т.к. мы логируем в виндовые ETL'ки, а не в текстовички).
Так вот - это охуенно, логи стали чистенькие и LOGE("{}, {}", "сука", "красивые"); а не LOG << "ебучий " << "сблев " << "обезьяны" << OUT_ERR;
>>2019607 >Слава аллаху за стандартизацию std::format > (since C++20) Воистину Аллах велик и всемогущ! И слышит молитвы тех, кто просит. Аж с 90-х годов просит.
>>2019612 С одной разницей что твои строки формата могут теперь не соответствовать списку аргументов, и в случае какой-нибудь редкой ошибки ты получишь не красивое сообщение в лог, а кривой эксепшн и вероятно сегфолт.
Забавно что сишные строки форматирования компиляторы умееют проверять, а хипсторский фмт - нет.
>>2019816 > и в случае какой-нибудь редкой ошибки ты получишь не красивое сообщение в лог, а кривой эксепшн и вероятно сегфолт. Получал, чинил, полет отличный дальше
>>2011881 >>2011886 >>2011893 Коллеги, я знаю как пользоваться r-value. Меня интересует другое. Есть функция T && fun(T && s) { return std::move(s); };
T t1; T&& t2 = fun(std::move(t1)); //t2 - r-value ссылка
T&& t3 = t2; // ошибка. Казалось бы, почему к r-value ссылке нельзя присвоить r-value ссылку? Но компилятор пишет: cannot bind rvalue reference of type ‘T&&’ to lvalue of type ‘T’. То есть в этом контексте компилятор t2 считает l-value.
>>2020307 Такая ошибка будет отловлена уже на этапе компиляции. Судя по всему в рантайме произошло что-то, что не дало функции выполнится до return statement, например выбросило исключение
>>2020300 int f() { if (false) return -1; } Не все пути ветвления исполняемого кода имеют возвращаемое значение. Но это же совсем для даунов. Какой миддл?
В базовом классе был объявлен (фактически пустой) виртуальный деструктор. В одном из производных классов мне теперь нужно кой-чего дописать в деструктор.
Это деструктор производного - он virtual ... override или как?
>>2004435 твой шаблон функции должен принимать пару итераторов, определяющих диапазон, а не сам контейнер посмотри реализацию любого алгоритма из стандартной библиотеки и делай так же
>>2004715 чтение срачей на форуме rsdn в нулевые как ни странно, где срались что мол в крестах ненастоящий ооп ну и еще разглагольствования страуструпа что мол у него в языке есть 3 вида полиморфизма и бахвальство что у него динамический полиморфизм работает почти бесплатно, с дотошным обьяснением механизма работы виртуальных членов-функций
>>2004981 челибоня, ты опоздал на четверть века кому нужно было тот уже все написал под себя держат только по паре обезьян на саппорте второй линии зачастую, чтобы они че нибудь слегка дописывали поезд hft ушел
>>2006825 тащем та челики из комитета все же прогнулись, и теперь в стандарте тоже есть сплит для строк как говориться - если дураки продолжают лезть в окно, то рано или поздно на месте окна придеться вырубать дверь
>>2014768 ну, челик, знаешь как выходит: вроде и пишешь мультиплатформу, а по факту оказываеться что прога под линукс плюс порт под винду так это и работает уебишьно ибо линукс одна из самых уебищьных осей
>>2020125 Когда ты упоминаешь переменную, к её типу приебашивается ссылка. В твоём примере, T && + & -> T & -> can not bind reference. Если тебе не это нужно, можешь указать явно: T &&t3 = static_cast<T &&>(t2); Собственно, std::move примерно этим и занимается.
>>2021054 Дополню ещё. https://gcc.godbolt.org/z/soqM4njE7 Вот тут видно, в чём разница между std::move и std::forward, и как отрабатывает universal reference. Полезно для понимания, как ссылки работают. Я лично советую забыть про всякие категории lvalue/rvalue, пока нормально не разобрался, что к чему.
Верно ли, что если я напишу {} просто посреди main, то это будет как отдельный участок кода со своими локальными переменными, которые удалятся при выходе из этого блока?
>>2021711 Если ты не используешь, то не значит что никто другой не использует. Это полезная штука в юнит тестах. Чтобы не писать var_a01, var_a02... в каждом тесте. А просто писать эти фигурные скобки и в них в каждой свой var_a для своего теста.
есть два vector<MyClass> v1 и v2 Когда я пишу v1 = v2, то просто v1 ьеперь указывает на v2? А что теперь с данными v1? Они просто лежат в памяти не удаленными? А если после этого я еще и v2 удалю, то вообще все данные похерю что ли?
>>2021711 Вполне себе используется в паре с RAII примитивами. Допустим тебе надо под мьютексом сделать что-то. Берёшь и пишешь { unique_lock(mutex); do_something; }.
>>2004069 (OP) Как перестать орать. На хакатоне просят сделать систему пластиковых карт для города. Финальный приз (не факт что получишь) 55 кк деревянных на команду. При этом функционал как положено.
Как подключиться к серверу через socks и curl? Сначала написал пикрил 1. В ответ как и ожидалось пришел пик 2. Потом я сменил тип прокси в курле(пик 3) но получил пик 4. ЧЯДНТ?
>>2022126 Когда в прошлый раз пытался понять, зачем он, мне мозг распидорасило от байтоебских подробностей. Слышу о нем только то, как же он хуево задизайнен.
Крестоносцы, я правильно понимаю, что если enable_if::type будет undefined, то компилятор не может вывести типы аргументов шаблона. Следовательно, по правилам сфинае, эта функция исключается из кандидатов на перегрузку.
>>2004069 (OP) кто нибудь может пояснить мне за СЛОЖНОСТЬ этого языка? Учу по learncpp.com, уже на 14 главе, вообще ни одной сложности не возникало, хотя единственное, на чем до этого прахрамировал - пассаль в школе. Разве что забыть только могу что-то и потом бегать по главам вспоминать, но такое, в принципе, не часто.
>>2022024 В хакатоне не участвуй, сделай систему сам с корешами (хотя бы часть функционала для демонстрации), а потом, когда на хакатоне будет ноль результата, попытайся продать это решение городу по более адекватной цене. Как там с юр лицами и связями быть хз, опыта не имею.
В своё время, помню, норвежская контора обещала АЖ ЦЕЛЫЙ АЙПАД, если им пришлют реализацию нового нелинейного способа управления их оборудованием (типа пи-регулятора на матрицах, только на нейронках или ещё как). И по итогу конкурса они соблаговолили бы взять на работу победителя. Но так никто и не участвовал в этом наебалове, лол. Алгоритм с патентом сам может стоить на порядки дороже, чем весь этот айпад. Интересно, часто ли на фриланс-биржах норвежцы показывают такую жадность.
Что за магия, как называется такая конструкция когда вне класса определяется ещё один конструктор с использованием -> ? template<size_t N> ct_string( char const ( & )[N] )->ct_string<N - 1>;
>>2024176 >ощутить сложность Сиплюсплюс не делался для того, чтобы быть сложными. Это не какая-то концептуальная сложность, которую нужно воспринимать как челлендж для своего интеллекта. Если тебе нужно развиваться физически, то ты идешь в качалочку, а не таскаешь с собой постоянно рюкзак с кирпичами. Если тебе нужно развиваться интеллектуально, то ты грызешь гранит науки, а не ебесся с узкоспециальными проблемами неудачного дизайна.
Сложность крестов по большей части состоит в исторически обусловленной непоследовательности. Почти любое правило языка сопровождается списком исключений и специальных случаев. Сами правила просты, а специальные случаи обусловлены совершенно разными, не связанными причинами, и поэтому требуют от тебя определенного бэкграунда. Такое не берется наскоком; хорошей памяти и природной смекалочки тут недостаточно.
На практике это выливается в то, что в языке не работают аналогии. Точнее они почти всегда работают, но вовсе не так, как ты ожидал.
Удивительно то, что поверх этого пиздеца удается создавать библиотеки с совершенно противоположными качествами: ты просто усвоил общие принципы, на которых построена библиотека и тебе не нужно ее изучать всю от и до. Например, ты вполне можешь себе позволить не знать о существовании какой-нибудь функции, потому что при необходимости ты можешь по аналогии предугадать существование этой функции вплоть до ее точного имени и с какими аргументами она должна вызываться.
здравия желаю, ананасы. хочу научится кодить vst плагины. подскажите где нарыть инфу по этому вопросу - видео, туториалы, книжки, статьи. лет 5 назад проходил пару учебников по си ++. заебали всякие консольные задачи из книжек пилить и забросил это дело. увлёкся электронной музыкой, купил на рутрекере плагинов. и вот думаю вкатиться опять в кодинг, но чтобы не сортировки со списками всякие пилить, а реально интересные и полезные проги для своих задач. плиз, аноны
>>2023783 Хотя бы в нетворкинг попробую. Что если вместо того чтобы быть рабом Я сам стану рабовладельцем создав там свою маленькую галеру? Главное найти кнут. Пряник будет виртуальным.
>>2025200 Там отдельный язык придуман называется Max. Устанавливаешь его в Ableton и теоретически можешь делать любое преобразование на самом "низком" уровне. Зависит от скилла конечно. Возможно профи делают по-другому.
Сложно ли организовать простое комп. зрение на плюсах для телефона? Буквально чтобы он распознавал движение руки вперед, типо свайпа, назад там, уголком.
Прочитал про битовые флаги и охуел с гениальности этого похода. Вот такой появился вопрос к знатокам. А что если параметры человека будем хранить в одной переменной int х (например поместим туда age, где достаточно три бита; поместим gender, допустим 125 гендеров, как сейчас модно, где также достаточно 3 бита для хранения и т.д.). Эта переменная будет хранится в классе Human. Битовые маски для получения значений будут хранится в отдельной функции. И собственно вопрос. Если будет много экземпляров класса (например 200 npc в локаии) скажется ли это положительно на производительности и ресурсозатратности или наоборот все будет хуже из-за дополнительных вычислений?
>>2025885 > или наоборот все будет хуже из-за дополнительных вычислений? Да, плюс по памяти экономия выйдет незначительная на фоне всяких имён, адресов и прочих строковых данных.
Мне надо просто сохранять в файл по нескольку десятков строк между вызовами программы. Но гугл предлагает велосипеды на реактивно-гусеничном ходу с кожаным салоном и стразами aka байты сериализация и т.п. в чем я пока не собираюсь разбираться. Если я сам сварю велосипед из ifstream/ofstream и тупо буду складывать данные в .txt разделяя пробелами и переносами строк, это нормальный будет подход или есть другое готовое решение для хелловординга?
>>2025980 Я загружаю файл в вектор построчно, делаю с ним что надо и перезаписываю обратно целиком. Самому не нравится, но все что мне нужно это пронумерованные строки и сохранение, т.к. есть более насущные проблемы тупо совладать с синтаксисом.
>>2025885 Со сдвигами и масками доступ к данным медленнее конечно. Но есть нюанс - у тебя больше уместиться в кеш, а с кешом проц работает где то в 100 (сто) раз быстрее чем с обычной ОЗУ. Так что все как обычно решается профилированием.
>>2024277 >ты можешь по аналогии предугадать существование этой функции вплоть до ее точного имени и с какими аргументами она должна вызываться Это потому что Степанов придумал невероятно годный, продуманный и последовательный дизайн в STL.
Поясните за геймдев на плюсах. Почему его так хейтят и срут на него в каждом треде? Единственные минусы которые и так очевидны, это низкая зп по сравнению с другими сферами, переработки (зачастую оплачиваемые) и текучка кадров большая. Так ли всё на самом деле плохо? Есть же не только ААА гиганты, а и средние студии, которые занимаются портами или аутсорсом рутинным, особенно это относится к геймплей программистам. О последних на самом деле и речь в основном, потому что движок условный пилят десятилетиями и это сложно назвать полноценным геймдевом, так как они работают не с играми, а с инструментарием для их создания. Объясните залётному студентику все эти моменты.
>>2026181 Ну на движке пилить игры довольно уныло имхо, самое интерсное как раз кроется под капотом в движках. Ну и многие студии разоряются, потому что на играх заработать удается далеко не всегда. Собственно поэтому пилится очень много игр уровня "три в ряд под андроид с донатом и кучей рекламы", потому что здесь хоть что-то можно получить.
>>2026181 В гейдеве не работал. Чисто собесился и ходил смотрел как там на месте всё устроено. Офферы - через раз - серые зарплаты (30% официально по ТК, остальное мимо кассы). Офисы во многих случаях забиты людьми под завязку. Работяги часто выглядят задроченными. Круг задач - в основном работа с мутным легаси кодом, который надо либо оптимизировать либо портировать либо довести до стабильного состояния. Ну и сами собесы довольно неприятные в плане общения. То какие-то выёбщики, то неадекваты, то вообще всем похуй кого и зачем собесят (хотя потом звонят и делают оффер).
Но это не виндовая либа System.Data.SQLite.dll (с SQLite.Interop.dll внутри), которая генерится на windows, cmd-файлом: >set fdir=%WINDIR%\Microsoft.NET\Framework >set msbuild=%fdir%\v4.0.30319\msbuild.exe >%msbuild% System.Data.SQLite\System.Data.SQLite.Module.2010.csproj >%msbuild% SQLite.Interop\SQLite.Interop.2010.vcxproj >pause
Хочу, чтобы mono выдало мне именно этот файл System.Data.SQLite.dll который многовесный, и который с интеропом этим, внутри, и чтобы win32 он был. Какие флаги задать нужно? Или может что-то поставить нужно в линуксе, дополнительно?
Всем привет! Этот код https://ideone.com/IUcG2T в VS 2019 компилируется на /Wall без предупреждений. Но стоит вынести объявление approximation за while, как в строке 19 возникает C5045: Компилятор вставит компонент устранения рисков Spectre для загрузки памяти, если указан параметр /Qspectre. Что это означает? На предупреждения C5045 стоит обращать внимание, или забить?
>>2027023 Ясно. То есть, исправить это предупреждение в общем случае можно только включением /Qspectre (в случае MSVC). То есть, пытаться править код в общем случае бесполезно, потому что баг не на стороне пользовательского кода, я правильно понимаю?
>>2024176 хм, сложные книжки именно по языковым особенностям это джефф элджер "библиотека программиста", александеску "современное проектирование на с++", абрахамса "шаблонное метапрограммиование", коплиена "стили и идиомы"... а щас все проще стало делать в языке, поэтому скучнее и книги проще..
>>2027036 Я ничего не понимаю в ИБ или КБ, но мне кажется вопрос странным. Ведь если скачать себе на комп хотя бы тестовый файл с псевдовирусом, антивирус поднимет тревогу либо в момент скачивания, либо уже при запуске. Значит, и зашифрованный вирус будет отловлен при исполнении уже расшифрованных инструкций. Я это так вижу.
>>2027265 Ну собственно у меня в этом и непонимание. Что мешает антивирусу в момент исполнения задетектить угрозу. Но тогда в чем смысл крипторов не понимаю. Они +- распространены
>>2027360 Ничего не мешает, и они собственно так и делают. Будь ты хоть миллион раз перешифованный, сделаешь что нибудь не по понятиям (прописка в автобуте, посягательство на какой-нить lsass) - значительно повысишь шансы улететь в карантин.
И наличие/отсутствие криптора здесь особой роли не играет. Основная цель криптора - обойти статик детект и эмуль, который используется только определённое время после старта проги
>>2027573 Ну во для примера взять майнер. Он же ничего в рантайме плохого не сделает. Он по сути через интернет данные передает и считает что то. То есть в автобут не прописываеися, диск не шифрует и тд. Есои закриптовать его , то по сигнатуре до запуска антивирус не спалитт его, но спалит ли антивирус его уже после дешифровке по той же самой сигнатуре? Просто я не понимаю почему так не происходит, а если так происходит то в чем вооьще смысл крипторов?
Посоветуйте какое-то лёгкое чтиво по алгоритмам и структурам данных чтобы на собесе не обосраться. Читал только "Грокаем алгоритмы", но там слишком поверхностно, даже деревьев нет. Ещё рассматриваю "Unlocked algorithms" Кормена и курс на ютубе от МФТИ который тут форсили недавно. Мне не надо прям глубоко эту тему изучать, поэтому та самая книга Кормена, Кнут и курсы со степика и юдеми не подходят. В идеале чтобы это как-то к плюсам относилось, но и любой другой язык сойдёт.
>>2027686 Там есть задачи по типу "реализуйте сортировка_нейм" или только комплексные какие-то задачи? Я с литкода только пару задач решал, потому и спрашиваю как там это устроено, может к задачам нужны ещё знания какие-то.
>>2027685 >"Unlocked algorithms" Кормена Не сильно отличается от "Грокаем...". Недостаток подобных книг - это отсутствие реализаций структур данных. Много ли толку читать про графы, если ты даже примеры из книжки скомпилировать не сможешь?
>Посоветуйте какое-то лёгкое чтиво по алгоритмам и структурам данных - Род Стивенс - "Алгоритмы. Теория и практическое применение", или, если 500 страниц для тебя слишком много, - Вирт - "Алгоритмы и структуры данных".
Если тебе все же приспичит разобраться с реализацией каких-то структур данных, то - Каррано, Причард - "Абстракция данных и решение задач на C++" или - Уильям Топп, Уильям Форд - Структуры данных в C++
>>2027805 Не знаю, сколько ты здесь сидишь, вот тебе график количеств постов в день за полгода. Здесь всегда на удивление высокая активность, один из самых живых тредов.
>>2027775 > Вирт - "Алгоритмы и структуры данных" Это как раз то что мне и нужно было, спасибо. Реализацию с особенностями языка я загуглю и гляну вне книги. Задачки с литкода возьму. Возможно в будущем серьёзней этой темой займусь с последними двумя книгами, сейчас вряд ли потяну.
>>2027592 Мне показалось или ты намекаешь на то, что я неясно выражаюсь?
Если >>Он же ничего в рантайме плохого не сделает тогда антивирь его и пропустит, не за что на бутылку сажать. Если ты конечно проц на 100% им грузить не будешь, тогда и самому юзеру станет понятно, что его поимели
>>2028510 Берёшь и продаёшь библиотеку, делов то. Hyperscan до того как его Интел купило продавали свою либу, Visual Studio использует платный EDG в качестве фронтенда плюсов для всякого автодополнения, RAD Game Studios всю жизнь продавало свои изделия типа видеокодеков, сжимальщиков, телеметрии и тд. XPDF предоставляет двойную лицензию и нужно купить, если не хочешь попасть под GPL. Главное, как везде - найти нишу и сделать продукт, только продукт в твоём случае - библиотека.
>>2028566 >кто-то случайно .pdb файлы наружу да или просто забыл случайно отключить дебажные символы в исполняемом файле или динамической библиотеке >кто-то посмотрел и увидел символы из GPL-ной библиотеки Вот и всё, привет судебные разбирательства.
У меня возникла ситуация, в которой мне приходится возвращать итератор из функции. Можно ли сравнивать его с nullptr, чтоб это значение было как знак ошибки?
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
Computer = Computer
ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:
Compiler :: [C++SourceCode] -> [ExecutableFile]
Compiler source =(Link . Compile) source
СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):
Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
>>2028113 >Тебе это всё с какой целью надо кстати? Я раньше думал, что антивирусы это какие то ебы, которые дохуя по умному работают, а сейчас стал интересоваться и читать что да как, и удивляюсь как все в некоторых моментах очевидно что ли. Я просто ожидал прочитать что антивирусы это такая хуйня, которая делает проникновения вируса почти невозможным и надо очень постараться чтобы кого то заразить, а сейчас все больше складывается впечатление, что нужно просто написать вирус с нуля самому и его никто не задетектит (до определенного времени конечно)
>>2029114 Напишешь вот так сам, используя стандартные техники, а потом словишь дженерик детект. Но всё конечно возможно, сложность и цена вопроса только со временем возрастает, с появлением всяких антиэксплоитов/антируткитов. Зачастую настолько, что уже что-то нормальное в одну клаву и не сделаешь
Есть такая задачка: на вход программе подаётся путь к файлу размером до 4 ТБ, содержащему слова длиной до 32 символов, нужно спарсить контент и вывести в стдаут 100 самых часто встречающихся слов. Какие тут есть подводные камни и как с ними бороться?
Пока выделил следующие: - Боттлнек на I/O. Как с этим быть? Считывать большими чанками по несколько Мб? - Парсинг. Стоит, наверное, проверить, можно ли (и имеет ли смысл) что-то попараллелить. - Учёт количества вхождений. Наивный подход - std::unordered_map<слово, счётчик>. Сразу возникает мысль, что при парсинге большого файла с огромным количеством разных слов может тупо не хватить памяти под мапу. Также нужно будет ещё как-то трекать именно топ-100 слов, не сортировать же всю мапу после парсинга.
Также разрешено использовать буст. Буду очень благодарен за любые советы и наводки, анончики!
>>2029186 >- Боттлнек на I/O А какой у него боттлнек? Он же поток, он никогда не пытается загрузить весь файл, у него буфер.
>std::unordered_map<слово, счётчик>. Сразу возникает мысль, что при парсинге большого файла с огромным количеством разных слов может тупо не хватить памяти под мапу Не может, а точно не хватит. Столько оперативки не бывает, чтобы все возможные слова поместить.
>>2029186 >- Боттлнек на I/O. Как с этим быть? Считывать большими чанками по несколько Мб? >- Парсинг. Стоит, наверное, проверить, можно ли (и имеет ли смысл) что-то попараллелить. Пох. Займет пренебрежимо мало. >- Учёт количества вхождений. >может тупо не хватить памяти Поточный алгоритм.
>>2029523 >Очевидно - создаешь рядом еще файл на 4Тб, помещаешь слова туда. Или берёшь готовый файл в виде любой key-value базы (ту же leveldb) и фигачишь слова/вхождения туда, не зная бед.
Сап, почему последний элемент G выводится с позиции 3,0, хотя должен с 0,2? Остальное работает правильно, как это пофиксить? https://onlinegdb.com/HkjeXzo_u
Почему компиляция исходников и гитхаба такая боль? 120 блядь файлов, почему нельзя просто начтать компиляцию с файла с main? Почему блядь вместе с проектом txt с 161 строкой как собирать этот проект. Какой же пиздец
Как опубликовать программу в Visual Studio? Получить .exe файл то есть. Можно, конечно, и из папки Release стянуть, но если программа многофайловая или нужно создать установщик, это не подойдёт.
>>2031075 > но если программа многофайловая Типо dll? просто копируй их вместе с exe > нужно создать установщик, это не подойдёт. Почему? Установщик это же exe и данные, которые он распаковывает. В чем проблема?
>>2031077 Проблема в том, что я хочу красивую кнопку "Опубликовать", на которую можно нажать и программа будет готова для использования конечным пользователем. Как то же это делают разработчики, а как - я не знаю.
>>2031078 Не понимаю. exe готово к использованию. Обычно если используются dll, то exe просто лежит в папке с кучей dll. установщик просто exe, dll и всякие другие файлы копирует в нужные ему папки. Можешь сам писать установщик, но нахуй надо. Просто dll копируй и все если для себя пшешь
>>2031078 Кнопку где? Ты можешь сделать установочный файл .msi. Есть плагин для visual studio. Есть отдельные утилиты, чтобы делать установщики типа InstallShield. Ещё ты можешь сделать пакет для менеджера типа chocolatey или vcpkg. Самый простой для тебя способ сделать exe архив из содержимого папки release (если у тебя проект простой и не тянет сторонние зависимости и либы).
>>2030577 Просто я так понимаю, что алгоритм работает следующим образом: Нашли К, если после К идёт I, то ок, потом I-N, N-G, G-? Дойдя до последнего элемента, алгоритму не с чем сравнивать G и он его не выводит. Я добавлял условие для поиска связи для элеммента if(i >= sizeof(buf2)-1 && (buf2[i-1] == arr[j][k] (и так далее), но на выходе всё-равно получаю говно Если ты знаешь как это сделать проще, то подскажи плз, дедлайн горит
>>2031296 Разработчики такой сценарий в свой проект не закладывали. Тебе в любом случае придётся поставить mingw или cygwin, чтобы у тебя был GNU тулчейн, необходимый для сборки (компилятор gcc, сборщик make, генераторы скриптов autoconf/automake и отладчик gdb). Саму студию под этот тулчейн настраивать крайне геморно, так что используй вместо студии VSCode.
>>2031336 А почему нельзя как то этот make проект в vcxproj конвертировать? как то очень странно, что для компиляции c++ проекта приходится дрочиться с разными компиляторами. А можно просто в vs создать проект и просто все исходники ctrl c ctrl v сделать? Будет работать?
>>2031343 Ну потому что make чисто под линукс и его утилиты. CMake кроссплатформенный и он из промежуточного представления CMakelists делает проекты/скрипты под разные тулчейны и IDE.
Одних исходников в проекте мало, ещё нужны правила сборки - указать список внешних зависимостей (библиотек, заголовков и т.д.), указать какие файлы надо компилировать, указать флаги для компилятора (стандарт c++, уровень оптимизации, архитектуру и т.д.), указать во что нужно компилировать (исполняемый файл или библиотека), указать значения макросов, используемых для условной компиляции. Вот это вот всё находится в Makefile / CMakelists.txt файлах. Если проект маленький, то содержимое можно ручками перенести в vcxproj. Но для таких проектов как у тебя это нереально.
>>2031340 программа второстепенна. Там надо алгоритмы на графах реализовать. Метод ветвей и границ, метод потенциалов и т.д. И чтоб при этом результат визуализировался со всеми данными
> Одних исходников в проекте мало, ещё нужны правила сборки - указать список внешних зависимостей (библиотек, заголовков и т.д.), Ну это же в vs делается. Пути к хедерам где то в настройках проекта указываются, зависимости через vcpkg установлю. > указать какие файлы надо компилировать, указать флаги для компилятора (стандарт c++, уровень оптимизации, архитектуру и т.д.), указать во что нужно компилировать (исполняемый файл или библиотека), указать значения макросов, используемых для условной компиляции Это же само при создании проекта делается.
>>2031400 Как оно само поймёт что проект состоит из нескольких vcxproj и в какой последовательности они собираются и линкуются? Никак. Ещё в makefile есть разные таргеты под разные платформы с cuda и без. Ещё там pre и postbuild скрипты с использованием чисто лялексных команд типа touch, grep, tar, ldconfig, cp, которые тебе на виндовский эквивалент нужно будет ручками переписывать.
Короче в проекте больше, чем laba1.cpp, ты задолбаешься все настройки переносить из Makefile в vcxproj. А ещё его надо потом обновлять как-то до последней версии.
Прошёл собес в одну компанию, попросили рассказать о пет проектах (игрушки на sfml) и интересах, после чего предложили место не на c++ джуна, а на c++/ue4 джуна. Сказали что всему научат и покажут в плане движка, если мне это интересно и я вижу себя в этой области. Простые c++ девы там, как я понял, занимаются бекендом и лаунчерами. В итоге надо выбрать что-то одно. Какие подводные в варианте с UE4? Я его открывал пару раз, но толком нихуя не знаю как на нём работают в компаниях, возможно это интереснее чем пердолинг бекенда и кьют. Что думаете и что бы вы выбрали?
>>2032265 >вылетает Может обращение к нулевому указателю, может проехался по памяти, может другое. Дебаггер должен указать точное место, где происходит "вылет".
>>2032429 Чёт ты попутал. В лялексе и большинстве современных IDE нет под него кнопки. А ещё он к версии студии привязан и в старой студии его не открыть, а в новой он конвертируется с ошибками (весело, да?). Тогда любители "одной кнопки" ставят себе ещё одну студию (естественно на виртуалку, чтобы говном не измазаться).
Если и есть волшебная кнопка, то называется она CMake.
>>2032577 > В лялексе и большинстве современных IDE нет под него кнопки. В который искренне радуюсь, что под это дерьмо мне не надо писать.
> Если и есть волшебная кнопка, то называется она CMake. Симейк это настолько ублюдочное дерьмо, что прям очень хорошо говорит об экосистеме С++ как таковой. Когда такой сблев стал де-факто стандартом.
Вообще, как же охуенно, что мы новые проекты на работе начали на неткоре писать
На сколько реально вкатиться в плюсодэвы без вышки? Мне другие языки вообще не интересны, а в плюсах я хочу знать все библиотеки, все фреймворки, все до мельчайших подробностей.
>>2032702 Я же не спросил как, я про мои шансы. Вдруг тут кто еще вкатывался без профильной вышки (т.е. физматовской или айтишной >>2032704 > А что мешает собственно? Просмативаю вакухи жунов и стажеров, там в половине случаев хотят вышку. Я то конечно могу спиздануть...
Суп плюсач. Хз куда вопрос задать, но нутро подсказывает что иенно плюсовики знают ответ.
Собственно, пытаюсь совместить свою любовь к онеме и любовь к программированию, чтобы кодить хотелось еще сильнее. Это же круто, когда помимо самого кодинга, кодинг еще и в интересующем тебя домене?
Так вот, если брать аниме, мне интересна наверное обработка видео, улучшение качества и быть может кодирование. А именно, например, улучшение качества видео, апскейлы, восстановление, вот это всё.
Так вот вопрос, мне хоть в какую сторону копать начать? Типа, что это за область, чем можно в ней заниматься? Есть какое-то отдельное направление про которое можно почитать?
>>2032715 Если ты выучишься по книжам, курсам, гайдам индуса с ютуба, то тебя возьмут на работы без вышки. Если конечно ответишь на вопросы и пройдешь тестовое задание на собеседовании
>>2032714 Не монтаж. Кодирование, апскейл, стриминг быть может. Можно, конечно, еще сюда нейроночки прикрутить, чтобы улучшать качество старого онеме. Но здесь понятно куда копать.
>>2032736 Перекатыйвайся полностью в C#, если тебе нравится студия и дотнет (кор). У меня проект кроссовый и мультиязычный и я даже не представляю как его без гомоебли в студии можно сделать (микросервисы - неткор, фронт - жопаскрипт, бэк и железо - с/c++/asm/cuda, ещё пихон под всяко разно).
>>2032752 Если у тебя нет диплома (да любой бумажки об образовании), значит ты не хочешь учиться. А если ты джун, который не хочет учиться, то зачем тебя вообще на собес приглашать?
>>2032756 >>2032755 Берёшь, набираешь в поиске C++, epam, luxoft, #galera_name. И о чудо, вакухи сразу находятся. Галера она вообще не про языки, а о том чтобы гребцов продавать. Ты можешь туда прийти на жопаскрипт а заниматься вообще чем угодно.
>>2032652 >Симейк это настолько ублюдочное дерьмо, что прям очень хорошо говорит об экосистеме С++ как таковой. Когда такой сблев стал де-факто стандартом. В чем проблема Cmake?
>>2032790 Я конечно понимаю, что у нас к сожалению, почти везде есть устаревшие знания, но я что то очень сомневаюсь, что ты знаешь все лучше, чем тебе могут объяснить в какой нибудь чебышевке, пми вшэ/пми
Здравствуйте. Какие книги по C++ актуальны на 21 для обучения с нуля? Книги должны быть на русском языке, а их список в хронологическом порядке изучения (от начальных до более сложных). Знаний в области программирования нет вообще. Насколько актуален список книг для обучения на картинке?
Есть ли разница и как лучше возвращать структуры из функции? Например есть код, в котором мне нужно получить заполненную структуру данных просто struct с переменными. И вот я могу сделать функцию, которая будет возвращать MyStruct/const MyStruct&, или сделать воидовую функцию, которая будет принимать MyStruct& и там его заполнять. Я чёт пытался сам пример себе собрать, но не понимаю до конца, что конкретно происходит с структурами, когда я референсы на них возвращаю из функций? В первых двух вариантах с пикрила в функции и в вызывающем коде адреса у структур разные. Это типа что, на return'е функции структура копируется в памяти и в вызывающем коде референс уже на копию? При этом у struct3 в вызывающем коде адрес такой же, как и в создающей функции
>>2032950 Боюсь представить каких размеров будет эквивалентный vcxproj (проект из одного файла это 5kb текста). А ещё ты, наверное, очень любишь переводить проекты на новую студию каждые 2 года (казалось бы открыл sln и работай, а вот хуй).
>>2032965 > А ещё ты, наверное, очень любишь переводить проекты на новую студию каждые 2 года (казалось бы открыл sln и работай, а вот хуй). Угу, переезжали, без проблем. И на 22 переедем.
>>2032929 Бэкенд много на чём пишут, в чём посыл то твой? У меня проект текущий имеет несколько разных бэков под разные конфигурации. Один бэк на шарпе, второй на плюсах.
>>2032973 > Зачем это делать, если можно не делать? Открыл cmake, выбрал версию студии и нажал generate. Всё. Зачем вообще все эти танцы с симейком, когда просто открыл студию и все?
Раз в 2-3 года одному программисту нажать Upgrade на солюшен не убудет, лишь бы не ебаться с симейком
>>2032976 Закатать рукава нужно 1 раз, сделать все нормально, и дальше после этого проект взлетает автоматически.
Когда мне дали анальную легасню из студии 2012 - я ее уже перевел на 2015, 2017 и 2019. Первый апгрейд некоторое время сожрал небольшое (2-3 дня афаик, и то большая часть проблем - с расширениями языка и 3рдпатями) - дальше мы апгрейдились одной кнопкой.
>>2032979 Ну я в таком не пачкаюсь. Беру виртуалку и на неё ставлю легаси студию, легаси проект и весь легаси тулчейн. Для говна должна быть отдельная банка с плотной крышкой.
>>2032983 Когда сказано, что говно надо активно девелопить, после того, как оно уже засохла - ты достаешь леечку и говно начинаешь размачивать, хули еще делать
>>2032989 У нас проект клонируется, компилируется, тестируется и отгружается одной командой (под 3 разных оси/платформы на выбор). Всё делается не выходя из уютненького VSCode.
>>2032938 Нахуй мне его читать. Это компилятор/линковщик пусть его читает Я вижу, что cmake кроссплатформен, под кучу ос и компиляторов работает. Заебись же. Что не нравится?
Как добавить папку в проект? Не просто чтобы ее файлы в проекте оказались, а чтобы я мог писать include "foldername/file.cpp". Потому что если копировать папку впроект и кликнуть Добавить в проект, то добавляются только файлы
>>2033769 Ладно, не скомпилировал. Что делать с этим? Я просто не понимаю как узнать что не так по этим краказябрам. Некоторые штуки даже поиском по файлам не находятся
Ассемблер работает только с регистрами или тоже может обращаться к ячейкам памяти? В сях не сделали доступ к регистрам из-за кроссплатформености? Я видел пример кусочка кода, который компилятор преобразовал в ассемблерный код, и там тоже использовались регистры. То есть программа постоянно взаимодействует с регистрами, а не только когда мы это явно укажен ассемблерной вставкой? Правильно ли я понял, что в этом случае получается, что сама по себе ассемблерная вставка магическим образом не ускорит производительность, она просто дает возможность программисту максимально оптимизировать код?
Есть ли какой то быстрый способ вычитания одного контейнера из другого? То есть в результате должен получиться контейнер с элементами, которые по одному разу в каждом контейнере, то есть чтобы было 0 совпадений по элементам? Есть ли какие то готовые быстрые алгоритмы, чтоб не приходилось решать тупым перебором m x n раз?
>>2033799 Не разрешенный внешний символ - это значит либо где-то инклуда не хватает, либо не подключена/криво подключена библиотека.
Поскольку ты компилишь отлаженный проект, то скорее всего ты где-то проебался с подключением библиотеки.
>Некоторые штуки даже поиском по файлам не находятся Линковщик работает уже с обработанными файлами - ему с кракозяброй удобнее, чем с исходными именами.
>>2033804 Может, на x86 есть сегментные регистры для доступа к памяти base:offset. Сейчас используют линейные адреса. На других архитектурах есть инструкции для загрузки данных из памяти. >В сях не сделали доступ к регистрам из-за кроссплатформености Возможно, в любом случае работу с регистрами лучше возложить на компилятор, даже register выпилили кейворд оставили, но компиляторы его игнорируют, т.к. мало кто знает как эффективно юзать регистры. Да, программы взаимодействуют с регистрами, обращения к памяти занимают много времени, поэтому у нас есть кэши и регистры, также в регистрах хранится состояние. >ассемблерная вставка магическим образом не ускорит производительность Т.к. я нюфаг, то не ебу. Скорее всего ассемлерная вставка даст прирост производительности там где требуется задействовать векторизацию или специфичные команды конкретной архитектуры. К счастью, популярные компиляторы могут в автовекторизацию и оптимизацию под конкретные архитектуры. Вообще встроенный ассемблер не стандартизирован, поэтому, например, в gcc и msvc способ записи отличается.
>>2032708 Когда-то давно для диплома для пробегания по алгоритмам и некоторым основам сжатия я использовал Data Compression: The Complete Reference. Ещё по работе для некоторых вещей связанных с анализом мпега читал Video Demystified: A Handbook for the Digital Engineer. Ну и, естественно, просматривал исходники ffmpeg и GStreamer. Но вот прямо про полную с нуля теорию и практику сжатия (особенно в видео) я хз, это реально нужно знать матан. Сам я кодер который проводит нетривиальный rate-distortion анализ с более-менее сложным форматом даже боюсь начать писать.
>>2033910 То есть частичный порядок у тебя. Ну вот такой алгоритм: >Строишь диаграмму Хассе для обоих контейнеров >Проводишь топологическую сортировку каждого из них >??????? >Не знаю, не придумал
Здравствуйте! При выполнении метода Token::tokenTypeToValue с параметром TokenType::empty метод не находит параметр среди первых членов пар из вектора Token::tokenTypeToString_pairs, хотя там есть пара {TokenType::empty, ""}. Причём отладчик говорит, что внутри метода Token::tokenTypeToValue вектор Token::tokenTypeToString_pairs имеет размер 0, то есть пустой. Но выше вызова этого метода находится определение этого вектора. Странно, почему так?
Пользователь вводит информацию о каждом человеке: его имя; секцию, которую он посещает; год, когда человек вступил в секцию. При этом один и тот же человек может посещать одновременно несколько секций. После того, как пользователь ввёл информацию о всех людях, программа лолжна вывести список тех людей, которые посещают более двух секций в течение одного года.
Информация о человеке должна быть записана в struct
Вот создал я структуру struct Human { string name; int year; string section; };
А как посчитать кол-во section с разными значениями и вывести имя этого человека?
>>2035287 А где это место может быть? Перед main() находится объявление объекта класса TokenStream: TokenStream tokenStream;
Это объявление вызывает конструктор TokenStream по умолчанию: TokenStream::TokenStream() : isFull{false}, buffer{TokenType::empty} {}
Этот конструктор вызывает конструктор Token: Token::Token(TokenType type) : type{type} { value = tokenTypeToValue(type); }
Этот конструктор вызывает статический метод tokenTypeToValue, который в файле Token.cpp был представлен и который выбрасывает domain_error. Не понимаю, где здесь ошибка.
>>2035292 Общая идея такова, что статические объекты (static Token::tokenTypeToString_pairs) и объекты в глобальной области видимости (TokenStream) создаются до вызова main(). При этом порядок создания/инициализации определён только в рамках единицы трансляции (файл cpp). Так как у тебя они в разных файлах, то статические члены Token видимо создаются после конструктора TokenStream. Если не понятно, то просто перенеси TokenStream в main(). Скорее всего отпустит.
Возврат указателя на переменную, созданную локально внутри функции, не гарантирует мне получение ожидаемого значения при разыменовании указателя, так как lifetime переменной соответствует телу функции? То есть указатель не продлевает время жизни переменной, на которую указывает? А const указатель? Про const ссылку знаю
>>2035463 Если у выражения есть имя (а у ссылки имя есть), то оно lvalue. Вообще можешь рассматривать ссылку как альтернативное имя объекта. Если ты у объекта можешь брать адрес, то и у ссылки тоже.
Привет. Читаю Лафоре и мне не нравится. Чувствуется что литература устарела. Оригинал на английском и перевод хромает. Мс дос, старые компиляторы которых уже нет, стиль повествования старого деда. Книга нагло врет про обучение с 0. во общем мне не нравится. Подскажите норм литературу для изучения с 0.
>>2036108 Но у меня много где включаются заголовочные файлы стандартной библиотеки. Могу, в принципе, везде так написать, но есть ли способ "красивее"?
>>2036871 Потому что создавалось для наших бабушек и дедушек и давным-давно устарело, оставшись уделом троллей на дваче. Альтернатив полно - code blocks, eclipse, kdevelop, но ничего и близко до студии не дотягивает.
>>2036871 Сначала не очень удобно, потом за уши не оторвёшь. Ну и полезно это, многое узнаешь. Я после vim-а и уютной консоли смотрю на visual studio, как на нелепую неповоротливую неудобную хреновину. Но это во многом дело привычки и вообще зависит от задачи. Небольшие проекты я бы точно из-под консоли делал, с большими не уверен.
>>2036899 В студии очень удобны дополнителные фичи (профилировщик, анализ памяти, даже мешанины из managed и native, дебаггер больше нравится чем gdb). А так согласен, если пользоваться только навигацией да автодополнением, то действительно достаточно вима с какими-нибудь YCM и nerdtree. Мимокрокодил
>>2036923 Вот профилировщики и анализаторы, как по мне, на лялексе поинтереснее будут. perf пушка, valgrind туда же, address/ub/thread/ещёкакие-sanitizer-ы есть. >>2036925 Наверное, не пробовал. В проекте на работе несколько сотен тысяч строк, но я там редко ковыряюсь. Приходилось grep-ать пару-тройку раз. В модуле, который я написал, около 200 файлов с сорцами, по которым размазано 12к строк кода, и мне очень комфортно. Плагинов у меня нет, я чудной.
>>2036875 Ассемблерные вставки делают, чтобы использовать SIMD, их потоковые и векторные расширения (SSE, AVX, NEON и так далее). Во всяких кодеках и обработчиках медиа контента они иногда встречаются. На уровне регистров уже никто не пердолится.
>>2036871 VSCode. Под убунтой и лялексами с окошками весьма удобно. В качестве бонуса многие хоткеи и навигация как в студии. Можно накатывать сверху плагины под всё что угодно и кодить на нескольких языках, жонглировать гитом и докером, дебажить удалённо ардуинку и даже gpu код.
Второй вариант Eclipse. Он устарел в плане юзабилити, но под него есть очень крутые плагины для специфических задач.
А VIM он для говноедов и работников станций техобслуживания. Такой себе универсальный мини набор для работы в пиздецких условиях (например под Gentoo).
>>2037065 Наборы интринсиков у разных компиляторов разные. Да и сами функции это крупные строительные блоки из asm команд. Языковая вставка - более гибкая и универсальная конструкция.
Я знаю, что квиксорт можно написать через std::move_iter обобщённо для любых контейнеров, но если бы я писал какой-то другой алгоритм, это могло бы не прокатить. И вопрос эффективности остаётся.
Предположим я хочу написать функцию, которая перемещает элемент контейнера из одного места в другое. Делаю следующее:
auto tmp = *i; i = container.erase(i); // UB starts here container.insert(pivot, tmp);
Если контейнер это std::list то всё ок. Но вот если std::vector, то возникают проблемы, так как erase (да и insert) инвалидируют итераторы.
В общем, рассмотрел несколько вариантов и остановился на if constexpr(). Всё правильно сделал?
Анон, у меня есть pcie устройство, которое раз в 100 микросекунд хуячит данные. Я вполне успешно в while(1) читаю данные, но вот если мне захотеть делать чтение через 100мкс, чтобы лишний раз проц не грузить, то начинаются фиаски: винда не позволяет точнее миллисекунды переключать контекст, а линух не гарантирует точность.
Также я узнал про Boost::Context, что там используется свой шедулер, аки в микроконтроллерах, и мне кажется, что сложий механизм позволит точнее рулить ядром.
Анон, как быть? И как работают аудио/видео кодеки, обеспечивая реалтйцм?
>>2037102 У vector, array и list итераторы bidirectional. Собственно в qsort тебе надо свопать значения итераторов и двигать их влево и вправо операторами ++. --. Зачем ты вообще erase/insert используешь? Только с forward_list нужно сделать шаблонную специализацию, так как там forward итератор.
>>2037110 >чтобы лишний раз проц не грузить, Не получится. Грузи ядро и молись чтобы ос не часто тебя переключала, или ставь нормальную рт ос, благо они и бесплатные есть, или навешивай на Винду рт расширения (за деньги).
>>2037102 а ничего что квиксорт использует просто обмен двух элементов (std::swap)? потому что перемещение - это O(n) на векторах и вместо квик у тебя будет пиздецсорт O(n^2 log n)
>>2037134 Конечно установка русского - это не самый очевидный процесс, пришлось повозиться. А вот касательно работы, то всё заработало можно сказать из коробки. Скачал модуль на С/С++, создал проект и всё откомпилировалось без проблем.
Вижуалстудия предложила мне пройти опрос, я в нём написал, что неплохо было бы портировать её на другие ОС и ещё добавить поддержку джавы. Держу в курсе.
>>2037110 >И как работают аудио/видео кодеки, обеспечивая реалтйцм Буферизация. Аудио-библиотека сразу запросит у тебя несколько миллисекунд и будет сама потихоньку их проигрывать. Причём с запасом, чтобы в случае косяков и временных замедлений не выдавать ужасный треск на колонках. А у тебя кроме как поллинга судя по всему нет вариантов, если драйвер твоего устройства не умеет как-нибудь непрочитанные данные складывать в своём буфере и сигнализировать потом об их наличии.
>>2038351 > не умеет как-нибудь непрочитанные данные складывать в своём буфере и сигнализировать потом об их наличии. Потенциально умеет, так как это пилит другой человек на ПЛИС. Видимо, это самый правильный путь с буферизацией данных на устройстве и их слив через дма.
Как программировать графику? Почти все книжки посвящены пердолингу с консолью, а вопросы работы с графикой не рассматриваются. Очевидно, что в 2021 писать консольные приложение архаизм и потенциальные пользователи хотят современное графическое приложение. Но вот как это сделать, нигде не пишут.
>>2038422 Потому что это книги для вкатывальщиков, и в консоли ввод-вывод тривиален, когда даже для простейшего гуя нужно понимать десятки концепций и писать кучу строк. Читай в книгах про конкретные gui-либы, тот же говно-Qt.
Почему под Linux можно делать 64-битные Qt-приложения, а для Windows только 32-битные. Смысл тогда городить эти огороды с кроссплатформенностью, если у них даже компилятора нет 64-битного!?
>>2038924 Всё там можно анон, смотри внимательнее. Я давно правда qtcreator на вантузе использовал. Сейчас просто кросскомпилирую с ляликса под винду, можно и 64 и 32
>>2038422 >Как программировать графику? Ставишь соответствующую библиотеку и програмироваешь.
>Почти все книжки посвящены пердолингу с консолью, Не припомню ни одной такой книжки, где центральной темой был бы именно пердолинг с консолью. Обычно книга посвящена языку в целом, или его отдельным, аспектам или какой-то парадигме программирования применительно к языку.
>а вопросы работы с графикой не рассматриваются. Потому что в стандарт не входят никакие средства для работы с графикой. Работу с графикой обеспечивают сторонние библиотеки.
>Но вот как это сделать, нигде не пишут. Пишут в соответствующих книгах и в документации к библиотекам.
>>2039368 В студенческие годы я программировал графику на WinAPI и получал пятёрки, потому что другие вовсе писали в Borland C++ 3.0 в старых видеорежимах VGA 640х480. Прошло уже два десятка лет, а ничего нового похоже не придумали. Все сидят с умным видом и изучают консоль в надежде, что это им как-то поможет стать крутым программистом. Но ни один заказчик не станет покупать консольную программу. Под программой все понимают графическое приложение с привычными элементами управления: меню, кнопки, поля ввода и т.п.
>>2039410 Я начинал свой путь программиста ещё со старых 8-разрядных ЭВМ и поэтому я прекрасно понимаю все эти консоли и прочие старые методы ввода/вывода. Но в 2021 изучать консоль - это архаизм. Книги надо переписывать с учетом программирования в графическом режиме.
>>2038839 >>2038893 Просто я уже не первый раз слышу, что Visual Studio для простоты всё сводит к одной системе с байт-кодом, а язык не имеет значения.
Есть произвольный взвешенный неориенированный граф g, c вершинами типа Vertex. Есть функция bool match(vector<Vertex>& left, vector<Vertex>& right), которая возвращает true, тогда и только тогда, когда для каждой вершины из left найдётся вершина из right, такая, что в графе есть путь между ними. Можно ли ее реализовать быстрее, чем за O(n^2)?
>>2039820 Дак что мне теперь делать? Отказаться от графических приложений и писать веб-сервер, чтобы конечный пользователь работал в браваёзере? Тогда не особо С++ и нужен получается. Я такое и на РНР в своё время писал.
Сап, крестодворяне. Нет не лаба, нет не работа. Предположим, есть видеохостинг, соцсеть, %#вставить_нужное#%. Задача - сделать ленту выдачи, которая будет формироваться из предпочтений пользователя. Из подводных - у нас высокая нагрузка на сервера. Очень. Кроме нейросетей.
>>2041346 >Если ты пройдешь сюда - то лучше го к нам в нвидию пилить дебаггер для тегры, денег х2 от самсунга. а накидай вопросы с ваших собесов? Или от себя, что считаешь чел. должен знать, чтобы ты с ним хотел работать?
что почитать о том как антивирусы работают? А то чего то полезней статьи в википедии, где все очень общими словами на 2 предложения написано, не получается найти
>>2041872 Ебланы значит. Ну я не шучу.Че за бред написать фибоначчи или обратиться к двумерному массиву через указатель без []? Реализация string или vector. Ты про нее читаешь просто когда знакомишься с ними. Там должно быть написано как они работают, а на cppreference вообще реализция каждой функции лежит. Это уровень 11 класса. Может по синтаксису только что то не для 11 класса, а так ничего сложного нет. Я надеялся встретить ебать какие задачи на логику, а тут хуита какая то
>>2041877 Ну, я персонально еще просто спрашиваю за С++, всякое разное, словами. Там про линковку\компиляцию например, или про шаблоны.
А вообще - я сам, когда начал собесить, у меня волосы дыбом были, когда приходит наночелик с опытом в 10 лет, хочет 300к на руки, а знает столько, что задаешься вопросом - чел, ты 10 лет кофе программистам носил? Или что вообще делал?
>>2041889 я вот больше >5 лет в си/с++. Что я знаю про линкомвку и комплияцию? Да каша у меня: знаю если стат. линковка, есть динамическая. Стат. во время комплилияции резолвит все зависимости, дин. - динамический линкел. Есть там в gcc всякие weak линковки - можно подменять либы, например через LD_PRELOAD_LD. В никсах nm вроде можно посмотреть символы - какие динанмичискеие, а какие статические. В винде при чём студия для дин линковки всё равно требует либ файлы почему-то специальные для dll. Что, я совсем быдло? А если мне не пригождалось это во время работы? Ну спроси меня что--нибудь, давай, опусти меня полностью
>>2041902 Спрашивать я ничего не буду - я когда собеседую, я пытаюсь узнать ПОНИМАЕТ ли человек, или просто как обезьяна что-то делает по заученным паттернам.
Все эти вопросы - на понимание. В итоге у меня были сениор девелоперы, которые не понимают указатели, не понимают компиляцию, да вообще нихуя не понимают. Выучили некий сабсет языка, научились в вижуалстудию\симейк добавлять новые С++ файлы и все. Что они делают - не понимают.
И твой ответ, впринципе, меня бы устроил +-. Еще один из любимых вопросов - когда надо юзать эксепшены, когда не надо.
Там просто слушаю, как рассуждает человек и его аргументацию.
Ответы уровня - ЭКСЕПШЕНЫ ЭТО МЕДЛЕННО - сразу нахуй. А вот ответы - я бы юзал их в XXX, но не юзал в YYY, потому-что ZZZ - это заявка на понимание.
>>2041909 >когда надо юзать эксепшены Для меня это пипец трудный вопрос. Какой-то больше философский. Главное, чтобы весь проект был однородным в отношении этого. Вот это главное
>>2041913 > Главное, чтобы весь проект был однородным в отношении этого Это не такой плохой ответ, но опять же - почему. Учитывая, что у нас есть куски без эксепшенов, а есть с эксепшенами. Само собой, на границах модулей все обернуто в try\catch.
>>2041909 Да ты и сам сабсетом пользуешься. Вопрос про POD, ну такое. После 5 лет писанины такое вообще из головы выветривается полностью (я бы только ответил, что это plain old data и это вроде как встроенные типы и структуры из них). Фибоначчи тоже не помню (а ты помнишь что такое золотое сечение?). Про стринг - не все знают/помнят про SSO. Но скорее всего ты обычный педант, поэтому за 2 года никто мимо тебя не проскочил.
>>2041926 >Да ты и сам сабсетом пользуешься Я понимаю, что я делаю. В этом разница. И мой сабсет достаточно нихуевый, у нас есть пара кусков написанных мной, где прям охуенное метапрограммирование.
Про PODы, кстати, вопрос не мой, и фибоначчи тоже.
> Но скорее всего ты обычный педант, поэтому за 2 года никто мимо тебя не проскочил. Отнюдь, я просто отсеивал профнепригодных. И, кстати, это окупилось, т.к. те ребята, которые прошли сквозь меня - просто охуенные. С одним из них ща на проекте сидим - полное взаимопонимание.
>>2041928 Я сам не собесил, а получал людей как есть. Некоторых удавалось вывести на хорошую производительность, некоторых - нет. Но, с таким самоподдувом, как у тебя, сложно собрать рабочий коллектив.
>>2041952 > Но, с таким самоподдувом, как у тебя, сложно собрать рабочий коллектив. Не знаю о чем ты, но у меня шикарная и суперскилловая команда. Я тут, оверолл, готов работать всю жизнь.
>>2041854 >Be prepared to write your code on white board. >How std::string is implemented? >How std::vector is implemented? Как вообще, в рамках интервью, должен выглядеть ответ на подобные вопросы?
Чтоли берешь маркер и херачишь на доске полную реализацию "1 в 1 как в msvc"? а потом тебя поъёбывают на тему, что в gcc оно иначе реализовано.
>>2042020 >Как вообще, в рамках интервью, должен выглядеть ответ на подобные вопросы? Фактически - надо обьяснить, что такое динамический массив и там и там. Бонус поинт в случае строки за SSO, бонус поинт за placement new в случае вектора.
Вопрос по qt У меня qml получает данные класса через паблик слоты. Есть кнопка, которая вызывает паблик слот, который меняет некоторые данные. Но проблема в том что данные не обновляются. Пробовал связать коннектом сигнал и слоты, которые данные возвращают, эмичю этот сигнал в функции которая через кнопку вызывается и данные не обновляются. Ну и что н так?
>>2042675 В классе сделай купроперти с твоими данными, и эмить сигналы об их изменении, в кмл просто забиньдся на эти проперти. Не забудь зарегистрировать класс для кюмл, и тип данных если нестандартный.
>>2042689 Да у меня зареган класс через engine root context Я знаю про макрос Q_PROPERTY, но проблема в том что у меня данные организованны по-другому, а мне допустим только строку надо вернуть, и регать это все в Q_PROPERTY создавать в классе еще одну переменную, такое. Кароче можно именно как-то эти функции перевызвать чтобы данные обновились?
>>2042701 Но я вообще обычно пихаю в проперти, если ее делать как member там только остаётся сигналы слать об изменении и все, а в кюмл совсем элементарно.
>>2042748 >>2042752 Я не понимаю. Зачем Q_INVOKABLE, если уже это и так паблик слот? Вот простой пример, че добавить нужно чтобы при нажатии на кнопку qml строка удваивалась?
>>2042765 У тебя нет биндинга текста, функция запрашивает его только при старте. Ты можешь сделать проперти и прописать ее в Text, или дать твоему тексту id, и при нажатии кнопки делать textId.text = tempClass.text();
>>2041928 >пара кусков написанных мной, где прям охуенное метапрограммирование Так это ты делал ту знаменитую компайл-тайм хеш таблицу на 50 элементов?
Нужно написать приложение, которое будет работать с простенькой базой данных (mysql). Что лучше всего выбрать для этих целей? Connector/C++ для MySQL оптимально или нет?
Объясните, что за хуйня тут происходит. Вот примитивная программа, чисто в итераторы потыкаться: https://pastebin.com/ZhyrMJNt Первый пик - если вводить меньше пяти значений, второй - больше пяти. Функцию заканчивает работу и память за ней подчищается? Но в программе же по прежнему остаются итераторы, ссылающиеся на эту область. Да и почему в такому случае после некоторого количества введенных значений программа начинает работать как и задумывалось? Если не выебываться и возвращать вектор, то все, очевидно, работает.
>>2044321 переменная вектора v в функции локальная, после выхода и функции вектор перестаёт существовать. Всё , что содержал удаляется. И итераторы ссылаются на непонятно что.
>>2044363 В общем, самый очевидный ответ и есть истина. Меня с толку сбило то, что при небольшом количестве элементов память перераспределяется сразу, а при чуть большем - остается нетронутой. И то, что я больше по питону, а там, пока есть ссылки, объект будет существовать. И еще вопросик. Получается, если возвращать напрямую вектор, то будет создана его копия?
>>2044401 >Меня с толку сбило то, что при небольшом количестве элементов память перераспределяется сразу, а при чуть большем - остается нетронутой. И то, что я больше по питону, а там, пока есть ссылки, объект будет существовать.
На разных компах может быть разный результат. Тут неопределённое поведение. Может у другого программа просто упадёт.
>Получается, если возвращать напрямую вектор, то будет создана его копия?
Скорее всего будет вызван перемещающий конструктор и данные, которые содержал вектор в функции, просто присвоятся новому вектору.
>>2004069 (OP) Простите за дубль, мб тут быстрее ответят, надо на завтра сделать Здравствуйте. Надо реализовать паттерн стратегия. На с++ давно ничего не писал, инфы по проблеме не смог сам найти. Сам код: https://ideone.com/kHTnS3
Как мне в метод PaymentPoint передать обьект типа CashPay или CardPay как реализацию интерфейса IPay? Что я делаю не так и как будет правильно?
>>2004566 твоя зп +15% - ЭТО МИНИМУМ,НИЖЕ КОТОРОГО ТЫ ДАЖЕ НЕ ПОДЫМАЕШЬ ПОПЧАНСКИЙ. Проси выше, но в разумных пределах. Посмотри на dou.ua какие там ЗП у мидлов.
>>2007920 Нормально. зарегайся на линкедыне, добавь туда свои скиллы, пройди тесты на знание навыков и хрюши тебя сами будут искать. плюс имей гитхаб. А вообще возьми доучи нормально С++ и работай себе. Если плюсы реально надоели - тогда смотри другие технологии. Возможно, тебе подойдет какой-нибудь другой язык.
>>2042673 >>2042677 >>2042653 Разве не стоит в парламенте дямбды принимать const auto& i? И cbegin, cend вместо begin, end. Тогда и contain должен быть помечен как const.
>>2045720 >Тогда и contain должен быть помечен как const. Он должен быть константным (если может) безотносительно этой лямбды.
>Разве не стоит в парламенте дямбды принимать const auto& i? Страуструп пишет, что передача по ссылке имеет смысл, когда параметр имеет размер больше 2х-3х размера указателя.
>И cbegin, cend вместо begin, end. Если предикат const-корректный, то это избыточно.
>>2045761 В Visual Studio если забываешь выбрать пустой проект, то она создаёт какую-то дичь с дополнительными файлами. Потом их уже нельзя удалить, проект без них не компилируется.
Это абсолютная срань, вообще не понимаю, почему это происходит. Нужно посчитать функцию пикрил 1 в точке 1.0. Для этого я пишу программу пикрил 2. В ней я пишу функцию, а во второй строке то, как я бы считал на калькуляторе. Получаю пикрил 3, причём во второй стрчке верный ответ, можете сами посчитать на калькуляторе. Сижу с горелой дупой уже третий час.
>>2038203 Как там компилировать большие проекты из нескольких файлов? Самом писать Makefile?
>>2037051 Все плагины оказались говно. Дальше компиляции одного файла ничего не работает.
>>2036879 А как они смогли пропихнуть CLion на Linux, где всё собирается из сырцов? Может всё таки есть исходники и их можно собрать и получить бесплатную версию?
На пиках есть объявление метода класса и сам метод. Объявление сделано с аргументами по умолчанию. Подскажите объявление объявляет именно эту функцию или какую-то другую?
Аноны, что за хуйня, у каждого долбаеба в вакансии "Хорошее знание и понимание математики: аналитической геометрии, алгоритмов на графах, численных методов, математического анализа." Причем даже если вакансия не связана с геом. моделирование, анализом и т.д. Если там есть с++ то там 100% будет это
>>2049644 То есть "сдал экзамен по этой хуйне несколько лет назад, с тех пор помню только пару формул, остальное забыл в силу неиспользования" - это хорошее знание и понимание математики, так?
>>2004069 (OP) Блять, я сейчас сгорю нахуй. Взял две либы с cmake, сгенерил sln, собрал статические либы. Всё без ошибок, всё ровно. Беру эти либы, линкую к проекту в студии. Судя по выхлопу с verbose, линковщик их находит и успешно линкует. Но, блять, мне один хуй пишет unresolved external symbol! Какого хуя? Я уже всё проверил - всякую парашу вроде МТ, чарсета, calling convention и прочей ебатени. Всё сходится, нихуя не работает. Ни одной ошибки кроме unresolved external symbol. Ну ёбаный рот ваших крестов. Как мне узнать в чём дело? Почему каждый раз какой-то лютый дроч с линковкой?
>>2049927 Может ты проебался с calling conventions (extern C, mangling). Может просто нет реализации у методов. Может ты разными компиляторами собирал и теперь линкуешь. Да масса причин может быть.
>>2049999 А есть вообще нормальные способы проверить что там собралось в либах? Я год назад их собирал и линковал без проблем, правда сразу с cmake собирал, а не через проекты. Сейчас решил через проекты делать чтоб можно было их вместе с основным проектом собирать автоматически. Я уже просто всё что можно было проверил, в основном проекте копипастой всё как в либах пробовал даже выставлять. Один хуй он не видит реализации. Может cmake как-то серит мне в штаны и выдаёт нерабочий проект? Просто если я сейчас соберу напрямую с cmake и нихуя не заработает, я нахуй разъебу пол квартиры.
>>2050125 В принципе рабочий вариант, но это очень специфичный способ (в PCSX2 как раз так делали емнип для плагинов, но их недавно выпилили). Обычно просто в рантайме прыгают на функцию с нужными инструкциями в зависимости от CPUID. Кажется у Агнера Фога в гайде была глава как раз про такую диспетчеризацию
Привет, аноны! А есть в ваших библиотеках какая-нибудь хорошая книга с полным погружением в шаблоны, где используются классы тайп трейтов, появившиеся уже после 11 стандарта? А то в шапке все на 03 указаны
Часто в описаниях к библиотекам пишут, что можно наследовать какие-то объекты и описывается это как какая-то офигенная фича. А я не могу понять, зачем мне их наследовать? Раньше вот библиотеки были более адекватными и там просто вызываешь нужную тебе функцию, а сейчас понадобавляли всякого наследования, чтобы вообще не логично и не понятно.
Я вот раньше программировал на ZX Spectrum и там самое сложное было найти инфу про какую-нибудь подпрограмму ПЗУ. А когда находил, то проблема снималась и просто вбивал в регистры нужную инфу и делал вызов подпрограммы. Всё четко и ясно. И ни какого наследования не нужно было. Всё работало!
>>2051140 > Но современный дискурс: агрегация лучше наследования. Лет через 15, может, плюсы и эволюционируют до прогрессивного мира, но в 2021, где cmake до сих пор не сдох, этого ждать рано.
У меня есть класс, конструктор которого принимает вектор. У этого класса есть методы, которые должны возвращать экземпляр класса. Сейчас я заметил, что в этих методах я объебался и возвращал вектор, но при этом все прекрасно работало. Получается, что если метод должен возвращать экземпляр класса, а в ретерне возвращается такой тип данных, какой конструктор может принять на вход, то конструктор будет неявно вызван?
>>2051249 Конструктор вида MyClass(SomeType st) задает неявное преобразование из SomeType в MyClass. Если оно нежелательно, то объявляй конструктор со спецификатором explicit.
>>2051455 Я пришёл к выводу, что на винде только две альтернативы: Visual Studio (но она платная) и Qt Creator. Последний включает в себя набор MinGW. Ничего настраивать не надо, просто ставишь Qt и всё работает.
>>2051910 Ты ей пользовался? Там надо быть постоянно онлайн, чтобы просто она запускалась. Я пару месяцев не запускал и у меня слетела авторизация, дак пришлось заходить на сайт, выполнять авторизацию, на почту пришло подтверждение и только после подтверждения с почты, я смог снова зайти в студию. Так же ты не являешься владельцев программ, которые написал в этой версии студии. По сути ты бесплатно пишешь для Microsoft код. Так что кроме учебных целей, она ни для чего не подходит.
Qt же можно использовать и для коммерческих целей, только надо делать динамическую линковку библиотеки. Либо открывать код для всех. Авторство у тебя никто не отберёт.
>>2051963 > Так же ты не являешься владельцев программ, которые написал в этой версии студии. По сути ты бесплатно пишешь для Microsoft код. А можно пункт из соглашения и конкретную цитату?
>>2051963 >>Так же ты не являешься владельцев программ, которые написал в этой версии студии. По сути ты бесплатно пишешь для Microsoft код. Так что кроме учебных целей, она ни для чего не подходит. так ведь похуй
>>2052071 >Так же ты не являешься владельцев программ, которые написал в этой версии студии. По сути ты бесплатно пишешь для Microsoft код. Так что кроме учебных целей, она ни для чего не подходит. Ну ты ебанутый...
>>2051989 Ладно, можешь не отвечать. Просто я 1.5 года веслал на средних размеров галере и нигде ранее не видел такого слабого менеджмента (вменяемыми были только гендир и менеджмент на 1-2 уровня ниже). Ну и "начальник отдела с++ программистов" намекает, что ты залётный. Кстати, у нас были "начальники" с писечкой, а у вас есть такие?.
>>2052212 >>2052229 >Некро >i3 и 8 ОЗУ >I5-4210U 4гб памяти ссд Чет проиграл. У вас не некро, а просто слегка устаревшие модели. Некро это когда 2 гб озу + Dual-Core + hdd как у меня сейчас, кек
>>2052385 >Говорю что некро не тянет студию >Фаза 1 >Не верят, пишут, что у них на на некро все летает >Фаза 2 >Ряяяя да это же ноут 2010 года Чет не перестаю с вас проигрывать
>>2052412 О! так там самое сложное было найти инфу про какую-нибудь подпрограмму ПЗУ. А когда находил, то проблема снималась и просто вбивал в регистры нужную инфу и делал вызов подпрограммы. Всё четко и ясно. И ни какого наследования не нужно было. Всё работало!
У меня давно назревает теория, что язык для вката выбирают по принципу "что потянет". Во всяких js/java-тредах травят тех, кто не может купить себе 64 памяти и ssd на пару терабайт, но заходишь в плюсач - а тут деды капчуют с Атари и ДВК.
>>2052550 > У меня теория о том, что плюсы привлекают шизоидов и хоббистов. > Т.к. никто РАДИ интереса не будет трогать джаву, питон и прочий мусор. а С++ можно. Подтверждаю. Два года работаю на джаве, но по вечерам играюсь с плюсами.
>>2052550 Я ребенок и мне 9 лет. Вот решил заняться самообучением, а вместо советов получаю здесь ну то что ты пишешь. Трудно помочь? Ах да ты ведь местный тролль и помочь чисто не в состоянии.
>>2052358 >нигде ранее не видел такого слабого менеджмента Собалезную. Зато бесценный опыт "как не надо"
>Ну и "начальник отдела с++ программистов" намекает, что ты залётный. Ващет на галерах деление идет именно по ЯП, максимум мобильщиков могут вместе согнать
>>2052653 >Собалезную. Зато бесценный опыт "как не надо" Как не надо что? Мне нужен был опыт в определённой области, поэтому я нырнул в говна. Сейчас я общаюсь с product owner'ами, а не с клоунами типа "начальник программистов c++".
>деление идет именно по ЯП Нет, деление идёт по заказчикам и их пулу проектов (средние галеры и выше не берут мелкую залупу от всяких ИП). А на проекте ты лишь формально "программист c++" (по факту ты пишешь на 2-3 языках, допустим, c++, пихон и жопаскрипт).
>>2052715 >Сейчас я общаюсь с product owner'ами Кек, а я еще с PM-ами и BA-ями общаюсь. Ты вообще понял что спизданул?
>Нет, деление идёт по заказчикам и их пулу проектов Что, матричную структуру все еще неасилили?
>(средние галеры и выше не берут мелкую залупу от всяких ИП) >А на проекте ты лишь формально "программист c++" (по факту ты пишешь на 2-3 языках, допустим, c++, пихон и жопаскрипт). Рашн девелопмент, индусятня отдыхает. Может ты еще и мануал куа делаешь?
>>2052722 нихуя себе. Офигеть. Почти лям в месяц. Порше кайен за год. Мда... Ты меня унизил. У вас многие там так шикуют? Ты какой-нибудь крутой ph.d, да?
>>2052726 > Как пройти собес к вам? Я просто на hh в свое время закинул резюме без особой надежды, и оп - получилось. Серьезно - никакой магии нету. Но да, я сурово С++ выдрачивал.
>>2052732 Ну, у меня есть достаточно уникальный бэкграунд в том, что я дохуя чего знаю от вообще почти всех областей. Я и админил, и девопсил, и, лол-куашил (иногда руками), писал код на 4х разных языках, зная только С++ из них.
Когда поняли, что мной можно заткнуть вообще любую дыру - это очень оценили, и в последнее время все мои задачи звучат как "придумай" или "разберись". За это, вестимо, и платят. У нас есть кому писать код, всем вокруг - я уже упоминал, что я далеко не самый сильный программист в команде. Но вот то, что я могу делать вообще все - ценится.
>>2052719 >Ты вообще понял что спизданул? Что тебе не понятно? В терминах твоей галеры я имею прямой выход на заказчика мимо всяких прокладок типа тебя. Формулировка задач из первых уст, оперативная обратная связь, возможность влиять на проектные решения, прозрачное распределение денег.
>Что, матричную структуру все еще неасилили? Не знаю о чём ты. Есть там всякая хуета типа skill matrix и по ней формируются проектные команды.
>Рашн девелопмент, индусятня отдыхает. Может ты еще и мануал куа делаешь? Та галера не была таким днищем. Но идея то одна - сэкономить на работниках. Для этого нужны люди, которые будут переобуваться на ходу (либо "руководитель c++ программистов" берёт в аренду людей у "руководителя других программистов", что не так выгодно).
>>2052760 >>Ты вообще понял что спизданул? >Что тебе не понятно? Маня, product owner - это должность, а ты кидаешься терминами в которых не разбираешься
>В терминах твоей галеры я имею прямой выход на заказчика мимо всяких прокладок типа тебя. Формулировка задач из первых уст, оперативная обратная связь, возможность влиять на проектные решения Ахуеть удивил - менеджмент на проекте оказывается с кастомером общается!!111 Кек, сразу виден твой уровень (джун), если тебя раньше постоянно отодвигали раньше от выхода на кастомера. Видимо боялись что ты хуйни наморозишь.
>прозрачное распределение денег АХАХА!! Либо ты сейчас же называешь внешние рейты всей команды, либо идешь нахуй. Нет, эстимирование в сторипоинтах - это не распределение денег
>Есть там всякая хуета типа skill matrix и по ней формируются проектные команды. Оно-то ясно-понятно, ты даже не понял идет речь
>либо "руководитель c++ программистов" берёт в аренду людей у "руководителя других программистов", что не так выгодно Лол, я наоборот лучше спихну вакансию на профильный отдел, чем поучаствую в выгорании своего подчиненного.
Насчет выгоды - это вообще что-то за гранью, всё равно кастомер платит
>>2052749 Проверь в eclipse указаны ли пути к компилятору в настройках. Сам эклипс это просто редактор кода. Можешь для начала вообще не использовать его, а просто сохранить код в текстовом файле и скомпилировать gcc/g++ в терминале "g++ tvoycod.cpp -o prog"
const char "const ptr и char const "const ptr - это третье
В первом случае указателю ptr можно присваивать адрес любой константы char. Во втором ptr хранит адрес неконстантного char. Указателю ptr нельзя присваивать новый адрес; он всегда указывает только на тот (неконстантный) char, который был задан при инициализации. Третье - это как второе, только char уже константный.
В случае со ссылками второй и третий кейсы не имеют смысла, т. к. ссылка итак всегда связана с ровно одним объектом (тем, который задавался при ее инициализации).
>>2052891 На 4к баксах нужно знать почти все в плюсах.
Я ожидаю полные ответы на: 0. английский на уровне intermediate+ или advanced 1. мув семантика, перфект форвард и универсал референсес 2. руле оф 3, 5, зеро 3. виртуал фанкшенс, виртуал тейбл, пьюре виртуал (может ли чисто виртуальная функция иметь тело?) 4. лямбды (можно ли привести лямбду к указателю на функцию?) 5. констэкспр 6. темплейты (СиЭрТиПи) 7. контейнера, алгоритмическая сложность, инвалидация итератеров 8. исключения (эксепшен гарантииес)
>>2052916 >А какой смысл вообще плотить за знания, а не бизнес велью? Бизнес велью - это и есть знания и умения быстро писать код без траты времени на фикс своих ошибок.
>выслуга лет Выслуга лет - это безумная тупая фигня, именно что важны знания, а не кол-во лет на секундомере
Мудрецы С++, помогите новичку разобраться. Вкатываюсь в Фундаментальные алгоритмы от Седжвика и что-то застрял уже на втором алгоритме( пик 2). Зачем он сделал цикл for без инкремента? Он же исполнится ровно один раз. Точнее, он вообще никогда не исполнится т.к. ранее мы инициализировали все id = i. Что за засада?
>>2052820 >кидаешься терминами Product owner сидит с нами в одном офисе и с ним обсуждаются любые проектные вопросы напрямую, а не через "менеджмент".
>менеджмент на проекте оказывается с кастомером общается В нормальной конторе с кастомером могут общаться все. На галерах доступ к кастомеру стараются ограничить. Работяги могут договориться напрямую и съебать на шлюпке (я был свидетелем таких событий). На моём проекте, когда кастомер вышел на работяг, то сразу сбросил за борт "руководителя" (типа тебя) и ещё пару "аналитиков" (норм у них пердаки тогда полыхнули).
>внешние рейты всей команды У меня сейчас такого нет, мы RnD контора, а не галера.
>Оно-то ясно-понятно, ты даже не понял идет речь Ну так это часть твоей работы, нести пургу всяким терминами и пускать пыль в глаза кастомерам и работягам.
>спихну вакансию на профильный отдел Не неси хуйни. У твоего отдела один кастомер, у соседнего другой. Если ты спихиваешь работу в соседний отдел, то люди начинают выгорать там (время работяг чётко расписано и за просрочки кастомер жёстко ебёт). Если в соседнем отделе манагер не совсем долбаёб, то хуй тебе он людей даст за просто так.
>>2053153 Ты задал один и тот же вопрос 100500 раз. Неоднократно получив ответы, ты отписываешься, что "тебе не помогло". Гуглить ты не умеешь и повторяешь вопрос тем, кто ответа не знает и гуглит за тебя, потому что никто этим говном здесь не пользуется. Уже реально на шизу похоже. Я не верю, что бывают настолько тупые вкатыши, даже я не задавал таких вопросов в самом ю начале. Скорее всего, ты тролль, и ответ тебе не нужен, тебе нужно всех заебать. И ещё говоришь что-то про бан, это именно тебя надо было давно забанить.
>>2053142 >Product owner сидит с нами в одном офисе и с ним обсуждаются любые проектные вопросы напрямую, а не через "менеджмент". Маня, продакт оунер и есть менеджмент
>На моём проекте, когда кастомер вышел на работяг, то сразу сбросил за борт "руководителя" (типа тебя) и ещё пару "аналитиков" (норм у них пердаки тогда полыхнули). Ну и пизда им, кек, раз они не могут оплатить юриста, чтобы вписал пнукты о не переманивании ВЕЗДЕ
>У меня сейчас такого нет, мы RnD контора, а не галера. Ясно-понятно, "прозрачно" кек. Денежные вопросы никогда не выходят за пределы сейлзов и финансового отдела
>Не неси хуйни. У твоего отдела один кастомер, у соседнего другой Какая ебанина. Кастомер есть не у отдела, а у галеры. Точка блядь. И это задача галеры - собрать гребцов из разных отделов на проект. Хоть из разных городов, но чтобы попадали по скиллсету.
На проектах гребцы отвечают перед ПМом, лол. Но никто (кроме тебя) не называет "отдел" --- "проектом". А у тебя эти понятия нахуй спутаны.
>>2053166 Годных ответов не было. Один щитпостинг. Гуглить умею. Возьми и напиши нормальный ответ на вопрос если ты можешь ( в чем я лично сомневаюсь ). Я десятилетний школьник который пытается учиться на каникулах, а у вас такое отношение...
>>2053075 >>2053174 Да все, вроде понял уже. Короче он как бы от одной цифры идет по ссылке к другой, пока не встретит цифру равную самой себе. И вот уже тогда их связывает присваиванием. Я просто не сразу догнал как у него фор без тела цикла работает. >В иллюстративных целях Ну мог бы и не изощряться да попроще написать, да. >Ты ничего не потеряешь, если забьешь на его книжку в пользу какой-нибудь другой Что можешь посоветовать по алгоритмам?
Эклипсом пользуются в основном несчастные, которые делают что-то супер узкоспециализированное, т.к. для этого какие-то садисты написали эклипс плагин. Всё, по собственной воле эту парашу никто не юзает.
>>2053209 Ну тебе уже ответили >>2052821, но ты проигнорировал и продолжаешь постить одно и то же. Последний раз объясняю последовательность действий. 1. Проверяешь настройки эклипса, знает ли он о пути к компилятору 2. Проверяешь, установлен ли в системе компилятор Вангую, что проблема может быть только в этих двух пунктах. Если ты не в состоянии это сделать, значит тебе нужно изучать основы работы с ОС, а не программирование.
>>2053168 >Маня, продакт оунер и есть менеджмент Я тебе про доступ к менеджерам разного уровня говорю. И о том, что на галерах есть большая прослойка из говноменеджеров. Когда через них идёт информация, то она очень сильно искажается.
>о не переманивании Каком переманивании? Люди не пошли в штат заказчика. Они сами окуклились в рабочую единицу и брали у заказчика подряды. Во втором случае заказчик пообщался с конечными исполнителями и сократил штат до смысла, что в итоге ударило галеру по карману.
>Денежные вопросы никогда не выходят У галер довольно запутанные цепочки подрядов и субподрядов, а также список исполнителей. И в этом болоте исчезает довольно много денег.
>собрать гребцов из разных отделов И зачем тогда вообще такие "отделы"? Получается, что "начальник отдела программистов с++" - хуйня без задач.
>matrix management На пике: research prodction sales finance Это вообще не про галеры, дебич. Откуда там research и sales? Это для компаний полного цикла.
Будут ли отличаться конструкторы класса если в одном случае уберу вторую строчку, а в другом нет. С деструктором такой же вопрос. Зачем вообще деструктору default? struct Foo { Foo() = default; // 2 int x; ~Foo() = default; };
>>2053233 >И о том, что на галерах есть большая прослойка из говноменеджеров. Та нет такого
>Каком переманивании? О таком, что пидорнули посредника. Значит посредник долбаеб
>И зачем тогда вообще такие "отделы"? Получается, что "начальник отдела программистов с++" - хуйня без задач. 1. Решать вопросы по стеку входящих проектов ("этот проект для C++ или нет?") 2. Быть первым кто ответит на вопрос, кто подойдет на новый проект по скиллам 3. Проводить собесы гребцов в команду 4. Отвечать на сложные вопросы подчиненых, помощь с проектом, менторство 5. Остужать горящие пердаки заказчиков, когда кто-то из подчиненных обосрался 6. Заниматься передачей опыта по горизонтали 7. Выходить на звонки с кастомерами по технической части 8. Педалить блядь код
>>matrix management >На пике: research prodction sales finance >Это вообще не про галеры, дебич. Откуда там research и sales? Это для компаний полного цикла. Мань, включить мозги и увидеть там PM, BA, FrontEnd, BackEnd, QA --- что, религия не позволяет? Алсо, ору с "компаний полного цикла"
>>2053232 Ишак ты ебаный. Попробовал бы сам скомпилить раз такой умный. Компилятор установлен по умолчанию удот ты ебаный мамку твою трахал. По настройкам хз.
>>2053324 Братик запиши видео пожалуйста как ты это сделал. Прям с 0 создание проекта и т.п. Когда я создаю проект у меня нет папки includes. Может у меня что то настроено в компиляторе не так хз. Ну или инструкцию в скриншотах сделай.
>>2053400 У вас заказчики принимают консольные приложения? Меня бы на 3 буквы послали за такую поделку, потому что все хотят нормальное графическое приложение.
>>2053472 Шизоиды боятся, что их хеллоу ворлд своруют.
Спойлер алерт - студия бесплатная, регается на любую говнопочту с мейлру. Ограничения на коммерческие продукты есть только у тебя больше 5 разрабов или оборот больше ляма баксов в год. И ТО - эти все ограничения снимаются покупкой лицензии.
>>2053486 >на любую говнопочту Тут ты сильно ошибаешься. Я регистрировался ещё в 2009 и пришлось писать в тех. поддержку, чтобы добавили мою почту (mail.ru). Благо тех. поддержка за сутки ответила и помогла с проблемой. Возможно сейчас с этим проще.
Смотрите: { std::string str; str.~string(); } --------------------------------- error C2300: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>': class does not have a destructor called '~string'
вспомнил, что string - это basic_string<char>: { std::string str; str.~basic_string(); } --------------------------------- OK
НО { using std::string;
std::string str; str.~string(); } --------------------------------- Тоже ОК
Откуда этот ~string() вместо ~basic_string() берется? Он вообще есть или нету его? поиск в заголовках по "~" находит только ~basic_string()
>>2053543 Пчел, ты откровенно стебешь сейчас, в виме нет вообще нихуя, кроме подсветки синтаксиса по словам (вне контекста). После того, как ты сверху наворотишь стопицот плагинов - ты получишь некую уебищную карикатуру на IDE по функционалу, только вот все равно там не будет ни интегрированной системы сборки, ни нормального GUI к дебаггеру.
>>2053550 Я начал изучать С++ где-то в 2013 году, скачал коммунити 2013 студию, без проблем зарегал ее на свою говнопочту на мейлру.
>>2053593 >без проблем зарегал ее на свою говнопочту на мейлру А у меня через некоторое время начала просить перелогиниться. А в логин без телефона не зайти. В принципе эту шляпу можно было игнорить. Но после длительного перерыва прям наотрез отказалась меня пускать и все тут. Пришлось им слить номер телефона.
>>2053297 >Та нет такого Тебя нет на твоём пике с менеджерами.
>Значит посредник долбаеб Что допустил прямое общение работяг с заказчиком, да. Для этого и делается боттлнек из пма и пары доверенных ему лиц.
Пп 1-8 указывают, что у вас там полный бардак с организацией. Ты говоришь, что у тебя проекты к отделам не привязаны => в твоём отделе N проектов и ты во всех кодишь, тушишь N жоп и обслуживаешь N заказчиков сразу? И несёшь перед ними ответственность за лиц из других отделов, которые на тебя хуй клали? Ахахах блядь, ебать ты лошара.
Полный цикл это сами придумали, сами разработали и сами продали. Естественно что не всё на 100% сами, но на галерах полностью отсутствует "придумали" и "продали".
>>2053702 >через настройки консоли Ну вот то-то и оно. Это уже фактически на стороне ОС делается.
cin/cout ничего не знают про настройки консоли (читай всех существующих консолей, где c++ запускаетя). Да и кому оно надо, чтобы банальный <iostream> еще за собой подтягивал йобу уровня windows.h ?
Каково хуя хеллоуворлд скомпилированный через g++ весит под 1.2 МБ? Срезал символьную информацию через -s стало 660 Кб. Какие есть варианты утрамбовать это непотребство?
>>2053681 >Ты говоришь, что у тебя проекты к отделам не привязаны => в твоём отделе N проектов и ты во всех кодишь, тушишь N жоп и обслуживаешь N заказчиков сразу? Ты еблан? У меня не проекты, у меня люди
>И несёшь перед ними ответственность за лиц из других отделов, которые на тебя хуй клали Ебать, ты далбаеб, тебе говорят - отвечает ПМ, а ты опять витаешь в своих фантазиях
>Полный цикл это сами придумали, сами разработали и сами продали Это называется "продуктовая галера". Ебать ты нифтеме вапще, ору с тебя
>>2053787 >У меня не проекты, у меня люди >8. Педалить блядь код
>отвечает ПМ >5. Остужать горящие пердаки заказчиков, когда кто-то из подчиненных обосрался
>"продуктовая галера" Галеры иногда пишут свои проекты, но это обычно касается управления собственными ресурсами и персоналом. Проекты на продажу совсем редкость.
>>2053791 Как можно организовать чтобы он всю ее не засовывал туда? Динамически пробовал линковать - программа вылетает при запуске, но даже если обновлю нужные длл то размер хеллоуворлда неприемлим - 21 Кб
>>2053787 На галерах есть мутная позиция типа deliveri director. Этот товарищ занимается конкретно людьми и заказчиками (но не кодит, не собеседует, не менторствует и т.д.). Ты же скорее тимлид, на которого накинули непрофильных задач и назвали "руководителем", чтобы ты не догадался, что тебя поимели за дёшево.
>>2053868 Ты необьективен. Я обучаюсь. Новые ошибки взамен старых это прогресс :) Маня как же у тебя рвется от того что другие прогрессируют:) Завистливая тупая токсичная сука.
>>2053900 Я прочитал и все равно не понял. Зачем ты в треде сидишь если тебя так разрывает от безобидных вопросов новичка-школьника? Человек сидит старается, не в минекрафт играет, а ты....
>>2053913 >не понял что делать Тебе миллион раз сказали в треде - поставить вижуал студию, где всех ебанутых проблем, что ты пытаешься сейчас тут решить - просто нету.
>>2053875 >>2053918 >>2053935 >>2053980 Блять, да вы совсем кретины, если пытаетесь состязаться тупостью со школьником-дегенератом. Хватит уже позориться.
>>2054039 Блять, че-то вспомнил как с десяток тредов назад один полуёбок создал проект на С++/CLI вместо нативного. И два дня шумно бугуртил на компилятор, студию и всё вокруг, требуя всё более подробных инструкций..
Начал читать Шлее по Qt. Вроде объём впечатляющий, книга с первых страниц себя презентует как хороший мануал по Qt. Но вот когда дело дошло до описания конкретики всё свелось к лаконичным фразам "ну тип эта штука делает то-то, а ещё у нас в библиотеке есть такие штуки... кек пук...". Как ими пользоваться? В чём вообще их предназначение? В общем, картина по Qt у меня вообще не вяжется и я не понимаю как писать программы на нём.
>>2054084 У меня всегда такие ощущения, когда я тыкаю какую-нибудь незнакомую либу или тулзу. Куча зависящих друг от друга понятий, кажущаяся важной хуйня не поясняется, а затем резко понимаешь и начинаешь юзать.
>>2054091 >дизассемблировать программы Чел... ты это... какой-то вариант для слабаков предлагаешь. Имхо гораздо лучше написать свою версию Qt с нуля, тогда точно будет понятно как с ней работать
>>2054084 >ну тип эта штука делает то-то, а ещё у нас в библиотеке есть такие штуки... кек пук... Краткое содержание 95% книг по тулкитам. Проще читать доки и пилить какие-то свои штуки, чтобы разобраться.
>>2054097 Когда я читал "Программирование для Win95" Ч. Петзолда, то сложно было только в начале принять событийный механизм программирования в WinAPI, а потом всё пошло как по маслу. В Qt же надобавляли всяких расширений языка, свой препроцессор, свой язык разметки, но толком не объясняют как этим всем пользоваться. Примеров очень мало.
>>2054080 Просто скопируй текущий ОП-пост, увеличь номер на 1, исправь ссылку на прошлый тред ("(OP)" удали), с тегом не проебись, на пикчу поставь аниме-девочку на тему C++. Остальное похуй.
>>2053802 >Галеры иногда пишут свои проекты Есть продуктовые галеры, ау
>>2053807 >Ты же скорее тимлид Тимлид - это позиция на проекте, а не в отделе. Асильте блядь матричную структуру. Вы блядь устройте соревнование за проект между отделами блядь
>>2054557 >Есть продуктовые галеры, ау Какие есть примеры на просторах СНГ?
>устройте соревнование за проект между отделами блядь У вас там отдел Java соревнуется за проекты с отделом С++?
>Тимлид - это позиция на проекте, а не в отделе. Это звено общей иерархии руководителей (типа сержанта в армии). И ты выполняешь функции этого звена, потому что: >8. Педалить блядь код Ты ж его не в отдел пилишь. >4. помощь с проектом, менторство >3. Проводить собесы гребцов в команду В проектную команду (не на бенч же).
Общий посыл в том, что ты выполняешь роли кодера, пм, тимлида, delivery directora и ещё хуй пойми кого (да, некоторые роли могут пересекаться, но не в таком количестве).
Как я писал ранее, на галере ты лишь формально кто-то ("программист c++", "руководитель отдела с++"), по факту ты постоянно переобуваешься между ролями и компетенциями. Из-за этого на галерах довольно говёно в плане организации рабочих процессов.
Привет. Я начал изучать С++. Но в последнее время понял, что нуждаюсь в опытном менторе. Наставнике, который бы помог разобраться с чем то. Набросать поэтапно задачи и просто подсказать что то в чем то. Может быть кто то мог бы в этом посодействовать. Думаю о цене могли бы договориться как то лично.
>>2060281 не нужны тебе никакие менторы, иди на ютюб и смотри для начала все видео с канала simple code пытайся что-то сам написать, посмотри видео змейка на c++ там плейлист из 3 видео вроде как и потом, тренируйся на сайте codewars
есть программа, в ней я запускаю другу свою программу с помощью функции system(). Какие есть способы получить результаты выполнения программы, которая была запущена с помощью system? Сохранить результат в файл и прочитать его?
>>2062991 std::system довольно тупорылый вызов Если тебе для лаб, то наверное да, через файл. Если хочешь сделать по-человечески, то необходимо использовать API средства. К примеру, очередь сообщений, но они не являются средством стандарта
>>2062991 Если можешь модифицировать вторую программу, то лучше пусть она слущает сокет, и туда же напишет результат Этого дурачка с брокерами сообщений не слушай
Сап анон, начал изучать С++. Задачи на лето стоят таковы, изучить С++ и написать "экономический симулятор". Суть симулятора проста, нужно написать один из этапов разработки месторождения нефти, а именно поиск и разведку. На экране будет квадрат, допустим 6х6 клеток, игрок может нажимать на любую часть квадрата и получать те или данные в зависимости от выбранной функции. Сложно ли будет это реализовать ?
Добрый день, аноны. Реквестирую помощь по изучению плюсов. Сам перешёл на второй курс. Подскажите в каком направлении следует двигаться, что учить, чтобы можно было фрилансить/возможно работать за минималочку с обучением.