Вместо шапки:• https://github.com/sosachbot/cppthreadhat/wikiОтветы на вопросы:• https://en.cppreference.com/w/• https://www.cplusplus.com/reference/Прошлый тред >>1643956 (OP)
А я перекатываю свой вопрос из прошлого треда сюда.Какую ide предпочитаете для разработки?Алсо: а что думаете насчёт юзания vim?Clion живет у параши вместе со своим high usage CPU
Начал читать Принципы и практика использования и просто охуел на моменте с калькулятором. Что за пиздец? Откуда столько непонятных терминов? Какие-то термы, грамматика. Охуеть можно, стоит ли продолжать?
>>1657447Блять, я ожидал нормальное возрастание сложности, а не с лёгкого на хардкор за одну страницу
>>1657438Раньше чтобы программировать надо было разбираться в нескольких околоматематических областях знаний, гугли Computer Science. Сегодня уже не актуально.
>>1656422 →> Объявление класса само по себе не создает никаких сущностей, только определяет структуру объекта.Наглая ложь.> A class definition introduces a new type.https://timsong-cpp.github.io/cppwp/n4861/class.name#1.sentence-1type является entity (сущность)> An entity is a value, object, reference, structured binding, function, enumerator, type, class member, bit-field, template, template specialization, namespace, or pack.https://timsong-cpp.github.io/cppwp/n4861/basic.pre#def:entityТаким образом, объявление (являющееся определением) создаёт новую сущность.
>>1657456Ничего, пройдет. В букваре у Страуструпа тоже в начале много хардкора. Но он по сути выполняет роль анонса. Дальше потом уже нормально.
>>1657470Нет, не тупой, просто нужно время на понятие грамматики парсера, это проходит, не парься, если не можешь понять эту грамматику, то почитай аналогичные вещи в интернете, грамматику рекурсивного спуска например.а еще лучше никуда не гнаться и взять дня 3 перерыва и просто подумать самому, а потом перечитать главу, обычно помогает
>>1657468У него "сущность" в другом смысле была заюзана. Имеется в виду что при объявлении класса память в не выделяется.>кидает пруф, что объявление класса вводит новый типТы туповатый чутка, да?
>>1657475>У него "сущность" в другом смысле была заюзана.В C++ у сущности только один смысл — https://timsong-cpp.github.io/cppwp/n4861/basic.pre#def:entity> Имеется в виду что при объявлении класса память в не выделяется.В кампиляторе выделяется>>кидает пруф, что объявление класса вводит новый тип>Ты туповатый чутка, да? Что не так? Тип — сущность. Ввести новый тип = ввести новую сущность.
Пацаны, а как в крестах объявить аналог классовой функции или классовой переменной из Паскаля? То есть такую которую я могу выполнить или обратиться не создавая объект и при этом не получить AV. И можно ли писать хелперы для базовых типов (int, string)?
>>1657102 (OP)Анон, есть ли предпочтение static методам класса (если возможно) const? решарпер такой совет дает. Какие плюсы от этого, если метод например private?
>>1657520Что значит предпочтение? Если метод можно объявить константным и ты готов ебаться с константностью то объявляй как константный. Если уже какой-то код есть то лучше чукнуть как в нем все сделано. Если там забивали на константность то лучше все так и оставить. Ну или рефакторить все. Хотя от константных методов неудобства минимальные - можно и всегда их объявлять.
>>1657524Я выразился не так. Предпочтение к статик, а не к конст, решарпер тоже предлагает статики. >>1657534В нормально дизайне ебли не будет. У меня уйма математики, и много хорошо изолированных классов.Мне больше интересует выгода по какой-нибудь потокобезопасности, скорости и тп
>>1657520Если у тебя в методе не используется this, то решарпер предлагает сделать его статическим, все правильно.
>>1657520Со стороны кода — никаких.Со стороны машинного кода — погоняй свои примеры в https://gcc.godbolt.org и посмотри.>>1657558>Мне больше интересует выгода по какой-нибудь потокобезопасности, скорости и тпПо скорости — нужно идти в дизасемблер и смотреть конкретные случаи.По потокобезопасности — тут только уменьшать кол-во shared стейта, это главный камень преткновения и const/static тут не поможет ничем.Короче, пиши всё по семантике и не еби голову.
Запилил аналог cheat engine, при записе в память нужного участка - падает все приложение сканируемое. Привелегии отладчика получил. Чо не так?
>>1657558В вызов любого не статичного метода передается скрытый параметр (ссылка на объект у которого вызван метод). Соответственно у статических методов такого параметра нет и они должны давать какой-то мизерный прирост скорости. Но особо хитрожопые компиляторы вполне могут и оптимизировать такое. Также статические методы более удобные - их можно в любой момент вызвать. Для вызова нестатического тебе нужно где-то достать объект класса. Если у метода статическая суть то лучше его статическим и объявлять.
>>1657478В С++ один, а в русском языке нет> В кампиляторе выделяетсяОчевидно, что речь не о компиляторе а о самой программе, тупицаты мне уже поднадоел признаться своей одаренностью, так что иди нахуй
Наткнулся на какую то дичь. Почему при выполнении:tempValue = 1280;buf = (char*)&tempValue;buf остается пустым? Если другие числа, то все нормально.
>>1657808Блин, а как тогда длину переменной в байтах получать? Я делал так: tempValue = var;buf = (char*)&tempValue;int length = strlen(buf);Но теперь оказывается это пидорасится спецсимволом.
>>1657811я чето вообще не понимаю, что ты делаешь. Обьясни пожалуйста.Длина инта всегда 4 байта, sizeof?
>>1657812Неправильно выразился. Не длину переменной, а сколько байт она занимает в данный момент времени. Ну то есть var = 1, то 1 байт, var = 640, то 2 байта. Причем var может быть не только int, но и string или float.
>>1657816Если это int или float, то да. Но у меня QVariant.Тогда другой вопрос. Вот мне надо записать в файл значение без лишних нулей. Ну понял да, чтобы 1 не записывалось в файл, как 00 00 00 01. И потом к нему пришпилить еще длину в байтах. Ну например, для var = 1, записывать 01 01, для var = 1280, записывать 02 05 00, или для var = "TEST" записывать 04 54 45 53 54.Как мне вытаскивать длину в байтах, как нибудь попроще?
>>1657823QVariant тоже. Там указатель и какой-нибудь тэг внутри. Sizeof его всегда одинаковый, если типы одинаковые.То, что ты спрашиваешь в п2 - это тебе нужно просто написать сериализацию.Что в духе ТИП, ДЛИНА, данные. И предусмотреть возможность того, что оно не нулл паддинг.В случае конкретно интов - ты всегда можешь проверять, больше оно в 2^8, 2^16 и тд для ансайнедов.
>>1657823> Как мне вытаскивать длину в байтахСчитай логарифм по основанию 256.В >>1657811 у тебя пидорасило не из-за спецсимвола и из-за того что strlen ожидает терминированую нулем строку. Если ты хочешь считать так как ты считал то тебе нужно число конверить в строку с помощью itoa по основанию 32 и полученую длину делить на 2.
>>1657824Как в QByteArray записать без лишних нулей?Пишу QByteArray data;QDataStream in(&data, QIODevice::WriteOnly);in << var;А он все равно нули пишет.Блин, раньше как то делал, сейчас не помню уже.
>>1657844Как ты узнал, что нули? Если var int и bigendian включен в qdatastream, но при записи 1 ты очевидно получишь в первых трёх байтах нули
Хочу сказать спасибо тому анону, который мне посоветовал решарпер. Производительность возрасла в разы. Алсо, ещё я научился с маркетплейса вс качать полезные штучки, например, построитель графиков по данным, что для меня просто мастхев
>>1657844У стандартных стримов на этот случай есть метод put(). А оператор << преобразует чары в инты
>>1657893Спиздил после триала. Ещё не вырос пока до покупки софта, извините. Ещё и vs community edition.Если вдруг будет закупка, то решарпер включу туда
>>1657755>В С++ один, а в русском языке нетКогда будешь на русском языке программировать, тогда и пользуйся смыслами терминов из русского языка. А это тред про программирование на C++.
Устроился сегодня на 1 работу жуном, предложили 1 месяц 300$, это нормальная практика или меня пытаются наебать? Какие были ваши первые зп?
>>1657988Первый раз слышу про ctrl+RW, даже не знаю что он делает.Но этот аддон на любое сохранение файла просто нахер все выпиливает лишнее, не в этом ли счастье
>>1658010Если ты устроился на первую работу - ты уже выиграл в лотерею. Через год уходи на килобакс, а пока сиди смирно.
аноны хочу вкатиться в программирование с нуля,возраст 25 лет,подскажите с какого языка лучше начать и для начала админом на удалёнке,есть ли смысл для опыта посидеть годик,вообщем у кого опыт есть,дайте пожалуйста почту свою или телегу,пообщаться на эту тему
>>1658023Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>>1658036кинь телегу или почту,буду советы спрашивать хотя бы,как вкачусь полноценно и буду нормально получать,отблагодарю а то я щас прочитаю,азы освою и хуй с маслом сосать буду
>>1658054зависит от города. в ДС через 2 года, в миллионниках через 3, в мухосрансках таких зарплат нет
>>1657933Программирую только на православном. На нем сам перевод стандарта написанИ да это С++ тред, таким хуесосам дибиловатым как ты здесь явно не место, пиздуй в джс-загон тебе хуев в жопу накидают, всё как ты и они любят)))))
>>1658135>Программирую только на православном. На нем сам перевод стандарта написанТак в переводе у "сущности" остался тот же смысл, что у entity в оригинале.
>>1658398Да, кроме случаев когда произойдет чудо и компилятор соптимизирует хвостовую рекурсию. Если твой компилятор вообще такое умеет.
>>1657748>статическая сутьЧто ты под этим подразумеваешь? Типа внутрь метода не нужно передавать объект?
>>1658142Это шутейка, долбаебКогда тебя твой парень тебя в жопу ебет, ты ему тоже ноешь "Вазген, трахай под 69 градусов, а не 45, у меня геморой вываливается"?Думаю тебе в ПТУ несладко приходится. Каждый день водолаза в тубзике заставляют играть? Или перерыв на карантнин все таки дали, потому что там сейчас не во что мокать?Проверь в словаре значения всех использованных в твоем следующем ответе слов, лалка, а то вдруг кто доебется. И точку в конце не забудь
>>1658412Все распространенные (MS, gcc, clang) вроде как умеют но стандарт не требует обязательно оптимизировать, поэтому там могут быть нюансы - компилятор может передумать ее оптимизировать если ему что-то не понравится. Ну и нужны более жесткие режимы оптимизации (типа О2/О3).>>1658415> Что ты под этим подразумеваешь? То что метод использует только статические члены класса (или не использует вообще).
>>1657130>Алсо: а что думаете насчёт юзания vim?если умеешь печатать в слепую десятью пальцами и умеешь пользоваться шеллом, то нормпо сути все дела делаешь в консоли, а в вим тупо редактируешь код
>>1658667Пфф мне доставляет удовольствие обсирать тебя, так что разорвало тут разве что твое маленькое нежное колечко от огромной чурчхеллы ВазгенаТочку поставил, красавчик
Сука, как же у меня полыхает. Как же я люблю cppшники на 7к строк и больше, где дохерища ifdef, часть из которых проваливается на компиляции, а часть вообще неизвестно что включает и зачем нужна.Где половина значений из функций возвращается через ссылки и ты хуй поймёшь, модифицируется ли оно где-то внутри или нет и приходится лезть в 100500 функций и осознавать это, и в итоге где-то в куске кода, который выключен макросом, это херня таки модифицируется и ты идёшь осознавать, когда этот макрос включается и что он делаетА какая ляпота когда всё вынесено в глобальные переменные.. Мммм..... Как же это ахуенно, когда можно получить доступ по всему и отовсюду. Даже из методов isCheckSomething можно менять эти самые переменные! Разве это не ахуенно!?И как же здорово копипастить код! Зачем же выносить его в отдельные методы, если можно просто скопипастить! Ведь его же никогда не придётся менять!! И файл с 10к строками не придётся открывать, наверноеА лямбды в лямбдах которые в других лямбдах какая красота! Зачем задумывать о том, что и как и куда вынести, если можно просто нахерачить 100500 лямбд? Вот и не зачем!
>>1658975Ну так сделай рефакторинг, это же самая мякотка. Мужики потом руку жать будут, хрюши перед тобой будут жопами крутить, а начальник лично премию выпишет.
Господа, кем работаете? Пердолите легаси под винду или делаете йоба-проекты под Linux со всеми новыми фишками плюсов?И вообще, каков на сегодняшний день рынок плюсов в ДС? Какие есть интересные места, где не занимаются программированием под древние технологии?
>>1659468> Пердолите легаси под винду или делаете йоба-проекты под Linux со всеми новыми фишками плюсов?Делаем йоба-проект под три платформы со всеми новыми фишками плюсов, параллельно пердолим легаси, внедряя эти самые фишки (легаси старше половины анонов итт)
>>1659493>Делаем йоба-проект под три платформы со всеми новыми фишками плюсовА что хоть за сфера деятельности? Приложения под десктоп какие чи шо?
>>1659468>Пердолите легаси под винду или делаете йоба-проекты под Linux со всеми новыми фишками плюсов?Кек всё. Легаси и не под винду, полуэмбеддед линукс (бортовое оборудование), десктоп с "фронтом" под винду "беком" на ртос на параллельных ядрах. Использую фишки когда это возможно.Сфера авиация, больше не расскажу, NDA.
>>1658036Шесть месяцев назад я нашёл в Интернете книжку "Dive into Python". Странная книжка, толстая, да ещё на не русском языке. Усердно прочитал её, методично и вдумываясь, но таки ничего и не понял. Но что-то не отпускало меня - я пошёл на python.org и стал изучать стандартную библиотеку, старательно, скурпулёзно, от корки до корки. Гугля примеры кода, я наткнулся на пост в блоге одного гуру, где было написано про PEP8. То, что рассказывал этот умудрённый опытом кодер, настолько впечатлило меня, что я словно в припадке безумия бросился зубрить эту конвенцию по написанию питоньего кода. У меня тряслись руки, по телу прокатывали волны возбуждения, я, можно сказать, бился в экстазе всё это время - и теперь могу процитировать наизусть любой пункт, даже если меня разбудить посреди глубокой ночи.Новые знания окрыляли меня, я бросился писать (что бы вы подумали?) очередную имиджборду. Я не писал раньше имиджборд, эта была моей первой. По пути пришлось освоить азы вёрстки на html и css, но там всё оказалось совсем не сложно.Я плавно двигался вперёд, наращивая функционал. И знаете что? Я упёрся в недостаток производительности. Ну, так мне показалось. Я делал замеры, устранял места с тяжёлым кодом. Тысячи раз запускал ab, но так и не сумел перейти порог в 300 запросов в секунду. Я как-то ожидал большего и был немного разочарован.Гугл, снова гугл. Десятки статей и тем на форуме... Довольно быстро я заметил, что люди часто пишут про какие-то "асинхронные веб-сервера". Часто встречались названия Tornado и Gevent. Я прочитал про них подробнее - и был просто ошеломлён. Как мне это раньше не приходило в голову?! Это же, это просто гениально, чёрт меня побери!Исходники в ведро, всё переписать! Меня переполняло новое знание, поток мыслей ровно ложился в строчки кода. Я просто не мог остановиться. Чашка кофе... Ещё чашка... Мой небольшой кусочек софта приобретал кристалльную чистоту, я смертельно устал, но продолжал в умилении полировать его зудящими руками, нанося последние штрихи.Пять тысяч. Я получил производительность в пять тысяч запросов в секунду. В ту ночь я так и не смог заснуть.Наиувлекательнейший мир хай-лоада открылся передо мной. Позже я изучил ещё много классных вещей типа сверхбыстрых асинхронных key-value-хранилищ, или, например, такого необычного подхода к обработке данных, как map-reduce.Это уже был другой я, новый, обновлённый. С незашоренным взглядом, с жаждой новых знаний и незнакомых концепций. Я летел вперёд, оставляя за спиной ступень за ступенью.За пол-года я сменил несколько мест работы, и моя зарплата взлетела до умопомрачительных сумм. Сотни замечательных мест открыли передо мной свои двери. Любые, самые изысканные девушки проявляли просто чудеса изобретательности, чтобы находиться рядом со мной.А ещё, я никогда не забуду тот момент, когда на одной из конференций я впервые в жизни поймал на себе завистливый взгляд. Это был взгляд какого-то сливающегося с толпой неудачника, взгляд преисполненный ненависти, презрения и желчного вожделения, направленного на мой Олимп. Наверное, он всю свою никчёмную жизнь писал на каком-нибудь си-шарпе или там на джаве, проводя долгие дни в одиночестве. И теперь начинал подсознательно догадываться, что долгие годы безуспешно пытался построить замок из навоза.
>>1659541Судя по коду, species хранит указатель на массив part размером np_alloc элементов. В нём "активных" элементов species->np. Если места под ещё один активный элемент нет, то бросается ошибка. Иначе код добавляет ещё один активный элемент. int n = species->np;species->part[n].x = x;species->part[n].v = v;species->np++;Так понятнее?
Аноны, смотрите что я могу сделать на C#.Суть токова: есть 2 класса (Class1 и Class2), каждый в своём файле (Class1.cs и Class2.cs). Класс Class1 содержит ссылку на Class2, а класс Class2 содержит ссылку на Class1. Всё что мне надо было сделать, это просто написать объявления этих классов в разных файлах.Вопрос: как сделать такое в C++?
>>1659575Пишешь объявление (не определение) класса в ашнике одного из них, ссылки на неопределенные классы разрешены, ибо одного размера, шарп это спиздил из сишки ещё.Но правильнее делать однонаправленные ссылки на интерфейсы, и в реальном коде по другому не получится.
>>1659575Я тебе может секрет открою, но в c# твоя хуйня типа Class1 a; не равносильна Class1 a; из c++. Грубо говоря это больше похоже на std::shared_ptr<Class1> a; с неявным вызовом make_shared в консрукторе в конструкторе. А для такой хуйни достаточно forward declaration
>>1659607Да, в шарпе это ссылка по факту. Значит в C++ объявление с виду будет другое, что-то вроде Class1* class1; Но тут главное чтобы суть была той же - первый класс содержал ссылку на второй, второй на первый, и чтобы они были в разных файлах. (то что это можно сделать в одном файле я знаю, это у меня получалось). Собственно проблема у меня сделать так чтобы они были в разных файлах.
Зову винапишную функцию.>Error C2664: cannot convert argument 4 from 'int *' to 'PDWORD'В винде фирменные проприетарные указатели? Если тупо кастить в PDWORD оно вообще запустится?
>>1659779Конкретно эту проблему удалось убрать написав:#include "Class1.cpp"Но в самом файле Class1.cpp есть такая же проблема, и таким способом её убрать не получилось, потому что взаимные инклуды, насколько я понимаю, невозможны.
>>1659768PDWORD - это указатель на беззнаковое целое.>>1659779У тебя говно сорокалетней давности вместо языка циклическая зависимость. Ее можно разрулить только выносом реализации методов в отдельный файл куда инклюдить хедеры с нужными классами. В В.срр инклюдишь А.h, в А.срр инклюдишь В.h
Эй, сишники, расскажите как вы выживаете в мире с куцей документацией по библам. ежу понятно что язык это в первую очередь его инфраструктура, а не синтаксис Решил вкатиться в libevent (простенький CRUD запилить с веб мордой) стоковая документация ищет только по LIKE% и причем только на функции (структуры приходится искать на этом же сайте через гугл, лол), гайды уровня как нарисовать сову. Смотрю, http модуль libevent по ходу сам выставляет куки, опять же в документации на эту тему по запросу cookie ничег не выдает, а гугл выдает все страницы где есть просто libevent, угадайте почему?потому что на каждой странице снизу есть плашка предупреждающая что "мы используем cookie" лолКароч здоровья вам и терпения (ну и мне). К слову сказать у sqlite все достаточно понятно, и документация годная.
>>1659790Вроде получилось сделать как хотел. Классы в разных файлах (правда каждый класс в двух файлах - в .h и в .cpp, но это не проблема, меня это тоже устраивает), ссылаются друг на друга, могут использовать функции друг друга, интеллисенс есть. Спасибо.
>>1659787> #include "Class1.cpp"Пиздец, батенька.>>1659880> каждый класс в двух файлах - в .h и в .cppЭто стандартная практика для c++, в h объявление, в cpp реализация. Когда придут модули, сможешь писать как на сисярпе.
>>1659834На гитхабе поищи проекты, где эта либа используется. Обычно там можно подпиздить куски годного кода. Я так в одной либе буста разбирался, хотя там на весь интернет две строки документации
Пиздос, оказалось, что я совершенно не знал, как работает friend.Был класс A, я захотел сделать функцию, принимающую A, вычисляющую всякую хуйню, используя protected const методы класса A, думал, ебану friend и все будет норм, но хуй там блядь! Автор A почему-то не сделал этот важный функционал public, не предусмотрел, и мне теперь либо копипастить тот код (что плохо, так как дублирование), либо наследоваться.Да, почему-то сделал class B : public A, там float f(const A&a) const { return a.protectedfunc()++; }, но такое тоже не хочет работать.Есть ли нормальный вариант? Как быть, если автор либы в чем-то ошибся?
Точнее, не конст, а статик:class B : public A, { static float f(const A&a) { return a.protectedfunc()++; }private: B(){}} >>1659912
Есть std::list<int> lst;std::next(lst.end()) гарантированно возвращает lst.end(), или зависит от реализации?
По дефолту вектор создается на стэке (если юзать new, то в куче, естественно), как работает механизм динамического массива (вектора) без кучи? В стэке могут быть только статические массивы, длина которых известна во время компиляции, как тогда вектор может динамически изменять свою длину, не будучи в куче?
>>1659991Вектор это 2 инта (текущий и максимальный размеры) и указатель, который будет переаллоцироваться
>>1659993А как освобождаются ресурсы, аллоцированные вектором? У него есть scope как у локальной переменной и при возврате вектора из функции нужно возвращать его копию, дабы не возвращать адрес на мертвые данные?
>>1660008то естьstd::vector<int> vec;vec это указатель на кучу, где была выеделена память? Другого объяснения у меня нет, так как массив не может быть динамическим в стэке.
>>1660018> vec это указатель на кучуvec это сруктура, один из элементов которой - указатель на динамически выделеную память для хранения элементов вектора.
>>1660018В стэке есть адрес на кучу, где был аллоцирован вектор. Ты прав, данные вектора хранятся в куче, ибо стэк не может хэндлить динамические массивы.Если ты хочешь создать вектор в функции - возвращай его копию. Но это плохая привычка, лучше в вызывающую функцию запердолить пустой вектор и передать его в вызываему функцию как ссылку и там заполнять всем чем надо.Скоуп у вектора как у обычной локальной переменной, ибо деструктор там работает как в умных указателях. Вызод за скоуп - вызов деструктора.
>>1660039>>1660041До 11 стандарта был NRVO. После 11 мув-семантика. Возвращение тяжёлых контейнеров из функций не проблема кода так с 2003.
>>1660061По производительности это равно дрочке с ссылками? Чет я сомневаюсь, кажись по старинке передавать ссылки все же лучше, не?
>>1659912Палю лайфхак: видел в продакшн коде одной популярной либы#define private public#include <parasha,h>#undef privateЕнжой ё ооп
Я создаю тред, который занимается ловлей исключений винды ( https://en.wikipedia.org/wiki/Microsoft-specific_exception_handling_mechanisms )в коде: __try { for(;;); } __except(exception) {...}Важен ли его приоритет, если исключение надо обрабатывать максимально быстро, или разницы нет?
>>1660312Я лично подозреваю что винда зовёт все обработчики исключений поочерёдно и показывает им задницу эксепшона, пока одному из хэндлеров она не нравится. Прикольный механизм. То есть по итогу я задаю приоритет хэндлингу исключения.Вопрос остаётся в том, компилируется ли for(;;); во что-то жрущее ресурсы. Здесь я подозреваю, что на ассемблере это просто nop с безусловным прыжком. Но я не знаю, отжирает ли это ресурсы. Менять указатель на инструкцию IP - это тратит время процессура.
>>1660312Исключение обрабатывается в том же потоке, что его выбросило. Эта хуйня с вечным циклом ничего ловить не будет.
>>1660331Ну так чтобы его обработать средством __try __except ты должен вызвать его в блоке __try, а не где-то там в другом потоке. Для того чтобы ловить все исключения есть VEH
>>1660312Тебе никогда вот эту парашу использовать не надо абсолютно нигде, кроме кернел драйверов. Забей, что оно вообще существует
>>1660339★(int★)0 = 228; только так поймать можно. Либо в настройках компилятора шаманить чтобы через try(...) ловить, но тогда типо исключения уже не определить
>>1660331Сам синтаксис ловли в виде таких штук как EXCEPTION_CONTINUE_EXECUTION и EXCEPTION_CONTINUE_SEARCH намекает мне что механизмами исключений в винде ловится что угодно, как бы намекая про VEH>Vectored exception handlers are an extension to structured exception handling. An application can register a function to watch or handle all exceptions for the application. Vectored handlers are not frame-based, therefore, you can add a handler that will be called regardless of where you are in a call frame. Vectored handlers are called in the order that they were added, after the debugger gets a first chance notification, but before the system begins unwinding the stack.Звучит очень вкусно.https://docs.microsoft.com/en-us/windows/win32/debug/using-a-vectored-exception-handlerКажись вообще могу без треда обойтись, но хуй знает. Всё равно интересно создаёт ли for(;;); доп нагрузку, ещё пригодится потом>>1660339Детектить изменения в памяти?
>>1660345скорее всего присутствие EXCEPTION_CONTINUE_SEARCH обосновывается так:__try {поебень}__except (GetExceptionCode() == 1 ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_CONTINUE_SEARCH) {}__except (GetExceptionCode() == 2 ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_CONTINUE_SEARCH) {}__except (GetExceptionCode() == 3 ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_пойти_нахуй) {}
>>1660351Схуяли это неопределенное поведение? Если память присутствует и доступна для чтения, она считается. Иначе процессор создаст исключение которое можно обработать. Вполне себе определенное поведение.
>>1660353https://stackoverflow.com/questions/6793262/why-dereferencing-a-null-pointer-is-undefined-behaviour
>>1660351>>1660353внизу пример кода о котором вы говоритетам есть хэндлер под access violationвполне можно выпрыгиватьhttps://docs.microsoft.com/en-us/cpp/cpp/try-except-statement
>>1660366В __try нельзя юзать объекты требующие уничтожения.>>1660354На пикриле visual studio позволяет это корректно обработать используя параметр /EHa, даже деструкторы все вызывает.
>>1660376> В __try нельзя юзать объекты требующие уничтожения.Память не освободится? Можно же в __finally это сделать (правда, оно быдлокодится через вложенные __try, это вам не питон)
>>1660635http://habrahabr.ru/post/229963/>стандарт C++ объявляет «неопределённым действием» бесконечный цикл без изменения внешнего состояния — поэтому компиляторы C++ вправе считать любой такой цикл конечным.Ну охуеть. Почему возврат переменного значения нельзя условно считать изменением внешнего состояния?Интересно, что если всунуть укорачиваемую часть после бесконечных циклов в отдельную функцию, скорее всего она не укоротится.
>>1660656https://stackoverflow.com/questions/41320725/is-infinite-loop-still-undefined-behavior-in-c-if-it-calls-shared-library
>>1660707Смотрите, кто-то не знает про оператор ,.https://ideone.com/A499IhЧего ты вообще хотел добиться этим: a[i,i+1] ?
>>1660709Я случайно когда раьгтал с массивами вместо a[j] написал a[i,j] и думал че за хуйня происходит
>>1660312Так, сделал исключение через VEH, не проверял ещё как работает, дофига всего надо поделать. Тред хочется чтобы всё равно висел, даже если пока не надо.Можно использовать прибамбасы крестов: https://stackoverflow.com/questions/36711131/how-to-sleep-forever-only-using-c11Но всё ещё хочу узнать, не за тормозит ли подобный >>1660694 ассемблер систему, т.к. это простая реализация сна без стандартных библиотек, а я свистелки не люблю
>>1660727эммм...Ну, например, в том же VEH хэндлере я смотрю на тред и прыгаю его из инструкции бесконечного цикла во что-то другое.
>>1660739Так этот тред с бесконечным циклом не вызывает исключений и не триггерит вех. Для вечного ожидания есть WaitForSingleObject или SuspendThread
>>1660741Так я это уже осознал. После того как система вызывает мой обработчик на событие, обработчик заставляет основной тред подпрыгнуть кабанчиком и благополучно завершается.
>>1660722>не за тормозит ли подобный >>1660694 ассемблер системуПопробуй PAUSE использовать, если для x86 делаешь. Вроде как тогда система не будет с полной силой делать НИЧЕГО.>>1660745Я Jai жду
>>1660761>зиродеиВо первых, как что-то плохое.Джава уродлива, поэтому создаёт много рабочих мест. На сях легко говнокодить, поэтому они создают много рабочих мест. Кресты невозможно знать полностью, поэтому они создают много рабочих мест. Индусы рентабельны, поэтому для белых багтестеров тоже есть рабочие места. Боинг 737 падает, разбивается и убивает людей, так что теперь кто-то решает эту проблему за деньги.Раст не создаёт рабочих мест.Во вторых, нужно всё-таки определиться, низкоуровневый ли это язык, или администрирующий криворукого индуса, потому что выбирать меж 5 типами указателей никто нахуй не хочет, а терять производительность ради безопасности - для этого уже есть жаба, там это оправдывается либо банковским сектором, либо тем что каждому оленю надо дать право писать приложухи к андрюше.
>>1660783>Раст не создаёт рабочих мест.Возможность писать полностью безопасный софт на уровне ОС, дровти прошивок, не теряя при этом производительность (Раст по скоростью равен С++, а в некоторых моментах и быстрее) - не создает рабочих мест? Интересно
>>1660807Безопасность раста обеспечивается:1. встроенным статическим анализатором, которые есть и для сей2. прищемлением яиц программисту, которого в дизайне языка быть не должноfn _merge(left_slice: &mut [u32], right_slice: &mut [u32]) -> u64vsfn _merge(vec: &mut [u32], left: usize, mid: usize, right: usize) -> u643. тысячей реализаций одной фичи, чтобы каждая была безопасной и уникальной
>>1660869Возможно что чтобы общаться с оборудованием, вообще по итогам нужен заветный unsafe, ибо там отсылки к кастомным адресам (вроде).Спрашивается, почему не писать сразу на сях?
>>1660928Да никак не отвечает. Отсутствие рабочих мест под раст - самоочевидный факт, под него не нужно подводить доказательства.
Сап, анон. Нормально ли использовать enum как параметр шаблона, чтобы класс специализировать, но не плодить бесящие меня наследования?Например, есть класс с координатой в полярных, и enum CoordType ={deg, rad};А класс ужеtemplate<CoordType ct>class Coord{}Отличия градусов от радиан в поведении класса только в том, что для тригонометрических функций будет перевод в радианы.Да, я знаю, что лучше хранить все в радианах и перевод выполнять только при выводе
Давно на C++ не программировал. В цикле "(auto i = vector.begin(); i != vector.end(); i++)" удаляю элемент массива "i = vector.erase(i)", но если это последний элемент, то будет краш т.к. can't increment vector iterator past end. Что делать надо? Неужели "if (i == vector.end()) break"? Или что поприличнее есть?
>>1661031for (auto i = vector.begin(); i != vector.end();)if (надо удалить) i = vector.erase(i);else ++i
Какой есть роадмап для изучения плюсов в 2020 году?И вообще, я так понимаю, что компьютерное зрение - это одна из самых популярных сфер, где С++ используется?
Вообще посоветуйте с чего закатываться в компьютерное зрение?Можно ли вкатиться человеку с техническим (не математическим) образованием? Базовые матан, линал знаю. Теоревер стоит подтянуть.И вообще, насколько перспективный рынок компьютерного зрения? Вижу много вакансий связанных с разработкой систем видеонаблюдения, в России это наверное будет популярно в ближайшие годы.
>>1661092Хотя нет, эта тема какая-то слишком сложная и непопулярная. В Москве по вакансиям особо ничего и нетВот почему никто не сделал роадмап для джунов?Даже джависты осилили
>>1661125Это зависит от контекста. Если вне класса, то это значит, что её можно вызвать только из того же файла, она может быть скомпилирована только в соответствующем объектном файле. Если в классе, то это значит, что она как бы глобальная для всего класса и в то же время этому классу не принадлежит, от неё нельзя наследоваться и в ней доступны только такие же статические методы и переменные класса. Но из нестатических методов её можно вызвать.
>>1661098>>роадмап для джавы 2020>>spring в стороне на побочной ветке вместо орма/микрносервисов/веба/тестов/баз данных вместе взятых. Про аналоги спринга вообще ни слова. Вам точно нужен такой же устаревший на 10-15 лет роадмап?
>>1661159>spring в стороне на побочной веткеТам указано же must know, лолА куда его впихнуть предлагаешь?
Вопрос от полнейшего ньюфага.Есть исходники кода,из них нужно собрать программу(проект, хуй его знает как это в вашей терминологии).В общем мне нужен экзешник, чтобы я его тыкнул и всё заработало.Реально ли это сделать человеку ранее не знакомому ни с C ни с программированием?И где можно найти того кто может это сделать?
>>1661092Да там много всего, и c++ далеко не один аспект. Сначала советую в целом начать изучать тему, чем доступнее будет инфа и инструмент (питон, матлаб, возможно R), тем лучше. В компьютерном зрении а далее в моей трековой обработке много относительно типовой математики, хотя тема очень обширная. На c++ предполагается конечная реализация продукта (хотя это тоже далеко не так, питон имеет либы, написанные на крестах и сопоставимые по скорости с с++), хотя также есть связка xilinx + matlab, что иногда ставят в камеры.Короче, математика - основа, язык - инструмент, дерзай.Алсо, изучая сабж, ты столкнешься с уймой схожих и крайне сейчас полезных задач, типа обработки изображений, линал в прикладных задачах (декомпозиции, eigen, вот это всё), нейросети, которые стоит вписать в резюме.
>>1661189Все зависит от состояния проекта. Может быть от простого make install до ебли на несколько часов.
>>1657130Пользуюсь Eclipse CDT и немного CodeLite (там cppcheck работает из коробки, в отличие от эклипса).Из вима помню только :q!
>>1661180Там он как web фреймворк, а спринг это целая пачка фреймворков и в первую очередь dependency injection. Потом идет бут (всего понемногу чтоб сразу изкаропки все работало). Есть спринги для микросервисов, для тестирования, для работы с данными (включает в себя тот же самый хибернейт, но знать хибернейт для использования не обязательно). Его надо или в главную линию включать или в каждую ветку вписывать по спрингу.Разве что захочется написать десктопное приложение, там спринг не нужен. Андроид тоже отдельная тема.
А что делать на плюсах, если я не хочу идти в геймдев и не хочу заниматься нейронными сетями/машобом/etc?Микроконтроллеры хоть и не совсем С++, но тоже не интересны.
>>1661403Дык есть еще куча middleware в виде всяких браузеров/системных либ/рантаймов (языков, виртуальных машин итд).
>>1661403>А что делать на плюсах, если я не хочу идти в геймдев и не хочу заниматься нейронными сетями/машобом/etc?>https://hh.ru/vacancy/36447247
>>1661417Спасибо, но в нвидию как правило нужны только сениоры. Где можно начать карьеру и какие для этого есть возможности?>>1661413Ну это вроде выглядит интересно, правда непонятно, как получить хоть какой-то опыт в этой отрасли.
>>1661403В последнее время видел много плюсов в сторону мк на с++. Действительно, c++ строже си, имеет прекрасный стл, стд::аррай, вектор и шаблоны, почему бы этим не пользоваться? А вся работа с регистрами прекрасно оборачивается в сишечный код, хотя касты тоже никто не отменял.
>>1661417Ну вот тут написано, что должен делать человек на такой вакансии, но лично я не вижу ничего конкретного. Написано, что ты должен делать какой-то йоба-софт.
>>1661421>Где можно начать карьеру и какие для этого есть возможности?В яндекс и мейлру стабильно требуется дохуя крестовиков.
>>1661432Нихуясе, выглядит впечатляюще.Вот только как к ним попасть? Наверняка нужно годами обмазыаться всем, что связано с компьютерной графикой и низкоуровневыми вещами
>>1661433тут был анончик, который собесился в эту команду. Я ему еще по почте запиливал, что да как к ним проходить. Мб отпишется, если увидит.
>>1661437> решить онлайн контест на алгоритмы.Ну так вперед задрачивать. Просто так в мире ничего не бывает.
Проблема в том, что я хоть и нахожусь в ДС, не могу найти начать карьеру на плюсах. Пока мои одногруппники весело вкатываются на джава стажировки в сбер и тинькоф, я дрочу какую-то хуиту - писал пет проджекты на Qt, пару раз делал что-то довольно простое с комп. зрением, один раз ковырялся в ядре линукса и пытался написать свой кернел модуль для своего сетевого стека.В яндексе я обосрался, в хуавее меня послали нахуй, в мейл не подавался, но там вроде бы и нет открытых стажек или вакансий джуна для таких дебилов как я.>>1661440>Ну так вперед задрачивать. Просто так в мире ничего не бывает.Я уже довольно долго решаю литкод, но по словам многих знакомых, попасть на вакансию джуна как правило легче, чем на стажировку к ним - челики, которые со школы дрочили кодефорсес рейт 1800-1900 и тимус, были призерами олимпиад, и те не осилили.Правда вот джуны и миддлы им сейчас не особо нужны.
>>1661444Если б я брал на работу программиста и ко мне пришел чувак, который с порога сказал про рейтинг кодефорсес, яб его нахуй послал
>>1661447Так-то понятно, но там был онлайн контест именно на алгоритмы и задачки с сюжетом. Причем на время. Без онлайн контеста на стажировку бекенд разраба не брали.
>>1661451>Через 5-10 лет весь рынок будет забит вакансиями на растА что на нем будут писать?Так кстати говорили про многие языки, вот только далеко не на всех есть огромные количества вакансий.
>>1661453Критический софт в плане безопасности. Блокчейн там разный, браузера потизоньку на него начнут переписывать, новые ОС писать, новые либы - работы непочтаый край, надо же как-то дырявый Си заменить.
>>1661539Потихоньку будет уступать более современным и безопасным системным языкам (в данном случае Расту)
>>1660938Так вакансий С++ в РФ тоже нет, кроме нескольких городов, которые можно пересчитать по пальцам одной руки.
>>1661726Мне кажется, что c++ тоже безопасный. Компилятору ничего не мешает по-умолчанию считать за ошибки сырые указатели например, или си-подобные массивы
>>1661751C++ не безопасный, так как в нем есть возможность выходить за границы массивов, как и в Си.Если бы С++ был бы безопасным языком, то в таких продуктах как, допустим, Хром не было бы уязвимостей, связанных с порчей памяти (memory corruption), а на деле там каждый год что-то находят. Ну и в гугле далеко не дебилы работают, засим подобные ошибки в языках типа С и С++, да еще и в огромный кодовых базах, неизбежны, даже если код пишет профессионал высокой квалификации.
>>1661756>Ну и в гугле далеко не дебилы работаютRob Pike, по опыту, считает иначе:“The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.”
>>1661765Цитата ни разу не говорит о том, что они некомпетентные, так что к чему ты цитировал Роба Пайка яхз.Учти, что Хром 24/7 находится под фаззингом, а фаззит его кластер с 15000 процессорами. И все равно независимые исследователи, не связанные с гуглом, находят там дыры в памяти, можно даже открыть CVE, начиная даже с прошлого года, и посмотреть. С++ небезопасный язык и никогда таковым не будет, ибо безопасность влечет за собой потерю перформанса, причем ощутимую, как ни крути. И рыбку съесть, и на хуй сесть - такого не бывает в этой теме. Всегда за что-то платят чем-то.
>>1661756Так напиши контейнер который при доступе по индексу будет чекать границы массива. В чем проблема?
>>1661779> Так напиши контейнерУже написано до нас. Вектор чекает, если получать через at() а не operator[]
>>1661788Ну что ты делаешь.Сейчас этот сектант вернётся и опять будет засирать тред мантрами с конференций полутора землекопов.
>>1661782Лол, не знал. А какая там разница в перформансе? Когда выдрачивают из софта на крестах все соки в плане скорости - избегают? Или для таких целей уже лучше не ебать мозги и писать на чистом Си?мимо другой анон-крестовик
Привет >>1659834 - кун снова выходит на свзяь.Допустим я хочу использовать библу https://bitbucket.org/tunnuz/json/src/default/ ее нужно качать и скомпилировать? Есть какие-то пакетные менеджеры? У нас в питоне requirements.txt в нем прописывается пакет и версия, или ссылка на гит, если пакет тащится с гита, и pip по большей части сам все резольвит, как дела с этим обостоят в плюсах?Спасибо за ответыДобра и здоровья в это нелегкое время
Двач, дайте образец шаблонной функции с шаблонными возвращаемыми значениями, пожалуйста.Я что-то пытаюсь смотреть и не могу понять, это вообще возможно?
>>1661936В общем понял в чём была проблема, шаблоны нельзя разделять на .h и .cpp, но уже C++20, разве ещё не ввели какую-нибудь фичу что-бы это было возможно?
Есть большой набор строк и есть словарик из неповторяющихся количества строк. Нужно используя словарик сделать новый файл, состоящий из номера строки в словарике или -1, если такой строки в словаре нет. Как оптимально решить такую задачу? Не хочется пилить велосипед.
И еще вопросец. Нужен контейнер, который как вектор и как сет одновременно. Что хуже - std::unique и поиск по вектору или выбор элемента по id в сете?
>>1662034Ну не совсем уж без документации. Обычно есть документация уровня "int sum(int, int); // сложение двух чисел", из которой примерно понятно как это использовать, но иногда появляется по десять перегрузок и хуй пойми какую выбрать, приходится копаться в логах коммитов.
Что происходит, если не аллоцировать память а просто: std::unique_ptr<Test> test; test->func();Я бы думал test создатся на стеке? А почему работает доступ через ->? И какой памятью тогда владеет unique_ptr? Я думал он только кучей владеть может.
>>1662223test создается на стеке и просто указывает на местоположение объекта в куче. Если его не инициализировать то никакой памятью он не владеет и ты просто дерефнеш нулптр вызвав краш.
>>1662238Ну так то я понимаю, в простом случае Test* test ; test->func()дерефернс разумеется тут же приведет к крашу, но в данном случае unique_ptr работает! Т.е. там не мусор и не NULL. При чем конструктор/деструктор которые я определил не вызываются, что логично. Только почему все равно работает - непонятно.А вот как только я в func пытаюсь получить значение внутренней переменной класса - тогда segmentation fault. То есть создается какой-то кривой объект, память аллоцируется, но конструктор не вызывается. Не хочется время тратить на этот бред, но все равно интересно, что там по умолчанию в unique_ptr происходит.
>>1662353Когды ты вызываешь функцию класса (невиртуальную) по сути ты вызываешь обычную функцию в которой есть неявный аргумент this.Соответственно пока ты не обращаешься к полям класса, ничего удивительного что она вызывается нет.
>>1662353Если у тебя func не юзает переменные внутри класса и она не виртуальная тогда все логично. Она просто преобразуется в func(Test* this) и вместо this нулевой указатель, соответственно дереференса не происходит и все нормально. Так же будет и с сырым указателем.
Читаю память, получаю строку в char массиве, присваиваю этот массив строке std::string, добавляется какой-то символ (в данном примере -`(`), в чём проблема? Не понимаю...
>>1662353Пару тредов назад был спор по такому поводу и выяснили, что это все же UB.Не делай так, анон. Нужна функция без определения объекта класса - сделай ее статической, например.
>>1662393Не затыкай меня, манюня. Совет выключить компьютер и никогда больше его не включать - это правильный ответ на твой вопрос.
>>1662398Как сделать чтобы было сайтом?? По типу этого ideone.com только чтобы можно было работать без интернета.
Что такое статическая глобальная переменная и чем она отличается от простой глобальной переменной?ну то естьmain.cppint Foo = 0;static int Foo2 = 2;В чем разница?
>>1662538Влияет на линковку. Это примерно эквивалетноnamespace {int Foo2 = 2;}Статическая переменная не видна за пределами еденицы трансляции. С нестатической ты можешь сделать вот такую штуку в другом cpp файле:extern int Foo;и получить доступ к первой Foo.
Пчелы, а как вы приобрели опыт в сборке проектов? (Make, Cmake, Grandle)Ввиду того, что пишу на vim'е встал острый вопрос с быстрым получением знаний в этой сфере, раньше молодой был, зеленый и ide все делало за меня, а тепень столкнулся с суровыми реалиями и статьями: "делаем йоба-аллах сборку", где нахуярено миллиард всего и непонятно че как зачем.Есть какие-нибудь факи проверенные, книжки? Просто советы?Че лучше юзать? У кого был опыт с Grandle?
>>1661726Чтобы нормально писать на раст системное, нужно сделать его небезопасным, однако менее противным он быть не перестаёт в unsafe.
>>1662687но ведь небезопасен не весь код, а только ансейф блоки. Что увеличивает вероятность не пропустить баш в прод вообще, ибо проверки на безопасность концентрируются в определенных местах в коде
>>1662353> Только почему все равно работает - непонятно.Один из вариантов это то что так как вызов operator-> у неинициализированого каким-то объектом unique_ptr это UB то компилятор в таком случае может делать что хочет, в том числе просто игнорировать этот вызов в рамках оптимизации.
>>1662353>дерефернс разумеется тут же приведет к крашу, и с обычным птром ptr->hui() сработает, если нет обращения к внутренностям, те дереференса this
>>1662922Там пидоры видимо при компайл тайме чекают в код хуйню какую-то вставляют которая сразу крашит. https://wandbox.org/permlink/XXKOLu9CNT8g9LK8 но я таки смог наебать компилятор и все работает как надо.
Либа, которую я использую, кидает эксепшены в функциях, которые я использую в адаптере между функционалом либы и своим собственным.Можно ли как-то поймать эксепшен, находясь на уровень выше? То есть не там, где я вызываю функцию, бросающую эксепшен, на на один call выше? Делать re-throw в каждой функции адаптера не хочется
>>1663130> эксепшен, находясь на уровень вышеДолжно быть возможно. Обработка ошибки на любом уровне без ручного пробрасывания - единственный профит эксепшенов. Уточни что у тебя за ситуация и почему не получается. Может там какие нюансы у тебя.
. Класс Автомобиль (марка, год выпуска, цвет, пробег, мощность, КПП, тип кузова). Метод класса: вывести информацию, большой пробег у машины или нет. Функция: Вывести машины годом выпуска не старше 2000 года с механической коробкой передач.
Ананасы, вопрос по идеСобираю примитивную многопоточную программу в консоли и всё ок, выполняется как нужноНо в qt creator'e почему-то программа падаетОт чего может быть такое?
Ананасы, как найти первую работу на ебучих крестах?Нужно было искать летнюю практику, отправил резюме в пару контор, выслали тестовое.Кое-как сделал, получил отказ, написали, что слабовато (хз, какие требования для ебучей ЛЕТНЕЙ ПРАКТИКИ в ебучих конторах, писал аккуратно, STL, потоки, классы везде).Недавно было онлайн-интервью, это был пиздец.Вопросы задавал чел, у которого был пиздец какой микрофон, постоянно приходилось переспрашивать, потому что слышал только ебучий шорох.Ответил почти на все вопросы (не ответил на вопрос "как сбалансировать бинарное дерево", хотя и говорил, что можно выбрать в качестве корня другой элемент, но т.к. не прозвучало "поворот дерева", ответ не засчитан), написали, что "не хватает теоретических знаний для них.Как попасть хоть куда-то?Я уже и не понимаю, что учить
>>1663181Что падает? Какая ошибка? Хотя бы дебаггером пройдись посмотри, где у тебя SIGSEGV или что там кидается.
>>1663191Ты в QT собираешь или отдельно сам через cl/mingw? Судя по гуглу первое, и QT требует своих бинарей в зависимостях. Попробуй одно из:1) Подложить исполняемый файл в папку, где лежат все dll от кутей и запустить оттуда2) Проверить через depends.exe, какие либы исполняемый файл требует
>>1663201Пока что есть только одно задание.FTP-сервер.Вводишь будь директория для хоста, клиенты подключаются, видят список файлов, вводят id и скачивают.Здесь код для одного клиента, на другом ПК прикручена функция Select.https://pastebin.com/013akARv
>>1663208А всё ок, кажетсяНе знаю в чём была беда, но скопировал dll'ки из папки компилятора к бинарнику и всё ок запустилосьХотя раньше такого не было, да и из консоли всё запустилось сразу же
>>1663189> Ананасы, как найти первую работу на ебучих крестах?Я вот тоже пытался, в ДС. Так и не смог найти. Конечно, можно было податься писать десктоп приложения под винду в какое-нибудь НИИ, но я решил для себя, что уж лучше вкачусь в другой стек, все равно пока студент и родители содержат меня.
>>1663216На каком курсе это было?Я сейчас на предпоследнем, после лета учусь полгода, потом практика, диплом и все.Летом думаю выучить Django и HTML/CSS))0
>>1663218Я сейчас на втором, вот недавно совсем пытался попасть на плюсы и понял, чтоа) Бек разработки на плюсах мало, даже в столицах. Я пытался попасть в яндекс на стажировку, но требования по алгоритмам для стажеров выше, чем для джунов. Но джуны им сейчас не нужны.б) Я нихуя не умею. Для успешного вката в плюсы нужно знать предметную область. Нужно быть прошаренным в низкоуровневой разработке под железки, хорошо знать как работают оси, знать устройство ядра линукса, уметь прогать под ARM. Либо нужно уметь в компьютерную графику, если хочешь в геймдев. Еще есть датасаенс, но там помимо самих плюсов, нужно хорошо знать питон и все библиотеки для него. Ну и математика само собой.В железки я не умею, учиться долго и сложно, геймдев абсолютно неинтересен, датасаенс как-то не зашел. Решил вот переквалифицироваться в бекенд макаку, сейчас досдам текущие долги по учебе и примусь за js наверное.
Аноны, вопрос по блядской студии. Что делать, чтоб потом без проблем переезжать на новые версии? Очень часто вижу, что собирать проект из 2017 надо с лютым пердолингом в 2019 буквально недавно где-то в репах нвидии нашел что-то под 2017 и не смог собрать, миллион ошибок, в ужасе стер с диска эти файлы, такое же говно помню было с 2012->2015. Cmake не хочу по религиозным соображениям использовать спермосектант.
>>1663189Попробуй на завод практикантом, срсли.>>1663216В НИИ ты наименее вероятно будешь писать десктоп на крестах, вероятнее какой-нибудь клёвый матан или управление на си
>>1663348>Вот как мне 20 стандарт включить?set(CMAKE_CXX_STANDARD 20)>Они ахуели требовать руками конфиги править?Лолчто?
>>1663351А после завода куда?Или на заводе тоже самое, что и в конторах и меня сразу же возьмут после завода в SPERMASoft?
>>1663360Сужу по своему заводу: студентов берут отлично, особенно если есть связь с институтом. Работа для меня турбоинтересная и уйма возможностей, правда, в основном саморазвитие, нет гуру рядом со мной. В итоге, за 5 лет, я сейчас неплохо (субъективно) знаю кресты, qt, программирование для мк, си, схемоту, немного цос, линал/тервер с питоном и матлабом, даже как-то линуксы собирал. Почему такой разброс тем? Детская организация работы программистов, никто меня не ебет за сроки и методы, на интересные для меня проекты я вызываюсь сам, в итоге имея неплохой (надеюсь, востребованный) багаж знаний
>>1663335Открыл солюшн, сделал ретаргет и собрал, попутно решая возникшие ошибки, которые в основном будут связаны с two-phase name lookup, который там наконец-то починили.
>>1663335>Cmake не хочу по религиозным соображениям использовать>>1663346ЗОчем? есть premake5, он лучше
>>1663432нихуя как ты дохуя всего знаешь, разве на заводах нужны прогеры? там же производство всякое, нахуй там матлаб с линалом и теорвером?
Господа крестовики, подскажите нахуя в плюсах в свое время присобачили возможность инициализировать переменную с фигурными скобками? В чем соль?Пример:int yobaint {};Это типа чтобы точно быть уверенным, что в инициализированной переменной нет мусора или как?
>>1663457быстрофикс - инициалицированная:int yobaint {69};Но можно еще так:int yobaint {}; В первом случае какая-то ебанутая инициализация, во втором случае - непонятная ебанина, но предположение уже выдвинул сообщением выше
>>1663457Потому что наследие си: то, что может быть декларацией функции - декларация функции, была проблема с дефолтными конструкторами из пустых скобок.
>>1663452Я в конструкторском отделе сижу, поэтому занимаюсь разработкой всяких новых вещей. Матан активно используется в инженерии, представь себе, сколько математики присутствует в какой-нибудь стиральной машине (теория автоматического управления), или в радаре машины (там различная нейросетевая обработка + приемы вычмата + линейная алгебра). И это все нужно разрабатывать, тестировать, моделировать и внедрять. Если делать как-то по-простому, или хз взять либку для ардуины, то вероятно будет работать ненадежно, не говоря про то, что опенсорс проекты далеко не самый топовый матан используют.>>1663466У меня в среднем за месяц около 70-80, не ДС.
>>1663508Вот тебе и востребованный багаж знаний.Мог бы в ДС 500кк/сек зарабатывать веб-программированием.
Насколько сильный оверхэд у исключений? И являются ли они предпочитаемым способом эррор хэндлинга в С++? Или когда важен рантайм - хэндлят ошибки через условия, как в Си?
>>1663649> Насколько сильный оверхэд у исключений?Большой. Зависит от количества исключений которое будет генерироваться. Если пару десятков в секунду то похер. Если сотни/тысячи то скорее всего будет заметное падение производительности - там уже нужно профилировать и смотреть подходит такое или нет. Плюс еще важна глубина на которой ловится исключение. Если на каждом исключении стек раскручивается на несколько десятков вызовов - понятно что быстро это не будет. Просто чтобы приблизительно понимать вот две равноценных программы https://ideone.com/6PmOav https://ideone.com/EzHI0F (одна с исключениями, одна нет). ideone нивкоей мере не подходит для оценки производительности - отличия в скорости между несколькими выполнениями одной и той же программы могут отличатся в разы. Но он позволяет приблизительно оценить порядок отличий - блок с исключениями медленней на два порядка (приблизительно в 100 раз).Обрати внимание что важен не факт использования исключений, а именно количество выброшеных исключений. https://ideone.com/Cl0BMk - тут ideone уже не позволит оценить производительность. Я примерно чувствую что должно быть падение процентов на 30% в скорости.
>>1663649Бросать эксепшены дорого.Активное бросание эксепшенов сильно влияет на производительность.Наличие эксепшенов в коде, который условно никогда не бросает эксепшены - тоже влияет на производительность, так как препятствует code-reordering, а значит и другим оптимизациями
Поясните, нужно ли по умолчанию делать все поля закрытыми и потом некоторые открывать, если необходимо? Зачем нужны такие практики?
>>1663508>не говоря про то, что опенсорс проекты далеко не самый топовый матан используют.неужто для линейной алгебры, вычмата и нейросетей вы пилите велосипеды, т.к. ваш код качественнее, чем в TensorFlow и lapack?
>>1663902а крестики так умеют?> out = 0x100000000000000000000001000000000000000000000000000000 ^ 0xffffffffffffffffffffffffffffffffffffffffffffffffffff> "%x" % out'10fffffffffffffffffffffeffffffffffffffffffffffffffffff'
>>1663907Ну, сделаю, добавив пару постфиксов и auto... Ты гордишься синтаксическим сахаром которым никогда не воспользуешься?
>>1663882Читай про приоритет операций. Да, это неудачная перегрузка оператора << вместо обычного метода.
Анон, нормально ли то, что если я вижу Си-подобный код, то мне всё более-менее понятно, но если я, например, не вижу в некоем программном коде фигурных скобок в значении областей видимости, типов данных при объявлении переменных, то я моментально выходу за пределы зоны комфорта? Как это называется?
>>1663956>Как это называется?Псевдокод? Живучесть си в том что он лёгок для интерпретации, а препроцессор может как сильно сокращать размер кода, так и менять его просто риздец как - никаких скобок может не быть.
>>1663769Например, фильтр Калмана. Годные современные его вариации, которые описаны в статьях, не лежат на гитхабе, и даже в матлабе нет. И мне не нравится твой предвзятый тон, иди нахуй>>1663934))))
>>1657102 (OP)Посоны, помогите нюфагу-пизданизду-веб-макаке. Хочется пощупать программирование так как оно есть, а не так, как я делаю сейчас на бэкэнде. Решил вкатиться в плюсы, хотя бы чисто для себя. И обнаружил что у меня дикие пробелы в CS (если можно так назвать). Работа с потоками, памятью, вот это вот всё - не понимаю. Что почитать для совсем нюфагов? Может даже не про язык, а про то как всё работает
>>1664098Что бамп-то? std::bind возвращает неизвестно что, в твоем случае он вернул что-то из чего смогла создаться std::function<void(C)>.
>>1664098Научись делать минимальные примеры. У тебя куча лишних вещей, которые отвлекают.https://godbolt.org/z/dvs3Ra
>>1664141Ну собственно вопрос так и звучит:> почему оно собралось вообще?>>1664150Ничего не поменяется>>1664155Смысл резать эти 30 строчек в тестовом примере?
>>1664177Колбек вызвался успешно потому что там нет разницы с каким количесвтом агрументов ты его вызываешь, до тех пор пока их хватает - потому чт оагрументы не передаются напрямую в колбек, а вызывается std::invoke (который получается все переданые аргументы) - и из них выбираются нужные в соответсвии с std::placeholders которые ты передал при вызове std::bind. А так как ты ничего не передавал то все агрументы просто игнорируются.Почему пройден статический контроль неясно. Скорее всего результат std::bind неявно приводится к любому callable. Наверное это из-за того что у результата std::bind нет как таковой сигнатуры - его можно вызывать с любыми аргументами, ошибка будет только если std::invoke не найдет всех нужных агрументов.
>>1663351>В НИИ ты наименее вероятно будешь писать десктоп на крестах, вероятнее какой-нибудь клёвый матан или управление на си А как такое искать в ДС? Типа есть какие-то НИИ, которые выставляют вакансии на хх, но то видимо нормальные заведения, куда нужны нормальные кадры
Проходим в вузике многопоточность, и я в ахуе с этого говна под названием winapi. Почему все так криво и косо?
>>1664611Оно дизайнилось чуть ли не в 90ых на сишечке. Абсолютно вся "красота" современных языков - тупо обертка над этим.
я хочу построить библиотеку в С++ для самодельной имплементации множества. Пользуюсь CLion. С чего начать?
>>1664611Скажи им там в этом майкрософте тогда, как надо было сделать! А то хули, сколько десятков лет уже всё криво и косо.
Хочу научиться рисовать на плюсах. Решил выбрать vulkan api. Стоит ли учить его полностью или лучше учить v-ez и прочие обертки?
Есть ли вариант вкатиться в инди геймдев на чистых плюсах? Хорошо ли анрил, если речь идет не только о 3д играх?
Очередной проигрыш сосачерных псевдобайтойобовАнимедебилы спокойно пишут транспиляторы шиндусятской директхуйни на вулкан, пока вы тут ряясложнаете
>>1664908Если ты хочешь научиться - бери либо OpenGL, либо DirectX 11, ни в коем случае не трогай ни вулкан, ни DX12
>>1665058И че там по мате. Надо что нибудь знать для изучения opengl, или математика пригодится только в моих собственных проектах?
>>1664611Тогда ещё не знали, как надо правильно программировать. Сейчас тоже не знают, но знают, как не надо.
>>1665084>Сейчас не знают как программировать, но знают, как не надо. Всё верно, программисты остались в 90-х, сейчас макаки которым программирование не надо.
>>1664912Тащемта вулкан лютая хуйня. После него DX12 выглядит как годнота для людей. Писать под вулкан на Винде - себя не уважать. Тем более технологически вулкан всегда в позиции догоняющего. Майки переработанную версию DXR выкатывают, а в вулкане только первую версию трассировки выкатили, на которой только хэллоуворлды есть.
>>1665142DX12 чето пиздец как переусложнен. Тредсейф убрали, контекст убрали, и самый пиздец это то, что теперь ты САМ должен контролировать все дескрипторы ЦПУ и ГПУ т.е. писать свой диспетчер этих дескрипторов.
>>1665183Ну в вулкане ещё хуже. DX12 под многопоточных рендеринг заточен, если разобраться, то ничего сложного. Просто куча шаблонного кода для синхронизации и управления памятью.
>>1665142>После него DX12 выглядит как годнота для людей.для макак, которые выучили dx какой-то версии и пишут шинда-only преложухи
>>1665063Там же надо такие литании духу машины сочинять, что охуеешь.>>1665257Конечно, не видишь что ли - аргументы в разном порядке!
>>1665059Без математики никак. Почитай какие нибудь учебники по линалу и матану. В особенности по линалу, без него никак.
Привет, аноны. Я вкатывающийся ньюфаг, прошел примерно половину курса на stepik, все зашибись. Но прямо сейчас в заданиях стали появляться многочлены, квадратные уравнения, системы уравнений и вот это все. Я вроде не полный гуманитарий и понимаю, что это все на самом деле средняя школа, но у меня подгорает это действительно нужно для изучения языка?
>>1665352>>1665352это общая проблема всех этих говнокурсов. Нет, нахуй все это не нужно для обычной разработки
>>1665780>The handle must have the PROCESS_TERMINATE access right. For more information, see Process Security and Access Rights.Наверняка кто-то доки плохо читает.
>>1665820и уж наверняка среди каких-то из твоих нулей (подсказка нубу: 0=nullptr=false) есть какой-то с access rights флажками.
>>1665843Потому что ленивые хуесосы не могут пересесть на 17 стандарт кококо зависимости кудах нам заебись и так
>>1665843Легасихуйня или бездари девелоперы. Мы перевели у себя все проекты на 19 студию\17стандарт, но потратили время
>>1665920В чем переход заключался? Я переводил около двухсот проектов, тоже где-то месяц заняло. Пересобирал штук 15 библиотек, исправлял сборку, выпиливал некрокод (в т.ч. части буста, которые вошли в стандарт), фиксил шаблонные конструкции и всякие ошибки, которые раньше не проявлялись
>>1665927std::experimental::filesystem, хуева гора деприкейтов, новых варнингов и прочего. Ну и бонусом мы там еще меняли CI\CD и еще мелочи.
>>1664955А если нужна графика с 2д примитивами, нарисовать там линии, квадратики, битмап вывести, без сильной динамики. Кроссплатформенное и без qt? другой анон
select(0,0,0,0, (const struct timeval){.tv_sec = 5, .tv_usec = 0});>expected an expressionЧто не так?
>>1666085конструктор отваливается ещё хужеconst struct timeval(.tv_sec = FM_MODWORKER_TICK, .tv_usec = 0);
>>1666093>Designated initializers are indeed very useful as you point out, if only they could be used in code-bases that are supposed to be portable. If your code needs to be compiled with the Microsoft C compiler – tough luck! Microsoft still stubbornly refuses to support C99, and as a result, designated initializers as are not supported.Лямбды есть, а вот этого нет.
Анон, есть ли реальный шанс, что с++ вытеснит си и займет его нишу, в частности микроконтроллеры? Я для них пишу, естественно использую hal производителя, и я не вижу каких-то сильных проблем переноса кода на кресты. Плюсы: c++ безопаснее, 80% дефайнов меняются на енумы, шаблоны-шаблончики, стл, вектора и карты, и миллиард написанных библиотек.
>>1666098>шаблоны-шаблончикиhttps://en.wikipedia.org/wiki/FLTK>It also avoids complex macros, separate code preprocessors, and use of some advanced C++ features: templates, exceptions, and run-time type information (RTTI) or, for FLTK 1.x, namespaces.
>>1666103Нет проблем вообще написать эмбеддед-софт на жабе. Ну почему нет? Посмотри на смартфоны, взлетело же.
>>1666098Для этого ему нужно приблизиться по скорости к Си. Что в свою очередь ведет к отказу от фишечек Си++ так как они ведут к дополнительным тратам ресурсов, т. е. ты на плюсах будешь писать как на сях.
>>1666119Сам создатель, который с гим работает всю жизнь, не умеет на нем писать. В этом нет ничего зазорного. А то что ооп это компромисс между производительностью и структурированнностью кода - давно известный факт.
>>1666122Хотел попробовать переводить в sleep_for обычное сишное значение, а не std::chrono::seconds. Дожно конструироваться же.Посмотрел в заголовок и нихуя не понял.
>>1666104Как я понимаю, ява разрабатывалась с идеей создания унивирсального байт-кода для любой платформы с использованием какой-то ебаной ява-машины, но мир на самом деле родил не так уж и много разных аппаратных платформ, арм везде пустил свои щупальца, а гцц/цланг позволяет генерить код под все популярные (и не очень) архитектуры. ИМХО, ява обречена, ее популярность сугубо из-за легаси.Да и c++ родной с си, без проблем один в другой можно включить, что хорошо для плавного перехода HAL.>>1666114Многие мои коллеги не компилируют под мк с -O3, типа что-нибудь отвалится, изменятся тайминги и не будет работать. Да, люди игнорируют варнинги.
>>1666133>Да, люди игнорируют варнинги.Я тоже игнорирую их т.к. приходится просто. Вот взял ты либу какую-нибудь с гитхаба, подключил и сразу получил 100+ варнингов. И что мне блять с этим делать, самому их фиксить? Мне проще вырубить их нахуй и все.
>>1666148О, что тут у нас, долбоеб пишущий говнокод, который думает, что этот код крут потому что написан на плюсах? Может перестанешь на бьерна дрочить и собой займешься?
>>1666205Скажи, ты тот же ебалдяй, который с пеной у рта доказывал про опасность goto или другой? У вас очень похожий мыслительный процесс, если это словосочетание вообще применимо к вам.
>>1666312Это обычный человек, без мозгов, привыкший подчиняться чужой воле, настолько, что даже когда никто не приказывает, думают что приказ существует. В реальности проявляется так: вот есть в С++ классы, шаблоны, етс. етс., значит НУЖНО это всё юзать, иначе ты лох-пидр бла-бла. Тямы нет осознать, что это не принудиловка спущенная "начальником", а свободный выбор, где только ТЕБЕ ЛИЧНО решать использовать или нет. Потому что сами думать и за себя решать не способны в принципе, на генетичсеском уровне не способны.
реализовал свой собственный класс String. Описание на 1 скрине. Всё работает, но есть проблема при считывании файла. При создании объекта класса String в функции Get_file_Content содержимое файла успешно считывается туда, но при возвращении ничего не сохраняется. Приходиться передавать объект класса по ссылке - 2 скрин и делать её void. Что я упустил? Написать отдельный метод, чтобы возвращать содержимое в случае return ?
>>1666360Ну какой нахуй собственный класс строки в 2020 году? Без мув конструктора тем более. Вангую, в консрукторе копирования у тебя там string_ = other._string
>>1666381Если хочешь ООП ради ООП возьми Qt и педалируй там интерфейсы. Тут тебе и наследование, и инкапсуляция, и полиморфизм, и композиция и ещё куча умных слов
>>1666360Где мув-конструктор блъ?>>1666391Он не осилил не проебывать единственный указатель при копировании, какой нахуй полиморфизм.
Сап двощ. Когда ебучие макаки разработчики компиляторов (или хотя бы одного) уже запилят полноценно модули? Feature freeze уже год назад произошёл, всё утверждено. И какого хуя вся эта котовасия всё ещё тенется? У кого нибудь есть прогнозы/инсайды/слухи?
>>1666447Они во всех трех компиляторах есть уже. Тот же микрософт в проде уже минимум год использует, например.
>>1666312Зачем доказывать то, о чём тебе Бог-создатель сам рассказал? goto нельзя использовать из-за того что он дает слишком много возможностей.
>>1666360Насколько можно понять из твоего хуевого описания, проблемы в конструкторе копирования, ищи тамПлюс мув-конструктора нет, что скажется на эффективности работы.Как и еще кучи вещей по типу виртуального деструктора, мув-присваивания, инициализации итераторами, определения типов размера, отдельного чара и тд.Если целью не стоит заимплементить именно юзабельный тип, то лучше тренить ооп на чём-нибудь попроще: animal, cat, dog и тд
>>1666603что-то мне подсказывает, что люди так и останутся сидеть на хидерах, причём это коснётся как всяких системных бздей, так и прикладных к ним утилит
>>1666478Я не могу тебе взять и достать код из какого-нить внутреннего гита Микрософта. Я подписан на твиттеры челиков из MSVC, они писали, что у них внутрях уже модули во всю используются.>>1666611Ну, вот тут я не согласен. Как только в IDE появится полноценная поддержка модулей (Вижуал Студия 2021?) - мы на работе переедем в ту же секунду.
хидеры не нужны, весь проэкт пишешь в одном .cpp файлесовременные компы и компиляторы спокойно компилят файлики под сотню тысяч строк
Где лучше почитать про параллельное программирование, мьютексы, семафоры и доступ к разделяемым ресурсам? Есть маст хэв книга на эту тему?
>>1666578Ну хз. Вроде здесь конструктор копирования простой (пик 1). И он нормально работает при создании объекта (пик 2).
>>1666635У тебя комплюктер пополам треснет при попытке открыть и отредактировать файл на 1кк строк.>>1666639>Проблема возникает тут.Нет, не тут. На 75% уверен что проблема ETO TI в операторе=Алсо надеюсь тебе не очень нужен завершающий \0, потому что read() его не пишет.
>>1666649>У тебя комплюктер пополам треснет при попытке открыть и отредактировать файл на 1кк строк.гугли Amalgamation builds
>>1666651Я не про то что не скомпилится, а про то что большинство текстовых редакторов (с подсветкой синтаксиса особенно) едут крышей когда открывают файл >1 Гб. даже швитой ВИМ - по крайней мере в 2014 не вывозил
>>1666462>Они во всех трех компиляторах есть уже.3(2), причём судя по описаниям везде не full featured. Я готов хоть на ебучий текстовый редактор, дайте модули, сука.
Господа крестовики, приветствую Вас.Вопрос таков: каков самый быстрый способ (в рамках ОС, без ебанутых хаков с кастомными гипервизорами) наплодить N процессов и в бесконечном цикле кормить их разными вкусняшками? Я линуксоид, поэтому на ум пришло расфоркаться N раз (имеем в итоге одного отца с N дитяток), батя кормилец, а все N детей потребляди.Попрошу заметить, что каждый из детей вызывает одну и ту же программу через execve, поэтому треды здесь не покатят.Это часть функционала одной программы, которую я пишу на плюсах вперемешку с Си (кресты нужны из-за ООП в очень многих местах + банально удобнее работать с данными в некоторых моментах).Что скажете, есть быстрее способ или я вообще хуйню несу?
Господа крестовики, приветствую Вас.Вопрос таков: каков самый быстрый способ (в рамках ОС, без ебанутых хаков с кастомными гипервизорами) наплодить N процессов и в бесконечном цикле кормить их разными вкусняшками? Я линуксоид, поэтому на ум пришло расфоркаться N раз (имеем в итоге одного отца с N дитяток), батя кормилец, а все N детей потребляди.Попрошу заметить, что каждый из детей вызывает одну и ту же программу через execve, поэтому треды здесь не покатят.Это часть функционала одной программы, которую я пишу на плюсах вперемешку с Си (кресты нужны из-за ООП в очень многих местах + банально удобнее работать с данными в некоторых моментах).Что скажете, есть быстрее способ или я вообще хуйню несу?
>>1666662Вим, имхо, нихуя не показатель быстрого редактора. Да и миллиард разных обвесов не позволяют судить где сам вим а где что-то ещё лагает.Самый быстрый всё же саблайм.Алсо, даже в вскод кто-то пытался впихнуть инкрементальный парсер для подсветки кода (https://github.com/microsoft/vscode-go/pull/2555), что как бы намекает что сварганить из готовых инструментов открывалку для гиговых файлов в 2к20. Правда кому это нахуй надо кроме полутора долбоёбов поехавших на перформансе.
>>1666667>в рамках ОСТащемта без задней мысли берёш и делоеш. Гуглируешь API создания процессов и IPC для своей любимой ОС и всё.
>>1666649> У тебя комплюктер пополам треснет при попытке открыть и отредактировать файл на 1кк строк.Кошерные редакторы могут грузить файл по частям. Это не такая уж и сложная фича. Самое сложное в этом - составить карту памяти новых строк, чтобы какое-то подобие классической навигации было.Ну а вообще я надеюсь что тот анон шутит так.
>>1666672Я объяснил как я это делаю, ты читал вообще сообщение или остановился на "в рамках ОС"?Я спрашивал есть ли способ БЫСТРЕЕ это делать?
>>1666667Если тебе нужно решить какую-то задачу — не страдай хуйнёй и возьми готовый ивентлуп (libuv/libev/итд) на вкус, если хочешь более хайлевел решение — возьми какую нибудь либу с корутинами и шедулером.Если в целях образования — то возьми либу по вкусу из совета выше и ковыряй её исходники. Если будешь вслепую писать на найденных апишках — скорее всего просто проебёшь кучу времени и придёшь к тому же результату в конце концов.
>>1666639С копи конструктором все норм. Но там еще вызывается Resize, и непонятно как именно используется Get_File_Content: инициализируешь новую переменную - вызывается копи конструктор, присваивание к уже существующей - operator=И раз ты подебажил и понял, что файл действительно успешно читается, то в чем проблема посмотреть что там происходит в месте вызова Get_File_Content?
Почему ошибка обращения к памяти, хотя память Read Write ? Exception thrown: read access violation.val was 0xDC6E168000. Хотя до этого 2 раза нормально прочел два других региона с state commit, правда protect read
>>1666875Наверное это связано с описанием про read write здесь, но я не собираюсь исполнять этот код. Почему тогда ошибка?
>>1657102 (OP)Ананасы, изучаю многопоточкуДошёл до атомиков и мем_ордерКак в этих мем_ордерах разобраться-то? Ну кроме дефолтного
Охуеть, че можно-то...Анончики, почто я так бездарно просрал свои студентские годы? Писал свои велосипеды на Си вместо того, чтоб окунуться в кресты. Довыебывался, работаю теперь черти на чем вообще, а ведь мог без задней мысли, рекурсивного захлебывания инфой из толстых книжек и прочего педантизма юзать мощь крестов в свое удовольствие и постигать дзен в бою - давно бы уже крестовиком трудоустроенным стал.
>>1666905Что именно можно?Если ты про компайл-тайм вычисления, то это просто что то типа встроенного продвинутого калькулятора. Приятно, но в целом хуйня.Представляю как ты охуеешь, когда дойдешь до темплейтов и узнаешь про всякие metaprogramming штуки
>>1666637На заметку.На пике один ты инициализируешь size_, а потом выделяешь в string_ size_ +1 элементов в списке инициализации.И все это работает только потому что в самом классе ты сначала объявил size_, а потом string_. Было бы наоборот - падал бы твой конструктор и ты бы очень долго искал ошибку.Потому надо инициализировать члены класса в порядке объявления.
>>1665820Не особо понятно, куда ставить этот флаг. В списке флагов функции createprocess такого нет, а если все же его там выставить, процесс просто не запустится.Но что самое странное, код успешно работает, если в качестве приложения выбрать например internet explorer, или foxit reader.Может есть какой то запрет на terminateprocess именно у калькулятора?
А нахуя нужен WebAssembly, если один хуй надо его обмазывать жсом? Причем там такая ебля в сраку, что проще написать это всё в бэке или на чистом жсе, чем пердолиться с встраиванием васма.
Здравствуйте, у меня в Visual studio появилась проблема,при запуске программы все время идет загрузка символов,можете подсказать,что делать
>>1666667>Попрошу заметить, что каждый из детей вызывает одну и ту же программу через execve, поэтому треды здесь не покатят.Какой-то изначально ебанутый дизайн, если честно. Тебе так в любом случае придётся делать процессы через стандартное АПИ оси, от этого ты никуда не денешься никогда. Вопрос лишь в том, как процессы общаются между собой - через пайпы или Posix Message Queue или shmget или сокеты или что придумаешь.
Почему qt creator требует для функции из библиотеки wibdows.h аргумент типа строки wchar_t, а в других иде для той же функции нужна строка чаров, и все работает.
>>1667170Короче смотри. В виндобс до недавнего времени юникод был реализован через жопу UTF-16, соответственно все методы из windows.h при наличии макроса UNICODE имеют постфикс W и принимают wchar_t. Если таргетишь Винду версии 1903 и выше, то можно вроде как отказаться от этого макроса и в настройках винды включить utf-8
Аноны, помогите плиз. Почему моя прога вылетает, когда я пытаюсь использовать рекурсивную заливку flood fill на большой области? Например, картинка 320х320, я выделяю произвольную область даже меньше четверти всей площади картинки, и прога вылетает. Если выделять малюсенькую область, то красит. Алгоритм заливки такой:void CustomAreaTool::floodFill(int x, int y){ QColor color = selectionMask.pixel(x, y); if(x >= 0 && x < selectionMask.width() && y >= 0 && y < selectionMask.height() && color == Qt::black && color != Qt::white) { selectionMask.setPixelColor(x, y, Qt::white); QColor colorE = selectionMask.pixel(x + 1, y); QColor colorW = selectionMask.pixel(x - 1, y); QColor colorN = selectionMask.pixel(x, y + 1); QColor colorS = selectionMask.pixel(x, y - 1); qDebug() << "x = " << x << ";" << "y = " << y; if (colorE == Qt::black) { floodFill(x + 1, y ); } if (colorW == Qt::black) { floodFill(x - 1, y ); } if (colorN == Qt::black) { floodFill(x, y + 1); } if (colorS == Qt::black) { floodFill(x, y - 1); } } view->setCanvas(QPixmap::fromImage(selectionMask));}
>>1667493Переделать в цикл. Или думаешь у тебя в стек влезет 70к вложенных вызовов?void floodFill(int x0, int y0){ vector<pair<int, int>> store(1, {x0, y0}); int dx[] = {1, 0, -1, 0}; int dy[] = {0, -1, 0, 1}; while (!store.empty()) { auto pos = store.back(); store.pop_back(); auto col0 = selectionMask.pixel(pos.first, pos.second); for (int dir = 0; dir < 4; ++dir) { int x = pos.first + dx[dir]; int y = pos.second + dy[dir]; if (x < 0 || x >= selectionMask.width() || y < 0 || y >= selectionMask.height()) { continue; } auto col1 = selectionMask.pixel(x, y); if (col1 != Qt::black) { continue; } store.push_back({x, y}); selectionMask.setPixelColor(x, y, Qt::white); } }}
>>1667550Спс, чел, попробую.А что тут происходит вообще?То есть ты создаешь свой стек store с пикселями. Потом достаешь из него по одному пикселю и одновременно суешь еще несколько его соседей. Так ведь?
>>1667559https://ru.wikipedia.org/wiki/Поиск_в_глубинуhttps://medium.com/@ojhasaurabh2099/traversing-a-grid-using-dfs-ac7a391f7af8
>>16670631. Используй тайпдефы из хэдеров (ULONG/PVOID/ULONG_PTR итд)2. Получи верхнюю и нижнюю границы адресов пользовательского режима, вместо сканирования вслепую с нуля до бесконечности.3. Исключи из поиска регионы без нужного тебе доступа4. Проверь доступность страницы в рабочем наборе, сканируй только те страницы, которые присутствуют в физической памяти и помечены системой, как доступные для использования
>>1667165Батя кладет данные в расшаренный буфер от mmap, детки хавают это. Проблема producer-consumer решается семафорами. Почему ебанутый? Запускаешь программу, она плодится на N процессов-детей. Отцовский процесс готовит данные, дети их хавают. В итоге у каждого из N процессов есть разные данные и все они исполняются параллельно (насколько позволяет цпу машины). А учитывая, что IPC через расшаренную память является самым быстрым из всех других видов IPC, то получается вроде как неплохо. Быстрее - только высрать кастомизированный гипервизор со специально спроектированной моделью ввода-вывода.
>>1667576Да я уже понял. Я забыл что адресс не моего процесса, и тупо обращался по адресу другого процесса в своем. Естественно вылетало.> 2. Получи верхнюю и нижнюю границы адресов пользовательского режима, вместо сканирования вслепую с нуля до бесконечности.От нуля до 7FFFFFFF. Так написано на в доках майкрософта. Дальше процесс распологаться не может.> 3. Исключи из поиска регионы без нужного тебе доступаСделано> 4. Проверь доступность страницы в рабочем наборе, сканируй только те страницы, которые присутствуют в физической памяти и помечены системой, как доступные для использованияСделаноВсе работает. Причем довольно быстро. Спасибо за ответ
>>1667699Чуток ошибся. For a 32-bit process, the virtual address space is usually the 2-gigabyte range 0x00000000 through 0x7FFFFFFF. For a 64-bit process on 64-bit Windows, virtual address space is the 128-terabyte range 0x000'00000000 through 0x7FFF'FFFFFFFF
>>1667699>>1667703> От нуля до 7FFFFFFF. Так написано на в доках майкрософта.Никогда не верь докам майкрософт. SYSTEM_BASIC_INFORMATION: MinimumUserModeAddress, MaximumUserModeAddress - реальный диапазон. Там же PageSize, AllocationGranularity.
>>1667654Я HPC не занимался и не знаю как у вас принято, но я просто не вижу смысла городить процессы там, где можно обойтись простым тред пулом. Судя по постам код подконтролен тебе и поэтому я не очень понимаю, зачем так нужен execve. Да, по скорости не должно отличаться если всё правильно сделано хотя кто там знает, как в glibc межпроцессные семафоры реализованы, но плодить лишние тяжеловесные сущности со своими (хоть по большей части и расшаренными) виртуальными пространствами - как-то не то это.Насчёт второй части оригинального вопроса - о "скорости кормления" - зависит от специфики твоей задачи, и плюсы тут не помогут. Какой размер у единицы работы, как сильно влияет false sharing, много ли ядер одновременно дёргают общие переменные - только ты знаешь. Тут уже не важно, треды или процессы, физически страницы одни и те же. Лично я до таких мелочей никогда не оптимизировал, поэтому подсказать не могу.
День добрый, проблемы с отладкой gdb в qt creator под вин10 распространенная тема (например, шаг с выходом почти всегда работает криво) или нет? Причем в VS работает без проблем.
>>1667702Ответвление. Опенгл может и дальше развиваться независимо от вулкана, как С развивается независимо от С++.
>>1667755Пчел, повторяю, каждый ребенок вызывает ДРУГУЮ программу. Это часть задачи, какие нахуй треды, если из-под них нельзя вызвать другую программу? Execve из треда, а не из отдельного процесса, накроет пиздой весь process image той программы, исполнение которой я хочу поддерживать в бесконечном цикле. Именно поэтому в виду специфики задачи я должен плодить именно ПРОЦЕССЫ, а не треды. Причем не по кд, а высрал N процессов, а потом только подохшие заменяю по мере поступления сигналов к отцу. Сам форк имеет copy-on-write, ощутимый оврехэд есть разве что у execve, ибо он вайпает все виртуальное адресное пространство и заполняет его новыми данными.
Аноны, почему Stack реализован на двунаправленной очереди, а не листе? И зачем очереди доступ по индексу?
>>1667815stack это адаптер, ни на чем он не реализован, а просто внутри использует один из контейнеров, причем на выбор пользователя.И да по умолчанию это дек, потому что есть подозрения, что лист со своими оверхедными ссылками хуже по производительностиА возможность доступа по индексу в queue - пиздеж скорее всего, или подгони пример использования
А как узнать установленную opengl версию? Выскакивает ошибка Context profiles are only defined for OpenGL version 3.2 and above, хотя вот что показывает аида. Только я не уверен что это значит. Имеется ввиду что поддерживает opengl 4.3 или что он установлен?
>>1668056Вот это да, но тут проблемка воникает. Скачиваю адреналин от амд, обновляю драйвера и комп начинает нихуева лагать. Фризы, мерцания и тд. Сейчас конечно еще попробую, но мне кажется ничего не изменится
>>1668137У меня в зависимостях стоит файл opengl32.lib, хотя в папке винды я также нашел OpenGL32.lib . Поменять имя?
>>1668149Каво? Я просто обновился с помощью адреналина выпил баночку7. Не думал что тут какие то приколы есть
>>1668156Сейчас скину. Но смысл? Он и так говорил что 4.3 поддерживается . А мне программа ругалась на то, что у меня версия ниже 3.2
Конечно в этом плане стало намного лучше. Да и wddm 2.1. Круто, но комп фризит пидец и прога так и не запускается.https://habr.com/en/post/311198/Следовал этим урокам. Может тт не то написано или я криворукий?
>>1668233попробуй директЫкс 11. Чуть сложнее ОПЕНГЛ (COM-блевотина не лечится), но зато есть полноценные книги (вроде даже с переводом) от Frank D. Luna
Гайс помогите пж с задачей по информатике. Надо написать программу :Задача :"Определить индексы четных элементов вектора К размерности 7 элементов, значения которых равны Т или Е. "Т=2,Е=4-эти значения должны вводиться с клавиатуры . Вектор состоит из 7 чисел которые вводятся с клавиатуры. Нужно найти сколько раз встречается Т и Е среди чисел в вектореначал писать код,но че с ним делать не знаю: #include <iostream>using namespace std;int main(){ double T,E,N; int i,K[7];for (i=0;i<8;i++)cin>>K;if (i%2==0)T=K;} int i,K[7];cout<<"Введите 7 значений вектора К "<<endl;for (i=0;i<8;i++)cout<< "T="<<T<<endl;
Пишу свою первую программу на плюсах, и сразу застрял на моменте подключения сторонних библиотек.Я использую CLion IDE в котором CMake для сборки используется, так что нужно как-то через него это сделать. Нужная либа DuckX для чтения и записи docx файлов.Проблема в том, что когда просто копирую репозиторий к себе, добавляю в свой CMakeList.txt add_subdirectory(DuckX) и потом дописываю target_link_libraries(project duckx).Оно вроде как заводится, но когда я начинаю пробую открыть docx какой-то в коде - у депенденси этой библиотеки вылетает какой-то эррор (Assertion failed: (s), function strlength). И я просто из-за отсутствия опыта тупо не могу понять, это либа не работает вообще или я криворукий дебил. Подскажите, пожалуйста, руки опускаются, мне просто нужна возможность открывать док файлы и немного изменять их.Вот мой CMakeList.txtcmake_minimum_required(VERSION 3.16)project(untitled)set(CMAKE_CXX_STANDARD 14)add_subdirectory(DuckX)add_executable(untitled main.cpp)target_link_libraries(untitled duckx)
>>1668318>первую программу на плюсах>парсит вордВ CMakeLists.txt все верно вроде. Проверь, не выводит ли cmake какие ошибки во время сборки. И раз у тебя есть весь код, тебе религия не позволяет воспользоваться отладкой и посмотреть в чем там дело?Есть варик отдельно сбилдить эту либу и уже потом подключить нужные файлы в основной проект, хотя это то же самое так тоНу и комп ребутни ессно>у меня стрессТебе в JS-тред, там тебя приголубят
https://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.html
https://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.htmlhttps://2ch.hk/pr/res/1668430.html
>>1668345Валится оно в pugixml библе. Я так полагаю ему тяжеловато взять strlength от NULL. Такие ошибки в плюсах могут быть из-за неправильного подключения библиотеки?>Тебе в JS-тред, там тебя приголубятне, спасибо
>>1668345Ладно, похуй на эту сломанную библу, я понял что док файлы это просто zip архивы, так что просто юзну libzip (распакую и запакую заново). Только странно что там написано что он работает только с zip архивами, как-то это странно. Может есть какой-то более народный инструмент для архивации? Просто реально не хочется опять какие-то ошибки сейчас словить
>>1668460Блять, так поэтому и падает на ассерте. contents я так полагаю - содержимое файла? Если да, то видать эта хуета просто файл не смогла прочесть. Попробуй другой попроще. Либо вообще ищи альтернативную либуИ да, скидывай код твоей проги. У меня закрадываются подозрения, что ты не отлавливаешь ексепшены/ерроркоды
>>1668509Спасибо тебе, из-за этого ответа я понял, что я очень ТУПОЙ. Я неправильно указывал путь к файлу, надо было абсолютный. Программа там уровня Hello World, все заработало. Но как указывать относительные пути к файлам я так и не понял.
>>1668509Как правильно обернуть в try catch, чтобы понимать из-за чего ошибки? Они супер неочевидные, почему оно просто не сказало что не нашло файл например?
Как сделать так, чтобы при вызове объекта класса, некоторая переменная внутри метода класса могла получить адрес, по которому этот метод находится?
>>1668574>Как сделать так, чтобы при вызове объекта класса, некоторая переменная внутри ОБЪЕКТА класса могла получить адрес, по которому этот ОБЪЕКТ находится?Ёбанное ООП!
>>1668658Если надо не игровой движок собрать, а пару шаров нарисовать, то нахуй он нужен, этот твой вулкан.
>>1657102 (OP)П Е Р Е К А Т https://2ch.hk/pr/res/1668936.htmlЕ Р Е К А Т https://2ch.hk/pr/res/1668936.htmlР Е К А Т https://2ch.hk/pr/res/1668936.htmlЕ К А Т https://2ch.hk/pr/res/1668936.htmlК А Т https://2ch.hk/pr/res/1668936.htmlА Т https://2ch.hk/pr/res/1668936.htmlТ https://2ch.hk/pr/res/1668936.html
>>1668933Ну, это я гиперболизировал. Может, ему какую-нибудь небольшую визуализацию данных надо сделать, несколько нестандартную. Вулкан ради этого пердолить смысла нету.
>>1669322Признаю, что мне неохота обсуждать с тобой всё это конструктивно. Отчасти, от тона, не предвещающего продуктивное обсуждение. Поэтому, пожалуй, просто проведу аппеляцию к личности собеседника -- ты долбоёб, иди нахуй.
Прорамач, объясни дураку пожалуйста как создавать qm файлы и как их подрубать к проекту. Прочитал в справочники Qt о QTranslator и ничего не понял. Вопрос именно с созданием qm файлов. Спасибо.