Это копия, сохраненная 21 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
⚹ https://github.com/sosachbot/cppthreadhat/wiki
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: https://2ch.hk/pr/res/2157621.html (М)
Предположим, есть яблоки, все нумерованы. Я яблоки всячески сортирую, что-то выкидываю, распихиваю в разные корзины, в одной из корзин яблоки помыл. А потом приходит Вася, ищет и откусывает яблоко четыре.
Как это всё лучше хранить? Инб4 копипастой. Я использовал карту в глобальном хранилище, а корзины уже хранят std::const_reference<Apple>. Средне удобно, да ещё бесит пиздец в лямбдах из карты .second аргумент брать, плохо зделоли для моих универсальных функторов.
Сейчас использую std::list и его замечательное свойство splice, которым удобнейше сортировать и разбрасывать яблоки по корзинам. Но поиск нужного яблока происходит так себе, чтобы взять яблоко 6, придется все корзины перерыть.
Может быть стоит использовать shared_ptr? У меня с ним опыта мало, плохо чувствую его работу.
Как зарегистрировать драйвер на шине в sysfs?
Как зарегистрировать устройство на шине в sysfs?
Реализовал ioctl интерфейс, как теперь обращаться к нему в запущенном драйвере - Отправлять команды?
Вроде для тестов через insmod делается. Для постоянного куда-то там что-то копируется.
Если драйвер проинициализировался норм, то файловый дескриптор твоей говны имеет ioctl.
Посмотри примеры реализации, например
https://github.com/Xilinx/dma_ip_drivers
Ну чтобы я в vs мог быстро это все дело открыть и работать
5 лаб, но они не однофайловые. Там куча всяких файлов, начиная от просто файлов, которые я должен написать, заканчивая clang-format и файлов с тестами.
И да вообще стоит ли работать именно с плюсами или лучше другой язык учить?
Да нахуй эти плюсы, без опыта нихера не берут. Поидее, пишут коммерческий опыт если нужно чтоб ты работал где-то.
Иди на пофиг и общайся. Скажи что на плюсах писал лабу в своём вузике или что ты там ещё писал. В вакансии всегда указываются максимальные требования на часть из которых можно просто забить.
>стоит ли работать именно с плюсами
Скорее нет, чем да. Перспективы туманны, платят ниже чем в среднем по IT (особенно в среднем сегменте). Сильная привязка к специфике работы осложняет перекаты.
Как ты собираешься работать с этими данными. Если быстро вставлять-удалять то линейный список твой друг. Если при этом относительно быстро хочешь искать - бери деревья. Если хочешь константное время доступа - вектор. А если ещё и константное время добавления/удаления то дек. Ну или в некоторых случаях стек. И это мы говорим более-менее стандартных структурах.
Пикча отвалилась
Вторая мировая война. Немецкий концлагерь. Пленных казнят в газовых камерах. Через весь лагерь бежит немецкий офицер, подбегает к шестой камере. Заключенных уже завели в неё и закрывают дверь. Офицер успевает засунуть ногу между дверью и косяком двери, и спрашивает:
— Молдаване?
— Угу.
— Плитку кладете?
— Кладем.
— Положить плитку в ванной сколько за метр возьмете?
— Да, пять рейхсмарок, пожалуй, возьмем.
— Давайте за три?
— Ногу убери.
В каком смысле стоит ли? Если тебе интересна сфера в которой язык используют, то стоит. Если боишься, что язык умрет, то зря. Он нас всех переживёт. Ещё существуют вакансии на дедушке коболе.
Опыт конечно требуют, но не везде. Рекомендую проверенный путь: устраиваешься куда берут, как только чувствуешь что перспектив нет, стараешься поменять работу. Если все устраивает, естественно, остаёшься. Я отработал в госконторе 2 года на пол ставки. Туда позвали просто по факту наличия резюме на хх. Сейчас устроился на удаленку в дс на зарплату втрое больше. Сам никому не писал, hr-ры полезли во все контакты.
Главное смелее и активнее ходить на собеседования, и по чесноку говорить что умеешь, а что нет. На собеседованиях по ощущениям больше адекватность оценивают чем технические скиллы.
Потому что он примитивен и идеален для обучения. Реально на нём нормальные люди не пишут, пишут на сабже.
Нихуя вы там в плюсах обленились. Обернул уже класс студстринг в юникптр? А то на старости лет можно забыть память почистить. Но ничего - RAII все решит за тебя и можно спокойно заниматься БИЗНЕС-ЛОГИКОЙ.
Уважай прародителей, сцуго!
Программируют формулы по методичкам и делают окошки на MFC.
Да, в книге от Бьёрна задание написать используя нормальные строки, и в стиле си, пиздец конечно каждый раз выделять память, хранить длину, уходит в три раза больше времени
После маллока на NULL не забыл проверить указатель?
Книга писалась в те времена, когда надо было ебаться и с легаси-сишкой, и модными молодёжными крестами. Вот и надо знать оба подхода.
Будто сейчас не так. Берёшь lib_что _угодно и ебёшься либо с сишкой либо как минимум с очередной реализацией строк и io
Читай две строки, валидируй и парсь.
std::isdigit
Трассировщик лучей.
Интерпретатор языка Х.
Текстовый редактор.
Шахматы и змейки.
Клиент и сервер хуйни.
Эмулятор 6502.
Не надо покрывать всю систему команд. Сделай основные и пару примеров.
Теперь процессор просто всегда загружен. Че за хуйня?
Проси в валюте, дебилушка. Вон доллар уже опять вверх полез.
Упражнения нужны, чтобы ты знал, как строки устроены. Потом вот надо будет тебе считать данные из какого нибудь нестандартного ethernet кадра, охуеешь их конвертировать в строки и числа, если не будешь знать, как они в памяти записываются.
DIY датчик углекислого газа и интерфейс для вывода данных с него на компе.
Потом статью на хабре напишешь еще.
В любой книге про C++.
мразь
хотя есть строковый литерал, и возможность их конкатенации
Тут большее чувак поясняет нафига оно нужно. Но лучше вообще с первой лекции смотреть.
https://youtu.be/_mLDaU4wSOo?t=3778
На си не пишут такое обычно. На си пишут программки для микроконтроллеров, занимаются байтоеблей. Си это удобная замена ассемблеру, лучше не найти.
Но писать на си что то десктопное или веб сейчас это глупо.
Они крепко так ебут за умение в алгоритмы. Причём надо не просто задрочить сущеествующие курсы с десятком сортировов-поисков, а реально научиться мыслить алгоритмически. Надо будет решить несколько задачек прямо на собесе, где от одной только формулировки охуеешь, как это вообще сделать, не говоря уж об эффективности. Ну а потом через некоторое время будет письмо "К сожалению, мы не готовы продолжить общение"
Так уже были задания олимпиадные до этого, я решил 2 из 5. Зачем тогда устроили интервью?
А как понять, что ты сам задания решал? Как ты при этом мыслил? Умеешь ли ты общаться с людьми? Насколько ясно излагаешь свои идеи и умеешь ли доводить до конца то что от тебя требуется сделать (пусть и с подсказками)?
Короче устный собес это база. А то, что было до него - способ отсеять долбоёбов, которые в яшку толпами ломятся.
Так я же практически не решил... Ладно
Вот я создал массив на десять элементов, arr - это же получается указатель на 0 элемент. Так вот, почему в main тогда sizeof(arr) указывает 40 байт? Я понимаю, что это размер всех элементов внутри, но почему тогда в функции in sizeof(arr) равен 8? и там и там же указатель...
Потому что int arr[] это объект, а int⚹ arr - указатель.
Массивы, srand, что это за хуйня? Это не си тебе
>Предположим, есть яблоки, все нумерованы. Я яблоки всячески сортирую, что-то выкидываю, распихиваю в разные корзины, в одной из корзин яблоки помыл. А потом приходит Вася, ищет и откусывает яблоко четыре.
ЯННП
>Средне удобно, да ещё бесит пиздец в лямбдах из карты .second аргумент брать, плохо зделоли для моих универсальных функторов.
Пиздец у тебя проблем канеш. Завраппь
>>225526
>Почекал несколько вакансий по плюсам в своем городе, и в них часто указывают что нужен опыт работы в сфере. За "опыт" работы сойдёт свой проект?
Имеется ввиду коммерческий опыт на кастомера. Что ты можешь педалить то, что хочет видеть кто-то другой, а не свои фантазии. Свой проект за опыт не зайдет никак, только как бонус к твоему джунству.
>Или канает только опыт работы в команде?
На команду похер на самом деле, хотя и спросят работал ли в команде.
>>225600
>Да нахуй эти плюсы, без опыта нихера не берут.
Мы набрали студентов первокурсников на интернатуру, годный опыт. С улицы не берем.
>>226238
>оффер на техлида в дс
>Пока думаю 400к
Это сколько в баксах? 5.5k$? Москва? Ебать ты лох
>>226426
>Какой проект написать или спиздить для резюме джуна?
Напиши аудио-видео стриминг (клиент-сервер небольшой) на Qt + GStreamer, и можешь высылать мне резюме
Дорогая операция. Лишнее обращение к памяти.
Вдруг ты обнулил второй раз данные, а те которые на самом деле хотел обнулить останутся? Вот и утечка памяти
Не имеет смысла. У тебя в коде может быть еще 1000 указателей на эту же область. И они не обнулятся.
https://google.github.io/styleguide/cppguide.html
Ориентироваться на это, или полная хуйня?
Что стоит почитать по этому поводу? Хочу учиться писать код сразу по-человечески.
Я пытаюсь хотя-бы понять где фигурные скобочки расставлять, в строке с объявлением функции, или ниже. Ориентироваться на гугл?
Ниже.
inline QVariant readUInt(...)
{
...
return qToBigEndian(value);
}
Линкер ругается, что qToBigEndian - unresolved external symbol. Почему так может быть? Это из-за inline? Почему так, поясните плиз?
Подписался и выразил почтение моему самому любимому языку. Чмоки
Для меня это тоже самый любимый язык, но работать приходится, к сожалению, на жабе.
Хуево быть тобой че. Я бы бомбил, если бы гарбидж коллектор убирал бы за мной память, словно слюни за умственно отсталым.
Ладно бы GC просто подтирал слюни. Так ведь он запрещает подтираться самостоятельно.
А как ты QVariant к бигендиану конвертацию представляешь?
Note: Template type T can either be a quint16, qint16, quint32, qint32, quint64, or qint64. Other types of integers, e.g., qlong, are not applicable.
Да, ты прав.
Пока ты учишься писать по-человечески комитет выпускает новые стандарты. IT электричку догнать невозможно.
Хочу сделать красивый код, но без тригонометрических функций
Пока что надумал - 4 точки с условием, когда очередь доходит до точки - меняется поведение x и у
смущает, что много if - этот код возможно переделать с меньшим кол-вом if и без триг. функций?
>без тригонометрических функций
Поясни конкретно. Нельзя использовать именно std::sin, std::cos? Нельзя использовать в цикле? Можно использовать sin/cos один раз при инициализации?
>Нужно, чтобы линия шла по границам квадрата против часовой стрелки бесконечно (зелеными линиями показаны примерные положения одной линии)
Уточни - нужно именно плавное равномерное движение (постоянная угловая скорость)?
Я бы предзаполнил массив координат точек и в цикле бы бегал по нему например.
>Нельзя использовать именно std::sin, std::cos? Нельзя использовать в цикле? Можно использовать sin/cos один раз при инициализации?
ВООБЩЕ не используя cos и sin, и не пытаться их имитировать, вообще без тригонометрических правил и функций
>Уточни - нужно именно плавное равномерное движение (постоянная угловая скорость)?
нууу да, по 1 пикселю за итерацию цикла по краю рамки, см. картинку(к алгоритму отношения не имеет, просто как пример)
>Я бы предзаполнил массив координат точек и в цикле бы бегал по нему например.
а это не слишком дохуя если по 1 пикселю? одна сторона квадрата может и 600 пикселей быть
чёнить более гибкое к размерам квадрата хочецца
разве что массив
[3] [599] [0] - 4 стороны квадрата с 600 пикселей каждый и для каждой стороны свое правило заполнения - так?
>ВООБЩЕ не используя cos и sin, и не пытаться их имитировать, вообще без тригонометрических правил и функций
Точно-точно? Это домашка? Мб там просят неиспользуя плавающую точку, это немного другое
>а это не слишком дохуя если по 1 пикселю? одна сторона квадрата может и 600 пикселей быть
>чёнить более гибкое к размерам квадрата хочецца
Ну охуеть конечно - 600 элементов в массиве. Алсо, тебе не нужны 4 стороны, можно одной обойтись и зеркалить потом
>Точно-точно? Это домашка?
нет, я просто матан не люблю, по триг. функциям вроде слишком просто, интересно что тут предложат без матана
>Ну охуеть конечно - 600 элементов в массиве. Алсо, тебе не нужны 4 стороны, можно одной обойтись и зеркалить потом
ну все же массивы какая-то стремная тема
мне не нужно просто решение, иначе я бы оставил ifы или триг. функции подключил
я хочу узнать как может выглядеть КРАСИВОЕ решение (т.е. простое, понятное и с минимальным кол-вом действий)
Вообще не понимаю, зачем тебе тут тригонометрия. Конец линии движется по стороне квадрата. Это линейная зависимость. Каждая сторона это состояние стейт машины. По условию меняешь ее состояние и обновляешь координаты.
Нет, один свитч.
Уравнение отрезка (p, q) записывается как p + td, где t параметр из [0, 1], а d = q - p. Все отрезки твоего полигона можно собрать в сплайн r(u), где u из [0, 4]. Далее просто идёшь в цикле с шагом du и получаешь второй конец твоей линии как r(u + du). Угловая скорость вращения линии будет неравномерной, но ты этого не просил. Изи ёпта.
Мб стоит перевести координаты точек в полярную систему координат и в ней уже поворачивать линию и уменьшать/увеличивать её длинну в зависимости от угла. Или это тоже уже матан ненужный?
>полярную систему координат
И как ты из неё вернёшься в декартову систему координат без sin/cos?
Почему не шарп? Он сильно вдохновляется плюсами
Дело нехитрое (просто проходишь по сторонам квадрата с каким-то шагом и строишь линии), но если тебе нужны равномерные углы между соседними линиями, то без тригонометрии не обойтись. Можно подбирать переменный шаг бинарным поиском разве что.
тащемта можешь выбрать любой, главное:
отступы четыре пробела
скобочки с новой строки
const справа
пробелы вокруг ссылок/указателей
Нравится тебе читать скомканный код, читай...........
Нужна помощь в перекате одного проекта с 32 на 64
Сам я лютый нубяра в с++, не знаю даже где ещё спросить
В общем, нужен человек, кто может посмотреть и может помочь перекатить всё то безобразие
Естесно, платно
Тематика - плагин для скайрима с LE нужно перенести на новый AE
запости ссылочку на гитхаб
С такими расценками обещаешь вперёд сделать всю работу за час вне зависимости от масштабов и рисков?
Лексикографическое сравнение можно через std::tie сделать:
std::tie(lhs.x, lhs.y, lhs.z) < std::tie(rhs.x, rhs.y, rhs.z)
Спасибо
ТЗ есть? Если нет, то могу за 5к составить. Орентировочно часов 20 будет.
Стек это механизм процессора, куча это просто куча динамически выделяемой памяти.
Симпл димпл Стек маленький и быстрый, а попит куча большая и медленная. Ну и адреса разные, очевидно.
>Стек маленький и быстрый, а попит куча большая и медленная.
Как стек может быть быстрее, если он точно так же, как и куча, находится физически в ОЗУшке?
Нет фрагментации. Данные, которые туда уложены, наверняка скоро понадобятся. Например передаваемые в функцию аргументы или состояние регистров перед сменой контекста. Поэтому быстрый он потому что туда укладывают именно те данные, которые скоро будут употреблены.
Узкое место в моменте выделении и освобождении памяти. Положить данные в стек - сделать один push. А для куч сложные программные менеджеры памяти, которые изменяют размеры сегментов и делают много другой магии.
Даже без tie твой говнокод можно облагородить, если делать early return
Я кстати не понял. Если все компоненты векторов разные, то твой код выдаст результат, что меньше тот вектор, у которого значение x меньше? Вроде для исходной задачи на результат не повлияет, но выглядит ебаненько.
>для исходной задачи на результат не повлияет
Мне большего не надо, а оптимальней я не придумал.
а мне бы без этого, чисто по обучению, как и что курс, книга, лекции. В плане проблем и решений
ложь
лучше в /tes и /gd поспрашивай
> Напиши аудио-видео стриминг (клиент-сервер небольшой) на Qt + GStreamer, и можешь высылать мне резюме
В смысле стримминг? Как разговор по скайпу? Куда высылать?
Что это означает?
О, решил проблему, тупо удалив модуль Qt Debug Information Files.
Блин, вот так ставишь галочки при установке с надеждой, что \это что то крутое и полезное, а на тебя ушат говна выливают.
нужен ментор/репетитор со знанием буста, для помощи в проекте, оплата 2500р/ч.
@tosybosy
солвери не предлагать, там гомогеи какие-то
Предлагаю тебе разобраться во всём самому.
Ну и чё? За базар поясни
Месяц фуллтайма
несколько секунд, просто попроси оператора загрузить нужные знания
https://habr.com/ru/post/593803/
Мотивирующий код для тех, кто считает, что не умеет в кресты.
Даже не знаю, куда уже хуже
Разве на этот сайт не по инвайтам залетают?
Особо не заходил туда лет 7-8.
>для тех, кто считает, что не умеет в кресты.
Формошлёпаю на Qt за мелкий прайс в окологосконторе. Вроде и днищеработа, но с другой стороны, голову напрягать не надо.
эту статейку обязаны загнать в минуса
Статья о том, как изучить с++ за гаражами.
>За сколько конкретно?
~83-84к
>Насколько сложно?
Сами задачи обычно элементарные, а-ля "вот протокол обмена с железом по сетке, надо сделать прогу, которая будет коннектиться к железу, собирать с него данные, класть их бд, отображать в гуе, опционально расчёты-отчёты".
Но иногда руководство (верхнее конторское) проёбывается и приходится пытаться уложиться в неадекватные сроки. В обычной обстановке сам сроки примерно прикидываешь с запасом, да сидишь-пердишь-кодишь.
Я вообще больше 3 часов в день вдумчиво код не могу писать, тупо башка тупить начинает. Когда читаю истории про прохраммистов, работающих по 10-12 часов, неизменно охуеваю. Либо там какие-то сверхчеловеки, либо просто тонны говнокода высираются.
> Надо будет решить несколько задачек прямо на собесе, где от одной только формулировки охуеешь, как это вообще сделать, не говоря уж об эффективности. Ну а потом через некоторое время будет письмо "К сожалению, мы не готовы продолжить общение"
Дали две задачи, посчитать сумму диагоналей матрицы, её хоть как-то сделал, а вторую развернуть односвязный список. Без отладчика, без проверки, без подсказок, интервьюеру похуй было, пришёл часик отсидел и ушёл. Письмо на следующий день пришло.
Да не, нормально работается.
Твоя проблема, что ты сам себе и ТЗ и дизайн, и программист и тестировщик, и мейнтейнер и техпис. Сам так работал. Ещё и отвлекают всё время.
Но контора прошла по пизде и я ушёл в нормальную разработку. Хотя порой скучаю, было интересно ходить к конструкторам, плисоводам и разработчикам РЭА пообщаться за пределами своей области.
А потом вспоминаю нормоконтроль и вояк и отпускает.
>Твоя проблема, что ты сам себе и ТЗ и дизайн, и программист и тестировщик, и мейнтейнер и техпис.
Меня оно не напрягает, ведь с другой стороны, ни с кем ничего согласовывать не надо (по технической части), полный простор для творчества.
С другой, не у кого спросить как лучше архитектурно делать некоторые вещи, потому что в конторе никого более квалифицированного/опытного нету (как нетрудно догадаться из зряплаты).
Вроде иногда бывают мысли на что-то более денежное/умное попытаться устроиться, но это ж работать придётся, а не хуи пинать 2/3 времени.
Тьфу блядь. Изменяется при использовании семантики перемещения.
Вцелом так то мне эти ебанаты похуй, я ж не буду ползать на коленах чтоб на расте писали, так в жопу их, пошли все нахуй кто на с++ пишет.
Так то оно так, да частенько бывало "ТЗ согласовывается в процессе ПСИ". Да и просто странные заёбы, когда сами не знают чего хотят.
Уже придумали boost strong typedef
ебать ты шиз, пиздуй в раст-загончик, там таким долбоебам и место
Бля этот byte есть в куче библиотек, я недавно обосрался, обновив Qt. Все посыпалось к хуям из-за того, что один byte законфликтовал с другим.
Нет, было "а давайте всей командой выучим малопопулярный язык"
Сборщик мусора
Что не так?
Студент решил оформить отчёт для лабы постом на хабре.
Нужно распарсить OBJ модельку в 30к полигончиков
Чтобы не изобретать велосипед, взял библиотеку TinyObjLoader. А он там как раз STL юзает.
Так вот в релизе все быстро парсит - за наносекунды.
В дебаге - 10 минут реального времени и всё еще что-то делает. И это не у меня руки из жопы, эти десять минут оно сидит внутри tinyobj::LoadObj() из сторонней библиотеки.
Повторю - в релизе оно грузит мгновенно - то есть это и не проблема в TinyObjLoader
И как теперь быть - я хуй знаю:
- работать в релизе - ну пиздец дебажить в релиз сборке
- _ITERATOR_DEBUG_LEVEL/_HAS_ITERATOR_DEBUGGING/_SECURE_SCL на ноль - не сильно помогло
- еще видел совет, собирать такие библиотеки в релизе и подключать к своему коду релиз сборку - ведь я их дебажить не буду.... Только блядь это работает пока там нет STL. Специально проверил - все сишные либы так подключились.
А вот эта из-за STL нет - она ругается что разный рантайм (/MD и /MDd)... Хорошо, включаю релизный рантайм в дебаге своего проекта - хер там, вообще перестает компилироваться потому что каких-то важных функций нет (линкер ругается)
И вот как блядь ускорить STL в дебаге?
Посмотри в профайлере где основное время тратится для начала. Попробуй включить инлайнинг функций в дебаге, может поможет.
Да на STL и тратится
Ещё итератор правильно называть it, а не i, которым называют счётчик по инту.
Я так всегда пишу. Когда провожу интервью, снижаю оценку если кандидат так не пишет.
Разница есть, но не на интах, а на чем-то тяжелом
в i++ будет несколько лишних операций создания/копирования. в ++i же вернет сразу без лишних операций
Но возможно move магия в современном С++9999 уберет полностью эту разницу.
> Но возможно move магия в современном С++9999
Я кстати охуел от того, что это относительно недавно появилось в плюсах. Первый же вопрос "хули они там все до этого делали? В сфинае оборачивали абстракции и хотели плюсы в жаву превратить?"
10 лет назад изучал плюсы. Подумал, надо бы уже вкатиться в новый стандарт, решил посмотреть тред. А тут до сих пор эту хуйню обсуждают.
ты взял бесплатную либу нахаляву и обсираешь ее? жри что дают, ублюдок
или пиши свое (пару лет)
ты случайно не смешиваешь дебажные и релизные либы в одной виндовой приложухе?
> И вот как блядь ускорить STL в дебаге?
this
>_ITERATOR_DEBUG_LEVEL=0
С этой опцией нужно собрать и либу, и твой код
Я бы попробовал сперва на виртуалке.
Значит ты что-то не так делаешь. Или ты думал, что по скорости дебажная сборка будет одинакова с релизной?
> >valgrind
> Зачем эту хуйню использовать в 2022, если есть ASAN?
Зачем эти хуйни использовать в 2022, если есть языки со сборщиком мусора?
Штудия + дебажная сборка сама тебе найдет багули на тестах
Можно подумать в языках со сборщиком память не течет.
если няшный - то перекатывайся в вебкам, если нет - то на вахты на севера!!
Ну тогда попообую
в яндекс нет очереди, там бедные эйчарки написывают всем как могут, аутсорсят еще ХР агентствам.
Даже количество алгортимических секций снизили
Не путай с Яндекс.Такси
Экспэрты, почему в конструкторе без std::move не вызывается мув-operator=, не смотря на то что там 100% попадание в сигнатуру?
Примерно да. Подавался к ним будучи студентом раз 5 наверное, всегда приходил отказ. Даже до интервью ни разу не допустили, просто на этапе контеста отсеивают всех, оставляя ебучих олимпиадников.
Готовься к задачам на жадные алгоритмы, ДП, графы, деревья, обязательно выучи что такое минмакс куча и как с помощью нее решать задачи. В общем, контест будет как в яндексе, возможно даже сложнее.
В яндексе даже с двумя задачами из 5 меня позвали на интервью, где я не смог развернуть ебучий односвязный список, и меня самого развернули.
Вроде щяс начал решать, не такая душниловка как у ебучего яндекса, даже две задачи сделал уже, посмотрим чё будет
слыш пес, ты на c api не гони. FFmpeg, OpenAL, Vulkan, SQlite - и это только то чем пользовался лично я, а других настолько же замечательных сишных библиотек море.
Почему же они не написаны на вашем cpp-говне?ММ? Не слышу. Походу у либы для звуковой карты abi изменился
Потому что rval получает категорию lvalue, попадая внутрь функции (у него теперь есть имя и ты можешь взять его адрес). А ещё сходи подучи английский.
>Потому что rval получает категорию lvalue, попадая внутрь функции
Хм, спасибо. Вроде бы очевидно а я сидел и возмущался "ну вот же тип rvalue ссылка, написано же"
>А ещё сходи подучи английский.
Пошел нахер, мне этого говна с "пойди выучи" от мамки достаточно
>от мамки достаточно
Ну так ты же жопа ленивая. Если бы дочитал до std::forward, то не спрашивал бы, почему надо категорию у параметров восстанавливать.
>std::forward
В этом вашем c++ столько всего нужно знать. Я же не могу целыми днями читать фундаментальные толмуды а потом на десерт шерстить документацию. Плеер сам себя не напишет
про это литералли написано в той же статье, в которой написано про std::move
>Пошел нахер, мне этого говна с "пойди выучи" от мамки достаточно
Т.е. ты хочешь на ровном месте проебывать около штуки баксов в месяц? Ознакомься: https://dou.ua/forums/topic/31606/
идите впизду со своими деньгами. Мне больше (прожиточного минимума)*2.5 не нужно. Я просто не смогу столько тратить, а заниматься самой скучной в мире хуитой (учить язык людей) ради того что бы на счетах накапливалась какашечка я не буду. Причем ладно моя мать, она очевидно хочет что бы корзиночка стал 300к наносек и устроил ей пенсию в 40 лет. А вам то почему не похуй? ХОтите больше налогов моих блятбь? Буржуи сука , работай на дядю всю жизнь и умри пиздец!
Добавлю : вы же понимаете что рвете жопу и тратите свое бесценное время ради даларов которые США может просто напечатать? Это же буквально рабство
ну так напечатай, хули
ну
дохуя
никто не согласиться на твое предложение потому что будут думать что это троллинг
снизь цену на 1к рублей в день и крестовики потянуться
Douglas Schmidt ищи его ютуб.
Ещё гугли книгу шмидт Хьюстон программирование сетевых приложений на с++.
Хорошая книга по многопоточке и сетевому
Либаэта ещё живая и поддерживается. Я еесобирал, весьма годно.
>>231373
> Сколько примерно времени уйдет на освоение плюсов и Qt для трудоустройства, если уже есть опыт в кодинге на другом языке?
Джоша лоспинозо книгу найди почитай. Там все чётко с новыми либами.
>>231753
В с++ 17 есть такая штука
>>233429
> сап, плюсач. не знаю подходит ли под тред но для курса универа по плюсам просят либо через вм либо через дуалбут юзать линукс ради валгринда. кроме с++ нигде не планирую юзать линух поэтому стоит ли ебаться с вм или с дуалбутом?
На кати линух на флешку как вариант. Решение по цене двух пачек сижек.
Ну или виртуалка. Тоже изи мод.
>>234274
> Примерно да. Подавался к ним будучи студентом раз 5 наверное, всегда приходил отказ. Даже до интервью ни разу не допустили, просто на этапе контеста отсеивают всех, оставляя ебучих олимпиадников.
> Готовься к задачам на жадные алгоритмы, ДП, графы, деревья, обязательно выучи что такое минмакс куча и как с помощью нее решать задачи. В общем, контест будет как в яндексе, возможно даже сложнее.
А где к этому готовиться?
чувак, предложение не моё
>ну
>дохуя
у меня зп сейчас больше
>никто не согласиться на твое предложение потому что будут думать что это троллинг
это в любом случае троллинг, потому что на сосаче и в ржублях
>А где к этому готовиться?
Литкод, codeforces, haсkerrank и всякое такое. Это где решать задачки. Теорию из разных мест нужно искать, всякие талмуды вроде кормена не подойдут, так как там рассказано про алгоритмы в целом, а не про техники решения задач. На литкоде можно читать разборы, есть еще geeksforgeeks, еще рекомендовали educative.io и algoexpert (но они за деньги).
Нужно минимум 200 задач уровня медиум прорешать на литкоде, чтобы +- уверенно чувствовать себя на собесах. У кого-то год уходит на подготовку, у кого-то меньше. Но один хуй сейчас что в яндекс, что в тинькоф - нужно уметь решать нихуевые задачи на алгоритмы. Чего только одно динамическое программирование стоит.
>А где к этому готовиться?
Поступаешь в вузик и там тебя готовят. Любая шарага, где есть МехМат/ВМК, вполне сгодится. Можешь еще перед сном почитать Д. Кнут "Искусство программирования" и какую-нибудь книжку по дискретному анализу.
Да никто там нихуя не готовит. Ну расскажут тебе про структуру данных "Список" и "Очередь", заставят реализовать их в лабах. Какие-нибудь графы и деревья туда же. А решать какой-нибудь two sum тебя никто не научит.
Дискретный анализ это вообще про всякие формулки и теоремки, которые тебе никогда не пригодятся.
У меня есть класс родитель, у которого есть много классов детей.
Есть вектор который заполнен разными детьми.
Мне нужно перебрать этот вектор в цикле и делать разные штуки зависимо от того какой это класс. Например
for (Parent e : vec)
if (e is child#1)
do something
else if (e is child#2)
do something different
Чистой воды пиздёж. В ВУЗах тебя будут ебать по матану, теоретическому матлогу, основам статистики, дифурам и всякой абсолютно бесполезной хуйне, но никак не по алгоритмам. На первом курсе тебе 10-ой лабой поставят воспроизведение 3-х сортировок. 12 лабой будет бинарное дерево в двух реализациях (ссылки, массив), к этому дереву алгоритм обхода. Всё, блять.
Когда тебе надо делать то, что ты говоришь - это значит что твоя архитектура говно на выброс
может быть так и есть, в любом случае мне нужно с этим работать.
может я что-то не понимаю. вот по-конкрнетнее
У меня есть класс Token, у него есть дети: Operand, Function и тд.
Мне нужно сделать то что на пике
У нас на дискретке рассказывали LZW, RSA, CRC, поиски строк с хэшированием, поиски путей, конечные автоматы, цепи Маркова, генерации перестановок, диаграммы Вороного и ещё докучи всего полезного.
Это примерно 1-2 курс.
Есть тупой способ:
class Token
{
TokenType tokenType;
Operand ⚹operandData;
Function ⚹functionData;
Operand ⚹argumentSeparatorData;
};
И есть нормальный способ через паттерн Стратегия
class Token
{
virtual void doAction() = 0;
};
Везде по-разному. Чоты.
Надо кстати поднять конспекты, вспомнить, что мне сам Иванников на первом курсе читал по информатике. А то я про поисковые деревья узнал только через много лет после выпуска. Да и вообще структуры данных у нас как-то фигово давались. Зато вот как у этого анона >>235417 был подобный курс. Только он назывался "теория информации" и "защита информации".
У нас конечные автоматы были в курсе по компиляторам, генерации перестановок в курсе по комбинаторному анализу, а диаграммы Вороного, алгоритмы на строках и сжатие нам в принципе нигде не рассказывали.
https://pastebin.com/wpF6NzPp
реализация кринге конешн, куча херни + надо довесить констрейнты + хз как лямбды передавать, как минимум forwardить надо, зато юзать просто и вроде (с норм констрейнтами) удобный вызов предполагает соблюдение контрактов
где ты научился шаблонам и всем этим модным шаблонам проектирования? У меня например от последнего голова кипит и я ничего не понимаюю. Оно с опытом приходит или я тупой?
Я года 3 как плюсы юзал, и то ласт год начал ФП (Haskell и Agda) смотреть. Использовал только на пет-проектах (игровой движок уиии), ибо не работал никогда.
Но на плюсы я с шарпа переходил, там генерики - так что какая та база для понимания шаблонов была. Хз сколько я на шарпе сидел, думаю года 4 в школе.
Не считая фреймворков - учил не по туториалам, а пытался сделать свой пет, и когда нужно было сделать то, чего я не мог, - гуглил, переписывал, так и запомнилось.
В моем примере - концепты sfinae я, например, так и не юзал, частичная специализация шаблонов (is_specialization_v когда-то на стаковерфлов взял), parameter pack'и, шаблонные лямбды (буквально и гуглил сейчас, опять стак), forwarding. Не так много как мб кажется.
За эту выразительность и люблю плюсы.
Шаблоны проектирования я и не знаю.
Думаю да, с опытом приходит. На практике встречаются случаи, когда с шаблонами можно красиво все сделать - приходится их юзать, постепенно запоминается. И так со всем.
(имя_типа )(0х402056) = значение
где 0х402056 - условный адрес выделенный ОС который получилось как-то угадать
Клята разметка
UB не зависит от правильности адреса, оно зависит от того, что адрес ты взял хуй пойми откуда.
А как компьютер узнает откуда взят адрес?
int A = new [размер]
int A[2] = 5
или
(int)адрес совпавший с А[2] = 5
Псевдокод разве не одинаков?:
mov rax, 0xадрес
mov [rax+2sizeof(int)], 5
Как он поймет различие между адресом? Число не несет в себе никакой метаинформации
только стандарт не под конкретную архитектуру и в довесок у компилятора то, мета-информация есть, и руки развязаны хуйни намешать
Для процессора всё едино, UB существует только при компиляции.
Примеры для компилятора не одинаковы, из-за оптимизатора программа вообще может работать не так, как визуально выглядит её исходник.
> int A = new [размер]
В момент компиляции известно, что инициализация делается именно от операции new, а не от другого указателя или ещё откуда-то. И оптимизатор может внести соответствующие правки. Но он не может предвидеть, что алр5ес ты берёшь не через new или от другого указателя, а одному тебе ведомым способом.
Не забудь, что если тип без виртуальных функций, то RTTI не будет. И, т.к. хорошая практика иметь либо public virtual либо protected non-virtual деструктор, можешь добавить такой в Token.
std::optional?
Суть:
Хочу чтобы во всех файлах проекта все заголовочные файлы можно было увидеть, т.е. беру и пишу #include "Foo.h" в любом цппшнике и могу пользоваться на здоровье
Мое неудачное решение:
Использовать include_library(путь к папке с foo.h) в каждом подпроекте? Работает, но:
1. Если добавлю в условный foo.h какой нибудь oof.h лежащий в новой папке то все файлы проекта не будут его видеть, а следовательно для каждого подпроекта мне придется добавлять include_library с местоположением oof.h.
2. Если в голову придет идея взять целую папку с заголовками и перенести в другое место то опять же придется менять include_library для всех подпроектов в которых использовался хоть один заголовок из этой директории.
Хочется чтобы все заголовки лежали в глобальной области видимости для каждого подпроекта
Предполагаю решение:
В проекте создать папку include где будут лежать все заголовки. Тогда можно будет ссылаться на эту директорию из всех подпроектов и будет глобальная область видимости.
Но сколько не смотрел на другие проекты в гитхабе глобальная папка с инклудами не распространена в проектах >10 Мб кода и больше. Почему так?
И вообще где найти инфу по правильной организации больших проектов? Что-то вроде Совершенного Кода только на уровне не исходников а модулей и библиотек, как все это правильно запилить с минимальными зависимостями
>Хочу чтобы во всех файлах проекта все заголовочные файлы можно было увидеть, т.е. беру и пишу #include "Foo.h" в любом цппшнике и могу пользоваться на здоровье
Тебе заняться нечем?
конечно можно, не знаю что тебе тут выше насоветовали
один вообще UB пугать начал, пиздец тут квалификация у советующих я офигеваю
Хуйня, не делай так, оставь формат <mylib/foo/foo.h>, <mylib/foo/bar.h>. И неймспейсы не забудь.
Посмотри примеры крупных библиотек типа буста, они такой формат имеют.
Ну и в цмаке либу сделай либой, и к своим примерчикам и юнит-тестам уже не подключай через include_directory и как-то там еще, не помню
щто, сегодняшние modern крестоблядки уже uint к указателю разучились правильно приводить?
как я понимаю в этом проблема?
Есть ли какая-то профильная литература по этом?
Что не скачаю книжку/мануал то весь рефактроринг там идет на уровне методов, классов, переименования, группировании объектов в класс и прочему "высокоуровневому" рефакторингу.
Но нигде еще не видел инструкции по рефакторингу спагетти-кода, функций с плавающим входом, самомодифицирующегося кода, вычисляемых меток goto и прочего "низкоуровневого" рефакторинга. Отчасти это оправдано - такой код уже десятилетиями не пишут, но есть ли хоть какие-то материалы по этому?
Почти, легаси на ассемблере
Может, можно написать тест, описывающий все варианты выполнения искомого кода, а потом написать его с нуля под тест?
Ну или ПРОСТО разберись, что делает код на асме и перепиши на чём ты там пишешь.
Так и делаю. Я к чему задал вопрос - я хотел рефакторить вывод декомпилятора, но переписать это с дебагером пока более простая альтернатива. Буду искать инфу
не баньте
unsigned __int64 __fastcall sub_140018B98(LPSTR lpMultiByteStr, LPCWSTR lpWideCharStr, __int64 cbMultiByte, __m128i a4)
{
unsigned __int64 v4; // rsi
LPCWSTR v5; // r14
CHAR v6; // r15
signed __int64 v7; // rbx
WCHAR v9; // ax
_DWORD v10; // rax
_WORD v11; // rax
unsigned __int64 v12; // rdx
int v13; // eax
int v14; // eax
unsigned __int64 v15; // rdi
int v16; // eax
int v17; // eax
__int64 v18; // rdx
__int64 v19; // rcx
CHAR v20; // al
WCHAR v21; // ax
int v22; // eax
BOOL UsedDefaultChar; // [rsp+40h] [rbp-40h]
__int64 v24; // [rsp+48h] [rbp-38h]
__int64 v25; // [rsp+50h] [rbp-30h]
char v26; // [rsp+60h] [rbp-20h]
CHAR MultiByteStr[8]; // [rsp+68h] [rbp-18h]
v4 = cbMultiByte;
UsedDefaultChar = 0;
v5 = lpWideCharStr;
v6 = lpMultiByteStr;
v7 = 0i64;
if ( lpMultiByteStr && !cbMultiByte )
return 0i64;
if ( !lpWideCharStr )
{
(_DWORD )sub_1400099BC() = 22;
sub_14000986C();
return -1i64;
}
sub_1400099DC((__int64)&v24, a4);
if ( v6 )
{
if ( !(_QWORD )(v25 + 312) )
{
if ( v4 )
{
while ( v5 <= 0xFFu )
{
v6[v7] = (_BYTE )v5;
v9 = v5;
++v5;
if ( v9 )
{
if ( ++v7 < v4 )
continue;
}
goto LABEL_56;
}
LABEL_13:
v10 = sub_1400099BC();
v7 = -1i64;
LABEL_55:
v10 = 42;
}
LABEL_56:
v15 = v7;
goto LABEL_57;
}
if ( (_DWORD )(v25 + 8) == 1 )
{
if ( v4 )
{
v11 = v5;
v12 = v4;
do
{
if ( !v11 )
break;
++v11;
--v12;
}
while ( v12 );
if ( v12 && !v11 )
LODWORD(v4) = (unsigned __int64)(v11 - v5) + 1;
}
v13 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, v4, v6, v4, 0i64, &UsedDefaultChar);
if ( v13 && !UsedDefaultChar )
{
v7 = v13 - 1i64;
if ( v6[v13 - 1] )
v7 = v13;
goto LABEL_56;
}
goto LABEL_13;
}
v7 = -1i64;
v14 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, -1, v6, v4, 0i64, &UsedDefaultChar);
v15 = v14;
if ( v14 )
{
if ( !UsedDefaultChar )
{
v7 = v14 - 1i64;
goto LABEL_56;
}
LABEL_54:
v10 = sub_1400099BC();
goto LABEL_55;
}
if ( UsedDefaultChar || GetLastError() != 122 )
goto LABEL_54;
if ( v4 )
{
do
{
v16 = (_DWORD )(v25 + 8);
if ( v16 > 5 )
v16 = 5;
v17 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, 1, MultiByteStr, v16, 0i64, &UsedDefaultChar);
if ( !v17 )
goto LABEL_54;
if ( UsedDefaultChar )
goto LABEL_54;
if ( v17 < 0 )
goto LABEL_54;
v18 = v17;
if ( (unsigned __int64)v17 > 5 )
goto LABEL_54;
if ( v17 + v15 > v4 )
break;
v19 = 0i64;
if ( v17 > 0i64 )
{
do
{
v20 = MultiByteStr[v19];
v6[v15] = v20;
if ( !v20 )
goto LABEL_57;
++v19;
++v15;
}
while ( v19 < v18 );
}
++v5;
}
while ( v15 < v4 );
}
}
else
{
if ( !(_QWORD )(v25 + 312) )
{
v21 = v5;
v15 = 0i64;
if ( v5 )
{
while ( v21 <= 0xFFu )
{
++v5;
++v15;
v21 = v5;
if ( !v5 )
goto LABEL_57;
}
v15 = -1i64;
(_DWORD )sub_1400099BC() = 42;
}
goto LABEL_57;
}
v7 = -1i64;
v22 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, -1, 0i64, 0, 0i64, &UsedDefaultChar);
if ( !v22 || UsedDefaultChar )
goto LABEL_54;
v15 = v22 - 1i64;
}
LABEL_57:
if ( v26 )
(_DWORD *)(v24 + 936) &= 0xFFFFFFFD;
return v15;
}
не баньте
unsigned __int64 __fastcall sub_140018B98(LPSTR lpMultiByteStr, LPCWSTR lpWideCharStr, __int64 cbMultiByte, __m128i a4)
{
unsigned __int64 v4; // rsi
LPCWSTR v5; // r14
CHAR v6; // r15
signed __int64 v7; // rbx
WCHAR v9; // ax
_DWORD v10; // rax
_WORD v11; // rax
unsigned __int64 v12; // rdx
int v13; // eax
int v14; // eax
unsigned __int64 v15; // rdi
int v16; // eax
int v17; // eax
__int64 v18; // rdx
__int64 v19; // rcx
CHAR v20; // al
WCHAR v21; // ax
int v22; // eax
BOOL UsedDefaultChar; // [rsp+40h] [rbp-40h]
__int64 v24; // [rsp+48h] [rbp-38h]
__int64 v25; // [rsp+50h] [rbp-30h]
char v26; // [rsp+60h] [rbp-20h]
CHAR MultiByteStr[8]; // [rsp+68h] [rbp-18h]
v4 = cbMultiByte;
UsedDefaultChar = 0;
v5 = lpWideCharStr;
v6 = lpMultiByteStr;
v7 = 0i64;
if ( lpMultiByteStr && !cbMultiByte )
return 0i64;
if ( !lpWideCharStr )
{
(_DWORD )sub_1400099BC() = 22;
sub_14000986C();
return -1i64;
}
sub_1400099DC((__int64)&v24, a4);
if ( v6 )
{
if ( !(_QWORD )(v25 + 312) )
{
if ( v4 )
{
while ( v5 <= 0xFFu )
{
v6[v7] = (_BYTE )v5;
v9 = v5;
++v5;
if ( v9 )
{
if ( ++v7 < v4 )
continue;
}
goto LABEL_56;
}
LABEL_13:
v10 = sub_1400099BC();
v7 = -1i64;
LABEL_55:
v10 = 42;
}
LABEL_56:
v15 = v7;
goto LABEL_57;
}
if ( (_DWORD )(v25 + 8) == 1 )
{
if ( v4 )
{
v11 = v5;
v12 = v4;
do
{
if ( !v11 )
break;
++v11;
--v12;
}
while ( v12 );
if ( v12 && !v11 )
LODWORD(v4) = (unsigned __int64)(v11 - v5) + 1;
}
v13 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, v4, v6, v4, 0i64, &UsedDefaultChar);
if ( v13 && !UsedDefaultChar )
{
v7 = v13 - 1i64;
if ( v6[v13 - 1] )
v7 = v13;
goto LABEL_56;
}
goto LABEL_13;
}
v7 = -1i64;
v14 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, -1, v6, v4, 0i64, &UsedDefaultChar);
v15 = v14;
if ( v14 )
{
if ( !UsedDefaultChar )
{
v7 = v14 - 1i64;
goto LABEL_56;
}
LABEL_54:
v10 = sub_1400099BC();
goto LABEL_55;
}
if ( UsedDefaultChar || GetLastError() != 122 )
goto LABEL_54;
if ( v4 )
{
do
{
v16 = (_DWORD )(v25 + 8);
if ( v16 > 5 )
v16 = 5;
v17 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, 1, MultiByteStr, v16, 0i64, &UsedDefaultChar);
if ( !v17 )
goto LABEL_54;
if ( UsedDefaultChar )
goto LABEL_54;
if ( v17 < 0 )
goto LABEL_54;
v18 = v17;
if ( (unsigned __int64)v17 > 5 )
goto LABEL_54;
if ( v17 + v15 > v4 )
break;
v19 = 0i64;
if ( v17 > 0i64 )
{
do
{
v20 = MultiByteStr[v19];
v6[v15] = v20;
if ( !v20 )
goto LABEL_57;
++v19;
++v15;
}
while ( v19 < v18 );
}
++v5;
}
while ( v15 < v4 );
}
}
else
{
if ( !(_QWORD )(v25 + 312) )
{
v21 = v5;
v15 = 0i64;
if ( v5 )
{
while ( v21 <= 0xFFu )
{
++v5;
++v15;
v21 = v5;
if ( !v5 )
goto LABEL_57;
}
v15 = -1i64;
(_DWORD )sub_1400099BC() = 42;
}
goto LABEL_57;
}
v7 = -1i64;
v22 = WideCharToMultiByte((_DWORD )(v25 + 12), 0, v5, -1, 0i64, 0, 0i64, &UsedDefaultChar);
if ( !v22 || UsedDefaultChar )
goto LABEL_54;
v15 = v22 - 1i64;
}
LABEL_57:
if ( v26 )
(_DWORD *)(v24 + 936) &= 0xFFFFFFFD;
return v15;
}
Пидора ответ.
Вангую, что после ПРОСТО разобраться, ему придётся ЛЕГКО и НЕПРИНУЖДЁННО написать то же самое без потери в скорости/надёжности/функциональности.
Бан за пробой разметки
Вангую, импорт какой-нибудь хуйни, высраной железкой, собраной в НИИ залупно-аграрного искусства.
Короче на сколько законно вызывать виртуальный метод в виртуальном деструкторе?
Нашёл. Короче хуй мне а не виртуальные методы в виртуальном деструкторе.
В бусте есть длинная арифметика.
>раньше
Во времена доса, 9й макоси и прочих no-mmu процессоров
И кстати сейчас тоже существуют no-mmu микроконтроллеры
Сап /cpp/ . Можете посоветовать интернет ресурсы где я могу изучать криптографию? Желательно с примерами на C/C++
Отличай криптографию и программирование.
Криптография это поля Галуа, кольца вычетов, сети Фейстеля и куча прочей дискретной математической залупы. Когда ты все это изучишь, тебе плюсы нахрен не всрутся (как и тянки, свежая смена белья и парикмахер). Можешь поискать методичку от кафедры теории информации мфти и почитать статьи на википедии, которые студенты мфти и пишут в качестве одного из пунктов курсовых работ.
Что до плюсов - ну лично я считаю, что тут лучше мухи отдельно, котлеты отдельно. Учи отдельно криптографию, отдельно плюсы.
Алгебра включает в себя описание почти всей математики. Ты можешь изучать кольца вычетов или алгебры полиномов, но даже не задумываться об их описании с помощью теории групп. Это для бОльших выебонов нужно разве что. Для понимания работы алгоритмов нужно просто понимать принципы, на которых они основаны.
Лагающее неудобное говно с кучей неудачных решений. Перекатывайся на c#
Твой перекат закончится после сборки одного проекта
"Найти минимальный элемент среди максимальных элементов строк двумерного массива чисел размера M×N. Определить номер строки и столбца такого элемента."
Буду благодарен любому ответу.
практическая криптография - это еще и построение PKI
даже в конце нулевых эта ниша еще была не совсем занята в россии, системы не были написаны, сегодня возможно уже все и понаписали, не знаю перестал следить
таким образом была работа для средних с++ программистов в этой сфере
получалось вроде и криптуху пишешь, но задачи при этом обычные программиские стоят при этом
чем то это напоминало построение инфраструктуры вокруг хардварной и софтварной виртуализации, сама инфраструктура не требовала каких то особых знаний собственно технологий виртуализации, а было много обычных программиских заданий, щас то уже правдо все понаписали и кодеры там не особо нужны, только саппорт остался
пишется нужный софт, он работает, все, ниша закрыта
программисты идут нахуй ибо не нужны становяться
оставляют пару человек на саппорт и все
> минимальный элемент среди максимальных элементов строк
> пик
Твоя задача не имеет ничего общего с программированием, если ты действительно хочешь когда либо им стать, бросай свою шарагу и развивайся самостоятельно
> бросай свою шарагу и развивайся самостоятельно
РОТА ПОДъЕМ
ВСТАВАЙ НА РОБОТУ ГОВНО ЧИСТИТЬ
ВОТ ВИЛКА ЧИСТИ ЧИСТИ ВОТ КАК НУЖНО БЛЯТЬ ЧИСТИТЬ
ГОВНО БЛЯТЬ НИЧЕГО МОЖЕТ НИЧЕГО НИЧЕГО НЕ ЗНАЕТ И ЭТО ОФИЦЕРЫ
РОТА ПОДЪЕМ
ВОТ КРАСКА ВОТ ВИЛКА ПОШЕЛ НА РОБОТУ БЛЯТЬ ПОШОЛ
ты матрицу на стеке создаешь? Если я не ошибаюсь размер стека зависит от операционной системы. Лучше работай с динамической памятью( malloc ,free)
Спасибо, попробую
Подскажите плз:
В школе с большим кайфом изучал паскаль, и в PascalABC элементарнейшим образом можно создать окно, красить в нем пиксели в разные цвета и всё такое.
под впечатлением спустя десять лет захотел полностью разобраться в 3d графике, как она работает и попробовать самому написать все алгоритмы отрисовки пикселя на экране. начал изучать c++. без звезд с неба, элементарные алгоритмы в консоли делать научился самое сложное это аналог экселя в терминале. думаю ну всё, пора приступать к реализации детской мечты и...
это анриал. почитав книжку этого вашего страуструпа в разделе графические примитивы он просто #include Graph.h и дальше так же как в дестве, точки, линии, всё так просто их легко (пик). а на деле VS 2022 нихуя не знает ни о каких Graph.h, почитав в интернете я понял что это всё ад и израль. либо ковыряние в winapi, либо уже готовая библиотека которая при вызове одной функции все операции с вершинами сделает.
так вот вопрос - неужели в этом языке нету простой библиотеки которая без непонятного геммороя просто создаст мне окно и покрасит пиксель (100,100) в черный цвет? ни в 1000 строк кода ни в 1000 #include а просто - создал окно, покрасил пиксель. а дальше я уже буду сам придумывать как мне что с этими возможностями делать.
пик кстати "бьярне страуструп. программирование: принципы и практика с использованием C++"
>так вот вопрос - неужели в этом языке нету простой библиотеки которая без непонятного геммороя просто создаст мне окно и покрасит пиксель (100,100) в черный цвет? ни в 1000 строк кода ни в 1000 #include а просто - создал окно, покрасил пиксель. а дальше я уже буду сам придумывать как мне что с этими возможностями делать.
>
sfml
> самому написать все алгоритмы отрисовки пикселя на экране
> неужели в этом языке нету простой библиотеки
OpenGL
> под впечатлением спустя десять лет захотел полностью разобраться в 3d графике, как она работает и попробовать самому написать все алгоритмы отрисовки пикселя на экране
Лол, мой первый более-менее сложный проект на плюсах - отрисовка трехмерной графики. Дошел до вращающейся сцены, состоящей из куба и плоской сетки. А потом забил. Матричную и векторную арифметику сам писал, как и вывод проективного преобразования выводил интуитивно. Сами линии и точки рисовал через WinAPI. А ещё дело было в 10 классе в 2005 году. И интернет был по талонам раз в месяц.
Пиздец вы тут обленились - в интрернете не можете найти, как отрезок нарисовать.
есть api directx, opengl и vulkan
поверх их сотни игровых движков, движков для профессиональной 2D и 3D графики, мультимедийных движков, в том числе и бесплатных либо условно-бесплатных
выбирай что тебе нравиться и используй
GDI+
А кстати во времена борланд С++быдлер было же что-то вроде дельфиподобного формошлепства. Небось и пиксели рисовать можно было.
Сейчас для этого конечно надо пердолить какой-нибудь sdl.
Охуенен был Delphi. А то, что на пике, такая же хуета как и зоопарк уродцев для .Net (Managed C++, VB.Net, Visual J#... )
Самое простое это glut.
https://github.com/markkilgard/glut/blob/master/progs/examples/simple.c
Программа рисует треугольник.
Можно начинать с рисования точек, а потом уже педалить трёхмерную графику с вершинными буферами и шейдерами.
Не слушай долбоёбов, возьми сразу Qt
Доброе утро, ананасы, нужна ваша помощь. Нужно написать программу, которая будет восстанавливать файлы с двд диска, который повреждён. Если файл целый, то просто его скопировать, если файл повреждён, то скопировать байты до повреждения + байты после и пометить файл "bad". Писать всё это надо на qt.
Моих знаний не хватает настолько, что не могу представить, как это в принципе реализовать. Я так понимаю, надо каким-то образом считывать информацию с диска, потом в соответствии с особенностями файловой системы восстанавливать возможные таблицы с информацией о файлах (пока не смотрел, как именно устроена UDF) и только потом, зная адреса файлов, пытаться считать информацию, соответствующую этим файлам? А что, если будет повреждена и служебная информация этой файловой системы? Или может я слишком глубоко копнул и есть какие-то средства это реализовать попроще?
Если использовать метод бисекции/метод половинного деления для нахождения корня, правильно же, что он его никогда не найдет? Все же помнят, как он работает, берутся точки (point1, point 3), затем делится пополам (point 2), умножаем значения функций на концах отрезков и сравниваем результат умножения с нулём, если знак меньше нуля, то область в которой ищем корень сдвигается влево, в обратном случае сдвигаем область вправо.
Какой метод лучше подойдет для нахождения корня в таких функциях? Что почитать по этой теме?
На этом графике формально любая точка горизонтальной линии является корнем. А найти определенный корень, а не первый попавшийся это уже другая задача.
Тут уже правильно сказали про горизонтальную линию. Я просто дополню. Может, тебя это тоже наведет на определенные мысли. В вычислительной математике любые расчеты выполняются с какой-то точностью эпсилон. Она и внедряется в правило останова интеративного алгоритма в таком вот виде: когда разница между приблизительными значениями корня на предыдущей интеграции и значениями корня на текущей итерации отличаются меньше, чем на эпсилон, то пора останавливаться.
В твоём случае если бы нужно было решить задачу f(x)=0.01, то это бы сводилось к задаче threshold detection. Там можно было бы протабулировать функцию с шагом порядка эпсилон и найти индексы, между которыми функция принимает значение 0.01, а потом интерполировать ее линией на этом отрезке и выдать значение точки пересечения.
Но в случае бесконечного числа корней даже математические пакеты тебя нахрен пошлют.
Вообще лучше от тебя ещё контекст задачи услышать. Может, ты ищешь корень на каком-то отрезке и тебе большая часть графика не нужна? Или у тебя там ещё шум есть какой?
Какой стандарт сейчас самый стабильный, 17? Хороши ли книги создателя языка при условии, что есть бэкграунд в других ЯП?
а "2e10" корректно?
Стабильнее 98 ты ничего не найдёшь.
Это большая тема. Если еще и учитывать RVO и copy elision разобраться как оно работает довольно тяжело
Забыл уточнить. Меня интересует отличие на уровне машины. Я понимаю, что у объекта может просто не быть копирующего конструктора, оператора = и тд.
То есть move это то же самое, что и каждому примитивному полю одного присвоить соответствующее ему поле из другого объекта?
Это а) указание компилятору, что нужно вызвать move-конструктор/оператор присваивания и б) подсказка компилятору, что тут можно сгенерировать более оптимальный код.
move кастит аргумент к rvalue, т.е. на ур "машины" ничего не происходит. С другой стороны, там где этот move используется, например x = std::move(y) компилятор будет искать перегрузку operator= для аргумента-rvalue и если есть специально =(T&&) - выберет его. Так же и с конструктором.
В том, что это вызов 2 разных функций: T::operator=(const T& ) и T::operator=(T&&). В первом случае b остаётся без изменений и с ним можно дальше работать, а во втором случае b становится невалидным (не обязательно, но обычно реализация подразумевает, что его данные переносятся в a, а вместо них остаётся мусор). При этом перенос данных из b в a дешевле, чем глубокое копирование.
Что же касается move, то объект b имеет категорию l-value (то есть может стоять слева от =, имеет имя и от него можно взять адрес). Так как он l-value, то компилятор для него по умолчанию должен вызвать operator=(const T&) (в исполняемый код подставит адрес этого метода). Чтобы сказать компилятору, что объект b нам не нужен и мы хотим его перенести в a, а не скопировать, то нужно сменить его категорию на rvalue, вызвав move (компилятор при этом смотрит, есть ли метод operator=(T&&), и если да, то подставляет его).
На деле есть масса нюансов, но в целом как-то так.
Почему не 9?
int будет выровнен если х выровнен, те весь инстанс структуры; если подряд идёт 2 инстанса то без паддинга а конце второй будет не выровнен.
Buzz a[2]; Посмотри, что будет со вторым Buzz, если размер структуры будет девять. Протип: поедет выравнивание у a[1].i
Допустим я пишу find_package(glfw3 REQUIRED)
У меня в системе нет ни glfw3 ни FindGLFW3 скрипта нигде
Почему cmake тупо молча продолжает конфигурировать и НИГДЕ не указывает что нет скрипта поиска?
Есть вообще в C++ нормальные системы сборки?
> Есть вообще в C++ нормальные системы сборки?
Ты не поверишь - но MSBuild просто работает без хуйни.
Какое счастье, конечно, что вся разработка в конторе под винду.
ну а вообще алиасинг зависит от того с какими настройками компилиться этот конкретный объектный файл
так чтож надо уточнять
по одному коду мы тебе ничего не можем сказать какие паддинги будут
а кто будет объяснять тот сам дурак
ля, челик, это слишком сложный вопрос и глупо выяснять это читая ответы на форумах в интернетах, так ты не получишь комплексного понимания
читай книги епт, хотя бы майерса последнюю книжку
да щас крестовое компилестроение работает как отлаженые часы, так чтож ты можешь не волноваться что там в какой-нибудь новой версии какого-нибудь компилятора что нибудь очень сильно налажают либо с реализацией самого языка либо с реализацией стандартных библиотек, все оче надежно как правило
можешь прямо брать последние релизные версии шланга, gcc, майкрософтовского компилера, интелловского и юзать для создания коммерческого софта
у них как правило огромные регрессионные тесты все проверяют десять раз
В msvc 20 стандарт подкинул говна в mfc и atl из-за новых правил генерирования операторов сравнения вроде как
> Эпсилон для флоата
Эпсилон в вычислительных задачах считается не для флоата, а для поставленных условий. В любой системе шумы будут больше, чем самое теоретическое поганое разрешение флоата.
Да почему легаси? Нормальный проект, свежий, на Вижуал студию 2022 скоро переезжать с 19ой будем
Всм? если return std::move(..) делать? А есть сценарии когда хочется возвратить T&& (из обычн функции, не move/forward)?
Не не, там дело в дискретности флота и больших промежутках на больших значениях. То есть сравнивая на порядке 1e+1 один эпсилон, а для 1e+30 совсем другой
Ага. По второму вопросу так стразу не скажу, разве что функция член квалифицирована как && (ref qualifiers)
>если return std::move(..) делать? А есть сценарии когда хочется возвратить T&&
дак не надо делать, за это по рукам
Есть
>byte ip_a = 192;
>byte ip_b = 168;
>byte ip_c = 0;
>byte ip_d = 1;
И есть фнукция
>setServer(const char * domain)
Как мне вызвать setServer("192.168.0.1") используя 4 штуки byte?
Я тебя понял. Плотность флоатов неравномерная. Но я про другой эпсилон. Если твою физическую систему колбасит, то не нужно определять ее параметры с точностью до 1е-30. Нужно оценить отношение сигнал-шум и исходя из него решать задачу.
У меня идея.
char ip[7];
ip[0] = ip_a;
ip[1] = ".";
ip[2] = ip_b;
ip[3] = ".";
ip[4] = ip_c;
ip[5] = ".";
ip[6] = ip_d;
Взлетит?
Справедливо, но и про неравномерность и прочие нюансы ieee 754 надо не забывать.
std::string ip_str = std::to_string(ip_a) + '.' + std::to_string(ip_b) + '.' ...
setServer(ip_str.c_str());
Что-то ты пиздишь. Если с REQUIRED конфигурация прошла, то скрипт есть и библиотека найдена если ты своими ручонками не влез в настройки find_package. Полный лог какой?
Вроде, в старых смаке required ничего не гарантировал, и приходилось писать дрисню типа:
find_package(hui REQUIRED)
if(NOT HUI_FOUND)
message(...)
return()
endif()
CMake 3.0 вышел семь с половиной лет назад, и там уже был FATAL_ERROR
https://cmake.org/cmake/help/v3.0/command/find_package.html
Посмотри, нет ли аналога inet_pton
Спасибо
это изящно
на картинках все объяснено достаточно просто а главное с примерами. Откуда ты ее взял?
майерс что ли?
>Если с REQUIRED конфигурация прошла, то скрипт есть и библиотека найдена
Честное слово, на библиотеках у которых есть скрипт поиска все работает как надо. Если скрипта поиска впринципе нет то молча конфигурирует и идёт дальше.
Скину логи чуть позже
Да понятно дело что объяснено, но все равно пиздец же
Синтаксис же один и тот же, это буквально выглядит одинаково, то есть смотря какой то кусок кода, ты можешь легко перепутать что он делает
Да и как они вобще это сделали, темплейты же должны достаточно тупо код генерить постановками, но оказывается они вот такую магию ещё делают
да и выглядит тупо, аргумент который выглядит как рвэлью матчит всё подряд
https://youtu.be/Bt3zcJZIalk
Вся суть в свертке ссылок:
X&&& -> X&
X&&&& -> X&&
Конструкция "T&& x" может представлять любой тип ссылок:
Если x ссылка, то T выведется в X&
Если x r-value ссылка, то T выведется в X&&
Поэтому она универсальная
Я накосячил с примером, читай лучше классика https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers
2. Почему доступ к переменным со стека быстрее, чем с кучи, ведь они физически хранятся в оперативной памяти? Могу предположить, что адрес стека хранится в регистре, а адрес переменной из кучи в оперативной памяти. Или стек всегда кэшируется процессором.
3. Какие файлы сам сядешь, а на какие мать посадишь отправить на гитхаб, а какие в гитигнор, чтобы другой пользователь студии мог скачать мой проект и запустить его? Если у меня студия 2022, могут ли быть проблемы с ранними версиями?
>1
Какая разница? Ну назвали и назвали
>2
Память стека быстрее потому что не ее не нужно запрашивать у оси. Ты получаешь ее при старте программы. В общем случае память со стека точно так же лежит в озу, кэш не резиновый
я не экспэрт, если у вас есть дополнения - прошу
> Память стека быстрее потому что не ее не нужно запрашивать у оси.
Но когда запросил уже и используешь, разницы быть не должно?
Еще раз. Взять память у оси это дорогая операция. Память стека выделяется при запуске а значит во время выполнения не тратится время на дорогой malloc. Сам доступ по скорости чисто теоретически одинаковый.
>Почему доступ к переменным со стека быстрее, чем с кучи
за счет пространственной локализации (стек в одном месте оперативы будет физически)
за счет последовательного обращения (это уже компилятор разруливает если речь идет о стеке что в языке, а не о стеках операционной системы)
подозреваю что цп пофиг стек там или не стек, ему не важно (хотя могу и ошибаться, да скорей всего ошибаюсь)
просто цп пытаеться подключить свои способы оптимизации, одним из которых являеться предвыборка данныъ, а так как стек локализован в пространстве памяти, то и эта предвыборка оказывается удачной
>стек в одном месте оперативы будет физически
От этого прироста скорости не будет потому что структуры данных выделеные на куче все равно нарантировано имеют последовательное пространство.
Т.е std::string, std::vector и прочие heap-базированые дают издержки(оверхед) только при уничтожении и создании. Хотя не знаю, вполне возможно есть оптимизации для стека которые ломают теорию
>за счет последовательного обращения (это уже компилятор разруливает если речь идет о стеке что в языке, а не о стеках операционной системы)
Не понял что ты имеешь в виду. Объясни
>>243842
На самом деле он тебе хуйни насоветовал(если не понимаешь почему зайди на какой-нибудь популярный github-репозиторий и посмотри как оно там). Впрочем пока ты начинающий это не очень важно, особо не заморачивайся
> за счет пространственной локализации
Но ведь страничная адресация память. Или ос ищет под сегмент стека такой кусочек оперативы, где физически адреса друг за другом?
> это уже компилятор разруливает если речь идет о стеке что в языке
Речь идет о стеке, что сегмент памяти процесса. Насколько я знаю в с/c++ под стеком подразумевается то же самое.
> На самом деле он тебе хуйни насоветовал(если не понимаешь почему зайди на какой-нибудь популярный github-репозиторий и посмотри как оно там). Впрочем пока ты начинающий это не очень важно, особо не заморачивайся
Ну-ка, мне расскажи, почему это хуйня. У меня в проде +- такой гитигнор уже 4 года. И это прод компании, к которой средний двощер максимум с эйчарами поговорит.
>прод компании
Ну в проприетарной разработке и не такое творится. Опять же если не понятно посмотри как выглядят популярные опенсурс проекты над которыми работают тысячи людей. Это тебе не 10-20 калек на зарплате, которым похуй что проект засран файлами от сраных ide(даже не кросплатфоремнных в 2021, пиздец). Им лиш бы барин платил а на искусство программирования и организацию файлов по феншую тупо по хую
Ок, как скажешь, успешный РАБотник из высокого стеклянного офиса принадлежащего успешной копрорации . Продолжай убеждать себя в том что пластмассовый мир на самом деле сделан из шоколада
Так как тоже считаю включение всяких *.sln плохой идеей, когда пытался залить свою либу утилит на гит -- попытался запилить CMake. И как же это суко сложно, сделать чтобы find_package работал со своей либой, еще и уебищный синтаксис и 100 способов сделать одно и то же и все хуйня... Мб есть что-то, что может генерировать CMake и использовать внешние cmake-либы, но само попроще? Вроде тут про MSBuild кто-то писал, но чет как-то хз..
еще один артист. Нихуя не знаю, нихуя не умею - .sln заливать для студийного проекта плохая идея
>попытался запилить CMake. И как же это суко сложно,
Есть такое , сам долго морочился. А если делать то что реально должно работать везде и даже на андроиде это пиздец.
А сейчас ты читаешь вопрос на который я отвечал "3. Какие файлы сам сядешь, а на какие мать посадишь отправить на гитхаб, а какие в гитигнор, чтобы другой пользователь студии мог скачать мой проект и запустить его? Если у меня студия 2022, могут ли быть проблемы с ранними версиями?"
Специально для тупых красноглазиков выделил нужное
А это >>244114 ты зачем написал?
>еще один артист. Нихуя не знаю, нихуя не умею - .sln заливать для студийного проекта плохая идея
Я не тебе писал изначально, а челику, который
> Опять же если не понятно посмотри как выглядят популярные опенсурс проекты над которыми работают тысячи людей.
как я понял писал про более общий подход, а не максимально тупой-простой ответ на вопрос
И я вопрос задал, а не отвечал >>244255
>"3. Какие файлы сам сядешь, а на какие мать посадишь отправить на гитхаб, а какие в гитигнор, чтобы другой пользователь студии мог скачать мой проект и запустить его? Если у меня студия 2022, могут ли быть проблемы с ранними версиями?"
на это
и да, можно убрать гитигнор совсем и еще больше шанс запустить этот проект у другого чела будет, но ты про это не написал почему-то
Скомпилированный - всмысле, с кучей артефактов компиляции
лол, гений
бля ты не понимаешь
у тебя доступ к стеку оптимизирует компилятор на этапе компиляции, там сразу будет последовательный доступ, стек влезет в одну адресную страничку, часть стека пойдет в кеши, плюс предвыборка в цп и все такое
а по куче будет мотать туда-сюда
потом бля если кучи не хватит ее надо расширять просить память у ос, а это переключение контекста на кернел, а это вообще пиздец, кучу работы надо будет провернуть, поэтому дорого
А в каком месте я не прав? Ну хорошо, для стековой памяти есть оптимизациию. Я вроде бы не отрицал
так и есть
Клиент - программа, запускаемая из консоли.
Сервер - демон, корректно завершающийся по сигналам SIGTERM и SIGHUP.
Клиент должен передать содержимое текстового файла через TCP.
Сервер должен принять и сохранить в файл.
Что почитать по этой теме? Какие книги по созданию tcp сервера на c++, да и просто про tcp?
Пробовал спросить у гугла?
Слегка туповат, не серчай
Беру свои слова обратно, книга обозревает последние новинки. Хотя не хватает глубины. Например почему клиент не использует вызов bind(), а сервер использует.
Просвятите.
Почему на C пишут для железа чаще чем на C++?
Репозиторий ReactOS на гитхабе написан почти весь на C.
Так удобнее или есть другие причины?
Что в 2022 актуально делать на C?
для микроконтроллеров и подобного имеет значение размер бинарника
> Почему на C пишут для железа чаще чем на C++?
Так заведено. Но вообще - эмбед на С++ тоже есть, и все с ним хорошо.
> Что в 2022 актуально делать на C?
Биндинги для других языков. Всё.
>Почему на C пишут для железа чаще чем на C++?
зачастую потому что под железку нет хорошего с++ компилятора, ну или вообще нет с++ компилятора
Ещё бывает, что с++ компилятор есть, но он на 1-2 стандарта отстаёт от мейнстрима. Или тулчейн ограничивает стандарт компилятора. В итоге пориджевый код на с++20 не портируется за пределы Ubuntu/Windows. Причём это касается даже железок типа Arduino/Jetson/Raspberry.
Предположим, что у меня уже есть кое-какие познания о джаве (на уровне пет-проджекта). Насколько быстрее мне будет перекатиться в C++, чем если бы я начинал вообще с нуля?
Любые языки примитивны и кастрированы по сравнению с плюсами.
Да хоть на 10 стандартов отстает - уже то, что у тебя есть классы\RAII - уже величайшая победа
Хех, антош, ну рассказываешь про меня. Я так десять лет сопли мотал по совокупности разных причин. Но когда решил валить, то мне это отсутствие опытных коллег аукнулось. Свой шанс вкатиться в интересную сферу проебал из-за отсутствия какого-то опыта кроме личного. Теорию я знал неплохо и собес прошёл, а дальше не сработались - сказали, в другое время бы и подтянули бы, но не сейчас. В итоге побежал по собесам и вместо работы интересной работаю работу с нормальным коллективом и нормальной ЗП. Но да, ты прав - за кратный прайс и работать приходится кратно. В последнее время настолько, что мечта о той интересной сфере становится нереальной. Это печально
А, ну и ещё факт: такие госорги это типа оплот стабильности, да? Но через полгода как я свалил контора считай была расформирована. Если бы я не был тревожным хером с плохой самооценкой и не наяривал бы всяких Макконнелов с Майерсами, было бы неприятно.
Никакой морали из истории, кроме того, что знания свежими держать всегда хорошо.
Овер это когда бесполезно и не читаемо, а то что там слов >3 - не думаю что проблема для плюсовиков , там же все дефолтные вещи. Или лучше делать шаблоны без ограничений? или forward'ить не надо?
Можно ли делать delete container.at[n], будет ли delete удалять void указатели правильно?
Если в delete передаётся указатель на тип, отличный от базового и не являющегося его предком, то поведение не определено. Память может быть и вернётся (аллокатор рантайма по идее знает где и сколько выделял), но деструктор точно не вызовется.
> Если в delete передаётся указатель на тип, отличный от базового и не являющегося его предком, то поведение не определено.
То есть я не могу в одном классе удалять объекты других классов, которые являются его членами?
Ты это я (зелёный в посте на который ты ответил). Всё именно так и было. Работаю теперь в известном вендоре, задачи чисто софтовые, на грани энтерпрайза. Да, без железа скучновато, но сами задачи адекватные и умеренно разные в рамках продукта, а не очередной бинарный протокол с железякой. Но вкатывался я сразу к ним (с железяками тогда хотел завязать).
Допустим есть вот такой класс:
struct A {
int m_num;
A() { m_num = new int(12); }
virtual ~A() {delete m_num;}
};
И его наследник
struct B : public A { ~B(){}; };
A p_a = new A;
void p_v = (void)p_a;
B p_b = new B;
A p_b_a = (A)p_b;
delete p_a; // отработает нормально (p_a имеет тот же тип, что и при вызове new)
delete p_a->m_num; // отработает нормально
delete p_b_a; отработает нормально, так как A это предок и у него виртуальный деструктор (а значит ~B() будет вызван)
delete p_v; // ~A() не вызовется и память p_a->m_num не освободится (тип p_v отличен от типа при вызове new и не является типом-предком)
project -
main.c
(папка)file-
- filerw.c
- filerw.h
(папка)tcp_server-
- tcp_server.h
- tcp_server.c
как в tcp_server.c подключиться к - filerw.c ? мне нужно спустить на папку назад и перейти в папку file. Как правильно написать include
Использование метапрограммирования уровня sfinae автоматически вычеркивает "читаемость" из списка достоинств кода. Восхищаюсь твоей способностью писать магию, но для алгоритма калька на двух стеках как-то всё же похоже на оверкилл.
Это указатель на char, хранится на стеке. Может указывать на область памяти, возможно содержащую массив. В сях есть тип массива, но подержаться за него можно в очень малом количестве мест. В остальных случаях массив представляется указателем на тип элемента массива.
Что значит "возможно"? Можно как-то четкую картину хранения данных в const char* получить? Этот тип данных часто используется, например при передаче через сокеты. Поэтому надо всю залупу конвертировать в этот тип. А вообще не заебись конвертировать в то, что не понимаешь.
Чё те не понятно то?
Тип char это 1 байт данных. char⚹ это указатель на байт данных, то есть адрес в памяти, по которому записан этот байт. const char* означает, что ты не можешь эти данные изменить, написав ⚹char = 'a'. Через сокеты передаются данные. Типичное представление данных - последовательный набор байт в памяти. Соответственно, для передачи через сокет, надо указать адрес первого байта последовательности и их количество. Адрес первого байта и есть параметр const char⚹
> char⚹ это указатель на байт данных
Но в нем строка хранится. Или так просто последовательность байт, пока не дойдет до нуль терминатора?
>Можно как-то четкую картину хранения данных в const char получить?
Зависит от ситуации. Например const char w = "Hello" указывает на данные которые ФИЗИЧЕСКИ в бинарнике, то есть w указывает на "Hello" которая находится в одной из секций твоего бинарника, обычно это .text или .data. Если же переменная w специализируется во время рантайма, то это или стек или куча, уже зависит от реализации по коду.
char* это типичное представление строк в сях, их и называют null terminated string. Потому что для того чтобы найти конец строки ищут '\0'
#include "../file/filerw.h"
Они массивом и были. char* это указатель на первый элемент массива, char[] это весь массив.
2 стэка? И я писал, что sfinae в жизни не юзал. Я его тупо не знаю. Концепты вполне себе читаются.
Ты путаешь 2 понятия:
char str[200]; и char str_p = new char[200];
В первом случае это объект, создающийся на стеке размером 200 байт. Во втором случае это указатель (размером в 4/8 байт в зависимости от разрядности системы) на кусок памяти размером 200 байт в куче.
Логически ты можешь считать, что набор из 200 байт это строка. 1 байт - 1 символ и последний символ строки - '/0'. Либо логически ты можешь считать, что это тупо набор байт, который описывает какой-то другой объект.
Допустим есть: struct A {int a,b,c;}; A obj;
Размер объекта в байтах: sz = sizeof(obj);
Создаёшь байтовый буфер: char buff = new char[sz];
Записываешь в него объект: memcpy(buff, &obj, sz);
Потом передаёшь объект через сокет в виде буфера (то есть ты его сериализовал в набор байт): socket.write(buff, sz).
Допустим, есть два класса:
class Class1;
class Class2
{
Class2();
~Class2();
QVector<Class1*> m_container;
}
И я пишу деструктор для Class2:
Class2::~Class2()
{
for (int i = 0; i < m_container.size(); i++)
{
delete m_container.at(i);
}
}
Будет работать деструктор?
То есть деструктор не только будет работать, но я вообще как бэ обязан удалять вручную элементы вектора с указателем?
Если ты работаешь с сырыми указателями Class1* c1 = new Class1(), то да. Если ты используешь умные указатели std::unique_ptr<Class1> c1s(new Classc1()), то нет.
Но в целом ты сам должен думать над тем как и когда память выделяется и освобождается.
>А, ну и ещё факт: такие госорги это типа оплот стабильности, да? Но через полгода как я свалил контора считай была расформирована.
Текущую кантору, по идее, не должно подобное коснуться, т.к. занимается производством важного оборудования (в т.ч. для всяких стратегических предприятий).
Но вот судя по общению на днях с коллегами из других отделов, шиза на контору идёт сверху (кантора в принудительном порядке подставляет очко некоей госкорпорации, иначе просто не сможет ничего продавать). Типа, "безопасность" потихоньку будут пытаются устраивать, а-ля не давать юзерам (даже тем, кому по работе надо) админские учётки на компах, пересаживать с самоустановленных пингвинов на некий официально одобренный. На следующий год вроде такое запланировано.
Времени до шизы у меня месяцы, но, очевидно, готовиться к потенциальному съёбу нужно начинать уже сейчас. Придётся сесть за книжки, а то я кроме написания всякой клиент-серверной дрисни на Qt ничего не особо умею.
>А, ну и ещё факт: такие госорги это типа оплот стабильности, да? Но через полгода как я свалил контора считай была расформирована.
Вот вот, госконторы это оплот нестабильности, сегодня есть отдел, завтра нет, послезавтра пыня издал указ что эта госконтора теперь входит в состав другой, после чего норманая контора станет бюрократическим дном с нищими зарплатами. А там краем глаза увидишь что-то сверхсекретное и будешь под кучей подписок у товарища майора
массив задан как
float array=new float[nm];
и обращаюсь к элементам в нём как
(array+im+j)
параметры функции
void sort(float x[],int n, int m)
сама сортировка работает если она вне функции, все нормально сортируется
но если тот же самый код поместить в функцию то все через жопу(почти вся матрица заполняется значением самого большого элемента)
как это исправить?
Обязательно динамическая матрица без векторов и обязательно сортировка через функцию
Файл "А" с точкой входа.
В файле "Б" создаю динамический массив ("new').
В файлах "С" "Д" этот массив пользую.
Как удалить этот массив из кучи в файле "А" перед "return" ?
Адрес и длину я знаю.
Компилятор требует вернутся в область видимости, где был создан массив.
Нихуя не понятно, но:
Если у тебя массив статический (определён вне каких-либо {}), то ты можешь сделать его видимым в другом файле, написав там extern Type ArrayName;
Примитивный пример:
В области видимоси main() определяется размер файла и вызыввется функция.
Эта функция принимает параметром размер файла и создает двумерный массив. возврат в майн().
Далее вызываются много разных функций находящихся в разных файлах (не в файле с майн())
Так вот перед выходом из программы мне нужно удалить динамический массив. А сделать это не дает компилятор, требуя чтобы я произвел удаление из той функции (области видимости), где создавал массив.
"Vector", "List" итд не интересуют. про них я в курсе.
Можно конечно создать статический массив и копировать в него файлы по кускам, но хочется узнать как работают с динамическими массивами в многофайловых проектах.
Всё нашел. Просто неумение работать с указателями.
std::vector и не еби голову
А зачем муваешь?
Мув же просто втрвэдью кастует, а у тебя и так рвэлью
мимо тоже вкатун ничего не понимаю, но выглядит так что мув чистит вектор, но при этом почему то ты не падаешь
>А зачем муваешь?
Просто тестирую фичи о которых только что прочитал.
По логике оно просто должно кастануть или не кастовать вообще и нормально проитерироваться. Но это не мой случай и мне хочется знать чому.
Как будто rvalue-вектор это вектор из трёх элементов (как и должно быть), но с некорректным указателем на данные в момент выполнения цикла.
Так нормально.
>Почему такой вывод?
Потому что
std::move создает xvalue (потому что возвращает T&&), время жизни временного объекта не продлевается. Чтобы время жизни временного объекта продлевалось, функция должна возвращать простой объект T.
В итоге у тебя dangling reference. Просто в случае вектора у тебя память (куча) уже успела перетереться, а в случае std::array стек еще не успел.
Как-то так
С массивом же не потому что не успела перетереться, оно кэшируется?
Посоветуйте легковесный тулчейн/IDE чтобы под виндой собирать и чтобы можно было под линкусом.
Тяжелое говно строго нахуй.
реально ли пользоваться notepad++ и GNU компилятором?
Где почитать вообще про весь процесс компиляции от исходников, до линковки и т.п., а также про make файлы?
Любое IDE всегда тяжеловесное. Дефолтный текстовый редактор чтобы писать и там и там - Vim. Тулчейны под Win и Linux разные, поэтому выходов примерно два:
1. Ставишь на windows MSYS2 и через него mingw. Это тулчейн linux под windows. Далее с его помощью пишешь сразу под обе платформы в стиле Linux (vim, make, gcc, gdb, autotools).
2. Ставишь cmake под win и linux и пишешь make файлы (CmakeLists.txt) на нём.
Если пойдёшь 1 путём, то изучишь весь процесс компиляции от исходников до линковки. Но жопа твоя сгорит дотла, я это гарантирую.
У плюсов 2 ide - vs и clion
По твоему критерию "тяжёлое говно нахуй" они автоматом отлетают, поэтому тебе остаётся только любой текстовый редактор + система сборки (cmake в основном используют, но можешь попробовать другие, их в плюсах много)
Самое удобное что я нашел для себя - vs code + clangd + lldb + cmake tools
Дурак? В вскоде нет компилятора. Это текстовый редактор.
Когда есть смысл использовать референс вместо пойнтера?
потому что плюсы осваиваются за 1 час видео на ютюбе. Если тратишь на это 21 день значит полный лошара.
так ты нихуя не знаешь и нихуя не умеешь, думая, что что-то знаешь
Я начал понимать С++ спустя полтора года изучения, например.
>А ООП вообще лёгкая тема.
ООоо дружище, ну тебе до преисполнения далеко, ой как далеко...
чето даже настроение поднялось, ООП ему легкое
Ну, на самом деле ООП по современным гайдлайнам весьма легкое.
Все антипаттерны, кроме маленьких классов, инкапсулирующих крохотный функционал
если отвечать без троллинга, то книжечка "с++ для чайников" была гораздо лучше написана чем "с++ за 21 день", вот и все
конечно самое лучшее введение в с++ было написано липпманом, у него была такая тоненькая книжечка, называлась
"Essential C++", 250 страниц, у нас ее тоже переводили
дак вот это небольшой шедевр, чем то похожий по лаконичности изложения на K&R, но почему то у нас абсолютно неизвестный
интересно еще то что эта книга, являясь по сути учебником для начала изучения языка, тем не менее издавалась в серии c++ in-depth
Вопрос слишком общий.
В общем случае, если ты объявляешь референс, то ты заявляешь гарантию того, что пока существует референс, то будет жить то, на что он указывает.
Если рассматривать как член класса, то референс обязывает указывать на что-то а момент инициализации класса.
Т.е. сама концепция референса в том, чтобы избавить c++ от всяких null-ов. Просто более безопасный указатель.
Бро, начиналось примерно так же. Нас взяли в теплые объятия госхолднига и начали люто оптимизировать и крутить гайки. Изделия у нас - военка авиационная была. Оптимизнули нормально, как вижу - осталось пара отделов заниматься введением сданных объектов. Разработки больше нет.
Самое поганое было - разговоры перед уходом. Не гнушались намекать, что куда же я денусь и кому я нужен. Ох бля.
Хе хе. То же самое было, только в объятия не взяли и гаек не накрутили. Поставили нового "эффективного" директора, так что 3 отдела ушли и стали обособленными филиалами двух крупных контор. У ушедших все хорошо, а остаток с долгами ни обанкротить не могут, ни в холдинг продать.
>С массивом же не потому что не успела перетереться, оно кэшируется?
https://ideone.com/kDUFDx
Там тоже всё ломается
>С массивом же не потому что не успела перетереться, оно кэшируется?
https://ideone.com/kDUFDx
Там тоже всё ломается
QtCreator
Visual Studio, других нет.
Ясно, а я подумал что я чего то не знаю (снова) по плюсам. Ну это видимо джавист какой то писал
Удваиваю
CLion
Профнепригодный дебил пердолькается с карго-культистской хуйней вместо написания кода
>Профнепригодный
Вот тут ты прав. Сосать хуи вышестоящих не в моем прейскуранте
дваче-чьмоня увидела стильный и функциональный редактор : РЯЯЯЯ не может быть , он наверняка годами его пердолил, жыд-брейнс прыде - порядок навэдэ!1!
В твоем прейскуранте борщи мамкины хлебать, и пердолиться с хуйней, мы уже все поняли.
Пособесишься на джуна - расскажешь
иди спи, подстилка капитализма, завтра с утра будешь говно вилкой чистить. В том время как свободный(я) человек развивает искусство программирования
О, ffmpeg. Несколько лет назад ёбся с ним.
Прочитал это пособие, спасибо за наводку, а про bind там сказано, что она связывает сокет и порт, это нужно, чтобы использовать listen, то есть, прослушивать канал.
Зачем до абсурда доводить? И причем здесь тру или не тру, если это вопрос удобства.
Нравится твой код и цветосхема, антон. Выпей чаю, да съешь булок за мой счёт.
не, я просто спросил. Ибо зачем слушать дурачка-студентика, или дурачка-борщехлеба вообще о чем либо.
Так, а редакторы какое к этому отношение имеют? Большая часть студентоты как раз в ide и пишет свои laba2.
> Так, а редакторы какое к этому отношение имеют? Большая часть студентоты как раз в ide и пишет свои laba2.
Средний дурачок почему-то считает что ПЕРДОЛИТЬСЯ В КОНСОЛЬКЕ это суперкруто и по хакерски. А, и еще, что МИКРОСОФТ СЛЕДИТ И СВОРУЕТ ВСЕ ХЕЛЛО ВОРЛДЫ.
Так что - используемый редактор часто может показать, кто перед тобой.
Vscode: clangd + lldb + cmake, для зависимостей conan юзаю, либо ручками либы ставлю
Для студента вкатуна отличный сетап, по крайней мере наконец то удобный
Какое отношение это к моему посту имеет? Про сетап то мой есть что сказать? Или ты просто похвалиться хотел какой вс классный?
Хотя бы что то по существу скажи что-ли
> юзабельнее нету
Не юзабельно если сидишь не на Винде
Про nuget и vcpkg хзы, их особо не юзал, но да vcpkg классный
а ещё студия не удобная интерфейсом вцелом
Ладн
Наверно теперь уже только вижуал студио, возможность исправлять синтаксические ошибки до компиляции бесценна. И приятно посмотреть на тип переменной просто наведя на нее мышку. Не знаю че буду делать, если под линух придется разрабатывать.
>>250161
Беру свои слова обратно, пособие хуйня, прочитав его сможете писать только хелоуворлды от мира сетевых программ.
>Беру свои слова обратно, пособие хуйня, прочитав его сможете писать только хелоуворлды от мира сетевых программ.
Мне хватило буквально 150 страниц из Стивенса лет 5 назад прочитать, чтобы простые клиент-серверные приложухи лепить.
мимо
>Не знаю че буду делать, если под линух придется разрабатывать.
Когда мне пришла пора менять работу, я рассматривал только работу, где в разработке можно было использовать вижуал студию. А вообще - в идеале писать только под винду.
Желание полностью сбылось
>возможность исправлять синтаксические ошибки до компиляции бесценна. И приятно посмотреть на тип переменной просто наведя на нее мышку.
Clangd во всё это умеет
480x360, 0:05
я из-за отсутствия этих надписей забыл пакет почистить. Теперь буду ставить везде где ручное управление ресурсом
Ну ты перед тем как писать подумай хотя бы. Там в любом случае нужно вручную дергать
удивительно, но можно написать свой враппер освобождения с деструктором. в начале его создавать и все, лучше чем в кажд скопе отмечать комментарием его конец + если вдруг исключение - все равно сработает
> если вдруг исключение
память почистится в деструкторе MediaLoader<>, главное что бы av_read_frame не смог поверх существующей памяти еще выделить
Visual Studio. Лучшая IDE, имхо.
Ой, блядь, дрочеры ебаные на best practices. Карго-культисты сраные. Так мне некрасиво, это устарело. Художники недобитые. Это, сука, коментарии, а не организация кода даже.
Беру свой стик и яростно начинаю им управлять.
Сама софтина на QT.
Как захватывать положение стика свернутой программой?
через платформенное АПИ какое-нить, а-ля как для клавы https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
почему push_back? Он же делает дополнительный мув а emplace сразу пробрасывает куда надо
спасибо за код
>Он же делает дополнительный мув
так они оба вызывают insert же? ток в push там move, а в emplace – forward; и то, и другое 1 функция не вызывающаяся в рантайме
Эксперты со stackoverflow пишут что в некоторый случаях emplace не делает лишних копий или вызовов мув-операций в отличии от push, так что буду все время использовать ее
https://stackoverflow.com/questions/4303513/push-back-vs-emplace-back
Ой, какие у нас тут эстеты
Вспомнил и нашел на этой странице следующее:
"The related case I tripped over (that I mentioned just now in a separate thread on this page) is that emplace_back will "implicitly" call explicit constructors, which could lead to undesired behavior.".
> в некоторый случаях emplace не делает лишних копий
это понятно
> или вызовов мув-операций
Вот тут думаю "*_back(std::move(x))" без разницы - мув сам по себе noop. Про это там не нашел инфы, разве что примеры с вызовом мув-конструктора лишний, но там идет конструирование из аргументов, а не передача rvalue готового.
а насколько реально переделать Visual Studio проект на mingw чтобы собирать под винду?
почему жопа сгорит?
В зависимости от проекта может быть изи, а может быть невозможно.
Легко, но есть подводные камни. Компилятор из Visual Studio юзает много микрософт специфичных экстеншенов которых нет в шланге/гцц. Начни с добавления флага /permissive- и с ним пробуй собирать@править то, что не собирается. Когда с этим флагом начнет компилироваться, то пробуй переносить на mingw. Это единственный верный путь переноса.
ноутпук для учебы два гига два ядра игровая видеокарта, рофл?
Ты сначала вкатываешься вообще в любой мусор куда берут, дорастаешь до мидла, и потом уже начинаешь выбирать.
Когда воспользовался верхним регистром для первой буквы, всё заработало. Так и должно быть? Мне казалось, что это не имеет значения для компилятора.
Типичный пример из говнокниги. Когда-нибудь напишу свою где в начале ставится глобальная цель по типу "пишем компилятор", ну или игрушку какую-нибудь. И по ходу книги обосновываю все новые конструкции языка практической необходимостью
Да, есть, что за вопрос? Открываешь вакансии, смотришь.
>>252792
Не слушай таких, как этот. Я вкатился джуном с 0 без гитхаба, с таким себе знанием алгоритмов. (Не умею даже графы в ширину/глубину обходить) на нормальную зп в хорошую компанию, где 17-е плюсы. C++ нормальный живой язык и на нем много хороших вакансий. Просто не смотри туда, где есть qt и embedded.
> Не слушай таких, как этот. Я вкатился джуном с 0 без гитхаба, с таким себе знанием алгоритмов. (Не умею даже графы в ширину/глубину обходить) на нормальную зп в хорошую компанию, где 17-е плюсы. C++ нормальный живой язык и на нем много хороших вакансий. Просто не смотри туда, где есть qt и embedded.
Тебе повезло охуенно выиграть в лотерею. Это не значит - что это правильный путь для вообще всех
ну например указатели и ссылки могут провиснуть
Со span/view намного приятнее работать, даже в чистых сях. Когда нужно что-нибудь распарсить-перепарсить (и не важно, бинарщина это или обычные строки) - самый топ.
С одной стороны - да. С другой стороны - сырых указателей у тебя не должно быть в коде вообще, кроме как в RAII врапперах
>>253673
> С другой стороны - сырых указателей у тебя не должно быть в коде вообще,
Прям ваще ваще? Умные указатели превращают в овощ объект из которого производят перемещение и мне это не очень нравится. Если этот объект где-то на стеке и при выходе из функции исчезнет, то похуй, в остальных случая я хз.
Тупее вопроса еще не было, планка пробита
читай выше
а зачем менять лучшую IDE существующую? Мне работать и писать код надо, а не пердолиться с плагинчиками
продолжай убеждать себя в том что третьего пути не существует
я вот например не работаю но деньги есть
> пенсия по шизе
Собака, ты как догадался? Ладно забираю назад слова о промытом. Тебе с таким моском лучше знать
2022 год уже блять
Так ни один компилятор кроме штудии в модули нормально не умеет
Если бы я сказал 5 лет назад кому-то, что у МС лучший компилятор С++ - меня бы обсмеяли. А вон как оно вышло смешно
Шо 5 лет наазд, шо сейчас штудия компилит непортируемое говнецо, написанное с нарушением стандарта. Можешь не оправдываться.
Так а разве не все плюсовые компиляторы это делают? В кланге и гсс насколько знаю есть интовые рэйнджи в свитче, которые не в стандарте
я если что мимо проходил
если я пишу, что int zhopa = -42, то итак понятно, что это -42. И наоборот.
А может вместо этого числа присвоиться какая-нибудь хуйня в зависимости от signed/unsigned, которые влияют на допустимый диапазон значений и поведение арифметики/логики.
А они и не нужны в лабах на 50 строк, где все числа от 1 до 10.
Как объявить сразу 1000+- переменных в которых будут содержаться разные значения? или это уже не переменные будут, а классы?
Хочу кароче запилить рандомный прегенератор НПС со статами и инвентарем в своей недоигре (как в сталкере) но знания крестов пока на уровне написания калькулятора. Что делать?
Учи массивы и циклы.
Нужен кроссплатформ и вебвью для нескучного дизайна (CEF как я понимаю)
С чего начать
В unsigned можно в два раза больше неотрицательных значений уместить. Побитовые операции удобнее с unsigned.
>Я вкатился джуном с 0 без гитхаба, с таким себе знанием алгоритмов. (Не умею даже графы в ширину/глубину обходить) на нормальную зп в хорошую компанию, где 17-е плюсы.
Что разрабатывает контора?
Собрать из исходников, если не охота регаться на 10-минутную почту.
Ага, с ICE на каждый чих
Это расширение стандарта, а не нарушение. В стандарте нет положения "не должно быть интовых рейнджей в свичах, иначе не плюсы".
> system
Невозможно получить вывод команды, только код возврата.
> Windows.h
Нет, из cstdlib.
> Что использовать батники с командами, код на с++, или вообще на фреймворке
По задачам.
> создать что-то кроссплатформенное?
На линуксе у тебя нет ни windows.h, ни cmd, какая кроссплатформенность?
> На линуксе у тебя нет ни windows.h, ни cmd, какая кроссплатформенность?
Я не знаком с Qt, но подозреваю, что там есть функции типа "создать директорию" являющиеся абстракциями над осью.
Скорее всего, нечто подобное уже есть, так что подскажите, как это называется.
Суть такова: это работает как обычный даунскелинг, но начинает действовать только на определенном расстоянии от игрока, заменяя обычную систему лодирования. Представим, что вокруг персонажа есть условный эллипсоид, вытянутый вдоль на требуемое расстояние прорисовки и x вектор которого совпадает с направлением взгляда камеры игрока. Если на пути эллипсоида нет пряпятствий (например, помещение) изображение на его границе начинает даунскейлится, причем величина даунскейла зависит от расстояния. Чем дальше, тем сильнее мылит. Еще раз, к лодам и размыванию тектурок вдалеке это отношения не имеет.
Как такое называется?
Нет.
>к лодам и размыванию тектурок вдалеке это отношения не имеет.
Я знаю что такое мип-маппинг. Я говорю о замывании всего изображения, а не текстур.
ну дык и используй порождающие паттерны
банду 4х почитай, это книжка такая
будет у тебя класс-генераторнпс который будет выплевывать сгенерированные объекты классов-нпс с разными статами и эквипом
Там не размытие, просто сначала рисуем дальние обьекты в маленьком разрешении, а ближние в полном. Потом все комбинируем вместе, размазывая далекие обьекты.
магические консоле технологии системы PODALSHE OTSEL, епта.
Использование паттернов — антипаттерн высшего порядка.
Ок.
>штудия компилит непортируемое говнецо
Как и Шланг, как и ГЦЦ, как и Интел - каждый со своими расширениями
А теперь иди пососи бибу, хейтерок
DOF
И все они портируемые, но это другое.
Может быть потому что он инклудится в иостриме?
Насколько я помню подобный пример, после предпроцессора оно разворачивается в 50к строк
Да, действительно в иостриме, хотя какое он имеет отношение к вводу выводу я хз.
В джаве изначально отказались от всей ручной работы с памятью.
В шарпе, соответственно тоже, однако указатели таки добавили, правда непонятно зачем. Ну, может в десктопных приложухах и нужно.
Однако сама идея умных указателей появилась уже ближе к середине нулевых, а не в 90-х. Да и все равно, чтобы нормально пользоваться смартпоинтерами, нужно знать какие проблемы они решают, в общем, иметь представление о том, как работает память.
Да и вообще языки без GC сейчас мало кому нужны.
8192
Что бы меньше себе коленей прострелили. В той же джаве, запрещены переопределения операторов, поскольку создатель видел, то что с ним делают в плюсах.
Множественное наследование запретили похоже из тех же соображений, ибо запросто можно нарваться на call pure virtual function. И ебаться с RTTI.
На самом деле наверно и правильно, ибо бизнесу нужно обычно автоматизировать бардак. Да и к квалификации программистов требования будут ниже.
про операторы такая хуйня, автор Явы просто чмоня омежная, даже в ебучем шарпе без синонимов и то можно переопределять. Складывать вектора или комплексные плбсиком это видите ли говнокод. Будто в жабе не наговнокодить благодаря этому. Назвал переменную рандомной хуйней - вот тебе говно, жду спелчекера для идентификаторов.
мне уже страшно
Все это хуйня про безопасность. Получить заэкспайренную ссылку можно чуть ли не столькими же способами, что и указатель. На самом деле референсы были введены чтобы убрать наворачивание синтаксического говна связанного с бесконечными разыменованиями в перегруженных операторах и т.д. Сахар, короче, не более.
>Получить заэкспайренную ссылку можно чуть ли не столькими же способами, что и указатель.
Можно, но сложнее
не нужны
> , то что с ним делают в плюсах.
А что сними делают в плюсах? Так вся STL на этом переопределении.
> Множественное наследование запретили
Просто. Не используй. Множественное наследование. Ты удержаться не можешь, чтобы хуйню не сделать. В языке есть goto, давай его тоже запретим.
> пока существует референс, то будет жить то, на что он указывает.
А я делал висячие ссылки, у меня консоль зависала. Например, когда возвращаешь по ссылке локальную переменную.
Пикрелейтед.
Если действительно интересует тема, почитай документ со скучным названием Intel® 64 and IA-32 Architectures Optimization Reference Manual, там как раз про байтоложество.
>А что сними делают в плюсах? Так вся STL на этом переопределении.
Про STL не спорю, а Гослинг, видать насмотрелся на примеры "качественного" переопределения.
>Просто. Не используй. Множественное наследование. Ты удержаться не можешь, чтобы хуйню не сделать.
Я высказал предположение про запрет множественного наследования в джаве и не более того. В плюсах оно имеет определённый смысл.
>В языке есть goto, давай его тоже запретим.
Так break и continue это тот же goto видом с боку.
>>255648
Про курсы, тут вышли лекции из МФТИ для бакалавра. Примечательно, что в конце даются доп ссылки для расширения кругозора
https://youtu.be/Bym7UMqpVEY?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
Это, конечно, очень хорошо. Документ посмотрю, спасибо. Но интересует всё же развёрнутый ответ типа дроча godbolt/профайлера, вот эти все нюансы с применением const/static/указателей и как к этому приходят в процессе изучения языка.
Ну я дрочу Vtune Profiler и Advisor, для числожевания норм. Там встроенные советы есть, расчёт производительности циклов, паттерны доступа к памяти, оче помогает часто.
>нюансы с применением const/static/указателей
Передаю крутейший совет от штеудовских конпеляторописцев: пиши код как можно проще. Тогда конпелятор сам всё поймёт и соптимизирует.
>пиши код как можно проще
Стараюсь. Но иногда без оптимизации всё равно не обойтись ведь. Компилятор не всесилен.
Понятное дело, что так можно делать. Но я же написал, что когда ты объявляешь референс на что-то, то ты даешь гарантию. Не язык. Если ты сделал референс на объект на стеке и вернул этот реф, то ты хуевый гарант.
Как вкатиться в нвидию джуном? Есть гайды?
А че, драйвера реально индусы пишут? Я-то думал это довольно тяжелая тема, и на драйверописание в штаты или китай набирают.
>драйвера реально индусы пишут?
В штатах их пишут в основном.
>Почему в вакансиях нвидии просят учить джунов, но сама нвидия джунов не набирает?
Хороший вопрос, кстати. Не видел джунов в дебаггер команде. Да и вообще их не видел. Пару интернов на лето видел из вузиков.
Ну так напиши и спроси, чего как маленький
>IA-32 Architectures Optimization Reference Manual
В большинство микроопимизаций компиляторы (шланг, гцц, мсвц) умеют и так. И реального, что можно сделать вручную, это data driven подход и cache-obvious алгоритмы. На крайнем проекте, рефакторинг в сторону оптимального использования i- и d- кешей помогало ускорятся до 50%. Нахуй ооп, нахуй виртуальные функции, нахуй спарсед структуры данных и структуры c heap indirection. When choosing a container, remember vector is best;
Leave a comment to explain if you choose from the rest!
>When choosing a container, remember vector is best;
Слышал то же самое про array а только затем vector
Не так давно писал парочку модулей под среакт и компилял в wasm.
Они вообще рабочие? 6-7 лет назад последнее обновление. У одного вообще описания нет почти
Не то чтобы борда, но форум фртк мфти написан на плюсах. Форум "сахара" для электронщиков слизан с борды мфти.
https://zlo.rt.mipt.cc/
http://caxapa.ru
https://x.mipt.cc
А чего им вдруг перестать работать? Вакаба тоже много лет не обновлялась. Один раз написали, и всё.
Чел, на HH и Воркдее все вакансии с требованиями. Посмотри и покури.
Из энтрилевельных вакансий - я видел несколько в Geforce Now (подай-принеси), и там щас чето питонотестировщик какой-то висит.
В среднем - на вакансию нужны хорошие навыки, на образование всем похуй обычно. Я просто прошел подался на HH, прошел собесы и получил оффер, без каких либо муточек и прочего.
А что на собеседованиях? Кишочки C++, winapi, vulkan/directx/opengl? Алгоритмы уровня хард на литкоде?
>Какой стек
17 стандарт, gRPC, Буст, Qt.
>что пишете?
Софт связанный с банковским сектором и инвестициями.
Тот кто тебе ответил - напиздел. Меня гоняли по C++ и Winapi. Собственно, за последние года в найме ничего не изменилось - только теперь я иногда гоняю собеседуемых по C++ и Winapi, ну и по вменяемости. А то есть программисты с опытом по 10 лет, которые не знают, что такое TCP и как сеть работает.
Ну а в командах, которая занимается графендием - там будь добр, знай минимум одно графическое API на хорошем уровне. Меня это не спрашивали, т.к. я не графонник, а рядовой прикладник
А есть команды, которые не занимаются виндой от слова совсем? Ну там линуксы, контейнеры, сети и всякое такое?
Вкатывайся в науку. Сам работаю в обсерватории где почти на каждом компе генту собрана.
Есть, но их не так много. Те же дебаггеры, CUDA, драйвера под никсы, Автомотив, девопсня всякая.
Но нахера тебе линукс, когда Нвидия это одно из немногих мест, где можно писать в божественной студии, собирать МСбилдом, а не ебаными Cmake-заклинаниями, и вообще наслаждаться жизнью?
>А чего они так с cmake иглы слезли
От проекта зависит. Много проектов никуда не "слезло", много проектов никуда не "залезло". Но там, где я работаю - везде мсбилд
>Но нахера тебе линукс
Потому что Jetson, Xavier, ML/CV, баевые робаты из пепла йадернава агня. Я не он, но пилю вот это вот.
Вообще не понимаю как можно сразу тремя сортами говна измазаться (winapi/msbuild/qt), когда твоя контора не говНИИ.
>Сейчас в ДС нахожусь, на Украину не поеду.
Зря. Ты подумай пока границы открыты, а то на твое место мы какого-нибудь поляка релокейтнем
Так я студень все еще. Куда я поеду, мама хочет, я диплом получил, а не был бомжом без бумажки в будущем.
>Фублядь, ебанутый, ты зачем дерьмо жрешь?
Аргументы то будут хоть какие-то? Кроме кроссплатформенности, оно нам не релевантно и не будет.
Никто вас в эту помойку и не зовёт. Ещё чего, распылять годные вакансии с годными зп на понаехов каких-то там.
>XML параша
Сильно лучше, чем https://github.com/libarchive/libarchive/blob/master/CMakeLists.txt
И вообще, хейт к XML не совсем понятен - он самый человекочитаемый из всех форматов. Не говоря о сблевах типа toml, где по часу ебешься с отступами.
> Не редактируется в блокноте
редактируется без проблем?
> Диффы не генерятся
Генерятся?
По идее конкурентов нормальных нет. JS - для макак, довольно медленная хуета, в то время как С++ намного быстрее и позволяет писать понятный код.
Сейчас у компаний есть деньги на качественный, но несколько медленно пишущийся код. Первостепенная задача - это чтобы веб страницы плавно и быстро загружались. А обеспечить это может WebAssembly
Не особо понимаю, почему вы ещё пытаетесь учить JS, если конкуренция в нём огромна? Ведь есть С++, где стажер без опыта получает от 80к, практически не имея конкурентов на вакансии.
Хуйня изначально, т.к. никто фронт не будет делать на С++ для очередного говносайта. А тяжелые приложеньки типа Фотошоп онлайна - их раз два и обчелся.
> WebAssembly
Который не поддерживает работу с DOM (и вряд ли когда-нибудь будет), без чего для любого пука надо писать JS-биндинги.
Хорошо быть cmake-программистом. Куда лучше, чем программировать на XML.
Если ты пишешь обычный js - тебе не нужен webassembly. Если ты пишешь на среакте или ещё на чём-нибудь - тебе в 99% случаев не потребуется работать с DOM.
>И вообще, хейт к XML не совсем понятен - он самый человекочитаемый из всех форматов
Начнем с того что ты хуй XML - eXtensible markup language - расширяемый ЯЗЫК РАЗМЕТКИ. Разметки сука! Т.е. если выкинуть все теги, смысл у текста должен остаться.
Во-вторых, это только у дурачков "xml - это пук-пук теги и аттрибуты". Там еще неймспейсы, энтити, зип бомбы, инклюдинг, экспейпинг, CDATA, XSD и прочая оверинжиниринг дрисня. Написать стопоцентно совместимый парсер - та еще задача, особенно когда нужно чтобы оно работало быстро.
Ну и в третьих есть божественные JSON и LISP. А ты хуй.
> Написать стопоцентно совместимый парсер - та еще задача, особенно когда нужно чтобы оно работало быстро.
Майкрософт уже написал в штудии
> А ты хуй.
Трагично, что тут сказать.
Потому что "сам объект" хранится в хипе.
Ты нормальных то с нулёвками-пусськами Ctrl-C-V не путай
Потроллить каких-нибудь совсем зеленых вкатунов сойдет. Для тех, кто уже чутка продвинулся в изучении, и так очевидно, что это тралирование
XML - это формат из прошлого, в те времена он был неплох.
Тот же MSBuild и Maven вполне живут с XML и ничего страшного не случилось, парсеры не падают и приложения собираются.
Хотя да, джейсоны удобнее, тут ничего не скажешь
Вообще я хочу формат данных с такими параметрами:
0. вложенность и атрибуты
1. парсер должен быть минимальным, идеально - заммапили файл в память и работаем
2. редактирование занимает минимум кода и не требует выгрузки всего файла в память
Есть чо?
Потому что он делал вольнодумные указатели Императору.
> оверинжиниринг дрисня
Всё равно что утверждать "Нет евреев - нет антисемитизма".
> неймспейсы
> XSD
А в JSON есть JSON schema, Не нужно - не используй, никто не заставляет.
> энтити
А в JSON escape sequences.
> CDATA
Это вообще фича. Сырые строки в JSON хуй знает когда ещё будут.
> зип бомбы
> инклюдинг
К самому XML отношения не имеют и являются такими же проблемами JSON.
> ЯЗЫК РАЗМЕТКИ
Пук среньк
Как всегда XML хейтят тупо из-за того, что он недостаточно модный и зумерский.
>> оверинжиниринг дрисня
>Всё равно что утверждать "Нет евреев - нет антисемитизма".
Больная тема?
>> неймспейсы
>Не нужно - не используй, никто не заставляет
Имена тегов зависят от неймспейсов, дибил
>> CDATA
>Это вообще фича. Сырые строки в JSON хуй знает когда ещё будут.
Хуича и плавающие вайтспейсы с ньюлайнами перед тегами.
>К самому XML отношения не имеют
Ты ебанулся, пидрила?
<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ELEMENT lolz (#PCDATA)>
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>
>Как всегда XML хейтят тупо из-за того, что он недостаточно модный и зумерский.
Маня, я сервера писал еще тогда когда мамину сиську сосал. И именно поэтому я знаю почему оно такое всё хуйовое.
А ты отведай-ка хуйца
>> оверинжиниринг дрисня
>Всё равно что утверждать "Нет евреев - нет антисемитизма".
Больная тема?
>> неймспейсы
>Не нужно - не используй, никто не заставляет
Имена тегов зависят от неймспейсов, дибил
>> CDATA
>Это вообще фича. Сырые строки в JSON хуй знает когда ещё будут.
Хуича и плавающие вайтспейсы с ньюлайнами перед тегами.
>К самому XML отношения не имеют
Ты ебанулся, пидрила?
<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ELEMENT lolz (#PCDATA)>
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>
>Как всегда XML хейтят тупо из-за того, что он недостаточно модный и зумерский.
Маня, я сервера писал еще тогда когда мамину сиську сосал. И именно поэтому я знаю почему оно такое всё хуйовое.
А ты отведай-ка хуйца
Когда есть нормальные рабочие проекты студии - сраться за XML это прям максимально тупо.
> я сервера писал
хуи ты сосал, судя по всему. И сосешь
> Больная тема?
Тебе виднее.
> Имена тегов зависят от неймспейсов, дибил
Ты бы хоть попробовал чуток разобраться в теме, дебил.
> Хуича и плавающие вайтспейсы с ньюлайнами перед тегами.
Так и должно быть.
> <!ENTITY lol "lol">
А, ты ты про необязательный устаревший DTD кукарекаешь.
> я сервера писал еще тогда когда мамину сиську сосал.
Но так ничему и не научился.
>нормальные рабочие проекты студии
Не "нормальные", а не переписанные
>>257627
>> Имена тегов зависят от неймспейсов, дибил
>Ты бы хоть попробовал чуток разобраться в теме, дебил.
Гугл в помощь, мудила. Исчи по "XML namespaces", мразь
>> <!ENTITY lol "lol">
>А, ты ты про необязательный устаревший DTD кукарекаешь.
Мудила, ты даже не понял о проблема с xml entities и возможность хуйнуть память при попытке распарсить это говно. Ты только увидел DTD и начал кукарекать, не понимая, что это еще один кусок кала, который парсер ОБЯЗАН поддерживать.
Полный отсос по всем фронтам у тебя
Питон медленнее раз в 15
Брыкается имхо.
Cделай сам тыжпрограммист.
>Сильно лучше, чем https://github.com/libarchive/libarchive/blob/master/CMakeLists.txt
Прямым портом с автотулзов попахивает
>Makefile.am, configure.ac
А, всё понятно
Ну и каким боком это говно относится к MSBuild? Найди хоть один vcxproj с zip-бомбой, блядь
шизоиды не думают о реальной жизни, они исключительно думают о какой-то хуйне, которую либо сами придумали, либо которая абсолютно нерелевантна
>Сам работаю в обсерватории где почти на каждом компе генту собрана.
Не шутишь?
Алсо, помню как я во времена универа немного повыебывался знаниями программирования и меня кафедра заставила научный софт писать, в анальное рабство взяли, лол. Астрофизическим моделированием тогда занимался.
>Не шутишь?
А какая у меня мотивация? Много где с виндой работал. Тут повезло - порой напрямую с железом приходится работать и намного удобнее самостоятельно собрать систему исключительно из того, что нужно будет для работы.
Я не умею решать дифуры, меня нахуй выгнали из универа еще до них. Писать на С++ это вообще никак не мешает.
С другой стороны - для обучение гораздо интереснее какие-нибудь змейки пошаговые писать, чем решать дифуры
Потому что книгу писал старпёр, во времена которого программирование было исключительно инструментов для научных вычислений.
Прежде чем змейки писать, ты должен разобраться зачем классы нужны, и какие есть структуры данных и алгоритмы, иначе твои змейки уебанские будут.
для консольных змеек и тетрисов классы нахуй не сдались. Зато мотивации дохуя будет потом, когда мы берем существующую хуевую змейку, и режем ее на классы
при этом ведь придётся создать два сокета? потому что мы связываем в структуре ip и определённый порт.
Проёб с копиями происходит незаметно, особенно если коллекция обходится для чтения или меняется её описание где-то в далёких ебенях заголовков.
Неявная типизация - разве плохо?
Замедление компиляции совсем несущественное, если и есть (тип выражения выводится в любом случае). Тем более это плюсы - тут шаблоны, модули пока что не юзаются; auto не помешает.
Часто тип очевиден, особенно для локальных переменных - там ауто не убьет читаемость. В шаблонном коде может пригодиться вывод, и при использовании анонимных типов тоже.
А что ты имеешь против шаблонов?
Не замедляет.
Не превращает.
Зато очень сильно повышает читаемость кода, упрощает внесение правок и уменьшает вероятность внесения ошибок в этот код.
Госпади, какой же 11 стандарт охуенный
>в двух тредах слушать два порта
Как там в 90х? Уже давно никто не использует воркер треды, везде асинхронщина. Кол-во тредов должно быть равно кол-ву ядер проца
В каком месте он неявно типизирован, уася? Тип остается явным, только выводится самим компилятором из контекста выражения.
Это и значит "неявный".
Я прекрасно это знаю, но нахуя это знание челику, который первые пакеты в своей жизни послать пытается
Да.
Это всё хуйня. Есть реальная проблема - JS.
Вот уважаемый человек из Интела, эксперт по плюсам, про раст вещает.
ФП грозилось убить С++? Бред.
Managed меньше раста похожи на плюсы.
"Я не изучал раст. Просто не хочу тратить время." - ну и лох.
Ни растом, ни D не пользовался, но изучать новые языки, особенно имеющие особенные вещи типо афинных типов - заебись, богоугодная фигня В D вроде были проблемы не только с дизайном языка (хотя там вроде был "опциональный" гц, короче тоже насрали), и как раз там были некоторые плюшки, которых нет в плюсах - рефлексия например. В расте много отличий от плюсов, почему он должен быть прямой заменой им? Многим нравится, орут же в интернетах про него. Но плюсы это легаси. И свои преимущества у них тоже есть.
Было бы ахуенно развитие плюсов увидеть, без легаси говна, дизайн с чистого листа с опытом предыдущих лет, полноценными и встроенными в язык с самого начала фичами типо концептов и меньшими заморочками с архитектурами африканских калькуляторов. Но для этого надо средств больше, чем есть у кого-либо из идейных наверное. Да и идеи у всех разные.
Тем временем в новый стандарт плюсов входят монадические операции над std::optional.
Ну чуть чуть долю рынка какую-то отнимет, не более. У раста нет ниши как таковой.
Хайлоад\Бэкенд - Го, системщина С\С++ (в расте это клоунада ЕХАЛ АНСЕЙФ ЧЕРЕЗ АНСЕЙФ), похуй на перф - жаба\электрон\шарп.
Все проекты на расте - это очередная криптопараша нахуй никому не нужная, и кусок этого несчастного двигла умирающей мозиллы.
В расте реально много интересных вещей придумано, но какой там хуевый синтаксис и ебанутое коммунити - короче вы поняли
Паршенцев Анатолий? Или Виктор Мустя? Или Сергей Кочубеев? Или Макс?
1920x1080, 1:18
Каким способом символы на терминал выводишь?
Идея такая: класс является обёрткой над тредом, где исполняется функция, переданная пользователем. Когда функция завершается, атомарная переменная класса меняет своё значение, что позволяет нам из другого треда дёргать try_join() и не блокироваться. Мне показался этот класс похожим на std::jthread (c++20)
Почему я тупо не detach'ул? Нужно знать момент, когда тред завершился. Почему не передавать сообщения типа i_died через очередь? Потому что тогда в каждом месте, где может завершится тред, нужно не забыть послать сообщение в очередь. Да и обнаружить дохлый тред раньше, чем считать все сообщения из очереди типа FIFO, тоже лучше. В общем, специфика приложения, где в тредах крутится код рабоыт с камерой машинного зрения и прочее.
Когда сделаешь что-то подобное https://www.youtube.com/watch?v=cYhZ7myXyyg вот тогда и приходи
Или может там надо что-то с std::move() сделать?
не будет
Возможно ошибусь, но эinitData возвращает rvalue, так что компилятор постарается переместить результат ret, а не копировать.
Сам догадается, см NVRO и copy elision.
Но осторожнее с объектами, у которых нетривиальные мув-присваивания и мув-конструкторы.
1. Язык должен быть интерпретируемым. Хороший язык не заставляет программиста ебаться с компиляторами и прочим ненужным говном, позволяя сфокусироваться на основной задаче — программировании (запиливание параши - программирование).
2. Нет никакой типизации. Максимально допустимая — как в перле. Как сказано выше, хороший язык позволяет программисту не отвлекаться на хуйню и заниматься непосредственно делом (программированием).
3. Язык не принуждает к определённой парадигме (как это делает, например, уёбищная жаба или ещё более уёбищный си). Можно писать как угодно, объявлять и вызывать что угодно и где угодно, при этом код будет работать - программисту виднее, как ему писать его парашу.
Исходя из вышесказанного, примерами хороших языков программирования можно считать, например, PHP и JS.
Это самые лучшие и востребованные языки из существующих на сегодняшний день. Сюда также можно отнести питон, если закрыть глаза на его своеобразность. Ещё менее хорошим примером является перл.
Примеры уёбищных языков программирования - Java, C#.
Говно для студентов, которым ебанутые преподы не разрешают писать на нормальных языках, потому что сами, являясь бухим патриотичным быдлом с семьями, детьми и виндовсом, их не знают. Для программирования как такового практически бесполезны.
Примеры говна, не имеющего отношения к программированию - C, C++.
Эталоны чистейшего говна. Мудаки, которые тратят свою жизнь на изучение этого омерзительного кала, никогда не запилят хорошую парашу и не попадут в правящую верхушку, так как их умения не имеют ничего общего с программированием и потому бесполезны. Такие опущи пьют мочу на всех парашах и умирают рядовыми анонимами (мочехлёбами), чего и заслуживают. Не будьте такими и учите хорошие и полезные языки.
Всякую дрисню типа хачкеля, несмотря на то, что истории известны примеры долбоёбов, пытавшихся на ней программировать, даже упоминать противно, так что не будем.
1. Язык должен быть интерпретируемым. Хороший язык не заставляет программиста ебаться с компиляторами и прочим ненужным говном, позволяя сфокусироваться на основной задаче — программировании (запиливание параши - программирование).
2. Нет никакой типизации. Максимально допустимая — как в перле. Как сказано выше, хороший язык позволяет программисту не отвлекаться на хуйню и заниматься непосредственно делом (программированием).
3. Язык не принуждает к определённой парадигме (как это делает, например, уёбищная жаба или ещё более уёбищный си). Можно писать как угодно, объявлять и вызывать что угодно и где угодно, при этом код будет работать - программисту виднее, как ему писать его парашу.
Исходя из вышесказанного, примерами хороших языков программирования можно считать, например, PHP и JS.
Это самые лучшие и востребованные языки из существующих на сегодняшний день. Сюда также можно отнести питон, если закрыть глаза на его своеобразность. Ещё менее хорошим примером является перл.
Примеры уёбищных языков программирования - Java, C#.
Говно для студентов, которым ебанутые преподы не разрешают писать на нормальных языках, потому что сами, являясь бухим патриотичным быдлом с семьями, детьми и виндовсом, их не знают. Для программирования как такового практически бесполезны.
Примеры говна, не имеющего отношения к программированию - C, C++.
Эталоны чистейшего говна. Мудаки, которые тратят свою жизнь на изучение этого омерзительного кала, никогда не запилят хорошую парашу и не попадут в правящую верхушку, так как их умения не имеют ничего общего с программированием и потому бесполезны. Такие опущи пьют мочу на всех парашах и умирают рядовыми анонимами (мочехлёбами), чего и заслуживают. Не будьте такими и учите хорошие и полезные языки.
Всякую дрисню типа хачкеля, несмотря на то, что истории известны примеры долбоёбов, пытавшихся на ней программировать, даже упоминать противно, так что не будем.
0\10 тупая толстота
Да вроде бы все хорошо
Крестоёбы умеют не тратить своё время на шитпостинг.
ну чтобы std::move
Copy elision или все-таки move elision? Функция же возвращает rvalue. Или const lvalue ref имеет приоритет перед rvalue ref в случае с чистым rvalue - все-таки copy elision?
>Язык должен быть интерпретируемым
нет. идеально чтобы он был в трех вариантах:
- транслируемый (чтобы нетрадиционно-ориентированные могли настроить под себя диалект)
- интерпретируемый во время разработки (чтобы ускорить эту разработку)
- компилируемый для билда (чтобы бесплатно оптимизировать)
> Нет никакой типизации.
сразу нахуй иди
- должна быть строгая типизация, и лучше с полным запретом неявного каста (да и явного тоже).
Современные языки оперируют объектами, а не интами и флоатами. Ты блядь собрался хранить кошку в переменной где до этого хранил собаку? Ты долбоеб?
динамическая типизация не дает нихуя кроме миллиона ошибок логики кода, которые хуй потом починишь
Только строгая типизация, которая сразу пробивает кирпичом в морду за любую попытку хранить в переменной что-то другое. И никак иначе
>Язык не принуждает к определённой парадигме
С++ уже такой и есть
Поговорил с копипастой
При нажатии кнопки заменить в строке char S1[20]="Сосна, ель, береза." слово "ель" на слово "река". Заменить в строке AnsiString S1="Дом, ель, поле." слово "ель" на слово "река". Преобразовать строку char *S1="Мороз и солнце" в строку AnsiString. Отобразить исходные данные и результаты в объектах типа TLabel
Жжошь XD
покеж код
Это довольное стандартное (VT340) но редко заимплеменчено
Буфферизация была?
Не стабилен, нет нормальных доков на стандартную библиотеку, Эндрю и ко. пока пилят свой компилятор. Так в принципе как замена чистых сей вполне ничего.
Ну Торвальдс их до ядра уже допустил, разрешил драйвера писать. Не нравится мне все это.
RVO да, NRVO нет
Нужны везде.
Это умение работать вместе с разной степени ебланами.
Потому что социоблядство сильно снижает твои личные трудозатраты на разработку и рисёрч за ту же пайку. Только так можно выйти на 300к/наносек, если ты у мамки обычный получился.
пришло время переустанавливать ...
Дак установлено же. Пик2
А какие гайды тебе нужны? Эксперементируй, вот самый простой алгоритм, который только что пришел в голову: Раскладываешь видео по кадрам, например, с помощью ffmpeg, затем парсишь картинку(кадр), алгоритмами получаешь полутоновое изображение, по уровню интенсивности присваиваешь каждому пикселю свой символ исходя из его яркости, выводишь это дело куда угодно.
Чем меньше значение интенсивности цвета у пикселя, тем меньше яркость у символа. Например, у символа "." самая низкая яркость, а у "@" самая высокая.
другой анон
У тебя сколько студий одновременно установленно? У меня были траблы, когда вместе стояла 2015, 2017, 2019. 2015ую удалил и всё стало ок
Там же на видео видно, что изображение рисуется одним и тем же символом. Скорее всего тупо 1 пиксель (или патч NxN) == 1 символ и сосноль имеет достаточную глубину палитры, чтобы выглядело не как говно.
Ни гистограмм ни свёрток изображений ни lookup table ни конвертации цветовых пространств в этой поделке скорее всего нету.
Только последняя. Всё снёс, переустановил заново, нихуя не поменялось.
а если проект соберёшь в Release, а не Debug?
>свои поделки из 70ых с собой забери
На "поделках" и технологиях 70-х весь мир крутится. Современные тупоголовые мрази не придумали нихуя нового в мире ИТ, кроме бесполезного говна в виде фреймворков для говнокодерства, чтобы корпы еще больше денег получали. Поэтому прояви уважение к дедам.
Возможно олды меня закидают говном за такое отношение к языку.
Как я понял, ты хочешь посмотреть кишки объекта?
По идее ты можешь найти его адрес, через std::addressof() (звёздочку можно и перегрузить) после чего скопировать через std::sizeof() куда надо и смотреть. Или использовать отладчик. Но по идее, к сожалению ты не скопируешь статические переменные, и таблицу виртуальных функций. Но для тривиальных объектов думаю должно сработать.
Какой то опыт программирования есть?
Если есть то надо просто основы хотя бы минимальные освоить с указателями, референсами и базой стандартной библиотеки
А потом какой нибудь опенгл иди читай
Да опыт по сути не особо большой, в основном на питоне работал, до питона немного java всякие простенькие проекты
в с++ для этого используют отладчики
к примеру метапрограммирование, обобщенное программирование, компонентное программирование все же позже 70х появилось
в 70е в академ среде ооп начали исследовать
молоденький просто, не понимает что в стране и в мире пиздец приходит программистишкам и надо хвататься за любую работку, набирать опыт и все такое, ибо уже скоро (сейчас) тебя будут выбирать из сотен таких же что за забором стоят
Значит придется полностью переустановить винду с форматированием диска, а потом по новой накатить студию.
Вообще нах она нужна сейчас, когда можно спокойно кодить под убунтой с gcc g++ gdb и CLion?
> под убунтой с gcc g++ gdb и CLion?
pro cxx есть, на 5к мемберов, но на самом деле хз как ты не нашел, гуглится за 2 минуты)
Плюсы и гейдев как-то немного ортогональны нынче. Только если движкоблядью или рендермехаником хочешь быть.
А если конкретно игры пилить, то плюсы нинужны. Используй фреймворки для создания гамез, а там тебе блупринты или сисярп пригодится скорее.
В остальном лучше сузить целевую область, чтобы понять куда копать. Можно начать с липмановского праймера по плюсам. В порядке свободного чтения просветиться game engine architecture последним, там в начале очень годный и при этом краткий обзор архитектурных основ числодробилок, памяти, работы параллельных вычислений.
> пользоваться палками-копалками, когда индустрия ушла на 50 лет вперед
За 50 лет редакторы кода перешли на электрон? Уважаемо.
Да. Да.
Он и не искал, ведь за него поискать можешь ты.
Почему шизоид? Может быть под шарп там реально годную инфраструктуру сделали, но во всем остальном мире принято пользоваться консолью, а не тыкать в ГУИ окно для выставления настроек.
Это не "Не принято" а "Нам лень делать удобно, пусть разрабы ебутся как могут, выбора у них всё равно нет".
{
printf("send error: %d\n", WSAGetLastError());
return 0;
}
Почему так работает а если изменить на
if (SOCKET_ERROR == (send(s, "hello", 22, 0))) то wireshark говорит tcp segment of a reassembled pdu
Объясните пожалуйста этот момент
>во всем остальном мире принято пользоваться консолью
Просто ни один разраб девтулзов кроме JB и MS не сделал нормального UI ни к одному своему продукту, вот и ответ.
Там, где есть нормальное UI - там резво все от соснольки отказываются.
У тебя переполнение буфера, и чудо, что твоя 23-байтная строка "hello" вообще отправляется.
Ты ещё спроси, в чём проблема послать нахуй сами плюсы, ведь либы и инфраструктура мгновенно переписываются на других языках.
>В чём проблема сделать отдельную ветвь плюсов и там послать нахуй обратную совместимость? За сем учебы уже столько хуйни наслушался которую только из за совместимости оставляют. Неужели кому то жизненно важно перекатывать проект с c++03 на c++23? В чем логика оставлять тогда столько проблем?
Эта отдельная ветвь сразу же сдыхает без пользователей. Конец.
С++ про долгоживущее легаси нынче в основной массе, которое как раз не будет поддерживаться в этой новой "ветви"
Контестики не чем то кроме плюсов не попишешь((
Окей. Ну вообще я бы что то серьезное только на плюсах и писал бы. И был бы только рад, если бы плюсы очистились.
*Почти всё. ВСе таки есть исключения, конечно
С++23 и без легаси богатый возможностями язык
>>265109
> Эта отдельная ветвь сразу же сдыхает без пользователей
Она, конечно, не будет так же поддерживаться, но это не значит, что ей совершенно не будут пользоваться. Новые проекты на чем пилят? С++ без легаси и есть новый ЯП. ЯП создают много, только у каждого свое видение, но нет хорошего развития чего-то схожего с плюсами в плане шаблонов итп.
Я писал на плюсах 5 лет в прод, и еще 2 года по фану.
Так вот - в данный конкретный момент, я бы на плюсах не писал вообще ничего, кроме лютейшей системщины и софта, где нужна реальная скорость.
Шарп, го - писать проще и быстрее, результат такой же. Все новые проекты я нынче начинаю на шарпе. Мы долго думали над переписыванием всего нашего софта на шарп, кроме пары кусков, где С++ реально нужен. Так вот - все за, даже шеф. Но мы просто полгода-год не найдем времени.
до сих пор передергивает когда вспоминаю как работать с программами из нескольких файлов, как дефайны интересно работают иногда, всякие const int&y =10 и еще кучу кучу всего. Последнее еще норм, просто на мой взгляд это лишние случаи для запоминания и это нахуй не надо.
> const int&y =10
тут не просто норм, в том же шарпе вместо явного указания ссылка/нет надо помнить является ли тип ссылочным (хотя я так понимаю есть local ref но это явно не легче запомнить чем const&), аналога const там тупо нет.
>>265122
> го - писать проще и быстрее
Это в языке то без генериков (или уже в проде они появились)?
Не знаю, я на го не писал, но пара коллег очень хвалит. Я по шарпу больше.
Вторым аргументом send ты передаёшь буфер (массив) байтов, которые хочешь отправить, третьим - сколько первых байтов из начала буфера отправлять. Строка "hello" хранится в буфере, для которого выделено 6 байтов, и то, что в памяти может оказаться дальше неё, использовать нельзя, даже читать нельзя, будет undefined behavior. Но send() ничего об этом не знает и знать не может и тупо идёт дальше.
По твоему взять ссылку на rvalue это неплохая идея? На мой взгляд это очень странно и не правильно на уровне идеи ссылки. Для таких штук в плюсах есть int&&
Я думал речь о синтаксисе записи типов. А так, ну присваивать литерал const& я не знаю зачем понадобиться может. Не думаю что и в int&& литерал класть имеет смысл.
Ну я просто привел пример где правила о rvalue и lvalue косо работают ибо наследие. Заметь, int& y=10 не компилируется.
Работают, как и везде. Проверено.
потому-что не понятно насколько сдвиг делать.
в вижуал студии это как расширение - сдвигает на 1 байт
Просто & дало бы менять литерал, это странно, и добавило бы сложности оптимизатору?(с инлайнингом). если сделать чтобы только rvalue ссылка могла держать литералы, то пришлось бы пилить либо по 2^n функций с вариантами аргументов const& или && (чтобы принимать и lvalue и rvalue, там где не нужно копировать и изменять), либо везде делать шаблоны. И вообще && для move'ов, не чтобы хранить.
Инкрементировал int⚹ - прибавилось 4
Инкрементировал short⚹ - прибавилось 2
Инкрементировал char⚹ - прибавилось 1
А к воиду сколько прибавлять? Тип не известен, и может быть как инт, так short или char.
Все равно не работает, что я делаю не так?
if (SOCKET_ERROR == (send(s, "hello", 6, 0)))
{
printf("send error: %d\n", WSAGetLastError());
return 0;
}
- 55894 → 80 [PSH, ACK] Seq=1 Ack=1 Win=65700 Len=6 [TCP segment of a reassembled PDU]
TCP payload (6 bytes)
>Это не "Не принято" а "Нам лень делать удобно, пусть разрабы ебутся как могут, выбора у них всё равно нет".
Некоторые ебутся даже когда есть выбор.
Например >>264229 ебётся с подключением стандартных заголовочных файлов, хотя на нормальных платформах всё просто работает.
ЗАЧЕМ МНЕ VIM VSCODE+G++, ГДЕ МОЖНО СКОМПИЛИТЬ И ЗАПУСТИТЬ ОДНОФАЙЛОВУЮ ПРОГУ ОДНИМ СОЧЕТАНИЕМ КЛАВИШ, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЕБАТЬСЯ С ЛИНУКСОМ, Я ЛУЧШЕ ПОЛАЗАЮ ВЕСЬ ДЕНЬ ПО C:\PROGRAM FILES(X86)\… И НАСТРОЙКАМ СТУДИИ
ОШИБКА CANNOT OPEN INCLUDE FILE. ЭТО ЖЕ ОЧЕВИДНО КАК ЕЁ РЕШИТЬ
ПРИШЛО ВРЕМЯ ОТКРЫВАТЬ C:\PROGRAM FILES(X86)\… И ИСКАТЬ ЗАГОЛОВОЧНЫЕ ФАЙЛЫ
ККОКОКОКОКОКОКО
ЖМУ/ПИНУС, ШВАБОДКА, ПИТУХИ,
КОКОКОКОКОКОКО
Тоже дерьмо какое-то с 2022 было когда накатывал на новый комп, хорошо что у меня еще установщик с 19 сохранился, снес её к хуям и поставил православную версию для белых людей
У меня стоит clang12 чтобы я мог компилировать через консольку, но я хочу и дебажить еще удобно. Что поставить к нему в дополнение?
Перфокарты с иголочкой
gdb. Еще сделай удобный доступ к санитайзерам и стат анализу как вот тут https://github.com/cpp-best-practices/cpp_starter_project. Ну и valgrind используй. Я таким образом из консоли вылажу только в kcachefrind на профилирование смотреть
Столкнулся с тем что надо много кода написать. При этом он довольно однороден. Cлышал от преподов выражение - "писать ручками". Хочу смочь в генерацию. Подскажите гайд пожалуйста.
гугли xmacro
>Новые проекты на чем пилят?
В большинстве своем не на С++.
На С++ пишут системщину, графику, тулзы для инфобеза. Естественно такие проекты сейчас никто с нуля не стартует, не то время, да и смысла в этом нет. Все поддерживают и развивают старые продукты.
Если ты сломаешь обратную совместимость на С++, то новыми версиями просто никто не будет пользоваться.
Новые проекты постоянно стартуют в вебе и мобилках, реже в энтерпрайзе. Там везде go/js/python/kotlin/java. Там поломать совместимость можно, питон это не убило например.
>>265113
define "серьезное".
Да, такие ветви обычно новыми языками называются
В большинстве не на плюсах, не сомневаюсь. Я как раз про то, что находится место и для других языков, и с++ хорош не только для легаси. D, Rust есть. Разве они лучше плюсов во всем, кроме легаси?
Я решил vs code и clang++ поставить. Полет нормальный.
Я думал -std=c++17 поможет, но нет.
cout << "name?\n";
string first_name = "???";
int age = -1;
cin >> first_name >> age;
cout << "privet " << first_name << " " << age << "\n";
return 0;
}
По какой причине неправильном вводе переменной age, выводится "0" вместо указанного "-1"?
1280x720, 0:24
ну он конечно мудак но я вот например смотрю его в рекреационных целях. Ну знаете, говорит спокойно, без претенциозности, на фоне играет не напрягающая музычка. Похожий аффект я также получаю от бесконечного пересмотра сцены из зеленого слоника где начальник заставляет братишку чистить говно. С одной стороны ситуации противоположные и вы можете сказать что я шизофреник. Тогда рекомендую вам послушать как он рассказывает что софт-скиллы это наше все и если ты неприятный человек работать с таким отбросом никто не захочетчитай вон из профессии иди говно вилкой чистить. Вот тут мы внезапно выясняем кто из нас странный
Дан он вообще не программист, открыл школу для вкатышей и перестал изучать что-либо. Нахуй его слушать.
>питон это не убило
чуть не убило - пофиксил тебя.
До сих пор, спустя десятилетие после релиза, несовместимость 2.7 и 3.х продолжает иногда приносить анальную боль. Боюсь даже представить, какой бугурт был среди питухонщиков в год выхода..
ОЙ ОШИБКА SyntaxError at govno.py:1488
ЭТО ЖЕ ОЧЕВИДНО ЧТО НУЖНО ДЕЛАТЬ
ПРИШЛО ВРЕМЯ ОБНОВЛЯТЬ ПИТУХОН
Так а по факту же, если он писал на плюсах энтерпрайз а потом перешел на джаву, то это же и впрямь кайф
Да, в жабе (да и много где ещё) под ссылками понимают совсем не то, что в плюсах.
Ссылки в жабе это фактически shared_ptr. Не константный и передаваемый по значению во все методы.
Ну он особыми талантами не одарён, да и долгое веслание на галере приводит к такому мировоззрению.
К какому мировоззрению? Тебе кто угодно скажет, что плюсы переусложнены до такой степени что даже некоторые компании пишут какие инструменты использовать а какие нет. Или ты с этим спорить станешь?
Я надеюсь это не твой код, ибо это пиздец.
Алсо:
std::unique_ptr may be constructed for an incomplete type T, such as to facilitate the use as a handle in the pImpl idiom. If the default deleter is used, T must be complete at the point in code where the deleter is invoked, which happens in the destructor, move assignment operator, and reset member function of std::unique_ptr.
Время Qt уже фактически ушло. Это хороший пример для изучения того, как на cpp можно написать удобный и гибкий sdk/конструктор (с шаблонами, паттернами и прочими архитектурными/ инженерными решениями). Но не более того. На данный момент это либо легаси (часто энтерпрайз), либо инфобез / десктоп для госконтор, иногда embedded для аналоговнетов. В очень редких случаях годнота для automotive или мобилок.
К тому, что пока ты пишешь код, у тебя параллельно меняются проектные условия/сам проект/команда/ответственное лицо заказчика и ещё небо и даже аллах. Ещё галеры любят легаси энтерпрайз, хуже которого на cpp ничего нету. Поэтому, чем проще хуярить код и меньше шансов огрести segfault, тем легче веслать, ибо и так стресса хватает.
Как это не грустно - но электрон
Шарпы (уже разные кроссплатформенные гуи-библиотеки), взаимодействие с нативным кодом через C++/CLI или P/Invoke.
У этих "кроссплатформенных" шарпов, нормально работающих только через вайн, ещё меньше пользователей, чем у дельфи, что там Qt.
Так в чем укор то челу? Ты пишешь так будто он не прав в чем-то. Ну да писать энтерпрайз на плюсах это очень и очень хуевая затея. В чем претензия то чувачку? Это по мне банальная адекватность. Плюсы как инструмент это либо гейдев либо написания либ, нахуя я его тянуть туда, где он не нужен?
Да шарпы не кроссплатформенные, это так, хуйня какая-то
Там по-разному. Если мобилки, то cpp цепляется библиотеками к Java/Kotlin через jni или ndk. Если эмбед, то там cpp это либо rest сервисы, либо сервисы с очередями сообщений типа MQTT (фактически микросервисная архитектура, иногда обёрнутая в .NetCore). UI - вёб на JS под управлением nginx (иногда на железке, иногда - нет). Если легковесный десктоп, то electron. Если тяжёлый (всякие редакторы видео/аудио/графики), то .Net, реже Qt.
Чел обычный стареющий кодер, отходящий от дел, который просто хочет работать работу и получать нормальную зарплату (ковыряет легаси говнецо, ляпает круды и менторит июней). В технологиях разбирается достаточно поверхностно, да и в силу возраста уже не хочет. Поэтому я бы слушал его мнение вполуха - как назидание младшим поколениям.
Не понимаю как это связано с тем что плюсы говно в его области. Ты зачем этот видос скинул и обосрал чела? Хочешь сказать что с того момента как он забил на изучение новых технологий, новые старые плюсы выстрелили в тырпрайзе а он и не в курсе потому что старый осёл?
Сейчас всё вокруг распределённое и люто динамичное с данными в облаках, оркестраторами управляющими пулами сервисов, непрерывными деплоями всего и вся. Ещё и зоопарк зело умных устройств, который выдавливает традиционный x64 десктоп. Qt ещё как-то можно впихнуть через QML, но зачем, если есть JS, который поддерживается всеми браузерами на всех устройствах из коробки? Тонкие web клиенты и SaaS - это настоящее, а многооконные тяжеловесные софтины - это прошлое.
Хуй знает, вот чисто бытовой пример, конвертнуть что-то действительно можно закинуть в браузер и скачать обратно или каким-то легким сервисом попользоваться единожды, но вот когда начинаешь открывать в браузере какие-нибудь гугл докс то бля это такая блевотина, да, посмотреть их можно в браузере, но работать как-то адекватно с ними можно только на десктопе, и лично моё мнение это еще долго будет неизменным
мимо
Ты уже в цикл вошёл.
Видео не моё. Чел имеется в достаточном количестве на тытрубе и говорит довольно банальные вещи и часто плавает, когда доходит до технических подробностей. Попутно рекламирует свои курсы за шекели. только не очень понятно чему он с такими познаниями может научить.
Про enterprise и java я уже написал. Покрути вверх.
>>266209
Немчинский обычный инфоцыганин, в последний раз он кодил довольно давно - лет 10-15 назад, если не больше, сейчас ему уже около 50 лет, и он владелец школы для вкатунов в айти. Сам кстати ничему не учит - там другие люди преподают и менторят, емнип, он просто рекламой на ютубе занимается.
все равно лучше чем код писать когда тебе за 50
Гугл докс вполне годнота для небольших документов, таблиц и презентаций.
Если у тебя тяжелый вордовский документ, то конечно лучше поставить нормальный десктопный офис. Правда он один хуй начинает лагать, если в тексте много математических формул и объем документа больше 50 страниц, но похуй.
Да кал, единственное его удобство это предварительно глянуть че там тебе скинули чтоб на комп всякий мусор не качать и всё.
А выстрелил он потому что куча быдлоламеров не могут осилить активацию или скачать его из интернетов ибо майки максимально усложнили эту процедуру. Писать что-то в доки с серьезным ебалом или вообще в них работать я даже хз как, особенно в экселе, там вообще жопа полная, в доке еще куда никак пойдет
Для внутреннего закрытого/режимного документооборота - десктоп предпочтительнее. Но он тебя вяжет к рабочему месту / платформе / количеству и стоимости лицензий. А ты работаешь удалённо и обсуждаешь рабочие вопросы - то в кафе, то в метро, то - сидя на сортире.
Обратный пример - VSCode. Те же документы, но разметка попроще. На нем педалит куча народу. Вполне соответствует духу времени - написан на JS/TS/Electron, полностью модульный с набором сервисов под разные конфигурации проектов.
Вообще свайпить проектную документацию, сидя на сортире, это реально киллер фича.
>Как на линухе удобно прогать
хоть чуть чуть приблизились к удобству студии? Или все так же костылите из говна и плагинов что-то подобное?
>Время Qt уже фактически ушло
Ахахаха, что еще спизданешь?
>На данный момент это либо легаси (часто энтерпрайз), либо инфобез / десктоп для госконтор, иногда embedded для аналоговнетов.
Прямо сейчас у меня два проекта на Qt
Так я до этого на студии и прогал. Сейчас на линуксе удобнее, потому что куча инструментов проще настраивается и проще работает. В начале надо было немного поебаться, чтобы понять как все настраивается, а потом все проще чем в vs
Опять же, это лично для меня и конкретно для моих условий работы с кодом.
>Ктшники есть? Что можете сказать про свой стек?
Говнякаю приложухи для работы с железом, которое выпускает контора.
Обычно это сервис, который собирает данные с железа, кладёт их в БДшку + клиентская программа, которая подключается к сервису и отображает состояние железа, позволяет посмотреть всякие события, отчётики погенерировать.
Элементарная хуйня, не требующая напряжения ума (кроме продумывания "архитектуры", чтобы модифицировать было попроще).
>Прямо сейчас у меня два проекта на Qt
Однако если заглянуть на hh.ru, то внезапно обнаружится, что связка c++/JS встречается намного чаще, чем c++/Qt. Если ещё фильтрануть по конторам и добавить c++/wpf/spring, то может сразу наступить 5. Принятие.
что почитать, может какие-то курсы на udemy/etc есть? хоть ключевые слова подскажите.
а то поиском пользоваться нереально, все забито инфой для блоггеров, которые сами не могут разобраться как запустить ютуб или твитч стрим =(
>Однако если заглянуть на hh.ru, то внезапно обнаружится, что связка c++/JS встречается намного чаще, чем c++/Qt. Если ещё фильтрануть по конторам и добавить c++/wpf/spring, то может сразу наступить 5. Принятие.
Ахаха, смешать языки и фреймворки - сразу видна полуёбка.
Вот тебе нормальная статистика с апворка. Будешь продолжать что-то пиздеть про "намного чаще"?
>а кто работает с low latency видео-стримингом?
>что почитать, может какие-то курсы на udemy/etc есть? хоть ключевые слова подскажите.
RTP, SIP, WebRTC, HLS, MPEG-DASH, GStreamer
Есть CLion с поддержкой cmake и gdb. Этого более чем достаточно.
по сравнению с растом дохуй
у них там пока что всё очень грустно, только в блокчейн вкатываться
в остальных случаях единичные вакансии
Ну разве что помидору в легаси кале копаться? Такой работы действительно дохуя, точнее предложение спросом не компенсируется
Нет.
>Ахаха, смешать языки и фреймворки - сразу видна полуёбка.
Ебать ты тупой. Для JS кроме electron ещё как минимум react, vue, angular. Переделывай картиночки свои.
Очищенная статистика указывает, что на Qt пилится менее 25% c++ проектов с UI.
Это всего лишь означает, что Qt перестали совать в каждую дырку и оставили там, где он действительно нужен. Но не говорит о том, что время Qt якобы ушло.
Qt тоже использует JS, долбоеб. Хочешь сравнивать фреймворки - сравнивай кют с электроном и тд.
Нет инфраструктуры, мало учебных материалов, многие проблемы не гуглятся, заявленные преимущества сомнительны.
Что значит с другой стороны?
Какие проблемы у тебя будут с плюсами если начнешь учить раст или что?
Так или иначе, от простого изучения языка ничего с тобой не случиться
>Насколько сложно читать сорцы
намного легче чем в плюсах
+ доки в большинстве свое сами генерятся
> Вместо плюсов, как замена плюсам, не для работы
Тогда вполне себе хорошо, средства разработки уж точно удобнее, все еще жду когда в плюсах хоть какой аналог cargo запилят
Ну разрабатывать на них намного легче чем на плюсах пока не будешь графовые структуры писать и тебе бороучекер хребет не сломает
Ок, спб.
Это ойти, манюнь. Изучаешь - несколько лет пользуешь - перекатываешься. Я укатил с Qt ещё 5 лет назад.
Nyet. Фуллстек жеж.
Ага, геймдев
QT, QCustomPlot
Имею 12 объектов QCustomPlot по 4 графика на каждом.
Аналогичный код https://www.qcustomplot.com/index.php/demos/realtimedatademo
Графики я отрисовываю по таймеру с частотой 30мс. И все хорошо работает, кроме того, что эта падла жрет ~30мб в час.
Тестирование с помощью visual Leak Detector говорит, что утечек нет.
Дальнейшими умозаключениями я пришел к тому что это AddData ссылка выше( ui->customPlot->graph(0)->addData(key, qSin(key)+qrand()/(double)RAND_MAX1qSin(key/0.3843));)
Так и оказалось AddData складывает данные для рисования точки в QCPGraphDataContainer, а потом я перерисовываю все replot()' ом.
Вывожу Plot->graph(i)->data()->size() и вижу как размер растет для каждого graph(), в итоге софтина разжирается и все нахер падает через n-ое количество часов.
Я сделал очистку Plot->graph(i)->data()->clear(), если размер > 500.
Все хорошо работает, память не жрет, но clear() обнуляет QCPDataContainer, мои данные херятся и replot() начинает отрисовывать заного.
Как сделать так, чтобы DataContainer не переполнялся?.
Например за час DataContaner накопит 1210^5 точек для отрисовки, которые отрисовывает в реальном времени с помощью replot().
Видится мне, что нужно чтобы replot отрисовал все 1210^5, после чего очистить QCPDataContainer, снова начать набирать данные в Container и отрисовывать их replot()'ом, но так чтобы он не очистил с графика предыдущие 12*10^5 точек.
Возможно ли это сделать, верный ли подход? Как-то же работают существующие софтины с графиками реального времени. Да еще и хранят большие архивы.
12*10^5 конечно-же
аргумент типа wchar_t несовместим с параметром типа LPWSTR
Как ему указатель массив скормить?
почему то не вставилось нормально
Пилю всякие адовые бекенды, которые одним краем держатся на in-house легаси либах да таких, что обои отклеиваются; а другим краем на модных молодежных ништяках типа v8 и protobuf. Сфера телекомов и всего что около.
Тоскливенько, честно говоря. Работы много, начинаешь закисать, тк ресурса долбить код ещё и после работы не хватает. А куда успешно перекатиться нипанятна. Хотелось бы что-то с визуалкой ковырять: матрички поумножать, тексели поинтерполировать, но не гейдев. Останавливает потеря в шекелях при смене сферы деятельности и отсутствие значимого релевантного опыта.
Впервые вижу выражение анекдота про русского и стальные шары в виде кода.
Минута в Гугле показала что там есть функция для удаления данных. При переполнении удаляй с начала столько же сколько добавил в конец, вроде очевидно.
Мне эстетически неприятно от лишней всратой папки в корне диска, с учётом того, что там почти нихуя нет. Как их поставить?
симлинки - mklink /D из под админа
Ну хз. Мне она нагадила своим сдк в виде Windows Kits прям в корень. Видимо, потому что установка кастомная
Я работал на проекте машинного зрения. opencv/c++/python/tensorflow. Работал камерами машинного зрения, ip-камерами и радаром допплера. Проект был крутой. Я на нём была почти 4 года. Но проект закончился. Теперь сижу в телекоме на ебучм легасе, закисаю. Хотелось бы снвоа попасть в такую движуху.
>Как вкатился, что делает контора?
Пришёл в самом начале проекта УЖе имея пару лет опыта С/С++. Контора системный интегратор - много разных направлений.
>Когнитив? Вокорд? Или ещё что-то более мелкое?
Контора не мелкая, но компвижн для неё тема относительно новая и не является основным источником дохода
Куда уж мельче то (тот же вокорд хуявей купил частично и штат схлопнулся до минималки)?
> Контора не мелкая, но компвижн для неё тема относительно новая
Понял тебя. Я просто на радар так среагировал. У нас в отделе мы занимаемся рисерчем радарных алгоритмов. Поэтому мы довольно пристально за когнитивом следили ну и про вокорд наслышаны были
>>268111
Ну да. Потому и наслышан про вокорд. К нам в отдел одного оттуда и занесло.
Радар точнее определяет скорость, чем оптический метод (плюс он проще сертифицируется), поэтому они его к камере цепляют. Но вся магия трекинга делается через оптику, хотя и радарные данные тоже учитываются. В общем можете не следить.
Мы следим исключительно за кадрами. Технической экспертизы у нас у самих хватает.
А ожидал такой вопрос. Причин несколько.
- Китайцы хотят больше людей в подчинении
- Задачи у нас специфические, поэтому, скорее, интересуют люди, которые хоть косвенно, но эти задачи прощупывали.
Да и не ищу я на дваче кадры, лол да я там и не работаю с января, если честно Просто интересно было бы пообщаться с коллегой здесь.
Ну мы тоже больше не работаем в указанных конторах, так что не коллеги мы тебе мальчик-хрюша.
> мальчик-хрюша
Вот зачем оскорблять? Я рисерчер. Просто наши hr-ы бездари. И не могут кадры находить. Даже по ключевым словам у них херово получается. Приходилось все самому делать.
>Понял тебя.
Тебе тут за меня нагрубили и наотвечали.
У нас былк комплекс фвф. Радарный. Но потом мы поняли, что радар тоже не панацея. И есть даже конторы, которые радар используют только для автоматической юстировки картинки (проставление каждому пикселю значения декартовых координат), а потом нахер радар не используют. Мы использовали радар smartmicro, они хороши. Но они могли давать ложные цели, например, вести машину и верхгюю точку её колеса. Или, путать близкоедущие цели. В общем, много разных приколов. Впрочем, меня уволили оттуда в мае месяце.
>радарных алгоритмов
Поясни.
>да я там и не работаю с января, если честно
А где щас работаешь?
>за меня
за тебя тут ничего не делали
>автоматической юстировки
Калибровка радаром не делается. Проекционные матрицы считаются по обнаруженным и классифицированным объектам (допустим по размерам номеров в разных частях кадров).
>Но потом мы поняли, что радар тоже не панацея
За 4 года, кек?
>нахер радар не используют
Если объекты слишком быстро перемещаются, то оптика не вывозит и радар необходим. Так что используют.
>Калибровка радаром не делается
У всех по-разному
>За 4 года, кек?
За три с половиной. Когда у нас купили 40 комплексов, мы только тогда столкнулись с массовыми глюками радара.
>Если объекты слишком быстро перемещаются
Брехня. Куча комплексов до 305 км/ч по кадрам чисто считают.
Потому что надо поддерживать 100500 платформ, компиляторов, систем сборки, способов подключения либ и прочего говна, а сообщество и язык разрозненное и шизанутое.
> Но потом мы поняли, что радар тоже не панацея
Ну да. У него разрешение такое себе. Разве что sar или радар с бешенным количеством MIMO приемопередатчиков (как у Arbe).
> и верхгюю точку её колеса
О да! Знакомая история. Верхняя точка колеса улетает в допплере и ее cfar очень любит выделять в отдельный объект. Мы с этим вроде как боролись.
> путать близкоедущие цели
Проблемма ассоциации трекинга. Я с этим сталкивался в своей задаче. Но цели решить эту проблему не было (да и большой вопрос, решаема ли эта проблема)
> Поясни.
Вся цепочка низкоуровневой обработки вплоть до фильтров трекинга (2d fft, cfar, doa/beamforming) и ее математическая оптимизация.
> А где щас работаешь?
В интел пошел вот теперь. Потому вот стал тусить в cpp треде.
>>268240
> Калибровка радаром не делается.
Справедливости ради, можно сделать и радаром, если ты доверяешь ему как измерителю.
> Проекционные матрицы считаются по обнаруженным и классифицированным объектам
Всегда думал, что camera matrix должна считаться в лаборатории по шахматному паттерну (ну или любому подходящему), а в процессе эксплуатации она может незначительно корректироваться в рамках какого-нибудь slam-алгоритма (хотя эту возможность только в теории описывают, а в реальных прототипах я этого не встречал)
>>268272
> Брехня. Куча комплексов до 305 км/ч по кадрам чисто считают.
Разве что если длиннофокусники и направленные вдоль дороги.
>В интел пошел вот теперь
Я в интеле раньше работал. Когда совсем зелёным был. Не поделишься, сколько зп и что сейчас там спрашивают на интервью? Сложно было попасть?
>по шахматному паттерну
Это вроде больше как для искажений нужно. А projection matrix вот уже можно радаром посчитать.
>длиннофокусники и направленные вдоль дороги.
Вот нюансы не знаю. Но лично ездил сертифицировать наш комплекс и общался с людьми (с Олегом), который их ездит тестирует и типа знает. Да что там говорить. Для дебега на нашем комплексе без всяких заумностей и поправок на высоту номера над дорогой, покадровая скорость не отличалась от радарной часто, если тряски не было.
>Вся цепочка низкоуровневой обработки вплоть до фильтров трекинга (2d fft, cfar, doa/beamforming) и ее математическая оптимизация.
Вы радары что ли производили?
Да я и пердолюсь, но у меня ошибка вылезает, которой нет в доках и в интернете, надо репортить но я никогда таким не занимался и мне страшно
> Не поделишься, сколько зп и что сейчас там спрашивают на интервью? Сложно было попасть?
Интервью было довольно странным и многочисленным. Мне подбирали, скорее, то место, куда я подойду. Но отказов при этом я успел штуки 4 получить. На интервью была простая задачка по алгоритмике с дальнейшим обсуждением, как инстанцировпть шаблоны и можно ли как-то еще ограничить типы данных шаблона. По матану поговорили о матрицах, решении уравнений и по базовым алгоритмам машинного обучения.
> Это вроде больше как для искажений нужно. А projection matrix вот уже можно радаром посчитать.
Шахматкой, конечно, и дисторсии, и camera matrix считается. Но изначально алгоритм разрабатывался исключительно для оценки camera matrix. Радаром ты не посчитаешь camera matrix до тех пор пока не выяснишь SE3 преобразование (смещение и поворот) из системы камеры в систему радара. А эту калибровку можно провести только с откалиброванной по интринсикам камерой.
> Вот нюансы не знаю.
Мы, скорей всего, немного в разных терминологиях общаемся. Я раньше работал с беспилотными тачками, обвешанными сенсорами, включая камеры и радары (меня даже техлидом брали на sensor fusion недавно, но я выбрал интел).
> Вы радары что ли производили?
Да, хуавей врывается в автомобильные сенсоры (это уже даже не корпоративный секрет - ви новостях писали). Мы работали по адгоритмике. Нам присылали данные, мы думали, как их обработать.
> по шахматному паттерну
А зачем? Есть ручная калибровка - прям на живом видео стриме указывают точки и расстояние между ними в метрах. Или автоматическая - матрица периодически пересчитывается по накопленным данным (камера со временем сползает по столбу или закреплена на чём-то, что движется). Но там есть и калибровки с математикой на всяких свёртках и гауссианах - для выставления диафрагмы и фокуса (опять же на статистике по световому потоку и гистограммах).
>Разве что если длиннофокусники и направленные вдоль дороги.
Не, у тебя резко вырастет количество одновременно отслеживаемых объектов и частота их взаимного перекрытия. Плюс более высокое разрешение. Производительность начнёт падать в пол.
300 км/ч это магическое маркетинговое число. Оптические данные для таких скоростей обычно имеют низкий коэффициент достоверности и не могут быть использованы, допустим, в суде.
> А зачем? Есть ручная калибровка - прям на живом видео стриме указывают точки и расстояние между ними в метрах.
Для целей фиксации этого может быть достаточно. Для автономного вождения нужна точность калибровки до хотя бы 0.2 пикселя (это практически предел точности).
>А зачем?
У объектива есть искажения. И если по центру изображение твои преобразования будут точными, то ближе к краям уже резко возрастает погрешность. В общем, я думаю, у комплексов есть свои достоинства и недостаки.
>Не, у тебя резко вырастет количество одновременно отслеживаемых объектов
У нас было 22.7 фрейма в секунду на intel core i7 (вроде) и ещё оставляся запас. В целом, могли вести по 5 машин без проёба кадров.
>300 км/ч это магическое маркетинговое число. Оптические данные для таких скоростей обычно имеют низкий коэффициент достоверности и не могут быть использованы, допустим, в суде.
Не могу целиком комментировать ремарку, но ребята из Вниифтри нанимают специальных водил и на дмитровском полигоне (или ещё где) тестируют такие скорости.
>У нас было 22.7 фрейма в секунду на intel core i7
>5 машин
Где-то в подворотне можно поставить, но на московских перекрёстках система ляжет. У того же вокорда камера с embed железкой внутри справляется лучше, не проседая ниже 16fps.
>но на московских перекрёстках система ляжет.
У нас комплекс скоростник. Там 5 целей за глаза. Тем более, я не говорил, что это максимум. Да и не работаю я там больше. Проект закрыли.
>У объектива есть искажения
Эти искажения учитываются и рассчитываются отдельно - один раз для каждой железки. Они постоянные. А вот наблюдаемая сцена меняется во время эксплуатации , а вместе с ней проекционная и модельно-видовая матрицы.
>Эти искажения учитываются и рассчитываются отдельно - один раз для каждой железки. Они постоянные. А вот наблюдаемая сцена меняется во время эксплуатации , а вместе с ней проекционная и модельно-видовая матрицы.
Так я то и говорю. Искажения на производстве считаешь. А projection matrix на объекте. Мы её высчитывали с помозью радара: сопоставляли видео треки и радарные треки
В целом можно. Монокулярный slam нормально работает. Немного дрифтит, но на больших расстояниях а ещё не реконструирует движущиеся объекты, но не будем о грустном. Ещё можно попробовать нейронку реконструирующую прикрутить, которая по одному кадру оценивает карту глубин.
>>268344
> projection matrix
Уточни, что это за матрица. Есть camera intrinsic parameters (модель искажений и camera matrix), а есть extrinsic parameters (положение камеры в пространстве). Чтобы получить из трехмерных координат гомогенные (координаты пикселя), нужно помножить координаты на экстринсики, а потом ещё на camera matrix. Я так понимаю, под projection ты понимаешь вот это произведение двух матриц?
>Уточни
Я только вот эту применял. Искажения не успел ввести, т.к. проект закрыли, ибо продали только 40 штук, да ещё пару факторов сложилось.
А, ну тогда в целом можно, но точность будет слабоватая (хотя, может, и достаточная)
Только тогда почему ты здесь >>268341 пишешь
> сцена меняется во время эксплуатации , а вместе с ней проекционная
Она вообще константа и меняется только при изменении параметров оптики.
А вот
> модельно-видовая
если я опять же правильно понимаю, что это, может меняться из-за люфта крепления камеры хотя бы.
>Только тогда почему ты здесь
Это не я пишу. Но чел имеет в виду, что крепление камеры может съезжать типа. А так для каждого объектива (и, наверное, сенсора), искажения свои, которые нужно высчитывать один раз. Хотя не помню, влияет ли на эти искажения фокус и диафграгма.
>Только тогда почему ты здесь
А, нет. Он имеет в виду, что железка имеет постоянные искажения, но на каждом объекте projection matrix своя будет. Но это он уже капитанит.
> но на каждом объекте projection matrix своя будет. Но это он уже капитанит.
Не понял. Camera matrix зависит только от параметров оптики, а не от сцены. Вот extrinsics от сцены, естественно, зависят.
А разве camera matrix и projection matrix не одно и то же?
https://en.wikipedia.org/wiki/Camera_matrix
In computer vision a camera matrix or (camera) projection matrix is a {\displaystyle 3\times 4}3\times 4 matrix which describes the mapping of a pinhole camera from 3D points in the world to 2D points in an image.
Одно и то же. В эту матрицу входят 5 параметров: два фокуса, координаты оптического центра и ещё один коэффициент, который skew называется. Никаких противоречий с определением нет. Там используется система координат, связанная с оптическим центром камеры. Другое дело, что в реальном мире так делать неудобно и мы работаем с точками в другой системе координат. Вот матрица перехода из системы сцены в систему камеры может меняться из-за сползания штатива.
Объектив у камеры оснащён приводами и может менять фокус и делать зум-зум - проекционная матрица меняется. Камера может перемещаться в пространстве - либо из-за люфта, либо на своих приводах, либо её перевесили - меняется модельно-видовая матрица. И только матрица, описывающая искажение линзы - величина постоянная и считается по техническим параметрам конкретной модели объектива.
>которая по одному кадру оценивает карту глубин
Ерунда получится. Для нормального позиционирования нужно 2 камеры.
>гомогенные (координаты пикселя)
Нет, 2d в декартовых координатах, а вот 3d - в гомогенных (декартово + 1), как раз для задания проекционных матриц и матричных преобразований.
Тебе же уже написали. Пришло время переустанавливать Шindoшs
При установке не детектит компилятор мсвцшный, надо руками всё писать в конфиги конана
> Ерунда получится. Для нормального позиционирования нужно 2 камеры.
Монокулярный слам вполне нормально отрабатывает тащемта.
https://youtu.be/C6-xwSOOdqQ
> 2d в декартовых координатах, а вот 3d - в гомогенных (декартово + 1)
Запутался/обосрался, каюсь.
А первая часть твоего поста это и есть мой >>268356 пост, только переписанный другими словами.
Окстись, братишка. Вокруг Россиюшка раскинулась вольготно - эти фантики почти ничего не стоят. Этого + зп жены хватает на весьма скромную жизнь.
Взялся за ипотеку и не хочешь стопицот лет тянуть - изволь лишиться части зп. Ебаный сколиозник с выжжеными кодом глазами и ещё кучей хроней? - добро пожаловать на процидурки. По ОМС всё, что не мгновенная смерть - лечат подорожником или посыланием нахер, поэтому идёшь к частникам. А годные врачи, как и годные кодерки, тоже кушать хотят вкусно и берут ощутимо.
Плюс жена, плюс обставить квартиру хоть как-то, плюс депозитики на чорный день, минимальная культурная жисть, родственничкам помочь etc etc etc. Чот набегает, короче. У меня даже машины нет и пока не предвидится, пекарня собрана из старья, да и отпуска дальше Европы даже не планируются.
Ну и на самом деле надо как-то реализовываться, пока ещё не сорокет. Англояз вот знаю, а на моей стоимости как спеца это не отражается никак сейчас.
Сразу повеяло запахом водочки, шашлыка
Чел а если серьезно то ты сейчас то сколько получаешь? Путешествуй в другие языки и фреймворки, если тебе на плюсах 200к потолок и ты его пробить не можешь
Стать мидлом и переехать в ДС
На видео просто показаны облака точек для разных фреймов. Нет ни классификации объектов ни трекинга, только цветовой палитрой указано расстояние до точек. Даже банального edge detetion не завезли.
Вся суть видео - показать как они карты глубин строят, но это далеко не slam (да и делается это без нейросетей, которые ты прикручивать собрался).
Есть такие работодатели, которые заставляют обязательно перекатываться в офис? Работаю помидором с дейли митапами по пол часа из своей мухострани на 300к. Одни плюсы. В пробках\метро не надо хуи пинать по часу, чтобы добраться до работы и обратно. Не надо тратить время на покурить\попиздеть\сделатькофе и прочий оффтоп. Ничего не отвлекает, если кто-то нужен - набрал в мите и перетер. Красота.
Если ты метишь на руководящую позицию, то переезд в офис/дс может оказаться необходимостью. Ещё конторы с оборонкой и сильно брендовые тоже будут толкать тебя в офис. Но щас ковидла и дефицит кадров, так что даже Интел прогнулся на удалёнку из мухосраней.
Ты просто продолжишь тыкать рандомно со словами "а тут у теб этого нет, а тут вот этого!"? Я просто показал, что одна камера в целом хуже двух, но построить облако и спозиционировать тачку способна. При чем тут трекинг и семантика? Просто повыебываться хочешь вместо нормального разговора? И ты даже не стал понимать, к чему я нейросеть предлагал прикрутить.
На твоём видео показано построение карты глубин и облака точек. Плотность облака низкая, погрешность определения дистанции вызывает вопросы. Что на таких данных ты собрался позиционировать, мне не очень понятно.
Ну вот весь чистый код, солиды и паттерны стоят на том, что нужно обертки всякие делать, делать методы мелкими.
И я никогда не слышал сколько это стоит(да, наверно я не читал достаточно серьезной литературы, где это есть). По памяти и по тактам процессора(в каких порядках хотя бы).
Ну вот например абсолютно без логики метод-обертка над библиотечным методом.
Если заинлайнилась - то нисколько.
Если незаинлайнилось - то несколько тактов, в зависимости от того, сколько у тебя аргумнетов на стэке (ну и если копии - то цена копий)
Я писал, что:
>Ерунда получится.
Это не означает, что работать не будет. Но качество будет очень низким. На твоём примере я пояснил, в чём проблемы. При этом ты начинаешь подгорать и путаться в терминах и суждениях.
Даже тема про мальчиков-хрюшек из хуавея это локальный мем. Просто ты не в курсе, но агришься.
На удалёнку на сях смотрел, джуны то же нужны с опытом. У мой максимум - проектик на гите на вулкане.
>>268869
Да и щас глянул другие специальности. У большинства размыто на столько, что не понятно что реально требуется, видимо тупиковые специализации.
>>269083
Вроде как у виртуальных методов есть ещё дополнительная цена обращения через таблицы виртуальных функций. По указателю за наследование (но точно не помню)
Пробуй войти в web или enterprise/мобилки - JS, Java, Kotlin. Этим проще заниматься на удалёнке, а ещё оно меньше привязано к предметной области и железкам.
На С лучше даже не пробуй - самое дно по зарплатам, плюс это часто железо, которое вяжет тебя к офису и рабочему месту.
Да проблема в том, что плюсы манят меня. А возможно у меня колпак потёк и мне лениво что либо менять. Ладно посмотрим что можно почитать.
>На С лучше даже не пробуй - самое дно по зарплатам, плюс это часто железо, которое вяжет тебя к офису и рабочему месту.
Я знаю (батя кассы починял и прошивочки разные для них делал в 00-х годах) Там зарплаты реально как у работяг.
>Если незаинлайнилось - то несколько тактов, в зависимости от того, сколько у тебя аргумнетов на стэ
Это если код ВНЕЗАПНО оказался в кэше инструкций. Так-то нихуево можно всосать на кэшмиссах под сотню тактов, прыгая туда-сюда по указателям.
Кстати, я знаю что есть методы, оптимизирующие струкуры данных под кэш. А как заставить проц держать те или иные инструкции в кэше. Поменьше if побольше свитчей?
> путаться в терминах и суждениях.
Единственное место, где я лажанул, это про гомогенные координаты.
Ладно, просто забей. Я не хочу дальше развивать это бессмысленное обсуждение. Если есть претензии к моим предыдущим постам, то готов их "защитить", но развивать беседу не хочу, заебался.
Лучше расскажи, что за локальный мем про хуавеевских hrов. ИТТ за последние пару месяцев я его не встречал.
Спасибо, хоть и понимал где-то процентов 75, но всё равно залип.
За одно стало понятна, одна из многих причин почему старое по выполняло те же функции но кушало заметно меньше и работало быстрее
1. Есть ли принципиальная разница в написании мультистрочного вывода способом раз:
std::cout << "Hello\n" << "World!\n";
и способом два: std::cout << "Hello\nWorld!\n";?
2. Если освоить C/C++ + генту я стану универсальным солдатом умеющим всё и под любую платформу. Читал пост на реддите челика который портировал генту под пску, кофемолку и даже кота. Насколько это считается крутым и сложным навыком и даёт ли это как-либо перков в коммерческом программировании?
https://habr.com/ru/post/646005/
Всем новичкам и середнячкам - маст хев.
Пздц ты клоун
А как ты думаешь что быстрее вызвать один оператор << или два оператора << ? Если хочешь точнее экспериментируй сам std::chrono и циклы тебе в помощь
printf быстрее?
Какой водочкой, болезный? Ни первое, ни второе не в почёте.
Получаю я как раз столько, а насчёт потолка и уточняю - какие возможности есть для крестовиков.
Перекатываться - отличный ответ, но на не заданный вопрос.
Вот и поговорили, как говорится. Содержательно.
Хз, у тебя просто манера речи быдло пикабушника, да и проблемы такие же. Вот я и обозначил своё впечатление. А вообще у тебя вопрос дебильный и максимально несодержательный, да и сам ты видимо какой-то дурак раз на зепке в 200 не понимаешь возможности для своего стека, о чем тут вообще кто с тобой будет разговаривать?
Ну ты же со мной разговариваешь - уже хорошее начало.
А понимание - так оно ведь в пустоте не формируется, потому нужна входящая инфа. Да, разброс по языку за я могу поглядеть на условных обзорах в интернете. Но по сферам деятельности разбивки там не будет. Сам я хикковат, кучи друзей в индустрии нет - не с кого спрашивать особо в таком ключе.
Текущая зп, если судить по хабрамониторингу - выше медианной, но это ж интересно - как и в каких сферах можно дальше двигаться вправо по распределению. Может эффективней перекатиться из продукта в галеру с зарубежными заказчиками. Или пытаться собирать CV на линкедине и забить уже на внутренний рынок, раз английский знаю.
Ну хз, может и правда вопросы больше для мвп-треда, но там я крестовиков не найду.
без понятия, я тут столько ЧИТАТЕЛЕЙ видел, которые как будто в библиотеку записались, все читают и читают, а код почему-то не пишут.
>Читаю я чтобы постичь новое, а практикую чтобы закрепить прочитанное и делаю это много больше времени чем читаю.
Тогда ты делаешь все правильно - продолжай писать код. Имхо, прочитал ты уже достаточно. Как максимум - еще Вильямса про многопоточку бы рекомендовал
Да, винапи. Мастхэв.
Подержите мое пиво : DOS API
https://youtu.be/yJE34EuZNzs
> я тут столько ЧИТАТЕЛЕЙ видел, которые как будто в библиотеку записались, все читают и читают, а код почему-то не пишут.
Совет от хуесоса, которых в 90-х не имея интернета и обучающих материалов тыкал в черный ящик и писал говнокод. Нет, чел, щас другое время, можно оформить БАЗУ, а потом уже рожать код.
>и писал говнокод
да ты со своим бесконечным читанием даже говнокод не напишешь. Попускаешь слюни над очередным hello world'ом и пойдешь дальше читать - мол еще мало знаний
другой анон
Очевидный posix в виде пары туторов и писать клиент-серваки, в процессе можно освоить все остальное.
>винапи, Qt.
Норм гайд как остаться без зарплаты в 2к22+, когда все думали что это уже невозможно.
В выражении вычислить положительное значение числа после получения старого значения. Можно перегрузить.
Вау вау оо вау да да вааууу
Что вобше в вулкане происходит я ничего не понимаю
прикольная лекция, как раз сам студентик хотел во что то кроме квадратика на опенгл замутить
Я уже стал джедаем?
Я видел парсер, где все грамматические правила были захуячены вручную на чистых шаблонах. Еще и с crtp. УХХХ БЛЯ!
Точнее, какими способами можно его написать?
Я могу написать кучу классов с наследованием от одного абстрактного и каждому прописать своё поведение, но это много одной и той же писанины, там методы отличаются совсем чуть чуть
Я могу использовать if / switch, но тут опять же, писать свитч для каждой функции? Я новичок в с++, так что скажите если это нормально, мне почему то это кажется не правильным
Самое тупое: Я могу написать разные методы под каждый вид действия, но там придётся использовать if / switch уже в main коде
Пример для пикчи
А нет, у тебя там просто стейт.
Можно сделать словарь с типом и лямбдой (или указателем на функцию) и просто передавать аргументы в функцию, взятую из словаря по типу операции.
Ну дык я про микроконтроллеры. Там реально некоторые хотят универсального солдата за 40к. Что бы и плату развёл, и сам спаял. А за одно и контролер запрограммировал .
Дайте фидбек, вам жалко что ли? Меня как раз пугали классами и шаблонами когда я только начинал вкатываться в язык.
ебашь статический полиморфизм на списках типов!
а ха ха
новичек ебаный
короче он хочет
короче значешь у кого? у твоей мамки
:DD
столько возможностей открылось бы..
купить элитного бухла.. может быть купить даже шлюшку? хотя не, писюн не подниметься уже.. или можно даже будет поднакопить и сьездить в турцию пожарить жопу никогда там не был
40к это деньги, да
>>272024
>>272071
Я тут набросал чуть лучший пример, там сразу видно что у меня одно и тоже в некоторых участках кода, хотелось бы узнать как можно этого либо избежать
Либо если адекватное решение, то я его оставлю
На самом деле я пока сам не думал над всей этой логикой, набросал из головы
https://0bin.net/paste/VfYoGbgN#5Vdgs-+z0zUhGNDIdCjNO0xz50S4Yv1gVBwUZQO8hgv
Ахуеть трупстрауса спасибо за инфу, следующим фактом наверное будет, что stl расшифровывается как либа шаблонов
>Ну дык я про микроконтроллеры
Я про Си. Что не надо Си списывать, пока что. Просто Си очень нишевый язык, который сам знаешь, где применяется.
Я конечно ньюфаг, но как можно НЕ юзать шаблоны? Ты же STL юзаешь лол Тебе же надо, чтоб твой класс работал для любых типов данных? В том числе для любых пользовательских типов данных, как у умных указателей.
>2022 год
>работать на рынок РФ
Зачем? Я еще понимаю, если тебе повезло вкатиться в нвидию, интел или хуавей. Но во всем остальном, РФ - это параша, разве нет? Помойные проекты, помойное легаси, денег нет, ничего нет. Люди вынуждены годами сидеть в яндексе на низких зп с обещаниями всяких опционов и стоков которые не всегда растут, как показывает практика, и никуда не могут уйти, потому что вне яндекса на С++ не пишут ничего хорошего.
в россии убито машиностроение группы А, то есть станкостроение, а си и с++ очень активно используется в данных сферах
как в следствие и вакансий для программистов с++ меньше
если совсем кратко, си и с++ обслуживает реальный сектор экономики, индустриальную промышленность
Денег может особо и нет, но проекты классные есть
vulkan очевидно. opengl устарел а directx проприетарная параша
Я это к чему? Почему инфу приходится собирать по крупицам и все равно чувствовать недосказанность? Почему нет статьи четко описывающий все эти участки памяти и способы хранения строк и прочее?
Непонятно, что текст про си делает в цепепе-треде, но см.:
http://eel.is/c++draft/lex.string#9
http://eel.is/c++draft/conv.array
http://eel.is/c++draft/dcl.init.general#16.3 → http://eel.is/c++draft/dcl.init.string
http://eel.is/c++draft/dcl.init.general#16.9
> , что текст про си делает
Потому что это легаси в сипипи, дурашка.
И зачем ты мне принес стаатьи в англо-саксонском нахрюке, я его не понимаю.
>И зачем ты мне принес стаатьи в англо-саксонском нахрюке, я его не понимаю.
Тогда тебе в Нюфаг-тред
Он больше для старта карьеры на с++ и потом идти в инфобез к товарищу майору за деньгами. Так что такое себе.
Сегментейшион фолт
stack overflow
> потом идти в инфобез к товарищу майору за деньгами
Нет денег у товарища майора. Откуда ты это взял?
Сам на него работал и знаю, что там тебе дадут максимум 180к
А вот в Касперском у меня сосед работает. Сколько тот получает, я у него так и не выведал, но живет он неплохо. Вот они с женой на ещё одну квартиру накопили в ближайшем поддсье.
Ради меня, единственного шизика, которому это нужно, так заморачиваться не стоит. IDEA хоть и адски тормозит, но всё остальное говно, и не важно, написано ли оно на жабе или плюсах.
У меня похожее, Идея не тормозит.
Все мои знакомые покинули Касперского поработав там год-полтора. Заходили на стартовые позиции и потом укатывались на лучшие деньги в другие места. В том числе и в европку.
Отличная контора-донор, бгг.
Мы из касперского народ в свое время активно хайрили в нвидию, и вроде даже получалось
Мне нужен класс в котором длинна массива у объекта будет определятся при создании этого объекта, что-то типо:
type name(int size) // это констурктор в котором массиву даётся длинна size
делаю класс обёртку для манипулирования совместной работы другого класса
Никак да? Если никак, но что посоветуешь? stl?
Я вроде если массиву в классе размер задам, то размер объекта такого массива точно будет не меньше типа * размер
Только щас смекнул что в будущем мне всё таки понадобится изменять размер массива прямо во время работы кода, по ситуации, но это редкость
Пиздец, stl да? Что использовать?
Хотя сейчас пока делаю пример, мне не нужно будет увеличивать размер.
Пиздец простите за мою манеру письма, я шиз, я сейчас немного в апатии, не до этого, но сделать надо
У меня идея для проекта - сделать указатели на всех политиков мира, тогда вся власть в твоих руках. И тогда можно будет сделать указатели на небо, на Луну, на светофоры, на собак и на люстры. И сохранить все указатели в векторе и сделать его столицей нашего мира.
Да, STL. Там несложно.
Знаю, реально так хуёво что даже мысль нормально сложить не могу
zog бросит bad alloc
std::array is a container that encapsulates fixed size arrays
std::vector если надо динамический массив
> Заходили на стартовые позиции
Ну так джуна переманить ничего не стоит. Мой сосед там архитектор. По сеньорским позициям там вполне такая конкуренция с яндексами например.
Пушто как перекатываться по российским вакансиям в целом понятно. А как простому херу из россияндии где-то зацепиться за зарубежные вакансии я не в курсе. На том же линке, даже если составить сиви на английском, я более чем уверен, что кроме локальных работодателей никто особо тебя не приметит.
Опять же, сейчас я работаю в сфере, которая вообще не вдохновляет. Интуиция подсказывает, что найти зарубежную работу в новойф сфере без релевантного опыта будет сложнее, чем перекатиться сначала здесь, а потом уже пробовать зарубежку.
Во всяких говНИИ начальники отделов хорошо стригут премии своих работяг и тоже хорошо имеют. И чо?
Касторкин - проходная контора для большинства её посетителей.
Что ты там уверен/не уверен. Сделай и посмотри что получится. Делов-то на два вечера.
Хуевое какое-то сравнение, если честно. То на джунах описываешь текучку кадров. То коммерческую контору с нии сравниваешь. Так хочешь доказать свою правоту?
https://github.com/mamkad/Veeam-Software_Junior-Developer-in-QA_-/tree/main/server
полный пиздец
0. комменты на руском
1. fork под каждый коннект
2. бестолковые эксепшены (ну ты хотя бы месседж туда бы прописал, а то непонятно в чем ошибка)
3. delete[] вместо нормального STL/RAII
4. мешанина из кодов возврата и эксепшенов (read_dataport возвращает -1 вместо выброса эксепшена)
5. ???
6. возьми Boost::ASIO, не еби мозги людям
>>274702
throws std::bad_alloc либо nullptr если вызов с std::nothrow, в гугле забанили штоле
fork под каждый коннект - это так и нужно, чтобы сервер параллельно обрабатывал несколько соединений. fork был и в примере из книге.
Всё остальное учту.
UB это хорошо потому что компилятор может автоматом принять истинными некоторые утверждения, и за счет чего достигаются дополнительные оптимизации. саси
В расте тоже есть UB. Сектанты скажут, что при правильном использовании раста с этим никогда не столкнёшься, но ведь и в плюсах тоже.
Чтобы существовать вопреки крестам, как шарп существует вопреки жабе.
UB driven development. since 1983.
> только в ансэйф блоках
На этом "только" написано дохуя кода актикса, ведь без этого уже не получается быть первой строчкой в сравнении бенчмарков веб-фреймворков. Если можешь послать нахуй перформанс, то тебе не нужны ни плюсы, ни раст. Если не можешь, проще сразу на плюсах делать, чем ебаться с ансейфом.
>fork под каждый коннект - это так и нужно, чтобы сервер параллельно обрабатывал несколько соединений
Этот метод на столько устарел, что просто пиздец. Сейчас все упарываются асинхронщиной, select/poll/epoll/io_uring.
>fork был и в примере из книге.
Книга какого года? 1990?
Растопидоры могут отсасать мой хуй
>как простому херу из россияндии где-то зацепиться за зарубежные вакансии я не в курсе
помимо знания собственно языка программирования и структур с алгоритмами, нужно знать английский на уровне пройти техническое собеседование по скайпику или онлайн
вот и все
яп, алгоритмы, инглишь, святая троица
в россии достаточно яп и алгоритмов
Не претендую на звание иксперта и не дня не проработал по специальности
server.hpp
>4 #ifndef SERVER_HPP
Вроде сейчас все компиляторы используют #pragma once. Как мне поясняли на одном собесе существенный плюс что дейфан можно скопировать и не изменить. А с прагмой такого не случиться
>14 int backlog; // Число разрешённых входных подключений во входной очереди
А у нас возможно отрицательное значение входных подключений? Если нет uint в помощь
34 // Прочитать данные из порта кодов
35 bool read_codeport(int fd, idcode_t& id);
36 // Отправить данные по порту кодов
37 bool write_codeport(int fd, idcode_t code);
Для чтения ты используешь ссылку, для записи копируешь параметр возможно доёб но может передовать const ссылку?
server.cpp
26 cout << "server was successfully created" << endl;
32 cout << endl << "server stops working" << endl;
Почему ты подключаешь лог файл но выводишь важную инфу в cout?
39 if (bind(fd, (struct sockaddr*)&address, sizeof(address)) < 0) {
Как я понимаю, ты берёшь ссылку на адрес, преобразуешь её к указателю вроде в с++ для этого касты завезли (новый способ прострелить колено), а так же ты вычисляешь размер размер ссылки?
135 if (rv == -1)
140 if (rv == -2)
Обернул бы константы в дефайны, а то магия какая-то
191 delete [] readdata.buffer;
Я бы использовал умные указатели.
228 fout << "..:::==============================================================================================:::.." << endl << endl;
По идее это и им подобные литералы то же в дефайн можно запихнуть
30 server::~server()
...
Если у тебя что-то бросит исключение в int server::exec() и пойдёт размотка стека, то как я понимаю (знающие поправте) не происходит попытка завершить поток
Как говорил один препод: Главный критерий плохого кода - его написал не я
Удачи с тестовым
Не претендую на звание иксперта и не дня не проработал по специальности
server.hpp
>4 #ifndef SERVER_HPP
Вроде сейчас все компиляторы используют #pragma once. Как мне поясняли на одном собесе существенный плюс что дейфан можно скопировать и не изменить. А с прагмой такого не случиться
>14 int backlog; // Число разрешённых входных подключений во входной очереди
А у нас возможно отрицательное значение входных подключений? Если нет uint в помощь
34 // Прочитать данные из порта кодов
35 bool read_codeport(int fd, idcode_t& id);
36 // Отправить данные по порту кодов
37 bool write_codeport(int fd, idcode_t code);
Для чтения ты используешь ссылку, для записи копируешь параметр возможно доёб но может передовать const ссылку?
server.cpp
26 cout << "server was successfully created" << endl;
32 cout << endl << "server stops working" << endl;
Почему ты подключаешь лог файл но выводишь важную инфу в cout?
39 if (bind(fd, (struct sockaddr*)&address, sizeof(address)) < 0) {
Как я понимаю, ты берёшь ссылку на адрес, преобразуешь её к указателю вроде в с++ для этого касты завезли (новый способ прострелить колено), а так же ты вычисляешь размер размер ссылки?
135 if (rv == -1)
140 if (rv == -2)
Обернул бы константы в дефайны, а то магия какая-то
191 delete [] readdata.buffer;
Я бы использовал умные указатели.
228 fout << "..:::==============================================================================================:::.." << endl << endl;
По идее это и им подобные литералы то же в дефайн можно запихнуть
30 server::~server()
...
Если у тебя что-то бросит исключение в int server::exec() и пойдёт размотка стека, то как я понимаю (знающие поправте) не происходит попытка завершить поток
Как говорил один препод: Главный критерий плохого кода - его написал не я
Удачи с тестовым
>uint в помощь
РЕБЯТА ХВАТИТ ПОЖАЛУЙСТА. Не надо экономить на спичках. Вы же понимаете что при неаккуратном использовании unsigned вместе с signed интами вы получите трудноуловимую ошибку непонятно откуда. Не верите мне - так хоть страуструпа послушайте
Я понимаю, что при попытке конвернуть int -1 в uint мы получим что-то в духе FFFFFFFF с соответствующими последствиями. По идее это надо смотреть в апи какими значениями оно пользуется.
Компилятор выдает сообщение о возможной ошибке, он не может знать у чего в рантайме будет -1 а у чего нет. В итоге если используем unsigned все обосрано warning'ами а где именно сломалось не ясно потому что большое положительное число это валидное значение например в сишном апи которое мы используем , а вот передали бы мы -1 тогда оно какое-нибудь errno выставит или вообще аборт сразу
Вроде ещё использование в одной формуле uint и int будет преобразовываться к одному из них, и в место вычитания ты получишь сложение. А если ещё и ёбнуть сверху преобразование к плавоющей точке, то там возможен пиздец. Но это не точно.
Повторюсь у меня комерческого опыта нуль.
unsigned типы в сетевом программировании по другой причине используються..
Ошибка C2061 синтаксическая ошибка: идентификатор "GameField"
В чем может быть суть ошибки?
Для даты
> unistd.h
Да ебитесь вы в рот! У меня и так регулярно сгорает жопа из-за попыток собрать на винде либы, прибитые гвоздями к лялеху, а вы ещё и новые пишете.
Тут ревьювить не переревьювить, в каждой второй строчке неправильно.
UB
Симметрично, только я постоянно сталкиваюсь со студийными расширениями языка и проприетарными виндовыми библиотеками. Ну а че вы хотели? В стандартной библиотеке c++ толком ничего нет, так что сидим терпим
https://ideone.com/8EFgUj
50 B item;
Тут ты создаёшь объект на стеке
После выхода из области видимости на 54 строке он автоматически удаляется.
Первый вопрос
Поскольку у тебя структура Б кроме А ни чего не содержит, то указатели совпадают. Добавь перед А какой нибудь int разбегутся.
Вопрос второй
Очистка стека происходит путём смещения указателя. Ты можешь обратиться к его полям через указатель, и вызвать для них метод (в котором не явно передаётся *this) однако это UB так как указатель на стек сдвинулся вниз и если ты создашь какой-то новый объект то он перезапишет тот кусочек где лежал Б.
1.адрес тот же потому что компилтяор соптимизировал. Там у B нет state кроме как int из A так что смысла держать 2 разных объекта нет.
Также обрати внимание что ты не пометил print из B как override
2.Насколько я понимаю у вот этого блока без имени нет своего стекового фрейма так что его переменные привязаны к main. Поэтому когда ты их используешь в этом же мейне они не могли перезаписаться другими данными. Я не уверен но по-моему use after delete это с точки зрения именно стандарта языка в любом случае UB,так что тебе просто повезло что ассемблер устроен так как он устроен
>Также обрати внимание что ты не пометил print из B как override
А разве override не для виртуальных функций?
>Также обрати внимание что ты не пометил print из B как override
так у меня же там объект в объекте а не наследование
а, у они там даже не виртуальные. Ну тогда не надо. Правда зачем 2 копии одной и той же функции если он не хочет virtual вызов по указателюю Просто оставь одну в A и все
Та для примера, я пытался понять почему там указатели на один и тот же адрес
Пилю игру на sfml, нужно хранить объекты, создавал их так и пихал в вектор, но чёт ничего не работало и я добавил парочку таких костылей
Щас понял что мне походу придётся динамическую память юзать
Я думал это задачка со звездочкой с собеса. Если это твой реальный код у тебя явно проблемы с проектированием
>Я сам то не программист, но очень хочу сделать простую игрушку
Ну бери готовый игровой движок и делай. Зачем ты в c++ полез?
Хочу хардкор, я до этого на Lua писал, но мне не нравится ограничение по свободе.
Вообще я недавно ещё opengl изучал, но вспомнил про план на 2д проект, вот решил на sfml сделать
Ну чего тебе, пострадаю чуток, зато потом порадуюсь. А так для себя я не только игру собираюсь сделать. Но программирование мне очень интересно
Хочет человек и делает.
>>276498
Всё же поучи плюсцы
https://youtu.be/Bym7UMqpVEY?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
Ну мужик не плохо рассказывает основы. А я таки наверно буду выкатываться, срыночек так сказать решает. Но плюсцы останутся в моём сердечке.
Всем желаю идиоматичного C++ в этой светлый день и побольше best practices
https://godbolt.org/z/YqTqxc64e
> в россии достаточно яп и алгоритмов
На стажера и джуна только разве.
На мидла и сеньора тебя попустят по кишкам библиотек, устройству Linux, особенностям реализации TCP/IP, компьютерной графики, математики, механики, и т. д.
По своему опыту и опыту знакомых.
Из всех крестокодеров, которых я знал, только один смог попасть в нормальное место на ремоут. Пишет какой-то движок БД за 5 килобаксов в месяц. Но он прошаренный сильно, всякие тонкости многопточки и распределенных систем очень хорошо знает и на конференциях несколько раз выступал. Его еще в HFT приглашали работать, так что чел явно не тупой.
Остальные менее скилловые знакомые со средним IQ либо остались в С++ и пишут ембеддед или инфобез за скромный прайс около 180-200 у сеньоров, либо как и я перекатились рисовать кнопки и перекладывать джейсоны. Благо тут и в РФ контор полно, и за рубежом, выбор есть.
Закатился недавно в remote gamedev за 300к (дочерняя контора, в которую попал - российская), спрашивали только плюсы (глубоко и долго, больше часа им рассказывал), алгоритмы, многопоточку и каплю математики
>Его еще в HFT приглашали работать, так что чел явно не тупой.
Постоянно приглашают, не успеваю письма читать
Да и мне тоже писали и до сих пор пишут, но у него оффер на руках был
>>276588
Геймдев интересная тема конечно. Но с другой стороны, куда идти потом? Хороших мест мало.
Да и вообще, если вкатиться в топ контору по узкой специализации. Та же нвидия или интел. Допустим ты дорос там до 400к/мес на руки. И куда идти дальше? Аналогичных мест в РФ больше не осталось по факту, только за рубеж. А если вдруг нвидия закроет офис в РФ? Куда бежать потом? Опыт разработки под винду хоть и нужен на российском рынке, но там явно не будут платить 900к/мес как у местного анона.
Он тебя не слышит.
>Опыт разработки под винду
Ты не понимаешь, что такое сениор девелопер. Там берут и платят за опыт разработки и умение в организацию и прочее, а не за то, под какую ОС ты писал.
А конкретно нвидия перевезет всех в европу, если будет пиздец
Как лучше определять тип объекта?
-Через мембер class.type типа enum
-Через RTTI и type_info
Нужно определять типы построек.
это ты про разговорные вопросы на собесе? хуйня, это спрашивают только чтобы ты успокоился и перестал потеть лол
настоящие ключевое место собеса - это сможешь ли ты перевернуть списочек или обойти бинарное дерево на бумаге/доске
>не за то, под какую ОС ты писал
А если ты только что и делал, что несколько лет исключительно занимался специфичными задачами с виндой?
>Пишет какой-то движок БД за 5 килобаксов в месяц.
известная персона, лол
разговорчивый потому что
У тебя все равно дохуя опыта разработки, а специфике тебя научат за несколько меясцев. Самое главное - этот волшебный навык промылшенного программирования, который у тебя в любом случае нкопится рано или поздно.
то что их ебут на собесах
то что их ебут на собесах
Ну что бы подчеркнуть что это ссылка на вектор. Хотя я не совсем понимаю зачем её передавать так.
Нет, не видно. У тебя был бы просто вектор, а не ссылка на вектор.
Ты язык учишь тыкаясь наугад вместо того, чтобы открыть книгу?
Ты мне скажи, не синтасически. Есть разница между тем где этот оператор адреса стоит или нет? Вот именно на физическом уровне там внутри на уровне ассемблера\двоичного\кода этк? Или это просто дело вкуса?
Спасибо, понял. И что выходит чтобы внутри функции куда передан адрес вектора мне чтобы обртаиться к элементам вектора нужно разыменовывать указатель типа вот так
*nums[3] ?
Передана ссылка на вектор, а не адрес. Ничего разыменовывать не надо, юзаешь точно так же, как если бы это был просто аектор без закорючек.
Бля я уже заебался, читаю читаю нихуя не понимаю в чём разница между ссылкой и адресом?
Ну вот написано что это оператор адреса и он даёт адрес переменной. Функцию я понимаю как что туда передаётся адрес вектора, вот.
А что представляет собой ссылка под самим кодом, ну на на более нижних уровнях? Содержит адрес на начало вектора или что?
Это не имеет отношения к ссылкам, то до них не дочитал.
Операция адреса применяется переменной в выражениях.
& в объявлении переменной - это никакая не операция, а просто обозначение, что объявляется ссылка, ставится рядом с типом.
https://www.youtube.com/watch?v=W5s965qdmyU
Поясни
небось ты про то что указатель можно переписать а ссылку нет?
Но суть в том что если этот же код вставить в другой комплятор не литкодовский то всё заебумба работает. В чём дело?
Могу скинуть код можете сами в литкод повставлять и в другие компляторы может поможете мне. Язык C++ конечно же
Бумп вопросу
Короче, работаю уже полгода после уника, пишу на C#. Проект легаси говно.
И бляяяя какая же это скучная хуета.
Я уже за полгода выгорел нахуй.
Сам я с мехмата и кажется не туда свернул.
Я думаю перейти на C++. Я уже долго смотрю на рынок, и сложилось впечатление, что что-то +- интересное встречается почти исключительно на плюсах, только там есть шансы на алгоритмы/математику в целом.
Соответствуют ли эти выводы действительности? Стоит ли переходить на плюсы?
Я понимаю, что и на плюсах есть скучное говно, но плюсовые вакансии, которые выглядет интересными хотя бы существуют в отличии от.
Смотря что ты называешь интересным. Кто-то из плюсов перекатывается в шарп за интересной работой.
>>277320
Открываешь апворк, смотришь какие там есть проекты, думаешь
Тебя никто не допустит до математики и алгоритмов с опытом в пол года и нулевым по плюсам очень и очень долго. Пиздуй в шад какой-нибудь, устраивайся в яндекс и через пару лет ты сможешь вкатиться на такие ваки, если у тебя есть мозги. А вообще рановато ты оподливился, работаешь пол года, а уже выгорел. Тебе точно вообще интересно то программировать? Может стоило на своем мехмате оставаться дрочить?
Лоллирую с этого "забудьте всё чему вас учили в вузе". Казалось бы, зачем вообще вузик тогда, ахахаха
Про не подпустят это понятно. Попрос хотя бы про перспективу.
Где я такое писал, лолекекер? Если тебя с твоей шараги взяли только легаси кал копать, то значит ты что-то не туда поступил, либо в своем вузике неправильную ветку развития выбрал.
Я же тебе описываю оптимальный путь к заданной тобой цели, а ты мне тут свою хуйню пишешь. Зачем ты в вуз поступал это вообще вопрос, который неплохо было бы себе задать
Додик, ШАД это не замена образования, а его продолжения. И без уверситета ты не сможешь усваивать большую чать того, о чем там рассказывают.
Я тебе открою секрет, люди иду в магу, в аспирантуру. И это не "забудьте все чему вас учили", это продолжение.
Типо неужели за таким это большому счету только в плюсы идти (если вообще речь про программирование)?
То не я был, это какой то шиз.
Хорошо, только отъебись пж, маме своей расскажешь, что образование не нужно. Передо мной оправдываться не обязательно.
>маме своей расскажешь, что образование не нужно.
Так ты своей сейчас тут рассказываешь, перестань в глаза долбиться и вынеси мусор
Каким образом регулируется скорость процессора?
Что такое сканирование шины?
Если жёсткий диск передаёт информацию из файла подкачки в модель оперативной памяти то проходит ли эта информация через процессор или нет?
вообще этот пост я адресовывал вузодебилу, не понятно из вашего диалога кто за вузик топит, но факт фактом вузики хуета полнейшая, даже если там учиться. знания даются горадо хуже и более неглубокие чем при самообучении и всё это гораздо дольше идёт.
вышка в ойти действительно нахуй не всралась. но книги или лекции какого-нибудь разбирающегося человека конечно послушать\почитать полезно очень.
Никакой. Берут не за знания языка, а за знание области. С++ это обширная область: геймдев, машнин лёрнинг, системное программирование.
Надо с областью определяться а не с языком, язык это всего лишь синтаксис и набор конструкций построенных поверх ассемблерного кода. Понимаешь?
Алгоритмы и область в которой ты погромист это гораздо важнее чем выдрочка синтаксиса языка
Оно безусловно так, однако на вакансиях в искомой области требуют знания плюсов. Да и знание плюсов мягко говоря знанием синтаксиса не ограничивается, к сожалению.
А чем оно ещё ограничивается? Знанием многочисленных функций из стандартных либр?
Кроме синтаксический конструкций и функций многочисленных там ничего нет.
И я не писал нигде что с++ не надо учить я это к тому что ты неправильно акцент поставил что "насколько хорошо н адо с++ выдрочить чтобы взяли куда-нибудь" это неверные приоритеты
>Я думаю перейти на C++. Я уже долго смотрю на рынок, и сложилось впечатление, что что-то +- интересное встречается почти исключительно на плюсах, только там есть шансы на алгоритмы/математику в целом.
>Соответствуют ли эти выводы действительности?
Смотря что считать интересным. Алгоритмы и математика - слишком широкое понятие. Нужно как-то конкретизировать свои интересы. Потому что есть и обработка сигналов, и графика, и всякое CAD/CAM дрочево с линалом и дифгемом, какие-нибудь йобы по расчету механики и электрических схем, и всякое такое. Что интересно? Если просто не нравится перекладывать джейсоны на сишарпе, то математика от этого тебе интересна не станет. Есть какие-нибудь интересные идеи или личные проекты, связанные с математикой и алгоритмами? Может хотя бы свой графический движок писал? Если нет, то лучше вкатись во фронтенд, может там поинтереснее будет.
Также отмечу, что в проектах, где много математики или алгоритмов, обычно очень дохуища легаси кода, прямо из начала нулевых или даже конца 90-х. Код ужасный по качеству, так как его писало несколько поколений математиков, которые от программирования были несколько далеки. Часто нет документации. Сиди и думай, за что отвечает то или иное перемножение матрицы с однобуквенным названием. Если проект современный, то шансы встретить говнокод гораздо меньше, но современных проектов нет нихуя, так как ниши закрыты тем, что уже есть на рынке.
В общем, пока что советую попробовать найти интересный проект на сишарпе. С опытом в полгода тебе правда никаких интересных задач не дадут, так как все еще нужно присматривать за тобой даже в укладке джейсонов и формошлепстве. Поработай еще полгода и пытайся сваливать в нормальное место.
Если совсем не понравится, то попробуй как-то конкретизировать свои интересы, и уже потом исследовать рынок на наличие вкакансий в отрасли, где хотел бы работать.
Вообще я не знаю читал ли ты книгу Бьёрна Страуструпа про ООП на базе цпп или нет, но он там писал что заниматься выдрачиванием языка смысла нет, лучше пишите программы и он вроде сам признался что не особо до конца ебёт весь с++ современный.
Ты хочешь работать на с++ и допустим идёшь на вакансии на с++ программиста в геймдев. Приходишь на собес и охуенно рассказываешь им про классы, про всякие методы и тонкости языка, всякие наноёба функции из стандартной либры, что удобнее и проще. А тебе говорят "маладой чилавек это понятно, вы знаете direct x и open gl?" "вы знаете как игровые движки построены?" "а расскажите нам про работу видеокарты"
и вот здесь ты сдуешься.
Или пойдёшь на системного программиста с с++ а тебя сразу "молодой чилавек расскажите про ядро операционной системы, молодой чилавек вы можете драйвер нам написать?" "что такое dma маладой чилавек?"
и снова в лужу сел. Так что ещё раз язык это 10% что влияет на твоё приём на рабоут это инструмент всего лишь, главное в области куда идёшь разбираться, пынямаешь? тебе нужно не с языком, а с областью определяться.
По факту ты все верно пишешь, но в то же время это пук в лужу.
Ну какой может быть опыт в системщине или геймдеве у вкатуна в С++? Максимум подергать ядро линукса или написать примитивный графический движок на опенгле по туториалу.
Экспертиза в обозначенных тобой областях нарабатывается с коммерческим опытом в индустрии, а не чтением книжек для начинающих.
Поэтому вкатуну можно посоветовать выдрочить С++ до уровня, когда он уже не будет жидко давать в рейтузы в ответ на вопрос про умные указатели или какие-нибудь особенности виртуальных функций. Может быть тогда его возьмут на стажировку за 30-40 тыщ в контору, где он сможет хоть как-то прокачаться на настоящих задачах.
>маладой чилавек это понятно, вы знаете direct x и open gl?
Даже если он тыкался в directx и opengl, то сможет максимум ответить что-то сильно по верхам, попутно обсираясь в деталях и мелочах.
Или в С++ сейчас ожидают, что человек без коммерческого опыта сможет им и драйвер написать, и графический движок с нуля на opengl ебануть?
Всмысле опыт? Опыта никто не требует, требуется понимание. Опыта может и не быть но книжки по той области куда ты подаёшься хотя бы то можно почитать, согласись? Хотя бы общее представление должено быть. Это огронмная разница между человеком который пришёл с голвыми с++ без опыта и который читал дома пару книгу про ядра всякие и с++ без опыта, он уже на месте тупо быстрее схватывать начнёт и множество ньюфажных ньюансов будет пропущено головой то думай
>>277555
Я честно скажу, я не знаю. Я сам ньюфаня вкатунская, это описал чисто своё видение ситуации. Ну я дома вот щас пытаюсь под винду высрать драйвер на клавиатурух хотя бы, вернее фильтр в стек устройств клавиатуры чтобы сигналы перехватывать, понятное дело что без цифровых подписей я хуйца сосну, но код драйвера то будет
Бамп
>написать примитивный графический движок на опенгле по туториалу.
У тебя какой то максимализм, либо напиши свой анрыл, либо примитивный растерайзер, третьего не дано. Что мешает пойти чуть дальше и написать чуть-чуть больше примитивного движка? Пусть даже это не обязательно это будет целостный проект, это может быть серия из небольших демок, одна например демонстрирует тени, другая отражения, третья прозрачную воду, четвертая коллижн детекшн, пятая физику и т.д.
>>277520
1. Ищешь в гугле подготовку к интервью цопепе и смотришь, что там нужно.
2. Готовишься по верхам, чтобы в первые пять секунд не слили хотя бы.
3. Идешь на пару собесов и успешно их проебываешь.
4. Теперь учишь ровно столько языка, сколько требуют на собесах, но не более того.
хочу ОГАС
>вышка в ойти действительно нахуй не всралась
Вебмакака детектед. Съеби в свой загон, уебан
>>277595
Ты таки не понял что я от тебя хотел.
Все твои ошибки было throw blablabh("err"); неотличимые друг от друга. Я хотел бы видеть какую-нибудь иерархию эксепшенов или хотя бы throw blablah("error in bind"); throw blablah("error at connect"); которые описывают ЧТО ЖЕ пошло не так.
Алсо, throw без активного эксепшена - это терминате.
Нахуя shared_ptr?
Нахуя тебе порт в стринге? Держи порт в uint16_t
>Хочу вот либо го поковырять либо дотнет
Бессмысленная трата времени
Изучай сети, базы данных, крипту, эмбеддед. Я вот не могу найти чувака на реквест по созданию шифрованного VPN, со знанием IPSec, LDAP/AD и криптографии. Я вообще хуею с того, что сети никто не знает, и, ебанный стыд, путают сокеты с вебсокетами (хотя тут надо йайки W3C подрезать)
Зачем столько endl? Он же каждый раз буфер очищает.
Я не вебмакака, ты ошибься вообще мимо, я очень далёк от веба. Сидел бы я вообще в цпп треде будь я вебмакакой
А че такого? Мы же тут за код, поэтому хотелось бы технологию поближе к энтерпрайзу и чтоб писать было быстро и с комфортом.
По поводу найти, ну может ты мало предлагаешь?
На данный момент C и C# это худшие варианты для работы. Как математику, я бы советовал перекатываться в Python > Go > C++ (в идеале, если ты освоишь все три). Python даёт путь в machine learning, data science, computer vision и прочие ништяки с математикой, либо педалить на нём бекенд с джанго (вакансий много, по-любому найдёшь годноту). Go - бэкенд/сервисы для всяких умных систем в догонку к python (допустим есть коптеры с бэком на go). C++ - оптимизация кода, прототип которого ты запилишь на python.
Заходить через c++ не стоит - зп хуже, стартовые вакансии обычно в говёных компаниях или нормальных, но через интернатуры/шады/связи и прочие пути воина-анальника.
Твоё образование ебически пригодится, когда доберёшься до старших позиций. На помидорок c++ спрашивают чисто формально. В основном ебут в матан и алгоритмы, связанные с предметкой (реже в какие-то дебри ядра ОС, драйверов, сетей и прочего кала - но это удел программистов на C, так что такие конторы сразу нахуй).
мимо выпускник мехмата
Это выпускник мехмата нахуй идет. Меня спрашивали ровно 0 раз за матан, а алгоритмы только в яндексе дрочили
ADAS (дойчи) - облака точек, выпуклые оболочки, сегментация, восстановление геометрии, построение NURBS поверхностей (гет).
Simulation / CAE (тоже дойчи) - ангем, дифгем, построение FEM, линейные / нелинейные системы дифуров, сплайны (гет)
CV / surveillance (рюська/американьска) - матрицы, гистограммы, свёртки, сегментация, кластеризация, карты глубин (гет)
DSP (рюська) - матрицы (собственные числа, вектора, разложение и т.д), свёртки, преобразования фурье (обосрамс)
GayDev (аериканьска) - вектора/контура/оболочки/матрицы, триангуляции /тесселяции, деревья / лоды, интерполяции /текстуры, мэппинг, освещение/тени (самое блядь ёбаное собеседования часа на два) (гет)
И так вот через раз происходит, если контора не дрочит какой-то документооборот или системщину или что-то очень узкое типа профайлеров какого-то говна.
Я вкатываться планирую в системное программирование(драйвера) там на кой-от хуй написал x86-64 asm , c\c++ не понимаю до сих пор нахуя они мне с++ вписали туда что я на нём делать буду то
Он напрямую линкуется с системщиной, написанной на C, без JNI/InteropServices и прочих педалей. Ещё он имеет прямой доступ к железу через расширения языка на интринсиках или диалектах типа CUDA / OpenCL. Всякие кодеки, дробилки картинок, различные матричные преобразования делаются именно на SIMD или GPU.
То есть он максимально близок к системщине и её можно на нём писать сохраняя баланс быстродействие/количество кода.
>>278218
>c\c++
Так пишется во всех вакансиях и на С и на С++. Возможно потому, что C - подмножество C++ и кандидата можно конвертировать в любую сторону.
Кек, я тоже туда стремлюсь, насколько понял там важно понимание работы аппоратуры на низком уровне и операционных систем с драйверами, а не алгоритмы и вот это вот всё.
А в системном ты на чём? Виртуалки, антииврусы, драйвера, разработка осей, прошивки, что там у тебя?
Спасибо большое понял. Хорошо что ты в треде есть
А ты можешь пояснить а как команды на gpu подаются? Ну вот ты запустил программу она загружена в оперативку процессор выполняет за командой. А как в gpu команды попадают? Это какие-то особенные команды? Вроде под видеокарты свои программы шейдеры или что то такое я слышал. Они сразу через оперативу через dma под шине pcie Express летят в видеокарту чтоли или как?
Норм. В то же направление копаю. Моё увожение, желаю удачи. А на что посоветуешь делать упор как уже вкатившийся? Что очень важно в системном программировании для тех же драйверов\фильтров?
> Что очень важно в системном программировании для тех же драйверов\фильтров?
Быть безумно дотошным и очень внимательным. Читать от корки до корки мсдн, всякие osr.com там.
Ну и от меня персональный хинт, что в кернеле можно использовать дохуя С++17, лямбды, тимплиты, RAII и прочий модерновый С++. Настоятельно рекомендую делать именно это, а не писать сиговно с GOTO, как в микрософтовских официальных примерах
Спасибо большое, понял. Возьму на заметку, надеюсь пригодится когда-нибудь
А что у тебя на собесе спрашивали если не секрет когда устраивался? Были задачи какие-нибудь вопросы?
просто по С++ гоняли и общему кругозору. Драйвера на тот момент я писать не умел, научился.
Спасибо ещё раз, понял. Ну тогда неплохо, а то я когда-то в мы перезвоним тредах сидел охуел с того как людей в вебе ебут на собесах
Шейдеры это программы на C-подобном языке (имеют векторные расширения языка - например встроенные типы данных матриц, векторов, операции умножения, векторного/скалярного произведений и прочие). Например GLSL. HLSL, какой -нибудь мутант типа CG. Эти языки используются в основном для программирования графики в паре с графическим API (OpenGL/Dx/Vulkan). Собственно код на этих языках (это отдельные файлы) компилится драйвером видеокарты (либо кросс-компиляция) в нейтив gpu ассемблерный код либо в промежуточный язык (Vulkan). Компиляция (указывается имя файла), линковка и загрузка программы на gpu (программа состоит из нескольких шейдеров для разных стадий графического конвейера) в память gpu делается API вызовами в cpp коде.
В шейдерном и c++ коде есть точки привязки данных, так что программа на gpu знает что откуда ей брать.
За то, как осуществляется пересылка команд именно графического API точно не скажу, но они буферизуются и потом дёргается драйвер, для их передачи.
Что касается вычислений на GPU, то там предпочтительнее использовать не графическое API (с его cumputational shaders), а CUDA. Тут несколько по-другому. Код на CUDA (это расширение языка с++, а сам код называется ядрами) встроен в cpp исходники также, как ассемблерные вставки. Работа с памятью делается через API cuda toolkit. Компилируется всё вместе с помощью связки драйвера, компилятора nvcc, компилятора gcc и его тулчейна. Готовые объектники пересылаются на GPU средой выполнения cuda.
Спасибо за разврнутый ответ ещё раз понял. Годно объясняешь, перечитаю ещё не раз твой пост
Мерси, посмотрим.
Если мне память не изменяет trow без параметра, начнёт размотку стека. Единственное, что его поймать можно на catch(...). Ну и если мы второй выкинем в деструкторе, то да это аборт.
> Python > Go > C++
Go выкидываем смело, если говорим про математику.
Я собственно математиком и работал. Нужны Питон, плюсы, иногда можно на R переключиться. Еще матлаб как альтернатива питону и R. Могу подробнее расписать. Но сам вопрошающий пока не знает, чем он там из математики хочет заниматься, поэтому нахуй надо.
> препод и сам не особо вдупляет.
Препод руководит разработкой компиляторов под интеловские видеокарты. Думаешь, он не вдупляет как вулкан работает?
Блядь ошибся. Если выкинем ещё один (например в деструкторе) то это аборт.
>>278342
Ну он сразу сказал, что это премьера подразумевая что возможны косяки и не точности. Если посмотришь комментарии к предыдущим лекциям, то там отлавливают мелкие косяки и ошибки о которых он упоминает в следующих.
Go мы не выкидываем, потому что иначе будет слишком узко. Нужно уметь кодить хотя бы до состояния бэкенда, чтобы затрагивать архитектурные вопросы, с которыми у математиков очень не очень обычно. И Go лучше заходит, чем .Net(Core) или Java.
>>278342
>руководит разработкой компиляторов
Шейдеров. И они с графическим API связаны почти никак. Если бы он писал часть драйвера, реализующего API - другое дело. Он же просто перечисляет сущности вулкана без описания их ролей и взаимодействия, пролистав чужую портянку кода и что-то там пробубнив несвязное.
> Нужно уметь кодить хотя бы до состояния бэкенда, чтобы затрагивать архитектурные вопросы
Я, конечно, понимаю, что всё знать лучше, чем не всё. Но если процессы организованы нормально, то математического алгоритмиста не должны ебать вопросы архитектуры софта. Его задача исследовать алгоритмы и писать proof-of-concept. Но, к сожалению, в рф хотят, чтобы один работник выполнял работу за пятерых. Поэтому твоя позиция тоже верна.
Не, ты мыслишь крупными конторами, где один делает proof-of-concept на питоне, другой его переписывает на c++ с аппаратным ускорением и параллелькой, третий оборачивает в sdk, четвёртый делает пакеты и средства дистрибуции. Я лишь говорю про 2 стадии из 4-5, что вполне нормально для одного разраба.
С другой стороны совмещение нескольких ролей бустит тебя до архитектора/тимлида/техлида. Сам так работал, заебался, но по опыту сделал X4 или больше.
Жоско. Мне в универе, году так в 2016, предлагали заниматься проектом на кафедре - писать генератор конечно-элементной сетки. Ну и всякое связанное с геометрией и системами диффуров. Денег естественно было хуй да нихуя, ну и я отказался и ушел на галеру гребцом.
Что по деньгам сейчас в таких конторах предлагали? Хотя бы 5-7к долларов на руки на удаленке можно грести?
А чем плох шарп, если писать бек на .net core? Вакансии вроде есть.
Это при условии, что я вообще не математик.
Как не обсираться в этой математике на собесах?
У меня это все в универе проходили когда-то, и я учил перед экзами и лабами, но сейчас уже вообще не помню, что там в преобразовании фурье происходит или в построении NURBS поверхностей, только в самых общих чертах
> Как не обсираться в этой математике на собесах?
Так если ты ей занимаешься и применяешь, то и не обосрешься.
>Go
Там джунских вакансий нет считай, тем более в местах где математику пишут.
Сейчас в Го набирают торгаши в основном - авито, озон, wb. Других нормальных работодателей в Го у нас нет совсем.
>error_t error = func1488(); if (error) cout << "error in func1488\n"; ?
Фублядь, го-пидор в треде!
Там у них легаси проект был, который надо было перекатывать на новую математику. Мешанина из C, C++, фортрана и кода немецких пенсионеров. Тот ещё отстой. На старте платят по рынку (нашему), потом в принципе уже можно требовать X1.5, но это работа для тех кто деньги сильно любит (и математику).
На нём основная часть вакансий это энтерпрайз под винду. То же самое на Java оплачивается выше. Да, запускается на эмбед типа Raspberry, но там не сильно богатый функционал, под линуксом нет студии и нет WPF (UI для .NetCore делается через electron/Qt). Мало сторонних либ. Сгодится для написания сервисов и чистого бэка, но не более.
Да никак. Отвечаешь на вопросы от простого к сложному. В конце всё равно завалят, когда дадут задачу из тех, с которыми сами не знают как справиться. Успехом можно считать пару подробно рассказанных алгоритмов по основной тематике с комментами по скорости, устойчивости и вычислительной сложности.
>На старте платят по рынку (нашему)
>работа для тех кто деньги сильно любит
Видимо в остальных местах платили еще хуже?
Не, просто cad/cam/cae, fem и вот это вот всё довольно избитая тематика, которую педалят уже более 30 лет (топовые системы ANSYS/ABAQUS появились в начале 70-х). Горячих денег там давно нет.
Легаси говно приносит деньги за счёт того, что ты один из немногих кто может его разрабатывать. И чем дольше ты на нём сидишь, тем больше можешь ломить прайс.
Си был давно, ему можно.
Потом появились плюсы и джава с няшными эксепшенами. А гопидарасы отказались от прогресса и деграднули обратно
Энивей, не вижу, нахуя эксепшены, raii и прочий ООП кал в пет прожектах и мелких прогах. На работе понятно ещё зачем потому что иначе уволят нахуй. Имхо одна из отличительных черт хорошего кодера как раз понимать границы применимости той или иной техники, а не бездумно хуячить чтобы всё было как у людей.
>кал
Кал только у тебя в штанах, говнокодеришко
>потому что иначе уволят нахуй
Пиздося. Просто ты неасилил ключевые аспекты плюсов. Это как секс, в первый раз всегда больно.
>Имхо одна из отличительных черт хорошего кодера как раз понимать границы применимости
Тут соглашусь с тобой. Код можно измазать как прыжками по меткам через go to так и геттерами с сеттерами на каждую переменную.
>Энивей, не вижу, нахуя эксепшены, raii и прочий ООП кал
Щас насилую чистый Вулкан для себя Есть обёртки под с++ но я же говноед. raii реально удобно. Просто не думаешь об порядке удаления того или иного объекта.
Эксепшены нужны что бы гарантировать, корректное завершение участка кода. Уж лучше машина просто остановиться, чем полетит в ебеня из-за того, что кто-то кинул исключение. (Криво но думаю понятно).
Так говнокодеришко здесь ты, небось хуячишь абстрактные фабрики билдеров чтобы вывести хеллоуворлд на экран, потому что помидор сказал что так нада.
Эксепшены нужны чтобы не ебать на каждую строчку
err = huipizda();
if (err)
{
cout << "xynta happened" << endl;
return err;
}
а RAII нужно, что эта дрисня не превратилась в
err = huipizda();
if (err)
{
cout << "xynta happened" << endl;
delete zhopatvoejmamashi;
delete[] anustvoegobati;
return err;
}
Реально эксепшены нужны, чтобы оборачивать вызовы third-party, где разрабы "просто не думали о порядке освобождения ресурсов". В остальном и эмбед-стайл нормально отрабатывает.
Он обмазывается ими по методологии аджаел. Инфа сотка.
>абстрактные фабрики билдеров
>RAII, эксепшены
Ахахах, ты смешал архитектурные паттерны с гайдлайнами. Кто ж тебя после этого умным назовет?
>потому что помидор сказал что так нада
Я тимлид и начальник отдела. Помидоры у меня под ногами
А ещё это единственный способ нормально сигнализировать об ошибке в конструкторе.
Можно обойтись иначе, но это другое
Тоже кекнул чот.
Про эксепшены можно много обсуждать, но если кто-то не любит RAII - он просто не понимает RAII
ну их в нулевых оптимизировали под многопоточку например
а сегодня еще под gpu-вычисления дописывали
ssd еще когда мейнстримом стали так же стало возможным чутка внутри пошаманить чтобе еще быстрей работало
Очевидно, что в гугле дебилы, не слушающие настоящих специалистов с двача.
Оно тянется в вялотекущем режиме. Перетягивают фронт со старых фреймворков на новые, документооборот натягивают на облако.
Периодически выскакивает новые направление, которое быстро схлопывается. Сейчас есть чутка стоматологии и совсем немного 3d печати (естественно за бугром).
А на видеочипах уже в начале 2000-х считали, причём не на одной видюхе, а сразу на целой ферме или кластере. И диски тоже были в виде различных массивов с файловой системой Lustre поверх.
Тлен в общем.
>Что вы на это скажите?
Что ты либо недочитал что там в гуглгайдлайнах написано В СЛЕДУЮЩЕМ БЛЯДЬ абзаце, либо ебешься в глаза.
Гугл сказал что поскольку сторонние мудозвоны не умеет в эксепшене, ТО ПРИДЬОЦЦА эксепшены не использовать
Ебанутый дурачек, нахуя ты это высрал? Я просто факт проконстатировал. А написано там много больше чем ты здесь попытавшись жидко сумничать насрал.
Мудозвоны какие-то. Ты точно то прочитал то?
> Я просто факт проконстатировал
Ты можешь свой факт засунуть себе в жопу. Тебе дали причины почему гугл так поступил, а ты начал на людей кидаться.
Я бы сам занялся, но выкатился неосилив постоянную еблю с компиляцией, установкой статических динамических либ с разными компиляторами.
https://github.com/qbittorrent/qBittorrent/issues/7411
Перекатился на C# и сразу появился огромный прогресс, хотя бы стали звать на интервью, и я понял какие навыки нужно выучить после нескольких отказов. На последнем вроде не всё так плохо, жду неделю для очередного отказа
Помогите составить что-то вроде плана обучения. Что мне нужно освоить и до какого уровня, чтобы выполнить необходимую мне задачу.
>QT какой то огромный
https://code.qt.io/cgit/qt/qtbase.git/tree/examples/network/network-chat
а как же новиков "дискретная математика" на втором курсе
или, подожди, у меня есть ужасное подозрения
ты вкатун?
о боже
пишешь свою gui библиотеку для WebAssembly, пишешь на ней свой чатик
будешь модным и может быть даже найдешь работу чтобы не умереть с голоду когда мамка помрет
То есть если кто-то собрался писать системщину (по определению некроссплатформенную), ему надо забить на это дело?
Переведи это предложение на русский, идиот
Ну телега на кутах наформошлепана. Ну вообще зависит от твоих дизайнерских способностей. Можно сделать ахуенно если чуть чуть запариться.
Куты это самое простое и быстрое что можно применить прямо сейчас в связке с плюсами
И вас, юноша, тоже.
Вот эта норм, если драйвера писать.
Там и без wdf тоже процесс описан.
Если не драйвера писать, то нахуй не нужна книга.
Есть куча легаси кода, который изначально начали писать таким образом, что обработка ошибок производилась в стиле С, то бишь возвращение кода ошибки. Обработка ошибок - увесистая часть архитектуры кода, поэтому переписывать миллионы строк кода чисто ради этого - такое себе занятие. Золотое правило софтвер ИНЖИРинга: работает - не трожь.
А так, писали бы сейчас какой-нибудь гугл хром, то думаю, что обмазывались бы молча исключениями и не парились. Это удобно и при правильном применении никакого ощутимого влияния на производительность не будет хотя в RT проектах лучше не выёбываться и обрабатывать ошибки в С-шном стиле от греха подальше, особенно в hard real time софте для каких-нибудь самолётов и машин
>Золотое правило софтвер ИНЖИРинга: работает - не трожь.
То-то блядь в гугле каждые пару лет полностью переписывают продукты
Спс за инфу, а то я так знаешь дурачек чисто мимо треда проходил и чет вот где то слышал кто то пернул про эксепшены но ты пришел и все хорошо так объяснил что даже я понял.
Кстати ты в курсе что у гугла свой язык есть? Я где то прочитал что и там экспшенов не завезли. Как думаешь почему? Очень хотелось бы услышать твоё мнение и желательно поподробнее
Я писал в учебных целях что-то вроде умного указателя. Внутри некой функции был создан один экземпляр такого указателя. Функция возвращает этот экземпляр по значению. При возврате из функции неявно происходит создание временного объекта, в который копируется экземпляр, а затем экземпляр выходит из области видимости функции и удаляется. Так вот, я прошелся отладчиком и оказалось, что при выходе из функции и создании временного объекта вызывается конструктор перемещения, хотя я ожидал, что это будет конструктор копирования, так как экземпляр умного указателя - lvalue. Я то конечно не против, но я не понял почему так. Неужели компилятор без моего спроса неявно применяет std::move к объету, который все равно вот-вот будет удален из стека. А если я не хочу так? Философия плюсов ведь в том, чтобы за все отвечал программист. Если бы мы всегда полагались на машину, то щас бы все сидели на сборщиках мусора и до полноценной семантики перемещения не дошли бы.
Сишечка очень приятная, кайфово на ней писать. И я очень люблю плюсы. Терминаторов напишут на плюсах и они будут расстреливать пидоРАСТов и ГОвноедов.
Суперкомпьютер из евангелиона написан на плюсах. У кого-то все еще остались сомнения кто здесь труъ а кто нет?
Нет, лямбда-вычисления, на которых базируются ФП языки, по дефолту отстают от машины Тьюринга.
Простой пример - в ФП нет такого понятия, как цикл. Циклы в ФП реализуются через рекурсию, а рекурсия всегда ГОРАЗДО медленнее цикла, даже хвостовая. Почему? Вызов каждой новой функции - это построение нового стекового фрейма с его последующей зачисткой, что куда медленнее, чем инкремент индекса цикла и прыжок в его начало. И с точки зрения количества ассемблерного кода, и с точки зрения кэша инструкций. Ну и не забываем про иммутабельность в ФП, что тоже вставляет палки в колёса. К тому же, ФП язык требует наличия виртуальной машины с интерпретатором или JIT компилятором, что означает, что процессор не сможет напрямую исполнять код программы. Также, ФП язык обязан иметь сборщик мусора. Совокупность всех этих факторов делает использование функциональных языков в RT крайне нежелательным, особенно в hard RT, где на кону человеческие жизни, зависящие от исключительного быстродействия программы.
Зачем фп языку обязательно нужна vm? +всякий анализ позволяет делать изменения инплейс, static refcount и тп (см. roc), хотя я согласен, что фп сомнительно смотрится для хард рт.
Посмотри как делать сайты. За недельку вечерков разберёшься.
При корректном rvo/nrvo у тебя в функцию передаётся слот, в котором и создаётся нужный объект.
Твоя функция оказалась слишком сложной для nrvo (early return, branched multiple returns?), вот ты и получил move.
Можно ли считать возвращение значения из функции за UB? По идее же конечная логика зависит только от компилятора.
Само UB зависит от компилятора.
>Зачем фп языку обязательно нужна vm?
основа фп - рекурсивные вызовы потому что
дальше сам додумывай
в фп языках за счет виртуальной машины внутри делают оптимизацию рекурсивных вызовов, если совсем упрощать то в потрохах виртуальной машины некоторые (или большинство) рекурсивных вызовов превращается в циклы на машинных инструкциях
конечно если говорить в рамках с++, то функциональный подход (если он не compile-time) оказываеться дорогим по причинам что ты сам сказал, хотя и в компайл тайм это тоже выходит дорого с той точки зрения что заметно увеличивает время компиляции юнита, но в 98 стандарте по другому метапрограммирование было невозможно, только через фп подход
Компилятор (а их много разных) решает сам - rvo, nrvo или nichevo. А значит нельзя заведомо сказать, какие методы (не)будут вызваны для конструирования объекта. И в итоге получается, что поведение не определено?
Ещё забыл спросить про ковычки, мне их вилкой чистить или Лохман за меня их может почистить?
>есть проще способ
Рапида для c++ - RapidJSON или Jansson для C.
Лохмана даже на его сайте хуесосят за отсутствие документации и внятных примеров. Он баны там раздаёт, но правду не скроешь.
Заруинил будущую карьеру в гугле
>unspecified behavior
Результат то такой же как делать >> << для signed типов. Просто не могу понять: вот вы тут в треде наяриваете на RVO, но по факту это же стрельба по ногам и говнодизайн. Ладно там двигать << >> signed типы никто не станет, но эта же хуйня затрагивает 80% среднестатистического кода.
{
public:
std::unique_ptr<Base> foo;
std::unique_ptr<Base> & getter() { return foo; }
}
a->getter() = std::make_unique<Derived>();
No operator ‘=‘ matches these operands.
Почему я не могу засунуть наследника в родителя по юник_птр?
Потому что объекты unique_ptr<T1> и unique_ptr<T2> имеют разные типы и не имеют операторов приведения друг к другу (это не встроенные типы указателей, для которых операции приведения определены стандартом).
Это как пытаться vector<double> = vector<float>.
А, не заработало, просто допустил ошибку в реализации класса
Я может в глаза долблюсь, но выделение в кучу у тебя не вижу. Все твои переменные выделяются в стек, в кучу выделяется только динамическая память.
> SBCL и Haskell вполне нативный код исполняют.
Объясни тупому, как в ассемблере сделать рекурсию? Вроде как, чтобы функциональщину завести на x86 машине, нужно все эти алгоритмы обмазать далеко нефункцмональными вещами, пусть и на нижнем уровне (чтобы математик не сильно переживал, что его абстракции исполняются в императивном виде)
Опечатался, да. Имел в виду стек
> Точно так же как обычный вызов функций?
Ну вообще да, но я, скорей, клонил к тому, что всякий вызов функции обозначает складывание ДАННЫХ в стек. А в функциональшине данные презираются.
Тому що тебе надо разобраться с понятиями физическая, логическая память. Я тебе могу сказать так что если ты запустишь два этих процесса сразу то консоль выведет тебе одно и то же, но это же не значит, что они будут писать в одни и те же ячейки
Я думаю, пока компилятор правильно преобразует фп в асм, никто возникать не станет. А так, вм тоже на императивном асме должна быть получается.
Это виртуальная память. Как на нее мапятся страницы физической - решает ОС. https://en.wikipedia.org/wiki/Page_table
Эта книга старая, да и не для фуллового нуба.
Просто спокойно это делается без вм, ноль отличий от обычных функций если делать как большинство.
>как в ассемблере сделать рекурсию
Ты можешь написать рекурсивную функцию в чистых сях? Напиши, и переведи её код в ассемблер. Или посмотри на годболте.
>чтобы функциональщину завести на x86 машине, нужно все эти алгоритмы обмазать далеко нефункцмональными вещами
Да, верно. Но если компилятор всё делает так, как будто программа исполняется функционально, то всем вообще пофиг, что творится под капотом. Все даже рады, что оно программа быстрая. Главное чтобы семантика была соблюдена. В этом собственно и главная задача оптимизирующих компиляторов - как сделать быстрее, но чтобы всё работало как будто ничего не поменялось. И это верно для всех языков общего назначения. В сях/плюсах есть этому даже формальное название - "as if rule".
Да, я потом уже заметил, что оператор присваивания сделан в виде шаблонного метода от типа внешнего указателя и Deleter.
я с c++ за 21 день начинал, вполне норм для вката
Программа ожидает, что я внесу или тип int, или тип string.
Но как сделать, чтобы она делала одно, если я ей дам int, и - другое, если дам ей string.
(Надеюсь понятно объяснил, что я хочу)
Когда я пробую пикрил https://godbolt.org/z/9TPMz6a13 то он не может вывести тип возвращаемого значения.
Я могу как-нибудь написать в сигнатуре функции такой тип возвращаемого значения, чтобы это было что-то более конкретное, чем auto, и чтобы он не завязывался на конкретную реализацию контейнера, который я возвращаю?
А, я не знал, что перед auto можно написать концепт. Вроде вот так работает.
Я бы поделил стартовую зп в твоём городе на 2. Примерно 40-50к для дсов. Просто ты совсем зелёный, считай школьник.
Хоть сколько нибудь. Если тебе вообще платят - это охуительное счастье
Такая ошибка была (в ноябре). У тебя нету путей к "program files (x86)" (именно директория ucrt). Пропиши вручную и все заработает. VS похуистически относится к установке путей при установке. майкрософту похуй на отдел качества, ошибке неск. месяцев а они не могут исправить
Да, только я чёт поздно понял, что это всё бессмысленно, потому что я объявление функции с auto не смогу поместить в хедер. Всё равно придётся указывать конкретный тип.
А я хотел типа, чтобы у пользователя был вот интерфейс, который гарантируется констреинтом, что возвращается какой-то sized_range, а какая там конкретно реализация - скрыто в реализации.
Мб я шиз и в этом вообще нет смысла даже в теории. Мне просто хотелось какой-то аналог того, как если бы я в жабе, например, вернул из функции Iterable вместо конкретного ArrayList.
Да, я кажется напутал. Спасибо.
То есть получается, что неопределённое поведение можно выхватить не только под разные платформы/компиляторы, но ещё и на одном и том же компиляторе с помощью -std=c++XX? Вот это я понимаю, дизайн так дизайн.
Ээээээээээх
13 вроде, прямо перед нарезкой "в предыдущих сериях"
И с разными флагами оптимизации (и не только) на одном и том же компиляторе. И в разных версиях одного компилятора. И и в одинаковых с одинаковыми флагами. Только rvo здесь не причём.
А ещё у крестов и сишки разные наборы UB даже в тех местах, где оба языка пересекаются. Что-то, что является UB в крестах, не UB в сишке, и наоборот.
Если rvo используется, то кк не вызывается, иначе вызывается. Соответственно получается 2 разных потока команд и разное поведение. Какое будет в итоге - заведомо неизвестно.
Ну это понятно, языки то разные. И компиляторы у них разные, хоть и ABI у них совместимые. Я про ебанину в рамках одного языка.
Ты же понимаешь, что одно описано в доках компилятора, а другое не описано нигде?
там есть фича пробросить доступ к карточке из гостевой машины к хосту? ответ: нет, только подсветка кода есть
Что ты хоть делать то собрался?
https://marketplace.visualstudio.com/items?itemName=NVIDIA.nsight-vscode-edition
Remote Development Support
Nsight Visual Studio Code Edition enables developers to implement CUDA code in various cluster environments such as Virtual Machines or remote Docker containers. It also supports code development for Linux systems via the Remote – WSL extension.
https://developer.nvidia.com/blog/remote-application-development-nvidia-nsight-eclipse-edition/
Remote Application Development using NVIDIA Nsight Eclipse Edition
Знания в программировании околонулевые, знаю только, что файлы witcher 3 можно в notepad++ редактировать.
Вобщем, посоветуйте мне курсов каких-нибудь бесплатных можно и с рутракера, пожалуйста. С меня как обычно.
Есть куча скриптов на питоне, под них хочется запилить gui на плюсах под x86. Запускать скомпилированный питон или скрипты питона через консоль не вариант, хочется изолировать код.
Знаю что можно исполнять питоновский код прям из плюсов, но нормальных гайдов об этом не нашел. И как там состоит вопрос со сборкой питоновских либ, тоже не понятно
Какие вообще способы существуют связать питон и плюсы?
Пиши гуй на питоне.
Хз на каком компе ты сидишь, но по дефолту во всех известных операционных системах включен ASLR (Address Space Layout Randomization). Стэк, куча и прилинкованные в рантайме динамические либы каждый раз загружаются в разные адреса (неизменными остаются только первые 3 ниббла из-за размера страницы памяти 4096 байт (в хексе это 0x1000)). А если сам бинарник является PIE (position independent executable), то и адрес бинаря в памяти каждый раз разный. Это придумали для того, чтобы при эксплуатации уязвимостей в софте взломщику было сложнее исполнить произвольный код, ибо адрес полезной нагрузки заведомо неизвестен и нужны дополнительные меры по обходу данной защиты (спиздить адрес одного из указателей, например, а потом посчитать оффсеты, но нужно наличие бага, позволяющее это сделать).
Адреса на твоём пикриле 32-битные, вангую, что ты сидишь с какой-нибудь старой ХРюши, где ASLR по какой-либо причине выключен (хотя это завезли в ОСи довольно-таки давно, примерно в 2002-2003 году)
Естественно совместимые, дурень, иначе ты бы не мог использовать либы, написанные на чистом С, в плюсовых проектах.
Нет, у тебя должен быть пустой конструктор без аргументов и отдельно метод init() с аргументами, который всё инициализирует и возвращает коды результата.
Ведь в крестах надо пойти на всё, лишь бы не юзать пиздоблядские эксепшены, ради высокой цели можно даже хуй пососать.
создавать через статический фактори-метод, если ты идейно не используешь эксепшены
на хосте есть gpu, собираюсь в виртуальной машине запустить решатель диффуров с использованием cuda хоста
Нашёл по ключевым словам "дубров учебник cmake", дальше с турбобита 50кб\с
Полистал немного, вроде норм, только шрифт огромный
Да.
> undefined reference to `cv::Mat::Mat
И так несколько сот ошибок.
В чем причина?
При попытке скомпилировать msvc пишет
> fatal error C1189: #error: "No Target Architecture"
чел, либген...
Не выставлено значение OpenCV_INCLUDE_DIRS.
Добавь set( OpenCV_INCLUDE_DIRS ${OpenCV_DIR}/include )
Директория для include не та, в той папке только файлы cmake лежат (пик). Но даже если выставить верную
> set( OpenCV_INCLUDE_DIRS C:/vcpkg/packages/opencv4_x64-windows/include)
Работать всё равно не будет. Те же самые ошибки.
Самое интересное, что само ide видит эту
> cv::Mat::Mat
Функцию, спокойно автодополняет, позволяет перейти к файлу с реализацией и тд.
Сейчас создал новый проект, с одной строкой кода и с компилятором msvc все заработало, а mingw по прежнему ругается. Может быть дело в том, что opencv компилировался собственно msvc?
Заголовки находятся в папке opencv2. Статическая линковка возможна, если и opencv и твой код собраны одним компилятором (либо msvc либо gcc (minGW) ). Иначе только через dll.
https://youtu.be/nnY4e4faNp0?t=2187
Я не могу никак понять, почему он говорит, что писать return move что-то даёт.
Он же тебе на ангельском говорит, что NRVO не работает для вложенных объектов. Почему вложенных? Видимо потому, что [a, b] это синтаксический сахар, скрывающий за собой экземпляр анонимного класса: class {T1 a; T2 b; };
Что ещё раз подтверждает, что rvo/nrvo это стрельба по ногам.
>return move что-то даёт
При возврате значения функцией вызывается конструктор копирования (данные копируются из локальной переменной во внешнюю переменную). Для внешней строки выделяется буфер new char[local_str.size()] и в неё копируется содержимое локальной memcpy(...).
Если сделать move, то возвращаемое значение меняет категорию на rvalue и для него вызывается конструктор копирования сдвигом. При этом строки просто обмениваются указателями на буферы ( эквивалентно вызову std::string::swap() ).
Так если тебе для анриала плюсы нужны, так и ищи вакансии на анриале
Ну а в целом с работой в плюсах все норм, просто очень узконаправленные области есть, где одних знаний плюсов недостаточно
> нужно высшее техническое образование
Это база, если конечно вуз хороший
Что то ты поздновато за голову взялся на 4 курсе, не очень похоже что тебе это интересно. Тебе за деньгами? Может лучше рассмотреть рыночек каких-нибудь мобилок, я в принципе пишу это потому что больно вкатываться тебе будет
Да собственно, я - мазахист, и не ради больших денег, хочу в геймдеве работать, но при этом склад ума у меня более математический, как по мне. Ну пока в планах заниматься web разработкой, чтоб с голоду не сдохнуть и чутка учить плюсы, до тех пор пока собес на джуна не пройду. И вот как-то посмотрел видосики, статейки почитал, и думаю мне зайдет плюсы учить. Да и тем более никогда не поздно что-то новое изучать, вдруг что и выйдет.
Вот с этим что-то вообще ебаться не хочеться. Ибо для того чтобы бумажку получить, надо делать 80 процентов бесполезной херни, и только 20 - реально полезны. Вуз как по мне хорош, если ты еще не определился, поэтому много инфы для "общего развития". Но еогда знаешь, то чем хочешь заниматься, вуз - больше мешает. Ну может я и не прав, но это мое мнение. Сам в вузе не учился, зато в профильном техникуме 4-й год катаю, на разработчика Web и мультимедийных приложений. Думаю самим шаблоном от вуза это не сильно отличается, сложностью - да, в вузе темы все-таки глубже изучают.
Так а ты сам как будто уже определился чем заниматься будешь?
> техникум от вуза не отличается
Если мы говорим о топовом вузе то отличается
Ну в целом не думаю что тебя работодатели прям сильно будут за вышку ебать, просто часть вакансий проебешь
Ну по крайней мере вектор определил с точностью 90% и это - разработка на Unreal. Если не понравится, то сольюсь, терпеть не буду. А так как я еще не смешарик (а точнее сказать полный ноль), то ясно что мне ничего толком и не известно об этой сфере, поэтому никакой конкретики нет.
Разобрался с ебаным сфмл, оказывается он сосноль не держал и она тупо закрвалась, лол.. На сколько зашкварно юзать это говно?
Пример: юзать исключения только в теле конструктора, из которого невозможно вернуть код ошибки при проблемах инициализации объекта без блевотных костылей, но после успешного построения объекта при вызове методов класса юзать возвращение кода ошибки, как в старой доброй сишечке? Приемлимо ли это и если нет, то почему и чем такой подход чреватен?
*lib2ipd
В вектор - нет. vector.data() скастовать к какому-нибудь byte (✯a)[3] - пожалуйста.
> {byte, byte, byte}
Из-за какого-нибудь паддинга ебаного может оказаться, что это нихуя не 3 байта.
Structured bindings?
Анон, помоги плез в изучение C++. Я хочу, но я не знаю что лучше, знаю базово С++, но не дальше. Есть ли место с курсами или какие-то книги?
так а какие у тебя цели вообще? что писать хочешь?
если базово что то знаешь то иди пиши что то, развиваясь параллельно
ну а в целом майерса какого то глянь
Организуй.
Для спортпроги намеренно прям учить плюсы не надо. Основые конструкции языка, да stl. Все. Начни просто код писать, затем смотри чужой, но после того как сам сдал задачу, естественно.
#pragma region
#pragma endregion
В студии удобного заголовок бить на разделы, но не знаю как оно будет в других компиляторах (библиотека будет опенсорсная в виде header-only)
Вроде мои смутные знания стандарта говорят что компиляторы должны игнорировать неизвестные pragma
Компилятору насрать на неизвестные прагмы, главное чтобы редактор был в курсе что это.
Достаточно выучить си и крестовую стл в пределах основных контейнеров и алгоритмов, ну и ввод/вывод, остальное в олимпиадных задачах нафиг не нужно.
Достаточно выучить си и крестовую стл в пределах основных контейнеров и алгоритмов, ну и ввод/вывод, остальное в олимпиадных задачах нафиг не нужно.
Вакаба блин
Представь, что для англоговорящих всё программирование выглядит как 1С.
Собеседовался с ними. Долбоебами показались. Спрашивали все подряд: и матстатистику, и линейную алгебру, и проективную геометрию, и программирование. При этом про фьюжен (хотя бы на уровне фильтра Калмана) никто при этом не знал (по крайней мере не спрашивали. Про работу слам тоже ничего не спросили (хотя я не одно собеседование по этой тематике проходил с другими ребятами, включая иностранных, и знаю, как это должно выглядеть). Такое ощущение сложилось, что они сами не знают, что хотят. Отзывы только добавляют колорита. Они меня не взяли, но и я бы к ним в итоге не пошел.
Ну и вообще у них вакансия cv-инженера уже месяца 4 на хх висит, если не больше. За это время можно было уж наверняка кого-нибудь найти.
Вот мои заметки после собеса с ними. Можешь поанализировать.
>Пошел на собес с конторой, которая занимается perception для машин, но не автопилотами. Даже по отзывам контора очень мутная. Работают они уже давно, года с 2012 точно, но до сих пор особо ничего не представили на рынке. Так что если мне откажут, то вздохну с облегчением.
> Само техническое собеседование оставило двоякое впечатление по всем аспектам. Ко мне пришло аж 4 человека, так что я украл у компании 8 человеко-часов. Было несколько секций по 15 минут.
> Первая была по теорверу. Первая задачка ровно та, которую я сам задаю на своих собесах (даже проще). Остальные на определение среднего и дисперсии суммы случайных величин. Я немного потупил с этой частью, но описал им то, как в общем случае это высчитать.
> Потом была часть с теорией 3D-реконструкции. Меня мучали теоретическими вопросами типа "сколько нужно точек, чтобы оценить fundamental или essential матрицы?". Я в эту теорию никогда особо не окунался, но признаю, что надо бы. В любом случае мы побеседовали обо всех этих преобразованиях. Я упомянул всю нужную терминологию. В целом, показал, что в теме. Хотя откровенно лично мне эта часть не понравилась.
> Другая часть была посвящена написанию простого 2D фильтра на питоне в блокнотике.
> Потом они захотели поговорить про машинлернинг. Я сказал, что диплернингом не занимался, потому что не было такого устройства, которое потянет хотя бы инференс. Поэтому ограничились линейной регрессией. Обидно, что я забыл упомянуть про "hat matrix", но в целом линейная регрессия проста и обсудили мы ее очень быстро.
> Интересно было обсудить билинейный фильтр. Я напрочь забыл, как он устроен. Основной затык был в том, что мы должны провести квазилинейную интерполяцию по четырём точкам, хотя достаточно для этих целей трёх (плоскость-то проводится через три точки) В итоге я эту задачу обобщил для нефиксированных точек на сетке: сказал, что мы строим overdetermined систему уравнений и решаем ее с помощью svd-декомпозиции, что в принципе эквивалентно проведению плоскости, оптимальной в среднеквадратичном смысле. Они немного прифигели и после этого выдали решение "из книжки". Оно норм, но моё-то круче!
> Еле вспомнил, что была часть, посвященная линейной алгебре. Абсолютно элементарная. Про мои любимые скалярные произведения. Даже были вопросы типа "назвать область значений арккосинуса". Но я и там выпендрился, потому что начал затирать про тензоры, когда речь зашла о векторном произведении.
> А теперь, что мне показалось крайне странным. Их команда занимается в частности sensor fusion. Там базовый классический алгоритм это фильтр Калмана, но они прямым текстом сказали, что его не шарят. Сама эта команда из двух человек, хотя компании уже минимум лет 8. Мы не поговорили про устройство SLAM, а это база perception. Когда я сказал, что зашарил математику SLAM в свое время, они вроде как довольно заулюлюкали. Они не спросили меня по плюсам вообще ничего, но при этом сказали, что в их продукте плюсы используются на уровне "си с классами". Если почитать про их руководство, то возникает много вопросов типа "а не является ли эта контора просто отмывалкой у инвесторов денег".
Вот мои заметки после собеса с ними. Можешь поанализировать.
>Пошел на собес с конторой, которая занимается perception для машин, но не автопилотами. Даже по отзывам контора очень мутная. Работают они уже давно, года с 2012 точно, но до сих пор особо ничего не представили на рынке. Так что если мне откажут, то вздохну с облегчением.
> Само техническое собеседование оставило двоякое впечатление по всем аспектам. Ко мне пришло аж 4 человека, так что я украл у компании 8 человеко-часов. Было несколько секций по 15 минут.
> Первая была по теорверу. Первая задачка ровно та, которую я сам задаю на своих собесах (даже проще). Остальные на определение среднего и дисперсии суммы случайных величин. Я немного потупил с этой частью, но описал им то, как в общем случае это высчитать.
> Потом была часть с теорией 3D-реконструкции. Меня мучали теоретическими вопросами типа "сколько нужно точек, чтобы оценить fundamental или essential матрицы?". Я в эту теорию никогда особо не окунался, но признаю, что надо бы. В любом случае мы побеседовали обо всех этих преобразованиях. Я упомянул всю нужную терминологию. В целом, показал, что в теме. Хотя откровенно лично мне эта часть не понравилась.
> Другая часть была посвящена написанию простого 2D фильтра на питоне в блокнотике.
> Потом они захотели поговорить про машинлернинг. Я сказал, что диплернингом не занимался, потому что не было такого устройства, которое потянет хотя бы инференс. Поэтому ограничились линейной регрессией. Обидно, что я забыл упомянуть про "hat matrix", но в целом линейная регрессия проста и обсудили мы ее очень быстро.
> Интересно было обсудить билинейный фильтр. Я напрочь забыл, как он устроен. Основной затык был в том, что мы должны провести квазилинейную интерполяцию по четырём точкам, хотя достаточно для этих целей трёх (плоскость-то проводится через три точки) В итоге я эту задачу обобщил для нефиксированных точек на сетке: сказал, что мы строим overdetermined систему уравнений и решаем ее с помощью svd-декомпозиции, что в принципе эквивалентно проведению плоскости, оптимальной в среднеквадратичном смысле. Они немного прифигели и после этого выдали решение "из книжки". Оно норм, но моё-то круче!
> Еле вспомнил, что была часть, посвященная линейной алгебре. Абсолютно элементарная. Про мои любимые скалярные произведения. Даже были вопросы типа "назвать область значений арккосинуса". Но я и там выпендрился, потому что начал затирать про тензоры, когда речь зашла о векторном произведении.
> А теперь, что мне показалось крайне странным. Их команда занимается в частности sensor fusion. Там базовый классический алгоритм это фильтр Калмана, но они прямым текстом сказали, что его не шарят. Сама эта команда из двух человек, хотя компании уже минимум лет 8. Мы не поговорили про устройство SLAM, а это база perception. Когда я сказал, что зашарил математику SLAM в свое время, они вроде как довольно заулюлюкали. Они не спросили меня по плюсам вообще ничего, но при этом сказали, что в их продукте плюсы используются на уровне "си с классами". Если почитать про их руководство, то возникает много вопросов типа "а не является ли эта контора просто отмывалкой у инвесторов денег".
Спасибо
Хочу запилить пет-проектик. Змейка, тетрис, что-то такое. Норм для графики использовать SFML?
Да, пилил змею на SFML, всего 150 строчек.
Слушай, а ты нихуя себе умный. Довольно разнообразные знания. Реально в работе используешь и матстат и линал (ну ладно, про линал очевидно) и машилернинг? Сколько из того, что ты сказал на собесе - знания из реальной а работы, а сколько - остаток с уника?
Я почему спрашиваю: перекатился в селф драйвинг из гейдева. Работаю в ДС-2 в местом аналоге Рога и Копыта. Сперва думал, что зоебис, опыта релевантного наберусь. Но, по факту, занимаюсь хуйней - и плюсы особо не качаю, и комп зрение поскольку-постольку. Посоветуешь плез что-нибудь ? мб у тебя в кармане есть пиздатый пет проект, в котором можно прокачаться или совет куда смотреть надо? А то мне уже 25, помирать скоро, мои сверстники 300кк нс зашибают, занямаясь пиздатыми вещами, а я приору посаженную набеспилочиваю без особого толка
Установил Eclipse на Win10. Одни проблемы. Значки запуска не создало нигде. Нашел в каталогах, кликаю, не запускается, говорит версия java не та, хотя у меня новая. Было у кого такое?
И мне нужно постоянно дергать функцию которая скажет сколько байт отправилось, да? Когда все отправится, тогда можно считать, что сообщение доставлено, я правильно понял?
> Eclipse
Друг, ты выбрал наверное самое хуевое, что существует. Вот самое. Даже ебучий вим с плагинами - и тот вменяемее, чем эклипс.
А вообще - лучше вижуал студии ничего не сделали, и вероятно, не сделают
Microsoft уже покаялся и выпустил VSCode, .NetCore и пошёл дальше. Очевидно, что при такой движухе сидеть в штудии, это как в штаны пердеть и вспоминать молодость.
Вот кстати я сам охуел, но мне удобнее пользоваться vs code со своими настройками. Я сначала сидел в vs studio, ибо охуенно, но потом меня заебала возьня с несколькими файлами, когда у мен я программа имеет 2 режима компиляции. Я хз как в vs это обойти легко и я не смог. В итоге сначала писал код в vs, но без проекта, а компилировал через консоль, а сейчас вообще настроил vs сode со нужными компиляторами, флагами и тд. Установил нужные расширения типо cppcheck, clangtidy и прочего и теперь мне НАМНОООГО удобнее в vs code. Я даже хз как это все в vs studio также настроить
Да самый обычный чел, поработавший в предметке и с нормальным образованием. То, что он там навысирал - это база, а всё, что с него спрашивали - используется в CV. Контора походу мелкая и работяги тянут сразу по несколько направлений. Отсюда такой разброс в требованиях/вопросах к кандидату.
>плюсы особо не качаю
Ну если ты матанием занимаешься, то они и не будут качаться в принципе. Даже наоборот - если на собесе спизднёшь, что занимался, то это сразу минус в карму тебе.
Пчел, не знаю ка там у тебя в нулевых, но проекты нынче пишутся на нескольких языках и обмазываются девопсом. В штудии через одно окно ты охуеешь всё это связывать.
>проекты нынче пишутся на нескольких языках и обмазываются девопсом
1 проект на нескольких языках это весьма печально, особенно если это какой-нить говномикс уровня питон\кресты\нодаЖЫЭС.
Такое надо дробить на отдельные микропроекты с отдельным деплоем.
Не, ну понятно, что всё логически разбито на подпроекты. Но допустим ты пишешь бек, а дебажить его надо вместе с фронтом. Пишешь матан - его надо дебажить вместе с беком. Отсюда выбор - править проекты синхронно в одной IDE, которой пользуются все твои коллеги (VSCode), либо открывать сразу несколько и ебаться в 2-3 окнах, держа в голове все комбинации клавиш, менюхи, особенности конфигурирования и настройки окружения.
Ну а говномикс python/c++/javascript это норма для CV/ML. Современно-молодёжно.
>проблем юа решилась
Что значит юа, не решилась?
>>292195
Что посоветовали на курсе Яндекса то и установил. Вижуал студия это рак, 30 гигов весит, больше чем вся винда, лул.
>>292201
>А чо не блокнот сразу?
Прежде чем ехидничать поинтересуйся о чем речь. Сейчас это самый крутой редактор, он всех обошел. Забрал весь рынок текстовых редакторов для программистов и еще часть рынка IDE отхватил. Очень крутая штука.
Чем? Матанием? Матаном всм?
В целом опередивший меня анон прав.
На последней работе нужен был обширный матан, включая матстаты, линал, теорию оптимизации. На собеседовании к себе в отдел я спрашивал задачку по теорверу, потому что это было основным направлением для отлела (мы исправляли нелинейные эффекты сенсоров и нужно было хорошо понимать природу явления, строить модели и уметь строить алгоритмы компенсации) Машинлернинг я пытался использовать, но мне не хватило опыта нормально все сделать (машинлернеры кстати, как правило, остального матана не знают по опыту собеседований). Плюсы я особо не использовал на хорошем уровне. Но на всех стульях не усидишь и нужно выбирать ветку развития хотя бы на ближайшие 2 года, а потом можно ее менять. Я последние лет пять-семь был математиком, теперь свитчнулся на плюсы (пишу математическую либу теперь). Вот сижу с вами теперь итт.
У меня нормальный компьютер. Но как линуксоид и здравомыслящий человек я считаю, что IDE не должна весить 30Гб. Это больше чем любая современная ОС! Ты это понимаешь? Это рак. Из-за такого IT и скатилось в яму. На фронте теперь загружают миллион библиотек, для того чтобы сделать простенькую анимацию. Даже 1С под Линукс весит в разы меньше, в районе 1Гб всего. Даже это плохой показатель, не unix way. Но 30Гб! это вообще за гранью.
> я как линуксойд
Дальше мог и не писать красноглазик
Кто то что то считает, а кто то работает и программирует
Пока ботаю сишечку + отдельные удобства крестов типа строк и векторов. Ну не хочу я сука процедурный алгоритм упихивать в развесистое дерево классов, притом что сам язык этого никак не требует.
>строк и векторов
это ооп
> не хочу я сука процедурный алгоритм упихивать в развесистое дерево классов, притом что сам язык этого никак не требует
так не пихай
работу найди
> это ооп
Для меня это просто тип "строка" и безразмерный массив. С ебанутым синтаксисом, да. Психически здоровый человек бы запилил что-то типа "vector string MyStringList;".
А так любой HLL внутри сводится к машкоду, смысл этим сознательно забивать голову?
>это ооп
У тебя ООП головного мозга. Строка и вектор это просто структура данных. В школе учишься?
Вот когда это надо будет, тогда пусть будет пердолинг. Простые вещи должны делаться просто. Это блядь так сложно и дорого реализовать?
И нет блядь, я не буду перекатываться на интерпретирумую хуйню по массе причин.
Сисярп тоже такое себе, синтаксис тоже мерзкий и масса своих маразмов в стиле "дидываивалемы страдали и ты пострадаешь", просто в другую сторону.
> так не пихай
Ну так вот есть какой-то учебник вменяемый или курсы, где пихать не призывают?
Ну заебло, какую статью или туториал не откроешь - собака ЭТО зверь, звери ЭТО животные, у животного ЕСТЬ цвет... Опять это выращивание дерева классов через наследование. Я понимаю, в 90ые ООП считался серебряной пулей, решающей все проблемы, но скрипя зубами кресты в итоге объявили мультипарадигменными. Щас то этот подход унылый нахуя навязывать?
Причём тут итераторы? У психически здоровых людей было бы "vector MyCoolStructType ...." и дальше обходи массив любым способом. Не понимаю, в чём проблема, кроме "дидываивале".
>совсем скоро про итераторы узнаешь, тогда поймешь
Итератор это функция. Ты мало образован и у тебя "ООП головного мозга".
> дидываивале
добро пожаловать в 2022, где все итераторами пользуются
малой вобщем, не бухти
ооп учиться максимум за день
Буду бухтеть. Нахуя городить лишние сущности? Почему не просто вектор обойти в for? В чём выигрыш от begin-end?
Хочу установить компилятор от Майкософт для использования в VS Code. Делая по инструкции из доки, скачать build tool для visual studio, а там компоненты для C++ занимают 7,47 Гб! Как так?
Чтобы иметь один интерфейс для миллиона контейнеров
>инкапсуляция - наследование - полиморфизм
>Это не ООП
какие только кадры в этом треде не появляются
То есть компилятор размером 7Гб это нормально, нужно просто дисков по больше покупать? Еще и реферальную ссылку походу кинул.
В том, что тебе не надо знать что это за вектор (и вектор ли) ты просто идёшь и обходишь без задней мысли.
> То есть компилятор размером 7Гб это нормально, нужно просто дисков по больше покупать?
Не вижу проблемы купить нормальную ССДшку, яж не нищий. Собстно, у меня такая же, только 2тб
Да, я забыл, что в сишке типы гвоздями прибиты и для обхода int и string надо писать два отдельных цикла.
Ты не ответил на вопрос. Это нормально, что компилятор весит 7+ Гб? Больше чем целая ОС. Это полная деградация.
>нормально, что компилятор весит 7+ Гб? Больше
Там не только компилятор, но и ОС СДК полная, с хуевой горой прекомпайлед либ. Сам компилятор весит пикрил, опять же с кучей всякой прекомпайлед тулзы.
Но главный посыл все еще в том, что ты нищий, и купи ССД. Хоть винт купи. Терабайтник косарь стоит. Косарь - это 15 минут моей работы.
2 косаря на авито, да, не косарь. Но все еще
>Так крупные прикладухи и должны весить больше ОС.
Из дурки капчуешь?
>>292819
>Там не только компилятор, но и ОС СДК полная, с хуевой горой прекомпайлед либ.
GCC под линукс и под винду весит раз в 30 меньше. В 30!
>>292819
>Но главный посыл все еще в том, что ты нищий, и купи ССД.
У меня 3Тб памяти, но я не собираюсь из за этого обмазываться дерьмом в виде VS.
>Терабайтник косарь стоит.
5К
Оказывается секта C++ это хуже сишников и 1сников. Орут: ко-ко-ко, язык должен быть быстрый и тратить мало памяти. А когда тыкаешь их в дерьмо наподобие visual studio, начинают переобуваться: ну а чё, диск купи. Двойные стандарты на лицо. То ли школьники, то ли шизики-сектанты.
хотя может это и к лучшему что такие отсеиваются
Когда ты устроишься на первую работу (если такое случится вообще) ты поймешь, что самое ценное - это время разработчика, а не 7 гигабайт места. И что студия повышает продуктивность очень и очень сильно.
Но я боюсь, что в силу собственной тупости, ты даже первую работу не найдешь.
У тебя проблемы с головой? Инкапсуляция, наследование и полиморфизм достигаются средствами функционального программирования. ФП появилось раньше. Почему тогда инкапсуляция, наследование и полиморфизм должны называться ООП? И кто вообще сказал, что ООП это инкапсуляция и бла-бла? А как же передача сообщений? Алан Кей сказал: "Я изобрел термин ООП, но не имел ввиду C++".
Адепт винды не может ничего знать о продуктивности. Продуктивность это кода не используешь мышку вообще. Адепты винды так не умеют, да и винда не позволяет все делать через консоль.
>>292901
Хватит записывать меня в студенты. Это твоя фантазия. У вас же нет никакой идеологии. Вы пустые. Должны быть какие принципы, которые нельзя переступать, ну или хотя бы нежелательно, что порицается. У вас ничего нет, вы носитесь по порывам ветра.
> линукс
> функциональщина
> не использовать мышку
> не осилить ооп
> нет работы
> БЛОАТЭД
>Адепт винды не может ничего знать о продуктивности. Продуктивность это кода не используешь мышку вообще. Адепты винды так не умеют, да и винда не позволяет все делать через консоль.
Ох, студентик. Любой человек, кто писал код в проде - знает, что бОльшую часть времени - ты код читаешь, а не пишешь. Разбираешься как что работает и тд и тп. Продуктивность - это не скорость, с которой ты пишешь laba2.cpp
На твои высеры про мышку-хуишку купится только первокуры, ведь в КОНСОЛЬКЕ ПЕРДОЛИТСЯ ТАК КРУТО, СМОТРИ КАК Я ОХУЕННО ДЕЛАЮ ЗА ДВА ЧАСА ТО, ЧТО В ВИНДЕ ДЕЛАЕТСЯ ОДНИ КЛИКОМ.
Не рвись ты так, манюш. Закончишь вузик, пораскидываешь резюме, рано или поздно ну должны тебя джуном за тридцатку в месяц взять - и все поймешь.
>ДЕЛАЮ ЗА ДВА ЧАСА ТО, ЧТО В ВИНДЕ ДЕЛАЕТСЯ ОДНИ КЛИКОМ
Подтвердить сможешь? Как насчет установки программ? Как насчет администрирования системы? В винде установить 10 программ это работы не меньше чем на час. В линуксе на это тратится минута, а пока устанавливается можно что то делать. Тебе не надоело в штаны себе накладывать?!
Мы вообще про программирование тут - но ладно.
> Как насчет установки программ?
Так же как в линуксе, есть пекедж менеджеры, есть unattended установки у всего софта вообще, начиная от фотожопа, заканчивая 3дмаксом. Мир не заканчивается на potato guy и gcalc.
А теперь расскажи мне, как ты устанавливаешь софт, которого нет в репах, пердоля. Склонить, поставить нужные депенды, конфигуре, маке, маке инсталл, потом чинить ошибки компиляции и подбирать версии либ.
> Как насчет администрирования системы?
Винрм, SSH, SCCM, групповые политики AD. Никогда не думал, почему весь энтерпрайз сидит на винде? как раз потому, что это сильно проще и дешевле, чем ебаться с линуксом. Да, ДЕШЕВЛЕ, при том что винда платная, а линукс нет.
> В винде установить 10 программ это работы не меньше чем на час
Хуйню придумал какую-то, тут без комментариев. Зависит от программ и метода их установки.
> В линуксе на это тратится минута, а пока устанавливается можно что то делать
Сравниваешь apt install vim и установку вижуал студии, да?
> Тебе не надоело в штаны себе накладывать?!
Пока обосрался ты, снова.
>Должны быть какие принципы, которые нельзя переступать, ну или хотя бы нежелательно, что порицается.
Ну многие осуждают UB. А так же вызовы виртуальных методов в конструкторе. Или использование переменных с двойным подчёркиванием в начале.
Потому-что оно не собирается само, очевидно же
Какой ты пиздатый. А теперь иди нахуй.
Прикольно
А, если я еще не заебал, еще чуть доебусь. А то не хватает проф совета
Как бы ты советовал качаться в математике? Стоит ли брать в руки советские (условно) учебники и зубрить их или же стоит уже разбиратся на реальных задачах - тот же СЛАМ, например
И вообще много ли в России (хочу перебраться в ДС) нормально оплачиваемой работы (не в НИИ), по направлению персепшена? Не буду ли я делать робота федора со своей тягой к математике?
Иногда самому впору такие заказы разместить, ибо для очередной дохуя опенсорсной софтины не выкладывают готовый бинарник и пишут инструкцию сборки на 50 страниц, где надо скачать, установить и настроить небо и аллаха.
Если я компилирую плюсовый код с -fno-exceptions например с помощью gcc, нужно везде вешать noexcept? Оно вроде как и надо, оператор noexcept() будет докладывать что функции бросают, но с другой стороны компилятор и сам мог бы повесить тупой что ли? .В документации gcc на этот счет ничего не написано.
Также если тут есть ембедщики или просто те кто не любит ексепшоны, накидайте может книжечек или докладов про то как эффективнее ошибочки обрабатывать, про полезность отсутствия произвольных выходных дуг и все такое.
>не выкладывают готовый бинарник
ну так поставь из репозитория дистрибутива и все, вместо тебя уже все собрали. Или что-то совсем редкое используешь?
>есть пекедж менеджеры
Какие? Что там в репах есть? Большая часть пользовательского софта в винде ставится ручным скачиванием и ручной установкой.
>unattended
Шта?
>как ты устанавливаешь софт, которого нет в репах
Успешно. Способов много. Все рабочие. В Арче так вообще все в репах есть.
>весь энтерпрайз сидит на винде
Очевидная ложь. Энтерпрайз бывает разный. Ковыряние железок на заводе это не энтерпрайз. За весь ты знать не можешь. Поэтому не обобщай.
Остальные твои цитаты можно охарактеризовать как: врёти!
>Как бы ты советовал качаться в математике?
Какие разделы тебя интересуют? Есть только один способ прокачки математики - решение практических задач. Просто чтение как газетку - это пустая трата времени. Каша в голове будет, не более.
> по направлению персепшена?
Не так чтобы много, но даже итт тут минимум двое, кто с этим имел дело. Другой вопрос - так ли принципиально заниматься персепшоном? Есть много других областей, может, даже более интересных. Плюс работу искать будет сложнее, чем если бы ты был просто с++ девелопером. Из крупных контор разве что Хуавей в дс набирает именно математиков. Китайцы в русских видят именно эту экспертизу наиболее сильной. Остальные хотят многостаночника, который бы и код со сфинае херачил и спарс-методы бы знал (в итоге не умеет ни того, ни другого, лол).
Но если персепшон тебе нужен, то вот навскидку небедные конторы, где этим занимаются: самсунг, хуавей, яндекс, артек3д, эвокарго, вейрей, сбер, align (плюс-минус). Ещё какая-то Веда-проект вертелась на хх последнее время, но там хз, что они делают.
> Как бы ты советовал качаться в математике?
Итеративно. Ставишь себе цель заботать слам: штудируешь какой-нибудь дсо. Готовишь прямо подробное описание, как что в нем работает. Потом пытаешься запустить что-то готовое (заодно познаешь таинство калибровки), потом пишешь свой игрушечный слам (лишь бы работал). Ну а потом обратно погружаешься в учебники матана и узнаешь детали про представления групп Ли например зачем их в оптимизаторе логарифмируют. Ну и про сами подходы оптимизации узнаешь из другого учебника.
Потом берешь пишешь фильтр Калмана например. Заставляешь его работать на синтетике, потом повторяешь матстаты и учишь, как распределены дисперсии оценки после фильтра. Постоянно чему-то нужно учиться короче.
А потом ты понимаешь, что в зависимости от области твоих интересов все сводится либо к задаче оптимизации, либо к задаче оптимизации на графах.
Продолжаем ссать второкурснику на лицо всем тредом дальше. Второкурсник просит еще.
> Какие?
https://github.com/microsoft/winget-cli
https://chocolatey.org/
Как минимум
> Шта?
Это нормально, что ты нихуя не знаешь. Ты же дурачок. Просвящайся - https://www.pcmag.com/encyclopedia/term/unattended-install
Вообще весь хоть какой-то популярный софт в это умеет.
> Успешно. Способов много. Все рабочие. В
Нихуя не сказал, рофл.
> В Арче так вообще все в репах есть.
Что все то? Пчел, ты немного бредишь уже в своем фанатизме. Большей части нужного мне софта под твою хуйню нет вообще, а ты мне про говоришь про весь софт в репах.
> Очевидная ложь. Энтерпрайз бывает разный. Ковыряние железок на заводе это не энтерпрайз. За весь ты знать не можешь. Поэтому не обобщай.
Давай определим это как "практически все конторы, торгующиеся на NASDAQ, и не связанные с линуксом как с главным источником прибыли, а-ля Редхат". И я буду прав здесь, сам в такой работаю, и знаю много коллег из соседних.
> Остальные твои цитаты можно охарактеризовать как: врёти!
Ну ты же снова слился, дурачок. Нихуя не сказал, только расписался несколько раз в собственном невежестве.
Пойми - еще 15-20 лет назад ЛИНУКС это было что-то новое и интересное. И да, действительно, в некоторых кругах задротов знать его считалось круто. Сейчас - твою поделку знают вообще все. Вот прям - практически любой айтишник. И все прекрасно знают, что эта хуйня работает через раз, что нет софта, и что нахуй оно никому не надо, даже бесплатно. Ну, кроме дурачков, само собой. Сейчас вот такие вот шизолинуксоиды вызывают только смех и, немного, сострадание. Не более.
Ценятся реальные знания какие-то, умение создавать и мейнтенить проекты например, знать какие-то крутые специализированные вещи. А то, что ты арчик по гайду поставил - это тебя никак не выделяет из массы таких же туповатых студентов. Просто ты не только туповатый, так еще и упертый, вот и все.
Вчера появился только. Не windows way. Где репы? Пустые небось.
Этот костыль тоже не так давно появился. Сделан какими то сторонними разрабами. У них хоть репы открытые или они могут любых вирусов накидать?
Это тоже не windows way костыль. В общем все что ты перечислил это костыли, созданные чтобы хоть как то облегчить и ускорить работу с программами в windows. Это никогда не будет работать также четко как в Линуксе. Эти принципы не вложены в ОС. Пользователи не используют и не будут это использовать. Программы по прежнему будут выкладываться на свои сайтики. Никто не будет успевать обновлять репы.
>Нихуя не сказал, рофл.
А что ты не знаешь как в Линуксе можно установить пакет? Можно даже из исходников собрать. Что в Windows невозможно почти всегда.
>Что все то?
Например свежий компилятор Окамла. Хотя это и редкая штука. В арчевых репах почти все есть и все свежее.
>рактически все конторы, торгующиеся на NASDAQ
Ой, как будто ты работаешь в такой сфере. То где ты работаешь энтерпрайзом не назовешь. И вообще энтерпрайз это помойка. Ничего хорошего они не создают. Покупают двоешников из бодишопов, а они пишут компиляторы по 7 гигов объемом.
>Ну ты же снова слился
А что там комментировать? Да, я сравниваю установку вижуал студии с другими программами. Могу сравнить с IDEA. Она весит в десятки раз меньше чем Visual Studio. По функционалу не уступает. Работает на Линуксе. Шах и мат.
Еще твое врёти прокомментировать? Зависит от программ и метода установки? Вот именно, что в винде зависит, а в линуксе не зависит. Ставишь хоть ядро, хоть модули ядра, хоть что, все по единому принципу. Быстро и четко. Хочешь, откатишь. В винде так нельзя. Шах и мат.
Долбоеб напридумывал какой-то хуйни, как надо устанавливать программы, и теперь срет своими бреднями в С++ треде.
Типичный двощ
Перекати
А есть что то, что более походит на std-шные плюсы? А то в бусте пол библиотеки переписано и ощущение, что на другом диалекте пишу
В начале был буст... Но потом пришли комитеты и получилось то, что получилось...
> И все прекрасно знают, что эта хуйня работает через раз, что нет софта, и что нахуй оно никому не надо, даже бесплатно.
Это исключительно десктоп, на который корпорациям глубоко срать и который пишут хикки в свободное от фапа время.
Телеком весь на линуксе, интернет блядь весь на линуксе. Ткнись на любой сайт, в любой почтовик, в любую телефонию - там внутри будет линукс и опенсорнсые поделки типа энджайникса и астериска. И оно как-то вот работает, на двачах же сидим все нормально.
>работает через раз
Вась, можно ли восстановить винду после синего экрана? Линукс можно восстановить почти в любой ситуации. Более 90% серверов в мире это линукс. Он работает стабильно. Винда крашится по любому поводу. Бывает ставить программу на винде, а она падает с ошибкой, и ничего не сделаешь. В линуксе такое можно починить.
>энджайникс
Энджиин, то есть двигатель. Это так произносится. Звучит как en·jn. В остальном со всем согласен.
https://www.google.com/search?q=engine+произношение
> Это исключительно десктоп, на который корпорациям глубоко срать и который пишут хикки в свободное от фапа время.
Так разговор только про десктоп и есть. Сервера понятное дело на никсах
>>293606
> можно ли восстановить винду после синего экрана?
Рассказываю - Синие экраны это проблема либо с 3рдпати драйверами, либо с железом. И это вполне пишется в мемори дампе и даже на самом экране.
Если проблема с драйверами - то идешь в safe mode, и переставляешь\удаляешь, если это китайский античит. Если с железом - ну тут уж сорян.
> Винда крашится по любому поводу.
0 крашей за 10+ лет. Как и у абсолютно всех вокруг.
>Синие экраны это проблема либо с 3рдпати драйверами, либо с железом.
Какая разница. Похожие баги с дровами в линуксе фиксятся и не нужно систему переустанавливать.
>И это вполне пишется в мемори дампе и даже на самом экране.
Лол
>Если проблема с драйверами - то идешь в safe mode, и переставляешь\удаляешь, если это китайский античит.
Если в винде выскакивает ошибка с кодом, то в большинстве случаев никто не знает в чем причина и как фиксить. На сайте майкрософт написаны предполагаемые причины, но обычно все действия не приносят результата. В конце они пишут "обратитесь к своему администратору".
>0 крашей за 10+ лет. Как и у абсолютно всех вокруг.
Кудахтанье. Обобщение. Попытка создать впечатление, что "вас" много. Нет, Вася, ты один такой балабол. Остальные знают и признают, что винда глючное поделие.
Винда создана для ламеров и не предназначена для работы в режиме 24/7. Поэтому большая часть багов лечится только переустановкой. Линукс можно разрушить до основания, удалив все, включая desktop environment, а потом спокойно восстановить.
> Переобулся
Нет. Я везде только про десктоп говорил.
>>293794
> не нужно систему переустанавливать
> Если проблема с драйверами - то идешь в safe mode, и переставляешь\удаляешь, если это китайский античит.
Ты читать чтоли не умеешь, пердоля?
> Если в винде выскакивает ошибка с кодом, то в большинстве случаев никто не знает в чем причина и как фиксить. На сайте майкрософт написаны предполагаемые причины, но обычно все действия не приносят результата. В конце они пишут "обратитесь к своему администратору".
И в гугле искать тоже.
> Остальные знают и признают, что винда глючное поделие.
Бля шиз, ты мне так нравишься. В одной строке обвиняешь меня в обобщении и САМ ОБОБЩАЕШЬ.
> Винда создана для ламеров и не предназначена для работы в режиме 24/7
Я честно говоря не совсем понимаю, как ты одновременно срешь хуйню, которой срали немытые додики из начала 2000ых, и при этом сам являешься тупым студентом. Ты ЛОРа начитался чтоли?
Просто все, что ты говоришь - это твои фантазии и шизохуйня. Какие-то баги винды (бывают, да). Только лечатся они откатом обновления, а не ПЕРЕУСТАНОВКОЙ. Просто поток невежественного бреда, рили.
проверил : да, компилятор ничего не вешает, надо все вручную обмазывать. Но может все таки есть ключик для автоматического noexcept?
https://ru.wikipedia.org/wiki/Epoll
https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports
И обертки над этим в виде boost::asio
Асио оборачивает эти OS-апи, да
Корчое, как собрать бинарник так, чтобы его можно было запустить на максимально возможном количестве компов? Просто я посмотрел
> По умолчанию libstdc++ и libgcc подключаются динамически, получается, если я запущу собранную прогу на другом компе, где этих либ нет, то она может не запуститься?
Да.
> То есть их нужно линковать статически? Но вроде libgcc вообще невозможно слинковать статически.
Возможно. А ещё можно положить либу рядом с прогой.
Читай доки
async_read_some начинает асинхронное чтение и сразу возвращает управление вызывающей функции. Функтор который ты туда передаешь будет выполнен извнутри вызова io_context::run
Алсо, goodconnection - это std::atomic_flag я надеюсь? Иначе ты нарываешься на data race
>>294562
>на другом компе, где этих либ нет
А почему их там нет? Пусть ставит
Алсо, есть LD_LIBRARY_PATH переменная окружения, еще RUNPATH в elf которая тоже задает путь поиска либ
>>294313
>epoll
Сейчас модно io_uring
Вообще странно у тебя написано.
Буфер x - локальная переменная на стеке и она удаляется на каждой итерации while. При этом async_read не блокирует поток, а проскакивает дальше на следующую итерацию. Получается, что данные ещё не пришли, а буфер уже умер.
Собери в snap\flatpak, или во что там еще. Это единственный живой способ сделать свою софтину available на всех 1488 дистрибутивах луникса
Это ж гигантская европо-основанная бюрократическая машина, там большая часть про сертификаты и всякие бумажки, а не кресты.
Ну то есть я понимаю, что оно не сразу вызывает друг друга, но в целом какой то странный код
Эх, как же хочется худенькую, бледненькую сишечку с тоненьким abi, классическую, не целованную проклятыми хипстерами, с небольшим оверхедом, с указателями на указатели на указатели , растрёпанными или неуложенными скобочками, лохушку без перспектив и зарплаты...
>А если у меня соединение будет сутки держаться и много маленьких сообщений пересылать, то я словлю переполнение стека?
надеюсь ты блядь студентик еще, а не деньги своим кодом зарабатываешь
мимо припекло безработному старику
>Любой человек, кто писал код в проде - знает, что бОльшую часть времени - ты код читаешь, а не пишешь.
Большую часть кода ты не читаешь и не пишешь, а отлаживаешь.
Ну если ты не тдд-пидор, конечно.
>Сейчас модно io_uring
модно-хуедно
зачастую эти долбоебы вообще не прикидывают планируемую нагрузку, а на деле оказываеться обычного ввода-вывода синхронного достаточно
я ебал эту клоунаду уже
Оно просто создает какой то объект и сохраняет указатель на функцию в этом объекте, чтобы потом вызвать. А сама функция async read мгновенно завершается и никаких рекурсий не вызывается.
Ты какую то странную фразу выделил. Да, я долбаеб, потому что не разобрался с функциями буста, но из моего неверного понимаю совершенно логично следует строчка, которую ты выделил. Бесконечная рекурсия -> переполнение стека
Пока я подразумевал, что у каждого сообщения есть дата. А список сообщений это просто set, который их по дате посортирует. Если коротко ответить на вопрос, то да, порядок важен.
В связи с чем вопрос, а есть примеры, когда наследование -- это лучшая идея, чем композиция/имплементация интерфейса? Потому что если нет, выходит, что всё современное ООП -- это какое то решение проблем через задний проход. Ибо полиморфизм достижим без объектов вообще (через тайп трейты в Расте или тайп классы в Хачкелле, например), как в общем то и композиция. А если нет разницы, зачем платить больше?
Ну и я помню что в цопепе нет интерфейсов, но есть множественное наследование, но условно то все равно можно поделить.
>Поэтому большая часть багов лечится только переустановкой.
Допустим. Только проблема в том, что линуксоиды смотрят на разработчика, как тупая пизда или бабка на Сычёва, т.е. как на тыжпрограммиста. А раз тыжпрограммист, то должен знать абсолютно всё про комплюхтеры и уметь исправлять абсолютно любую проблему. Но реальность в том, что если ты столкнулся с проблемой в линуксе, да, скорее всего, ты можешь её исправить без переустановки, но перед тобой встаёт дилемма: либо переустановить ОС, либо изучать, как работает хуетанейм в Линупсе и почему она отвалилась. И далеко сука не факт, что второй вариант быстрее первого.
Предвидя нытье "а как же конфигурация системы после переустановки". Что вы, будучи девелопером, собрались так долго конфигурировать несколько часов? Если конечно ваша разработка не связана с серверами на никсах, но тогда выбор в пользу Линукса вполне естественен и не нуждается в ином обосновании.
Предвидя аргумент "достаточно просто понимать как работают операционные системы на базовом уровне". Нет, сука, недостаточно. То, какой линукс простой и не-блоатед -- это просто наглая ложь, линукс -- это 20 миллионов строк кода, и это только ядро, он перестал быть простым и понятным уже очень давно. Никакой курс по операционным системам и никакая книга этого не компенсирует.
"Ну ты научишься чинить разную хуиту и станешь делать это быстрее". Не факт. И опять же, как часто мне нужно переустанавливать шиндошс, чтобы потерянное время на переустановки перевесило потерянное время на еблю с линупсом? Раз в год? Раз в месяц?
>как часто мне нужно переустанавливать шиндошс, чтобы потерянное время на переустановки перевесило потерянное время на еблю с линупсом?
Имеется ввиду, даже если предположить, что со временем я научусь исправлять фатальные баги линупса быстрее.
Ну и банально, всякие мелкие проблемы возникают гораздо чаще, чем фатальные. И где на виндоус просто миллионы ответов на любые вопросы, то с линуксом ты должен скакать по форумам разных дистров. Особенно если это как то связано с десктопом и мультимедиа, ибо тут даже факт "сервера гоняют линупс/бсд" тебе никак не поможет.
К маку кстати это не относится, ибо там не меньшая чем у винды юзербаза и единая система, а не куча несовместимых сборок с нескучными обоями.
Я лично проверил сейчас это на 10000 потоках и 50 вставках в multiset. Если писать с мьютексами, то выходит 23 секунды. Если при этом не вставлять, а просто залочить и разлочить мьютекс, то выходит 15 секунд. К сожалению без мьютексов не могу проверить, потому что тогда сет багуется и прога бесконечно выполняется
>это ооп
Нет, не ооп.
Контейнеры -- это не ооп.
Итераторы -- это не ооп.
Полиморфизм -- это не ооп.
Вызов функций через точечку после первого аргумента -- это не ооп.
Возможность в функции обращаться к первому аргументу, не указывая его явно в петухоне и расте все равно приходится писать self -- это не ооп.
ООП -- это приватные мемберы онли, отсутствие множественного наследования, отсутствие статических классов, мемберов и методов, и адаптеры вместо интерфейсов (см. пикрил).
К сожалению, люди в вузиках зачастую нихуя кроме ООП не учат и сравнить его ни с чем кроме как с допотопным Си не могут. Поэтому по иронии судьбы они обзывают ООП всё, что к ООП имеет мало прямого отношения. И я сейчас даже не про то самое ООП Алана Кея, а про ООП в Жабе и крестах.
Если не дошло полностью, реализация протокола сделает ещё несколько попыток, потом да, обрыв соединения. Но с очень маленькой вероятностью ошибок может не произойти, если совпадёт контрольная сумма.
Имеет ли смысл мне в моей программе писать и читат в разные буфферы?
Msvc.
Я кста этой хуйней компилирую просто потому что с вузика привык и мне при дебаге поебать на производительность, но пишут, что gcc глючная медленная хуйня, которая генерирует плохой код. Мнение?
msvc на винде, гцц на пердолеговне скоро начнем использовать.
>если нет разницы, зачем платить больше?
Платить? Чтобы достичь динамической диспетчеризации в GHC добавили ExistentialQuantification, что наверняка сравнимо по затратам. Про раст хз.
> gcc глючная медленная хуйня, которая генерирует плохой код. Мнение?
Хуй знает, только слышал, что исходные код ГЦЦ хуевый и новые модули/языки/стандарты поддерживать тяжело. А код генерирует нормальный, быстрее чем у шланга(clang).
Вот это эталонное переобувание. С точки зрения пользователя Линукс устроен просто. Его интерфейс (API) очень просто и понятен. В Windows для 1 задачи может быть 10 интерфейсов. Все они разбросаны по системе. И т.д. и т.п. В общем она вроде красиво и качественно выглядит. А в деле кривое поделие, не предназначенное для безотказной работы.
Линукс похож на ретро автомобиль. Такие авто живут десятки лет, некоторые доживают и до ста. Они сделаны очень качественно, очень надежно, работают безотказно. Их делали из дорогих, качественных материалов. Они просты в устройстве. Поэтому в них нечему ломаться. Они состоят из небольшого количества деталей. В винде все диаметрально противоположно.
Как же вы заебали, неосиляторы
У меня у одного за 4 года использования Линукса не было никаких проблем что ли? Особенно учитывая, что 98% времени я сидел на арче. Хули вы такие рукожопы-то, блять?
>У меня у одного за 4 года использования Линукса не было никаких проблем что ли?
очевидно, что да.
Я недавно ставил убунту 21.04 на домашнюю систему. Так сразу после установки - оно просто висло на загрузке.
И перед тем как обвинять меня в КРИВЫХ руках - что надо было сделать, чтобы этого не было? Исошник с оффсайта, устанавливал с флешки, ничего в установщике не кликал лишнего - просто фулл разметка стандартная одного диска, и далее, далее, далее.
>У меня у одного за 4 года использования Линукса не было никаких проблем что ли
Сейм.
5 лет на генте, 4 года на фряхе
с хуя ли нет?
iso типа международная организация, но крестовый стандарт выпускает ISO/IEC JTC 1, а они в вашингтоне
понял
сша это ебаное
жиды
жидочурки
победили жидомасоны из сша, кресты эти ебаные, js блевотный, явка-хуявка
Самому что-ли идти контрибьютить в компиляторы чтобы наконец то все заработало
Модули уже в позапрошлом году же были
https://devblogs.microsoft.com/cppblog/a-tour-of-cpp-modules-in-visual-studio/
они тогда нихуя не работали и компилировались только через СОСНОЛЬКУ, а вот с выходом VS22 - уже туда сюда.
Ну так оно даже не грузится, да. А раз для домохозяек - то хоть грузится то должно
У тебя и сейчас простецкие задачи.
Попробуй на бумажке рисовать квадратики и стрелочки. Не БЛОК схемы - а просто самому себе разделяй логику на какие-то обособленные операции и записывай таким образом.
Ну и не пытайся не в коем случае использовать какие-то сложные фичи языка. Пиши код максимально просто и понятно - да, будет МНОГОСЛОВНО, но когда у тебя будет уже все написано и работать - атм уже зарефакторишь
писал на сишке немного, с плюсами проблем думаю не возникнет
>двач, посоветуй что почитать/посмотреть
https://ravesli.com/uroki-cpp/
>чтобы за неделю плюсы освоить
>с плюсами проблем думаю не возникнет
лал
я же не говорю, что мне продакшн-код надо за неделю научиться писать, мне хватит стандартной библиотеки с базовых конструкций, это вполне за неделю осваивается в новом языке
за линк спасио
Ты чо, охуел? Мы только змейки да чатики на сокетах умеем.
Лучше оригинал на learncpp.com
Ну, весь линуксовый гуй почти написан на сишечке с тулкитами, посмотри исходники. Пердолики говорят, что проще ебаться с памятью и указателями, чем писать на крестах мусорного кода больше, чем самой логики программы.
Особо следует обратить внимание, что пишется всё это обычно забесплатно и люди тупо могут выбирать более приятный язык, не оглядываясь на кабанчиков. И выбирают почему-то голый ссы.
Если там "не бей лежачего" и пишешь как хочешь, лишь бы задачи выполняло, я бы в такое вкатился.
Аудиоплеер нормальный напиши, да. Чтобы все форматы, любые кодировки, cue, питч крутить, плейлисты... На кутях самое оно. Существующий deadbeef как-то на отъебись сделан, пусть он и наиболее вменяемый в линуксе.
На той же строке { всрато выглядит, рилли. Не делай так.
Ещё отучись от вырвиглазного кулхацкерства в условиях if. Напиши отдельно свой километровый вызов функции с присвоениями, а на следующей строке проверь ифом, что оно вернуло. Компилятор код сгенерит такой же, но читаемость возрастёт на порядок.
> ВООБЩЕ не используя cos и sin, и не пытаться их имитировать, вообще без тригонометрических правил и функций
Ну блин, у тебя есть координаты начала и конца линии. Берёшь любую функцию или алгоритм типа Брезенхема для рисования линии, хотя оно и из головы велосипедится несложно, и телемаркет.
Йопт, я такое в 10 лет на кубейсике писал. Программки в несколько строчек получались, но выглядели очень эффектно :)
Зачем? Я понимаю, что у меня на ноуте максимум адекватно можно 12 запустить. Я просто тестил тупой метод ради интереса
Да, кстати, извини. Я изначально неправильно написал. Мне не стек нужен, а мультисет (или его подобие). То есть чтобы сообщения были отсортированы по дате, но при этом возможна ситуация, когда из-за пинга сообщение которые было отправлено раньше придет позже, поэтому просто стек не подходит
Интерфейсы как раз-таки есть. Создай класс, где все методы pure virtual - вуаля, у тебя есть интерфейс. Создавай N-ное количество наследников и оверрайдь методы хоть до посинения.
Смотря какой гуй. GTK - да, Сишечка. Но кеды написаны полностью на плюсах, ИЧСХ, жрут намного меньше ресурсов и оверолл более шустрые.
В общем, есть батник запускаемый под вин10 через планировщик задач при запуске компа, задача состоит в том, чтобы написать батник, который вырубал бы его при включении определенных программ из списка.
Как я себе это представляю, оба батника запускаются через планировщик, один рабочий самый первый, второй просто постоянно находится в фоне и ничего не делает, в нем внутри и находится список программ-триггеров, второй батник вырубает полностью первый, и вот как это реализовать я придумать не могу.
Важно чтобы все это было штатными средствами винды, то есть та же CMD и планировщик.
В общем, есть батник запускаемый под вин10 через планировщик задач при запуске компа, задача состоит в том, чтобы написать батник, который вырубал бы его при включении определенных программ из списка.
Как я себе это представляю, оба батника запускаются через планировщик, один рабочий самый первый, второй просто постоянно находится в фоне и ничего не делает, в нем внутри и находится список программ-триггеров, второй батник вырубает полностью первый, и вот как это реализовать я придумать не могу.
Важно чтобы все это было штатными средствами винды, то есть та же CMD и планировщик.
Отбой, я сделялъ!))
Это копия, сохраненная 21 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.