Это копия, сохраненная 22 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
⚹ https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: >>2626726 (OP)
Вот находятся люди, которые говорят, что C#, но это же вообще говно говна. Как можно всерьёз воспринимать язык, в котором нет нормального const'а?
Ну или Раст, в котором println! нельзя написать средствами языка, как его можно воспринимать всерьёз?
> Ну или Раст, в котором println! нельзя написать средствами языка, как его можно воспринимать всерьёз?
?...
Ржавый макрос println!
https://doc.rust-lang.org/src/std/macros.rs.html#132
написан через вызов макроса format_args_nl!
https://doc.rust-lang.org/src/core/macros/mod.rs.html#906
который является компиляторным билтином
Пост перечитай.
Пользуясь C++, я могу написать любую функцию стандартной библиотеки, пользуясь только средствами языка C++.
В случае раста, если я полностью отключу стандартную библиотеку, я так сделать не смогу. Вообще любую функцию, которая требует переменного числа аргументов, написать нельзя, этого просто нет в расте.
Чел, ты меня в с++ треде хочешь напугать компиляторным билтином?
Ты сам то реализации стд читал хоть раз?
> Ты сам то реализации стд читал хоть раз?
Какая разница, главное, что с C++ я МОГУ это сделать. А с Растом нет.
> я могу сделать
Ну так сделай)
Почему то никто не может этого сделать, но ты обязательно сможешь
> в расте нельзя
И кто тебе мешает написать принтф в расте? Используй макросы только ту билтин функцию перепиши
???
А int zalupa = "HER" тебе не нужно? Или может int zalupa = new MyClass() тоже не хватает?
В кути лучшая пользовательская документация и примеры евер, хз что тебе не хватает.
Одно другому не мешает.
Нету ее. Искал.
Единственный варик изучать исходники примеров кто как чё делал.
Алсо спрашивай тут, мб помогу/т.
Потому что подлежащий тип может быть другим? Потому что инты и энумы, семантически говоря, это вообще разные вещи?
Вообще, специально для тебя в с++23:
> enum attr-spec-seq(optional) identifier(optional) : type { enumerator-list } (2) (since C23)
> 2) Declares an enumeration of fixed underlying type type.
В с++20 уже есть
> std::underlying_type
> std::to_underlying
Ну фиг его знает. Если это лучшая, то страшно становится за отрасль. Особенно хороша документация по сборке самого фреймворка, Qt Installer Framework и QML.
прахраммист на Qt
Нахуя с каждым новым стандартом добавляют огромную кучу всякого говна, всё больше превращая язык в свалку?
Я у себя спрашиваю тот же вопрос, время от времени.
Чисто в теории, тот постер, которому я ответил, должен был юзать каждое в своём случае.
Если ему нужен набор констант, то отдельный namespace с constexpr/const константами внутри. Синтаксически аналогично, а касты не нужны. Семантически верно.
Если нужно перечислять, то энум (желательно enum class). Нужен каст? Как мужЫк пишешь отдельные функции для каста с большим таким свичом. Я сам так делал, ещё и функцию делал шаблонной-неопределённой, а специализации делал в других модулях. Снова семантически верно, потому что ты не натягиваешь сову на глобус, а используешь средства языка сообразно.
Но всем хочется натянуть сову на глобус. "Как это так я не буду получать предупреждение о незабитом до конца свитче? Не-не-не, не пойдёт. Буду запихивать строки в энум, тока так!"
Поэтому this.
Ну так и сиди на старом стандарте, кто тебе мешает то?
В java есть Enum#intValue().
Без понятия. Как-то подорвался пощупать, охуел от куцой документации на полторы страницы, из которой нихуя не понятно и забил.
У меня сложилось ощущение, что оно для мобилок и встраиваемых систем больше интерфейсы рисовать.
На кой хер оно на десктопе, когда есть QtWidgets?
Тут согласен. Собирать сам кути неудобно, но они похожу считают что это уже не для всех.
Я примерно такой же путь имел и вопросы у меня такие же.
через цикл пробовал тоже говно вышло.
Чё ты вообще ожидаешь там увидеть?
Прочти кусок побольше в массив, посмотри в дебаге, плюс минус туда смотришь или нет. Ты же какое то значение ищешь.
Например статическую сборку с включением либ openssl и mysql. В версии 5.7 оно собиралось по справке, выдаваемой скриптом configure, потом тупо перестало -- суёшь ему аргументы, как в справке написано, а оно хуй сосёт.
Опять же, под пингвином, чтобы собрать минималистично, тоже ебаться надо, перебирая аргументы выкидывания компонентов/модулей. Но тут уже попроще было.
Что я не так делаю?
Я же вроде должен сначала протатайп вызвать, чтоб он в первую очередь до мейна выполнялся, потом сделать мейн, в которым я вызываю юзер_гэсс с параметром, после мейна пишу саму функцию юзер гэсс.
Я явно чё-т не понял... Я понимаю как функция пишется и вызывается, но почему оно не работает - я хуй знает. Ноль идей. чатжпт тоже не помогает.
>>693280
>>693280
Ну я просто 3 дня назад главу читал, потом хуи пинал. Помню что это протатайп только, и что он нужен для какой-то инициализации или ещё чего-то, хуй знает как это назвать ещё.
По хорошему мне бы главу перечитать, но мне кажется я быстрее разберусь, если мне подскажут, что я не так сделал в целом/что не понял.
>для какой-то инициализации или ещё чего-то, хуй знает как это назвать ещё.
Типа чтоб он в мейне работал, когда его вызвали, а не пропускался внутри мейна, потому что протипирования не было. Или чё-т типа того, если я правильно понял.
>>693280
Но я не понимаю, почему он в мейне при вызове функции пишет что аргумент undefined... я ведь всего лишь вызываю функцию, а не создаю новую функцию.
>>693280
Так для этого же prototyping и нужен!
Я пытаюсь ему задавать такие вопросы, чтобы он сам понял, где косячит.
Во-первых, прототип не вызывается, это просто объявление, чтобы такую функцию можно было вызывать. Да, он должен быть написан до main.
Во-вторых, функции userGuess у тебя нет, ты ещё ниже назвал user_guess.
В-третьих, нельзя просто передать переменную в функцию, они передаются по значению, и в userGuess() будет создана ещё одна переменная guess, присваивать ей значение нет смысла. оригинальная переменная-то не изменится. Можно присвоить значение оригинальной переменной через &ссылки, но ты вряд ли до них уже дошёл.
Короче, перепиши объявление так:
char userGuess();
И функцию userGuess() так:
char userGuess()
{
char guess;
cin >> guess;
return toupper(guess);
}
Ну и в main() надо тоже объявить char guess, и функцию вызывать так:
guess = userGuess();
>через &ссылки, но ты вряд ли до них уже дошёл.
Ааа, так вот оно как. Да, не дошёл, но читал.
Спасибо, но я всё же, наверное, перечитаю главу, потому что чё-т я перемудрил.
Я правильно тебя понял, что если я создаю функцию с параметром, то в этой функции будет скрытая переменная. В случае параметра - она принимает, а в случае аргумента - передаёт? Или оно ещё как-то используется?
Если упростить, переменная не скрытая, это просто ещё одна переменная, но внутри вызываемой функции. При вызове функции создаются локальные переменные, в том числе параметры, и им присваиваются значения аргументов, которые ты указал при вызове. Если при вызове указана какая-то другая переменная, связь с ней не сохраняется (это если не использовать &ссылки), просто копируется значение, и дальше функция работает с этой переменной самостоятельно.
https://0bin.net/paste/ldeHoanY#nSQ6UHSrOuxdNa6l5jYT9E+gBPDT4DdcKog-5B4e6bF
Судя по твоему коду, в августе 30 дней.
Сделай стандартное решение. Выдели массив
https://pastebin.com/raw/iThYpriR (макаба почему-то в упор не пропускает)
И обращаясь к нему по (m - 1) индексу, будешь получать количество дней. Если год високосный и m == 1, добавляй единичку.
Лол, совсем обезумел от этих динамически типизированных языков, months[], конечно
У меня все провайдеры поблочили, втф...
Сеорас)
Bump вопросу
Это что html и python на пиках с++ треда? Не хотите своим синтаксисом людей пугать, что-ли?
мимо шёл, решил потралить лалак
Капча умный
Хуже, это не петухон, а пыха.
Да я уверен, тк я нашел офсеты которые именно к этому адресу ведут они постоянные проверял несколько раз. Единственное что осталось это прибавить их как-то к memAddr, это тестовый варик, чтобы просто понять. Как вытащить чтобы было постоянный мемАддр это уже в поисках
По такой логике и
float f = 42;
тоже идёт нахуй. Нет, конвертация между enum и int абсолютно естественна и понятна, если ты писал на C.
Никаких вопросов, и так ясно, что ты пидор.
Чтобы клопилятор мог еще более лучше оптимизировать.
Это говношлеп офисный которому платят за количество строчек, вот ему и выгодно срать везде std:: чтобы раздуть объем.
std:: удлиняет строки, но их количество остаётся тем же.
>ЕРРОР блять.
Нет такого слова. Компилятор/линкер тебе конкретно пишет, что сломалось. Соображалку включи.
Да хуй его знает, конан при инсталле должен собрать бзип, чтобы распаковывать что ли, хз зачем он ему.
С мсвц все работает, с гцц - жопа, может слишком старый для него?
Но с мсвц у меня кутя не дружит адекватно, потому что это импортед комплект.
да я понимаю что можно и без конанов и прочего, но 23ий год на дворе блять, не хочу все руками подключать.
да я тупой
Забавная ситуация. Conan - кроссплатформенная тулза, но только для линукса. Vcpkg - кроссплатформенная тулза, но только для винды.
На винде альтернатив особо и нет, разве что pacman в MSYS.
Мне чото нихуя не забавно
Плюсы в целом в нормальную кроссплатформенную сборку не может научиться
> АНБ требуют отказаться от языка C++
НАЧАЛОСЯ
стандартная приложуха телефона сяоми ми 9.
Я прочитал, что добавили inline, но раньше почему нельзя было? Пишут, что у статик мембера должна быть локация только в одном из транслейшн юнитов, иначе линкер не знал бы на какую область ссылаться. А где тогда локация у статик переменной метода класса?
Так у тебя локация статик переменной именно в том юните. Этот юнит и инициализирует переменную при запуске программы.
В каком именно том? Я класс в 2 цпп файла включил. В классе метод, в методе Статик переменная.
Ну тогда хуй знает. Линковщик всё разрулит.
<.
Мне эта эмблема никогда не нравилась, выражением лица так сказать. Больше напоминает логотип порносайта чем операционной системы.
Впрочем в опенсорсе с дизайном всегда было туго.
Нет да ?
Слова части я не смог подтвердить в Гугле.
Я хочу иметь контейнер, где аллокация повторно не происходит, т.к. у меня там жирные выровненные массивища по сотне мегабайт, а говнокодить самому не хочется
1. Используй QML, не трогай старое говно виджеты
2. Используй чатжпт
>>692841
Ты профнепригодный дед. Qml всем хорош, только надо часть мозги напрячь, чтобы новые паттерны принять.
>>699558
Ебло похоже на мем с "всезнающим" инцелом, который с усмешкой и задрав нос смотрит. Но, как выяснилось, линуксоиды не знают нихуя, а их прикладной опыт в широкой сфере бесполезен. Это как уметь открывать пиво глазом
Капча едкий
В QML есть из коробки способ по интеграции виджетов и кастомных пеинтеров в qml. QML не переписывает виджеты, это именно новый, удобный-молодежный способ описания графики. Плюс с какой-то версии QT появился ихний графикорисоватор, но я им не пользовался.
Прокси для Opengl/Vulkan окон тоже есть.
>>700055
> Повара мантов нихуя не знаю, толи дело мы - повара пельменей.
Не так. Линуксоиды, на примере ЛОРа, очень строго относятся к новичкам, хуесося каждый вопрос. Но если разобраться, то в чем ценность их опыта?
>>700056
А в бусте есть? Аллокаторы это сложно
>инуксоиды, на примере ЛОРа, очень строго относятся к новичкам, хуесося каждый вопрос.
Так происходит по одной причине - вопрос гуглится за 5 минут.
Лично мне, да и многим другим, там всегда нормально отвечали.
Кутяшная рисовалка QtCharts сама по себе говно какое то, кастом плот нравится гораздо больше. В целом я не оч понимаю, зачем уходить от виджетов на кмл.
Аллокаторы надо сначала изучить, а потом искать готовые реализации. Что там будет под капотом дека, линейная, блочная зависит уже от твоих нужд.
Я же не ебу, как часто ты объекты создаёшь, удаляешь.
Если у тебя просто жирные массивы - то можно и хуй забить. Надо узнавать, упирается ли у тебя производительность в переаллокации и прочее.
Тот же QML пропитан ЖЭЭСом
а нет. не могу. или я как-то могу сделать единую функцию, чтоб она в ретурне могла и инт и стринг ретурнить?
с++ тред
итоги
да это я понимаю... я думал оно overloaded при этом, разве нет? Когда cNum может быть и интеджером и стрингом, например. Или это только с функциями и классами работает?
Если не может - то как мне сделать cin >> X чтоб он принимал любой из двух вариантов? просто написать cin >> x || z? если так работает, конечно. Или надо в проверку if всё помещать и без этого никак?
>int cNum2 = intString(stoi(cNum));
Вообще он мне это предложил, но это не совсем то, что мне нужно. К тому же string в int не конвертится и выдаёт ошибку. Да и если бы конвертился, то он мне за место string введенной выдал бы преобразовавшийся int скорее всего (?).
>>701174
Ахахахаххаха
Лучше бы помог. Я как к проблеме не подойду, со всех сторон одно и то же - упирается в то, что надо иметь на один ввод две переменных разных типов.
С другой стороны, я ща допердел, можно, проверку на введённую переменную сделать, но тогда я не знаю как сравнивать введённое, если оно является интом или стрингом. К тому же в обеих случаях он может определять как стринг. Т.е. я опять неправильное решение придумал. Судя по книге всё должно делаться вообще элементарно основываясь на тех знаниях, которые дали до этой главы, но у меня не выходит.
Алсо, хватит семёнить.
>Используя аргументы по умолчанию, напишите функцию, которая запрашивает у пользователя число и возвращает это число. Функция должна принимать строковое приглашение от код вызова. Если вызывающий абонент не предоставляет строку для подсказки, функция должна использовать общую подсказку. Далее, используя перегрузку функций,
напишите функцию, которая достигает тех же результатов.
Я её заведомо как минимум усложнил разбросив на функции. Ща подумаю ещё об этом, но я уже напился в потугах понять, что от меня хотят.
>>701188
бля, ща в одной функции попробую всё сделать. А не размансовывать их на множество.
Капча намекает.
>Используя аргументы по умолчанию
Просто мне не понятно вот это вот. Т.е. функции должно быть две и одна должна принимать аргументы заранее дефолтные? Или шо.
Если одна и без аргументов вообще, то я думаю и сам справлюсь. Хотя как оверлоад сделать в такой функции, если оверлоадить можно только классы и функции - я не знаю.
void func(int a = 1) { ... }
Это называется аргумент по умолчанию.
Такую функцию можно вызывать как func() и в a будет автоматически передано число 1.
ААААА. Бля. Т.е. они просили без ввода данных это сделать?
Спасибо огромное. А я-то думаю, хули у меня такие трудности, оказывается непосильная задача.
Спросил у бота, а он мне НАСРАЛ БЛЯДЬ НАТУРАЛЬНО НАХУЙ СО СВОИМ STD:: и хуй пойми чё там написано в этом шлаке из символов.
присядь, выпей водички и медленно объясни себе смысл каждой строчки на втором скрине. при необходимости воспользуйся цппреференс и чатиком
Using default arguments, write a function that asks the user for a number and returns that number. The function should accept a string prompt from the calling code. If the caller doesn’t supply a string for the prompt, thefunction should use a generic prompt. Next, using function overloading, write a function that achieves the same results.
int func(string prompt = "Please type number"){
int temp;
cout << prompt;
cin >> temp;
return temp;
}
Судя по всему, от тебя требуют что-то такое. Непонятно только, зачем там перегрузка
Долго не мог понять какого хуя пик2 вообще компилируется, а потом как понял...
>Непонятно только, зачем там перегрузка
Cделать то же самое используя не дефолтный аргумент, а две функции.
Короче вышло че-т такое, если убрать string - то работает. Но если вернуть стринг, то он на него жалуется. Даже если убрать всё и оставить только стринг - он всё равно не будет работать.
Я не правильно аргумент передаю в случае со стрингом? Возможно забыл, как правильно.
>1>main.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl funcCheck(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?funcCheck@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) referenced in function main
>1> Hint on symbols that are defined and could potentially match:
>1> "int __cdecl funcCheck(int)" (?funcCheck@@YAHH@Z)
Плюс я ко всему забыл половину изученного, т.к. 3 дня нихуя не делал. Поэтому и функции написал за место протипирования.
Нахуя тебе эти прототипы вообще?
>3 дня нихуя не делал
ничего страшного, вот я 10 лет ничего не делал, ни одной строчки кода
так чтож тебе еще расти и расти, маленький
> и по факту при работе он повторную аллокацию может не делать
А может и делать. Бабка надвое скозала.
>если уже память выделена
Да, но std::deque не умеет резервировать память, как это делает вектор.
>Я хочу иметь контейнер, где аллокация повторно не происходит
std::array
Если тебе нужен именно АТД очереди и чтоб прям совсем без аллокаций с гарантией, то заверни std::array в самодельную обертку на манер кольцевого буфера.
Если тебе нужен именно АТД двусторонней очереди и без аллокаций, то я не знаю элегантных решений.
>где аллокация повторно не происходит
Чем конкретно тебе аллокация мешает?
Если что, std::deque не инвалидит итераторы при аллокации и никуда не копирует старые данные, просто берет новую память.
>>700185
>А в бусте есть?
В бусте есть circular buffer.
https://quantpro.ru/archives/3067
А делать расчёты на графическом API - это значит не лопатой гвозди забивать? Можно использовать interop между кудой и графическим API, но это ещё сильнее говном пахнет.
Куда чтука крутая спору нет. Но скольео нвидия туда говна влила , даже богам не известно больше 5 гигов, так что хз хз.
Вообще если нет прямых указаний от начальства я бы не стал куду с 0 брать, а взял бы вулкан. Компуте пайплан гораздо легче графического, но если что и гррафику прикрутить сможешь.
Из примеров куды могу посветовать алиен. Там куда считает а гл рисует.
> вулкан
> Компуте пайплан
Он очень медленный, по сравнению с кудой. И про легче очень сомнительно - в вулкане надо руками делать многое из того что в куде автоматически, например управление памятью.
Да много гадо писать явно, но что шейдеры медленне, не думаю, просто их тоже надо писать правильно, куда делает то же, просто скрыто за тебя.
> надо писать правильно
Все compute-шейдеры всегда медленнее куды, даже если просто портированые, по этой причине единственное их применение - нейросети на мобилках и работа с графикой. Графический пайплайн не предназначен для рандомных вычислений, это как раз и есть забивание гвоздей лопатой. Если говорить про выполнение кода на GPU, то compute-шейдеры аналог qt против winapi - огромный комбайн в виде пайплайна, заточенный только под одну задачу.
Блядь, что значит "медленный"? А математическая оптимизация тебе на что? Или ты лёгкой рукой суешь туда рейтрейсинг как в книжке написано, и удивляешься, что работает медленно? Как думаешь, почему все Unreal Engine 5 восхищаются?
Ты в корне не прав.
Вулкан это не графика. Вулкан это управление драйвером гпу, прямо как куда , вывод графики и графический пайплайн - вещь опциональная, в вулкане об это сказано.
Куда это те же шейдеры, байткод один и тот же, работает одинаково на одном и том же оборудовании с одним драйверлм.
Твои аналоги с кути вообще бред.
>>702201
Не слушай того, он явно не понимает что пишет.
> Да, но std::deque не умеет резервировать память, как это делает вектор.
> std::array
Короще спасибо за ответ, я ща и реализую на стд::аррае. Я предположил, что как-то за меня уже кто-нибудь работу сделал.
> Если что, std::deque не инвалидит итераторы при аллокации и никуда не копирует старые данные, просто берет новую память.
Я не знаю, как происходит аллокация. Я говорю: "найди мне кусок объемом 32МБ выровненной по 4096 байт памяти". Насколько это долгая процедура?
> В бусте есть circular buffer.
Короче, я чето проебался с ним и не понял как с ним работать (не помню что), хотя по названию и описанию идеально подходящая для меня вещь.
Буфер мне нужен для слива потоковых данных из PCIe, обработка в отдельных потоках
Слушай а для такой задачи не лучше ли свой мем пул сдедать? Ты преалоцируешь сколько надо и берешь уже из пула и возвращаешь туда же, и свободен от долгих малоков системных.
Ну ты подразумеваешь, что в мемпуле есть индексы используемых и свободных элементов? Мой "мемпул" для простоты основан на векторе, и сделан простой циклический буфер. Только метод поп() не значение возвращает, а элемент освобождает
извини анон, наверное зря я тебя запутал, делай как делаешь, а то только лишних проблем нахватаешь. А то о чем говорил я подразумевает полный контроль на алокакицй памати в принципе,а не только для какого то ондельного контейнера и конечно там нужно все отступы и размеры считать самому
>для слива потоковых данных из PCIe
Для такой хуйни все и всегда юзают circular buffer. Разбирайся с бустом или пиши сам, это почти такая же классика как свой string.
Бля, часа полтора потратил. В итоге вбил ошибку в бота и он сказал, что нет функциянейм. Оказалось, что я функцию написал funct а не func.
А как я должен был узнать это из этой уёбищной нечитаемой ньюфагом ошибки и когда никто не пишет? T_T
>>702359
>А как я должен был узнать это из этой уёбищной нечитаемой ньюфагом ошибки и когда никто не пишет?
Прочитать ошибку чуть внимательнее и попытаться понять, что ей хотели сказать. В ней даже есть подсказка о том, в какой функции ты опечатался:
"Hint on symbols that are defined and could potentially match: int __cdecl funcCheck(int) (?funcCheck@@YAHH@Z)"
Цена продвинутого механизма шаблонов. Привыкнешь со временем.
У меня выходит всё это сделать так, чтоб оно работало из визуал студио, но я не уверен, что это то, что надо. Т.е. когда я ввожу string - то могу потом в консоле стриг получить, если инт - то число.
От меня этого требует или чтоб он сам определял что я ввёл и в зависимости от введённого уже обращался к функции string/int >>701238
Уфф, почему же так сложно-то...
>>702401
Надо мной даже капча смеётся...
Хуй соси.
1. Проще создавать красивые интерфейсы. Стандартный набор выглядит современным
2. Из коробки работает с сенсором
3. Умно сделаны формы, их отношения и зависимости
4. Удобно работать с моделями типа список, хороший визуал
5. Просто создавать всякие кнопки в таблицах, в Qt Widgets это ебля
6. Прекрасный перенос старого бекенд и полуфронтенд кода
7. Если ты тупой, можешь писать на js, даже бекенд. Реально создать приложение без написанной на с++ строки
8. Адекватное описание анимаций - фейдов, смены цветов, мигания и т.п.
9. Хочешь скорости - можешь писать графику на C++
10. Для сложного графона доступен Canvas, как у вебоблядей. Хочешь скорости - используй пеинтер или опенгл, все работает
11. ЧатЖПТ прекрасно знает QML
12. Приветствуется написание интерфейса кодом
13. В QtCteator есть рантайм представление твоей графики, изменение цвета или поведения моментально отображается на полу настоящей формочке
Минусы. В моей версии Qt 5.11 релиз проги на винде тянет за собой вериницу qml файлов. Мне такое не нравится. Похоже, в Qt 6 прикрутили что-то типа компиляции языка. QML.
Ещё минус в том, что студенту, испорченному Виндоус Формс в шарпе, формами в Дельфи или Qt Widgets, мозговыносяще писать на qml, там надо воспринимать уи по-другому
Даже если так, оно всё перекрывается отсутствием вменяемой документации. По крайней мере так было тогда, когда я последний раз это трогал. И да, интерфейс на QML в то время выглядел абсолютно неуместно на десктопе (т.е. оно не подхватывало системную тему) -- как будто какую-то вебню или приложуху с андроида притащили на десктоп.
А как должно быть уместно, чуть более круглые кнопочки из винды 95?
Текущая документация QML все ещё не самая очевидная, ее лучше понимаешь после вката. Порог входа выше, чем на Виджетах, но потом нравится начнет
> абсолютно неуместно на десктопе (т.е. оно не подхватывало системную тему)
Это разве не фирменная фича QT, выглядеть везде одинаково хуево?
Скочай clion. Он как идея подсвечивает несуществующие функции.
>А как должно быть уместно, чуть более круглые кнопочки из винды 95?
Как юзер у себя в системе настроил. Бывают, конечно, сильно специфичные приложухи, которые по функционалу должны иметь кастомный внешний вид (какой-нибудь музыкальный софт, например).
Алсо, как там сейчас с использованием C++/Qt-шного бекенда? Если в бекенде структуры данных с классами оттуда, как это всё прокидывать в QML?
>>702662
Дык, как обычно, от программистишки зависит.
Не выёбывайся.
> Алсо, как там сейчас с использованием C++/Qt-шного бекенда? Если в бекенде структуры данных с классами оттуда, как это всё прокидывать в QML?
Да. Путей несколько. Я сейчас использую qmlRegisterType<>, чтобы зарегать свой класс в QML, создание выполняется внутри QMLя. Требование от класса - потомок QObject.
Вызов функций - Q_NVOKABLE макрос
Есть крутая тема - Q_PROPERTY. Там много бойлерплейта, но тебе доступен в QML простой функционал по управлению свойствами объекта. Например, есть твой класс CustomNetworkManager, ты решаешь его через qmlRegisterType<>. В классе есть property QString ip_addr, ты пишешь сеттер и геттер.
Уже в QML созадешь класс, код будет что-то типа NetworkManager {id: network_manager; ip_addr="127.0.0.1"}
Очевидно, что в сеттере/геттере может быть функционал любой сложности, связь делается через сигналы слоты по классике.
Для моделей, типа миллиард данных, где имя, число, состояние и прочее, есть мощный базовый класс QAbstractListModel. QML генераторы типа ListView, GridView используют модель для рендера. Вся тема, связанная с запросом только N элементов для отображения, а не всего миллиарда, сохраняется
Вы как вошли, без задней мысли?
Ебут на собесах?
Я не про плюсы грю, а про веб(в принципе, на питухоне там).
А спрашиваю тут потому что тут наверное есть люди которые делают десктопину
ну тогда
> Правда ли что в вкатиться в десктоп в 100500 раз легче чем в веб
не правда, вкатунов больше, но и вакух в дохуя раз больше, да и студентику легче в какой то движ по вебу залететь, стажировки там, хакатоны и тд
Придумал за пол часа не по учебнику, зацените.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
inline void keep_window_open() { char ch; cin>>ch; }
int main() {
int negriNumber = 10;
while (negriNumber > 0) {
cout << negriNumber << " " << "negrit9t poshli kupatjsa v more\n";
cout << negriNumber << " " << "negrit9t rezvilis na prostore\n";
cout << "odin iz nox utop, emu kupili grob\n";
negriNumber--;
cout << "i vot resultat - " << negriNumber << " negrit9t\n";
}
return 0;
}
Придумал за пол часа не по учебнику, зацените.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
inline void keep_window_open() { char ch; cin>>ch; }
int main() {
int negriNumber = 10;
while (negriNumber > 0) {
cout << negriNumber << " " << "negrit9t poshli kupatjsa v more\n";
cout << negriNumber << " " << "negrit9t rezvilis na prostore\n";
cout << "odin iz nox utop, emu kupili grob\n";
negriNumber--;
cout << "i vot resultat - " << negriNumber << " negrit9t\n";
}
return 0;
}
Страус в своём учебнике так сказал сделать. Я это написал ещё когда по первым главам учебника шёл, потом забил, решил написать что-то своё, и оставил шапку такой.
Да, это лучше, чем скачать васянский хедер из другой его книги.
>QML
Лол, сегодня в больнице от врача услышал "У нас QML не работает, справку не могу выдать. Приходите завтра с восьми..."
>MFC
Единственная претензия у мамкиных погромистов к MFC - то что не кросс-платформ. ЕДИНСТВЕННАЯ.
Это охуенный вроппер-фреймворк, для винды лучше быть не может.
> Ты профнепригодный дед. Qml всем хорош, только надо часть мозги напрячь, чтобы новые паттерны принять.
Qml это целый язык, который не используется нигде за пределами qt и по которому хуй да нихуя документации. Уж лучше писать гуй на winui с xaml как делают сами майки
> Qt: ЛИБО ПЛАТИ СТОТЫЩ МИЛЬОНОВ ЛИБО ОТКРЫВАЙ СУРС КОД ПОД ЛИЦЕНЗИЕЙ GNU GPL ЯСКОЗАЛ!!!
Фу, блять.
Либо ничего не открывай, ничего не плати, но линкуйся динамически. Жопой читал лицензию?
>>703291
>>703286
Электрон - это единственная настоящая кроссплатформенная технология, которая позволяет софту выглядеть одинаково на всех устройствах. Я сам раньше тоже плевался пока что не начал поддерживать две софтины на нескольких платформах. А тут один раз собрал и оно везде работает.
>>703291
> 100500 терабайт оперативы.
VsCode пользуешься? Это тоже электрон.
Вебсайты с браузерами это вебпараша, вообще не программы. Тут язык программирования С++ и программы, а не веб-сайты с хтмл.
Пиздец, да все языки программирования +- похожи. Отличается программирование на C++ от микрохирургии глаза, тут да, переучиваться надо. Неделю потратил на изучение QML и готово, если не согласен - уволен нахуй
Я, конечно, поннимал, что формошлепы на WPF или QT дегенераты, но не настолько же...
Офисное быдло, даже не понимаешь что такое программирование.
Программирование это действие - способ управления машиной. Не бывает программирования "всех устройств" - это бессмыслицца, как управлять одинаково автомобилем, экскаватором и вертолетом. Так не бывает, разные машины - раазные функции, а значит и управление разное, для каждорй машины своё. Вот что такое программирование.
А веб-параша это объект - офисный документ. Документ, понятно, желательно чтобы везде выглядел одинаково. Вот вебпараша и стремится к однообразию. Но это офисное быдло, никакого отношения к технической дисциплине программирования машин не имеет.
Вот сразу видно школьника, который ничего сложнее калькулятора не писал. На таком уровне действительно все языки похожи, а стоит начать писать нечто более комплексное так тут же вылезают миллионы нюансов различных технологий.
ЧДТ, клинический долбоеб.
Иди под каждую платформу ГУИ костылируй, чтобы он нормально работал, маня, и трать на это свое время, которое можно было бы потратить на более полезные вещи, а не бляскую поддержку блядского ГУЯ.
>Иди под каждую платформу
Под каждую платформу - свои программы, на то они и РАЗНЫЕ платформы. Иначе получаются говносайты, это не программирование вообще.
Если даже предположить на время существование кроссплатформенности на крестах, то кроссплатформенный гуй (на крестах и не только) это все равно либо залупа со встроенным браузером (лол!), либо нечто уебищное вроде QT.
И это если не вспоминать про мобилы - надеюсь ты не будешь утверждать что можно написать один кроссплатформенный гуй для десктопа и планшета?
И в чем ты код пишешь?
>>703327
Ты по каким-то критериям из своей больной головы судишь.
Вот у меня есть ядро программы с различными АПИшками. К этому ядру я могу приделать любой интерфейс: десктопный, ведроидный, веб-интерфейс, да хоть по IRCe управлять могу.
Теперь ответь мне, почему я должен тратить время и силы на неблагодарную работу? Разбираться в десятках тулчейнов и библиотек одновременно, чтобы это не выглядело как говно, а потом и поддерживать, когда можно просто наклепать интерфейс на электроне и забыть про такой класс проблем вообще?
Я 8 лет в сфере, и использовал по работе C, C++, Python, Matlab, немного GLSL, JS на ноде, писал под микроконтроллеры. И я знаю, что программирование - полная хуйня, очень много профанов в сфере, и мало кто умеет (само собой, кроме меня) делать хорошие архитектуры систем
под травой? под баклофеном?
нихуя себе ты такой крутой, можно я тебе отсосу?
Он жрет немного, там как то умудрились оптимизировать. Он жрет на уровне нотепад++. Естественно речь о конфигурации с одинаковым набором плагинов - интеллисенсы всякие.
но нотепад при это выглядит как говно 90х, даже темную тему подхватить не может.
Молодец, я тоже пытался пилить игрулю под ncurses, только времени пиздарики не было. а сейчас влом возвращаться.
А что может быть сложнее калькулятора ?
Думаю, что куда-то не туда оно свернуло.
>я могу
Потенцивал на словах, а на деле только болтовня и говно из жопы, потому что вебпараша не может произвести ничего хорошего кроме говносайтов. Понимаешь, не важно что ты там можешь, когда в руках какашка, ты можешь только всё измазать и навонять, больше ничего.
>Теперь ответь мне, почему я должен тратить время и силы
Теперь ответь мне, что хорошего может сделать уебок, который еще даже не начал, но уже ничего делать не хочет. Типичное офисное говно с дерьмосайтиками ена отъебись.
Хуя как крудошлепа на Qt порвало. Был бы ты программистом, то я бы тебе еще ответил, но ты ничем не лучше твоих ненавистных веб-макак, а пока что принимай золотую струю на свое лицо.
Офисная макака косплеит программиста, спешите видеть, как грязи вокруг толпы этого сброда.
> ЛИЦЕНЗИЕЙ GNU GPL
> ПУТИНСКИЙ РЕЖИМ
Бля, у нас вообще на эти лицензии хоть кому-то не похуй?
main.cpp
#include "iostream"
0 int main() {
1 int size = 3;
2 MyClass dynamicArray = new MyClass[size];
3 dynamicArray[0] = MyClass(<входящее говно>);
4 dynamicArray[0].ShowInfo();
5 delete[] dynamiсArray;
6 return 0;
7 }
MyClass.cpp
#include "MyClass.h"
#include "iostream"
void MyClass::ShowInfo() {
std::cout << MyClass::GetName() << ... << std::endl;
}
char MyClass::GetName() {
return name;
}
...<всякое говно> ...
};
Суть в чём, когда информация выводится в консоль, то видно, что там какой-то мусор. По идее должно затереться тем, что передалось в конструктор на строчке 3. Но почему-то не работает. А при попытке почистить память - программка ложится, будто бы я залез куда-то не туда. Причём, реализация статического массива объектов класса работает как надо, каждый объект по индексу выводит свою информацию, можно в цикле по методам обращаться и т.п. Хочу понять как и что делается, STL и другими штуками не пользуюсь из принципа на данном этапе обучения. Буду премного благодарен за совет.
Тогда не ебу, у меня с интами сработало.
>>704568
Здравствуйте, товарищи!
Оператор присваивания не перегружен.
Ситуация которую я вижу по отладчику следующая: видно, что при объявлении массива, происходит выделение памяти под то количество объектов, сколько находится в задаваемой ему размерности. Конструктор также вызывается столько раз, сколько указана размерность. Проблема, как я понял в другом, при обращении к элементу массива, а именно в строке:
dynamicArray[0] = MyClass(<входящие параметры>).
Происходит вызывв конструктора, создаётся экземпляр класса который должен отправиться в ячейку массива, но затем сразу же вызывается деструктор.
У меня описан в классе конструктор копирования:
Конструктор копирования
MyClass::Class (const MyClass& original) {
<логика>
}
Как видно, он принимает ссылку на объект класса, таким образом должны обрабатываться ситуации типа:
MyClass a(<параметры>);
MyClass b = a;
ИЛИ
b = a;
По-моему, данная конструкция:
dynamicArray[0] = MyClass(<входящие параметры>)
похоже не обрабатывается и, возможно, тут как раз и проблема. Как правильно нужно перегрузить оператор присваивания, >>704574, подскажите пожалуйста? Должна получиться перегрузка, похожая по логике на конструктор копирования?
>>704568
Здравствуйте, товарищи!
Оператор присваивания не перегружен.
Ситуация которую я вижу по отладчику следующая: видно, что при объявлении массива, происходит выделение памяти под то количество объектов, сколько находится в задаваемой ему размерности. Конструктор также вызывается столько раз, сколько указана размерность. Проблема, как я понял в другом, при обращении к элементу массива, а именно в строке:
dynamicArray[0] = MyClass(<входящие параметры>).
Происходит вызывв конструктора, создаётся экземпляр класса который должен отправиться в ячейку массива, но затем сразу же вызывается деструктор.
У меня описан в классе конструктор копирования:
Конструктор копирования
MyClass::Class (const MyClass& original) {
<логика>
}
Как видно, он принимает ссылку на объект класса, таким образом должны обрабатываться ситуации типа:
MyClass a(<параметры>);
MyClass b = a;
ИЛИ
b = a;
По-моему, данная конструкция:
dynamicArray[0] = MyClass(<входящие параметры>)
похоже не обрабатывается и, возможно, тут как раз и проблема. Как правильно нужно перегрузить оператор присваивания, >>704574, подскажите пожалуйста? Должна получиться перегрузка, похожая по логике на конструктор копирования?
Реши сначала проблему с удалением массива. Без присваиваний.
> MyClass b = a;
> ИЛИ
> b = a;
Нет, это разные вещи. В первом случае ты конструируешь объект, во втором случае ты присваиваешь один объект другому.
> Как правильно нужно перегрузить оператор присваивания
Вот так как-нибудь https://pastebin.com/B9sSn8F1
Наверное
Благодарю, перегрузив оператор присваивания всё вышло. По сути логика такая же как у конструктора копирования получилось. По отладке и вызовам деструкторов посмотрел, все создающиеся копии благополучно уничтожались, в конце массив чистился.
Бредишь? В первом случае выполняется конструирование, то есть вызывается метод MyClass::MyClass(...), а во втором случае вызывается оператор присваивания, то есть метод MyClass::operator=(...).
Понятное дело, что и в первом и во втором случае будет происходить копирование, но семантически это разные вещи.
Я и не спорил с тем, что в обоих случаях происходит копирование, я спорил с тем, что:
> У меня описан в классе конструктор копирования:
> Конструктор копирования
> MyClass::Class (const MyClass& original) {
> <логика>
> }
> Как видно, он принимает ссылку на объект класса, таким образом должны обрабатываться ситуации типа:
> MyClass a(<параметры>);
> MyClass b = a;
> ИЛИ
> b = a;
конструктор копирования не обрабатывает вторую ситуацию.
-скриптовые расширения
-сборку мусора
-нормальные модули, функторы
-интерфейс компилятора к чатгпт
Ты зашёл не в тот тред другалек!
> От нового стандарта жду:
> -скриптовые расширения
Чё это и зачем
> -сборку мусора
И в чем будет отличие от жавы в таком случае?
> -нормальные модули, функторы
Тут сыглы не ебу что это и нахуй нужно
> -интерфейс компилятора к чатгпт
А, все понял, ты тролль
>И в чем будет отличие от жавы в таком случае?
Отличие будет в ебанутом синтаксисе и отсутствии нормального многопотока.
s/null pointer/segmentation fault/
Зачем нужен тип bool, если то же самое можно сделать через char? Какие преимущества есть у первого перед вторым?
>Какие преимущества есть у первого перед вторым?
Тем что тебя на кодревью за такое не зарежут
а еще какие то аноны в прошлых тредах утверждали, что на разных платформах не гарантирован размер бул и чар, но хуй его знает
Ну а чар можно сделать через uint_8.
Есть некая математическая или компьютерная модель восприятия информации "Перцептрон". Вопрос, что такое весы ?
Как входная информация влияет на эти весы ?
Пример: есть два входа и одно тело, на вход идут две картинки, как они влияют на веса ?
Не весы, а веса.
Это коэффициенты связей между нейронами.
Условно предыдущий слой тебе кидает 0.5, ты это умножаешь на вес связи с этим нейроном, складывешь с остальными если нужно, и засовываешь в функцию активации.
Раньше был тред нейроночек и машоба, теперь есть отдельная доска /ai/
Веса это важность/приоритетность конретной связи относительно других. Например, у тебя что-то болит. Алкаш Вася с соседнего подъезда от всего лечится водкой и тебе предлагает, но так как Вася медицинский не заканчивал, его совету ты придаёшь вес 0.2. Идешь к врачу, врач тебе прописывает лекарство, врачу всё-таки ты веришь больше, поэтому присваиваешь ему вес 0.8. Ну и дальше там обрабатываешь как тебе хочется.
Картинки разбиваются на каналы по цветам, потом ещё всякие свёртки и тд, гугли сверточные нейронные сети.
thx
Также буду рад услышать ваши стори о таком перекате
>Изучаю кресты первый день
Поздравляем! Осталось всего 999 дней если тратить 10 часов в день и без выходных.
первые года че-то дергался, хуярил код по привычке, щас уже перестал, все равно не возьмут на работу после такого перерыва, хех
Я до сих пор нихуя не решил данную проблему. Когда обращаюсь напрямую к адресу - работает
Когда через вот ту хуйню memAddr + offsets нихуя не работает
Иди на LeetCode лучше...
Ну зп в С++ процентов на 60 ниже, а вонь от коллег-чуханов раза в два повыше.
а вам говорили, что те кто знает, как математически устроены невросети, никогда никаким интеллектом их считать не будут
Но математическое описание интеллекта неизвестно. Это не значит, что оно другое или его не может быть.
как скажешь
думаю способность арифмометра умножать трехзначные числа в свое время тоже могла впечатлить неподготовленную публику и создать впечатление что до механического интеллекта осталось совсем немного
Вот допустим на Go/Node.js/Python все примерно представляют как выглядит бэкенд и микросервисы.
А в случае C++ решают ли такие задачи на нем(там где нужна убер скорость и производительность?
Или C++ все таки на 99 процентов состоит из десктопа, эмбеддеда мль и геймдева?
Полистал компании, такое ощущение что в контексте бэкенда его юзает только Яндекс, но наверняка же это не так.
Что вообще принято использовать? Знаю, что есть куча либ(тот же буст) на основе которого люди пишут свои обработчики и работают с сетью, но общий популярный стандарт в этой области как-будто отсутствует. Это так?
> популярный стандарт в этой области как-будто отсутствует. Это так?
это так
> в контексте бэкенда его юзает только Яндекс, но наверняка же это не так
это так
Похоже на троллинг немного если честно. А вне РФ как с этим? Вроде во всяких блумбергах и амазонах точно есть сиплюсплюсный бэкенд.
И вообще стоит ли выбрать это направление в плюсах, если не хочется заниматься десктопом и геймдевом? Что вообще остается на выбор?
Или я что-то не так понял?
Ну т.е. она ссылка, потому что работает с оригинальным значением. Да? Просто как-то не совсем удолбно.
Вообще я не до конца главу ещё прочитал.
А при ссылке в функции - копии вообще никакой не происходит? Оно напрямую значение меняет, да?
>ОС
Допустим. Сюда бы я бы еще компиляторы впихнул.
Как вкатиться в такое?
И вообще, ради интереса, в какой области C++ работает средний анон из треда?
> И вообще, ради интереса, в какой области C++ работает средний анон из треда?
Задачки из Страус трупа.
>И вообще, ради интереса, в какой области C++ работает средний анон из треда?
Пилю сервис, общающийся с неким железом и ведущий БД. И gui-клиента для него. Всё на Qt.
А может сразу Го(на хабре пишут что там легкий вкат в язык, легкий поиск работы и самые высокие ср. зарплаты)? А может на С? Или С совсем ископаемое, и полностью заменятся Го(я читал, что Го это современный С)?
Хочу
а) войти в список Форбс,
2) СОЗДАВАТЬ классное(роботы-помощники-гуманоиды или хотя бы игру уровня Ведьмак 3+Гта 4/5/са+МГС 2/3+Фейбл, но тока чтобы без кранчей и за зп по верхушке рынка(я читал что в гейдеве з/п ниже а рутины тяжелой больше)
>(роботы-помощники-гуманоиды или хотя бы игру уровня Ведьмак 3+Гта 4/5/са+МГС 2/3+Фейбл
короче как СМУТА только на максах
>а) войти в список Форбс,
Это сразу мимо программирования.
>СОЗДАВАТЬ классное(роботы-помощники-гуманоиды или хотя бы игру уровня Ведьмак
Тоже немного мимо, так как знания языка из тебя программиста в этих областях не сделают. Лучше предметную область дрочи, а язык можно любой брать, так как это всего лишь инструмент. Но офк лучше брать самый лучший метаязык всех времен ЦПП, на котором можно писать абсолютно все. От ПО для F-16 до блядских сайтиков.
бамп вопросу
О, круто, чеклист, чтобы выучить.
1. У некоторых шаблонов есть эффективнее реализация для bool. Например, std::vector<bool>
2. Семантика. Я тебя заебу на ревью, чмоха.
> std::vector<bool>
Почему это все еще существует, кто ответственный за это, и как его наказать?
Я хочу имплементнуть булевы функции (наивные возможно). Чем ты предлагаешь заменить?
> Айти увеличивает твои шансы стать мультимиллионеров в 1000 раз!!!1111
> Априорные шансы стать мультимиллионером без богатых родителей 10-100
> Ваше ебало когда
Чтения на пару минут максимум:
https://stackoverflow.com/questions/712279/what-is-the-usefulness-of-enable-shared-from-this
std::bitset
а нах тебе вектор для этого? таблицу истинности сложить что ли лол?
не представляю твое ебало уже на 50 переменных. работать с булевыми функциями в 2023 без bdd-подобных структур или csp/sat алгоритмов хех мда
>std::bitset
Фиксирован в момент компиляции.
>не представляю твое ебало уже на 50 переменных.
Сказал же, что наивно.
> таблицу истинности сложить что ли лол?
ДА
(input layer, hidden layer и output layer). Когда данные приходят на input layer, он должен умножить входные данные на веса и сложить, затем передать их hidden layer, который сделает тоже самое и в конце output layer сделает аналогично ?
То есть, получается один нейрон из СЕТИ, может взаимодействовать
только с одними ВЕСАМИ ?
Ты запутаешься быстро. Нейрон как есть сейчас - это сумматор + активационная функция.
"Входной слой" зачастую - это не нейроны, а просто обозначенные входы. Скрытый и выходной - слои нейронов.
>То есть, получается один нейрон из СЕТИ, может взаимодействовать
>только с одними ВЕСАМИ ?
define взаимодействовать
Нейрон имеет свой вектор весов. Зачастую все веса одного слоя помещают в одну матрицу для простоты вычислений и оптимизаций.
Спасибо, дошло.
спасибо, анон
>Один.
Тогда это не работа, а васянство. Васянить можно на чем угодно, хоть на паскале, хоть на вижуал бейсике, да хоть на батниках, без разницы, ведь ты сам себе хозяин.
Основы архитектуры компьютеров и процессоров - база. Это то, на чём строится всё остальное порево, всё есть в книжках. Далее - тебе нужны основы ОС (в нашем случае - линупс) - тоже в книжках всё есть.
Язычок, кстати, какой-нибудь низкоуровневый тоже надо знать. Вообще, у ядра линукса есть документация на гите, можешь к ней также обращаться (авось своё запилишь)
Помню книжки O Really о ядре линукса 2.2 - 2.4
Микроскопом гвозди забиваешь? Увожаемо.
https://en.cppreference.com/w/cpp/io/ios_base/sync_with_stdio
> Что это за хуита
> In practice, this means that the synchronized C++ streams are unbuffered, and each I/O operation on a C++ stream is immediately applied to the corresponding C stream's buffer. This makes it possible to freely mix C++ and C I/O.
> мне ее полноценно включить выключить
Use the fucking function, Luke.
Куда дальше-то, ебать?
С этой хуетой в положении "ВЫКЛ" С++ I/O операции могут работать быстрее, но не будут синхронизированы с сишными операцими. Если ты не помнишь, то в плюсах можно использовать сишную либо тоже.
Теряется thread-safety, если я в глаза не ебусь.
И наоборот в положении "ВКЛ". По умолчанию находится включённым.
Ты студень что ли? Скажи преподу тебе неуд поставить.
А ты нах нас об этом спрашиваешь, САМ ЧТОЛИ ИМИ НЕ ПОЛЬЗУЕШЬСЯ В СВОЕМ КОДЕ!?!?
я больше всего видел googletest, catch2 тоже классный
> Основы архитектуры компьютеров и процессоров - база
Потребуется ли мне знания математики и физики и если да, то на каком уровне?
на школьном как минимум
первые 6 рядов делают варианты для победы слева-направо и сверху-вниз(и наоборот)
А последние 2 что делают? 7ой и 8ой? как это работает не совсем понимаю... Спасибо.
Новая капча пиздосий. Поносы какие-то или хуй прочитаешь что...
>А последние 2 что делают? 7ой и 8ой? как это работает не совсем понимаю... Спасибо.
Толсто. Условия победы для крестиков-ноликов какие, напомни.
> А последние 2 что делают?
диагональ
> Новая капча пиздосий. Поносы какие-то или хуй прочитаешь что...
ПОЛЮС
ФЛАНГ
МЕРТВЫЙ
Чел, с такой умственной отсталостью тебе в прогинге явно не место
>>710057
>диагональ
Да, но как они здесь отображены. Я не очень понимаю. Там же три ряда должно быть.
АААА ЕБАТЬ. Я ПОНЯЛ.
я думал, что он физически отображает ряды для победы, а он просто цифры для победы перечисляет :D
Жесть до меня долго доходило.
Вообще мне очень сложно даётся tic-tac-toe, читаю и вроде понимаю, а вроде нихуя не понимаю. Местами оч сложно, например тут.
Это нормально, что трудно воспринимать написанное? Надо наверное построчно разбирать и пытаться понять, как это работает, 'переводить на русский язык', 'в слова'
Если тут не срать...
в англобядский не могу
Переопределять new глобально со статической переменной как тут https://stackoverflow.com/questions/70925635/gtest-on-new-keyword
выглядит очень хуево
Есть какие-то идеи?
1) Шарп?
2) Раст?
Интересует любая критика, в фанбойских тредах критики не дождешься. Поэтому почему С++ а не 1 или 2?
https://wiki.theory.org/YourLanguageSucks
Думаешь, тут ответят объективно? Любые доводы против того или иного языка всегда сводятся к личным ощущениям. Были бы настоящие причины - этих языков бы не было.
Мне вот нравится, что на крестах можно написать вообще всё нахуй, и для всего найдётся тонна либ, проверенных временем. В расте либ мало, и они сырые. А в шарпе всё крутится вокруг дектопа для винды и бэкенда с мнимой кроссплатформенностью, остальное такое же сырое, как в расте.
Какой-то скудный, возможно древний выпук. Там можно столько хейта написать на некоторые языки. Не старались даже.
>Почему не стоит вкатываться в
Вкатываться надо не в язык, а в область или изначально продумывать карьеру и зарплату, откуда будет следовать выбор языка. Сейчас области у раста, С++ и шарпа разные (хоть и немного пересекаются).
>Поэтому почему С++ а не 1 или 2?
Если с чисто практической точки зрения, то для крестов есть либы для всего, или плюсовые или сишные. Для раста будет или вечно поломатая хуита от васянов или кривые протухшие биндинги к той же сишке (для крестовых либ скорее всего их не будет). Весь низкий уровень - это си, соответственно, гораздо меньше геммороя, чтобы дергать функции ОС или каких-то низкоуровневых либ. Под шарп - опять же кривые биндинги, или гемморой с обертками через C++/CLI, но там хотя бы гуй есть (под виндой) и либы более стабильные.
А кто тебе мешает выкатиться во все подряд?
мимо пукаю и на расте и на плюсах, полет нормальный
Ты не поднимешь скилл до приемлемого уровня прыгая на двух стульях, человеческие ресурсы, как и все в этом мире - ограничены.
Будешь тупо плох во всем.
Интересует именно критика, думаю хватит уже искать за всех работу. Мысль про большую часть либ - я принял. Хотя всякие гитхабы могут показывать совсем другое, что разница не особо большая или даже маленькая (на пикче выборка по >1000 звезд). Тот же шарп отстает в два раза, с учетом того что мягкие там им все написали уже и нет причин городить 100500 серверов, orm и прочих кустарных подделок, как в той же джаве.
Тот же шарп позволяет поддергать указатели, есть unsafe и области памяти без ГЦ когда надо. Поэтому и спрашиваю за них вместе. Ибо какой резон трахаться все время с памятью, когда в реале там это нужно в узких местах.
Про раст соглашусь, но и там крейтов вроде уже не мало, хз какого качество, возможно на С++ качество лучше.
Да ну это мантра инфоцыган и юношеского максимализма, мол я все могу я везде успею и всего достигну. Прогаю 15 лет, знаю тонну синтаксиса, писал на многом, но эффективно (если честно себе признаться) работаю только на одном, на который потратил больше времени.
Тебе и так придется жрать какой-нибудь js.
Помню 13 лет назад думал тоже самое про жабу, мол столько либ на все случае жизни и по-любому они будут качественнее, это же джава! Это не какой-то там пхп.
В реале оказалось так, что есть небольшой "остров" мейнстримных фреймворков/либ и как только делаешь шаг в сторону, ловишь тонну невиданных граблей и отсутствие хоть какой-то оптимизации.
Забавно, но субъективно, на момент 2010 года, качественных либ и инструментария оказалось больше на ненавистном всем пхп, а не на джаве.
Так что у меня сомнение когда говорят про количество и качество. Тут скорее правильно сказать что у Си и С++ большой капитал кода.
Вот это шиз
>2) Раст?
Если раст действительно так хорош, как о нем говорят, то никогда не должно быть поздно вкатиться в него.
Ну а если раст действительно так плох, как о нем говорят, то уже должно быть поздно вкатиться в него.
Так в том и хуй.
Если раст - это вагон, в который необходимо успеть, то будущее раста - это то, чем сейчас кресты являются - непознаваемый франкенштейн.
стейтмент a : i
будет значить на английском for each i element? Или как это правильнее сказать/прочитать на русском/английском?
>мол столько либ на все случае жизни и по-любому они будут качественнее
Тут у С++ вряд ли есть конкуренты, потому что, например, целые классы софта есть только под плюсы. Вся тяжелая математика - геометрические ядра САПР, CFD, моделирование процессов, робототехника, и.т.д. Плюс к этому куча вспомогательных либ для, например, визуализации вроде VTK или OSG. Это никуда не уйдет и через десятилетия.
>Для перебора массивов, которые входят в массив, применяются ссылки. То есть во внешнем цикле for(auto &subnumbers : numbers) &subnumbers представляет ссылку на подмассив в массиве. Во внутреннем цикле for(int number : subnumbers) из каждого подмассива в subnumbers получаем отдельные его элементы в переменную number и выводим ее значение на консоль.
Блядь, я нихуя не понял
int main()
{
const int rows = 3, columns = 2;
int numbers[rows][columns] { {1, 2}, {3, 4}, {5, 6} };
for(auto &subnumbers : numbers)
{
for(int number : subnumbers)
{
std::cout << number << "\t";
}
std::cout << std::endl;
}
}
>>712364
+ в карму за нормальный, развернутый ответ.
Для десктопных не очень нагруженных прог, шарп - очень хороший выбор. Потому что в языке есть интроспекция (рефлекшн), а она в десктопных прогах нужна почти везде (любая сериализация: сохранение-загрузка, копи-пейст, редакторы свойств). Для С++ каждый лепит сам: в Qt есть интроспекция, но тогда придется все типы данных заязываеть на Qt, что не всегда удобно, другие варианты - или велосипедная либа на макросах или свой препроцессор, как например в Unreal Engine. В расте интроспекции нет, но есть либы для нее (не знаю какого качества), правда там нет нормальных либ для окошек, так что он тут пролетает.
Как то начитавшись про прелести Раста решил написать на нем небольшой конвертер файлов и охерел с его многословности и загаженности синтаксиса. Хотя может это уже когнитивные искажения, кроме Плюсов я ничего не знаю луа и питон не счет
Потому что либо:
1 - не нужно в силу ряда причин, например по просто не требует жесткого контроля и хватает встроеннвх средств и тд.
2 - требования жесткие, но у всех солидных разрабов уже есть база которую не надо переизобреть, например свой маппул под конкрентую задачу.
const int rows = 3, columns = 2;
int numbers[rows][columns] { {1, 2}, {3, 4}, {5, 6} };
Это С++ тред. Тред С ниже.
std::array используй блять.
Тройные скобочки - слишком сложно.
Столько работы переписывать все это на Rust...
Все эти плюсовые обортки никаких плюслв не дают. Только буков больше писать.
На аплетах.
Охуительные истории, сам придумал? С++ даже по названию видно, включает в себя и Си и то чего нет в си (++), это всё вместе С++.
> С++ даже по названию видно, включает в себя и Си и то чего нет в си (++), это всё вместе С++.
Это менее эффективный С, так как постинкремент менее эффективен.
Охуительная история, сам придумал?
Несмотря на то, что С действительно подмножество языка, с 14го стандарта не каждая конструкция С возможна в С++
Auto с 11 стандарта.
Да можно представить более тривиальную ситуацию, что в сишке допустимо объявить переменную с именем, совпадающим с одним из плюсовых кейвордов типа class или try, а в плюсах, соответственно, нельзя. Хотя пример и надуманный, строго говоря плюсы никогда не были надмножеством сишки, только надмножеством некоторого подмножества.
Да и набор UB в сишке и плюсах разный.
А что вообще не нравится в векторе развития?
Я вот считаю, что концепты - край шаблонов. Дальше не нужно.
Текущий C++ развивать не нужно. Лучше выпустить C++2 без обратной совместимости со старыми версиями, с учётом многолетнего опыта разработки других языков программирования и опыта работы с C++. При этом нужна какая-никакая стандартизация и описание подходов, как у C#, например, мощная базовая библиотека, чтобы товарищи ради звёздочек в гитхабе не изобретали велосипед. То есть сделать то, что пытался сделать Rust, но из-за наплыва веб программистов с их культурой тысяч зависимтостей достичь не смог.
>Лучше выпустить C++2 без обратной совместимости со старыми версиями
Это Саттер делает с cppfront.
https://github.com/hsutter/cppfront/wiki
Дроч ради дроча как и гитхабозвезды. Пользовать этим всерьез никто не будет.новая капча с цифрами топ
За счет мув симентики?
>Не проще тогда в управляемые языки перебраться?
Там всего два варианта в виде джавы и шарпа, и у каждого вагон минусов (тормоза, портируемость, сложность работы с низким уровнем и т.д.). Да и зачем перебираться, если на плюсах можно писать в примерно таком же стиле без особых проблем?
Я не шарпо фанбой, но просто нередко слышу про оптимизации в дотнете, ну и вроде честную кроссплатформу и возможность unsafe кода или областей без ГЦ. Могу ошибаться, просто мне ни разу не требовались моменты где я бы упирался в ГЦ как проблему. конечно, я говорю про прикладные задачи, не системные
>Да и зачем перебираться, если на плюсах можно писать в примерно таком же стиле без особых проблем?
Не приводит ли система владения, к чрезмерному разрастанию той самой области владения, то есть по сути объекты живут больше чем надо ввиду того что трудно это проконтролировать?
Скорее всего есть проблема, что кто-то быстро адаптируется под под подбор капчи, поэтому все на что хватает сейчас сил, это менять её.
В эпоху машинного обучения капчи с текстом это вообще моветон.
Скоро уже даже не нужно будет сетку тренировать по датасету каждого отдельного типа капчи, будет одна гигасетка, которая что угодно распознает с ходу.
> В эпоху машинного обучения капчи с текстом это вообще моветон
Так какие альтернативы? Все эти капчи с "выбирите велосипед", "потяните ползунок" так же легко обходятся.
Стоит признать, что эра анонимных форумов подходит к концу и от обилия ботопостинга, который уже сейчас практически невозможно отличить от реальных юзеров, везде станет обязательным не то что привязка номера телефона, а еще паспорта и слепок ануса. Нейросети превратят интернет в кромешный пиздец.
Буду тестировать алгоритмы типа преобразования Фурье, поэтому тестирование Qt кода мне не нужно. ЧТо для этого имеется?
>Стоит признать, что эра анонимных форумов подходит к концу и от обилия ботопостинга
Лично мне не сильно понятен дроч на анонимность. Польза от неё только в том, что школьникам сподручнее скатывать треды в говно и бесполезный флейм. Восторгов оно не вызывало ни 10+ лет назад, когда я на этой помойке стал более-менее стабильно появляться (будучи студентом), ни сейчас.
На мой взгляд, определённая культура общения первична. На двачепараше допустимо обкладывать матом собеседника, дискутировать про говно и так далее. На "цивилизованных" площадках -- нет, они ж "цивилизованные". А наличие подписи у поста "Васянейм" или же "Аноним" дело вторичное.
> от обилия ботопостинга, который уже сейчас практически невозможно отличить от реальных юзеров
Зачем его тогда отличать.
Вроде можно писать не безопасный код в Расте и безопасный код в Си(С++). Нужно просто знать как для этого настроить компилятор и сборщик.
>А наличие подписи у поста "Васянейм" или же "Аноним" дело вторичное.
Ты нихуя не знаешь, как люди работают. Оставь это большим дядям, а сам дрочи свои буковки.
2023 ГОД ОТ РОЖДЕСТВА ХРИСТОВА - ЕБУЧИЙ ХЕДЕР ДАЖЕ В ХЕЛЛО ВОРЛД
С++ ОЧЕНЬ СОВРЕМЕННЫЙ И АКТИВНО РАЗВИВАЕТСЯ, ДА, ХУЕСОСЫ ИЗ КОМИТЕТА, ПИДАРАСЫ НА КОМПИЛЯТОРАХ И ВАСЯНЫ НА ЛИБАХ?
I feel ya, man.
Это была самая важная для меня фича с++20. А они... выкатывают новый стандарт, когда ещё не доимплементили двадцатый. Смузихлёбы ебаные.
Не новый модный, а долгожданный.
Теперь можно как белый человек модули оформлять. И хэдеры тащить за собой не нужно.
>Быстрый компайл тайм нинужон!
утеныш, ты попробуй отлаживать и компилировать гигантские проекты, поймешь сколько времени съедает билд
Попизди, фича все ещё экспериментал и не по умолчанию
std::stringstream ss;
// ...
std::string out = ss.str();
return out;
А вот так блять работает
std::stringstream ss;
// ...
return ss.str();
/
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby,
C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, COBOL, HTML, CSS, JS
Code, Compile, Run and Debug online from anywhere in world.
*****************************************************************************/
#include <iostream>
#include <sstream>
std::string boo(const std::string& input){
std::stringstream ss;
ss << 42 << '_' << input;
std::string result = ss.str();
return result;
}
int main()
{
std::cout << boo("goo") << std::endl;
return 0;
}
Это работает. Лень вставлять в пастьин.
/
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby,
C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, COBOL, HTML, CSS, JS
Code, Compile, Run and Debug online from anywhere in world.
*****************************************************************************/
#include <iostream>
#include <sstream>
std::string boo(const std::string& input){
std::stringstream ss;
ss << 42 << '_' << input;
std::string result = ss.str();
return result;
}
int main()
{
std::cout << boo("goo") << std::endl;
return 0;
}
Это работает. Лень вставлять в пастьин.
к msvc обычно надо в команду флагов напихать штук 20 чтобы оно по стандарту заработало
После долгого пердолинга смог забилдить (но не скомпилировать) проект с Catch2, используя find_package. Как я понимаю, суть find_package в том, чтобы не клонить нужную библиотеку в libs/, а пользоваться уже установленной. Но тогда какие файлы из библиотеки все-же должны быть в папке проекта, чтобы их включать в .cpp файлы? То есть какая примерно должна быть структура проекта с библиотекой, например Кэтчем, подключенной через find package?
В документации кетча куча разрозненных примеров и нихуя полезного, а в самой библиотеке миллион файлов, среди которых не понятно, чем нужно пользоваться
https://github.com/catchorg/Catch2/blob/devel/docs/cmake-integration.md
Тебе буквально весь гайд расписали
Ты не пончл ничего.
Симейк фп вообще ничего сам не делает и можно обойтись без него прилинковав нужные либы и заинклудив пути ручками через сс/схх флаги.
Опять же просто фп этого не сделает, он лишь проверяет наличие путей в системе.
Потом тебе всеравно надо делать таргет линк и , возможно, таргет инклюде, просто теперь вместо либа нейм можно испольховать симейковские алиасы, типа Threads::Threads, OpenGl и тд.
Веб-разработка на фреймворках типа Oatpp, POCO, Pistache. И скорее это историческое наследие, чем необходимость. Уже несколько раз обсуждали, что 90% существующих сервисов можно спокойно перенести на какой-нибудь питоновский FastAPI или Go (но этого делать никто не будет, потому что на нем никто не пишет). Есть по сути три-четыре проекта, чувствительных к производительности в плане многопоточности, которые занимаются обработкой видеосигнала в реальном времени (OpenCV, Redis), но на этом все. Помимо общего бардака в фирме гнетет ощущение, что я занимаюсь чем-то не тем, и проще уж пересесть на нормальный стек для веба и съебать куда-нибудь заодно.
Сосачик, не пойму какого хуя, решил реализовать Совиный Язык на ссях (да, yet another), всё реализовать и вроде-бы хорошо, НО:
1.Какого-то хуя пидорасит "Лого" в обычной соснольке (на пиках).
2.Пидорасит программу если код в main с 44 строки вложить в "бесконечный" while (проверяет специально отведённый bool для выхода на false-ность и если ТРУЪ - завершает выполнение, изменение делал в switch доп. пунктом) и выполнить 1 раз, на 2-й начинается пиздец.
Меня волнует конкретно второе т.к. лого ведь на работу не влияет, почему так может люто пидорасить? Спасибо.
https://0bin.net/paste/qLTdUPtN#-xvPIFCqJqfTsuPZ2xS+dwYQAp3U6OWHCw8djdbxmaI
дружише, друг, посмотреть сам любой рудольф может, а мне бы мнение экспертоного анонимуса.
Зависит от кучи факторов
А зачем тебе мнение интернет пиздабола, когда можно самому проверить?
Сишка быстрее
unsigned age
unigned - это сокращение для unsigned int?
А как правильнее:
std::string или include namespace std писать?
Где-то писали, что могут какие-то библиотеки юзаться, который будут конфликтовать или какая-то такая хуйня.(я не шарю) На сколько это реально ирл и как мне привыкать писать?
Просто через std:: код выглядит очень засранным(либо это в ходе привычки выдрачивается). Получаются очень длинные строки, а у меня боязнь таковых пока что, потому что в них сложная логика, а когда там ещё и std насрано...
хотя, наверное можно какой-нибудь нейтральный цвет настроить для std:: и прочей хуйни которую я буду юзать в будущем, чтоб не обращать внимания на это говно?..
Как правильнее молоток держать, 3 см от конца рукояти или 2?
Юзинг засоряет пространство имен. В ашниках не стоит использовать.
>хедеры
Это крупные файлы с кодом которые делают основные вещи? Почитал на сайте майкрософт и нихуя не понял, потому что слишком много новой инфы. Можешь, если не сложно, как-то кратко их описать, чтоб было понятно в той степени, которая нужна ньюфагу или ссылку на какую-то более доступную инфу кинуть?
Ты до разделения на файлы объявления и реализации ещё в своем обучении не дошел?
Не-а.
Но сейчас посмотрел на сайте, нашёл тут: https://metanit.com/cpp/tutorial/1.4.php
Оно в последней главе слева, а в ссылке 1.4, т.е. самая первая глава должна быть. Ща читать пойду. Спасибо.
Я правильно понял, что GNU для мульти-платформы, visual c++ для винда-продуктов? Clang тоже для мульти-платформы, но работает на маке при этом?
А вот, например, для x-box и винды юзают визуал с++, а в случаях с playstation что делают?
А если у студии какой-то свой движок, то они компиляторы вшивают в движок? Или как это работает? Как, например, инди-студия из 5 человек делают игру для мобилок, коробки, плейстейшена и линукса LOL NO одновременно? Если можно то тоже какой-нибудь поверхностный ответ, чтоб просто в курсе дела быть.
>>716904
Чё-т стало страшно, что я нифига не справлюсь, но не время отступать!
>>716904
Спс
Да это просто разные компиляторы, которые пилятся разными командами под разными задачами. Как бе MSVC должен быть больше ориентирован на Винду.
Сейчас не заморачивайся.
Clang лучший кросс платорфмерный компилятор для С++ .
GCC самый известный, его форков и портов просто дохуища. Не говоря уже о том что сишный компилятор сейчас на любую живую архитектуру есть.
MSVC хз зачем. Кросс платформерные приложухи в наше время должны быть.
ICC это копия clang но с оптимизациями незначительными
Пидора ответ.
В плюсах даже ; быстрее, потому что компилятор больше вычисляет.
Тренируюсь на структурах данных, в данный момент - односвязные списки. Пытаюсь сделать односвязный список содержащий в себе экземпляры классов. Проблема в том, что при попытке добавить один такой экземпляр, программа падает из-за null'а в одном из методов узла списка, который должен установить этот самый экземпляр. Дабы сильно не путать вас своим косноязычием, я выпишу сюда ключевые моменты (на всякий случай уточняю, файлы разбиты на .h и .cpp):
ClassList {
private:
static Node p_Head;
int size;
public:
void push_back(ObjectClass data);
};
ClassList::push_back(ObjectClass data) {
if (p_Head == nullptr) {
p_Head->SetData();
} else {
Node currentNode = this->p_Head;
while(currentNode->Next() != nullptr) {
currentNode = currentNode->Next();
}
currentNode->Next()->SetData(data);
}
size++;
}
===========================================
Node {
private:
ObjectClass data;
static Node next;
public:
Node(ObjectClass data = ObjectClass(), Node pointer = nullptr); // Конструктор
ObjectClass GetData();
Node Next();
void SetData(ObjectClass data);
void SetPointer(Node pointer);
};
ObjectClass Node::GetData() {
return this->data;
}
void Node::SetData(ObjectClass data) {
this->data = data; // ---> Вылет происходит здесь, нарушение доступа чтения. this был 0х8
}
===========================================
ObjectClass {
private:
std::string name;
float velocity;
float angle;
public:
...методы...
};
===========================================
int main() {
ObjectClass myFirstObject("First Object", 16, 90);
ClassList myList;
myList.push_back(myFirstObject);
myList.show();
return 0;
}
С примитивными типами всё понятно и просто было, решил повысить сложность и запихать в список классы, и вот запара случилась. Подскажите пожалуйста, где может быть ошибка, или быть может сам подход неправелен?
Тренируюсь на структурах данных, в данный момент - односвязные списки. Пытаюсь сделать односвязный список содержащий в себе экземпляры классов. Проблема в том, что при попытке добавить один такой экземпляр, программа падает из-за null'а в одном из методов узла списка, который должен установить этот самый экземпляр. Дабы сильно не путать вас своим косноязычием, я выпишу сюда ключевые моменты (на всякий случай уточняю, файлы разбиты на .h и .cpp):
ClassList {
private:
static Node p_Head;
int size;
public:
void push_back(ObjectClass data);
};
ClassList::push_back(ObjectClass data) {
if (p_Head == nullptr) {
p_Head->SetData();
} else {
Node currentNode = this->p_Head;
while(currentNode->Next() != nullptr) {
currentNode = currentNode->Next();
}
currentNode->Next()->SetData(data);
}
size++;
}
===========================================
Node {
private:
ObjectClass data;
static Node next;
public:
Node(ObjectClass data = ObjectClass(), Node pointer = nullptr); // Конструктор
ObjectClass GetData();
Node Next();
void SetData(ObjectClass data);
void SetPointer(Node pointer);
};
ObjectClass Node::GetData() {
return this->data;
}
void Node::SetData(ObjectClass data) {
this->data = data; // ---> Вылет происходит здесь, нарушение доступа чтения. this был 0х8
}
===========================================
ObjectClass {
private:
std::string name;
float velocity;
float angle;
public:
...методы...
};
===========================================
int main() {
ObjectClass myFirstObject("First Object", 16, 90);
ClassList myList;
myList.push_back(myFirstObject);
myList.show();
return 0;
}
С примитивными типами всё понятно и просто было, решил повысить сложность и запихать в список классы, и вот запара случилась. Подскажите пожалуйста, где может быть ошибка, или быть может сам подход неправелен?
Залей на пастебин.
А дальше иди читать про шаблоны, раз смог для тривиальных классов сделать, то и шаблоны понять сможешь.
>>718375
https://pastebin.com/YqucziAp
Вот, пожалуйста.
Я даже вроде что-то сам решил, продвинулся дальше, теперь туплю и напрягаюсь с тем в список не всё заходит.
Не получается через указатель провернуть нечто вроде такого: currentNode->PointNext()->SetData(data); -> Вылет...
Мой недочёт, недописал. Там конечно же стоит параметр data
Я немного поменял, там теперь на 13 строчке будет так:
p_Head = new ObjectClass(data);
Проблема теперь возникает при добавлении в конец списка.
Я либо крашусь в null, либо у меня вызывается деструктор и объект в списке не сохраняется, либо такая конструкция как
currentNode->Next() = new ClassNode(data) выдаёт ошибку, что выражение должно быть допустимым для изменения левосторонним значением.
Решил я свою проблему, но не до конца. Я не понимаю, почему при создании нового узла, у него по-умолчанию указатель сам на себя устанавливается. Хотя в конструкторе по умолчанию я прописал, что если второй параметр не указывается, то он должен уйти в nullptr. А в итоге я закольцовываюсь...
Т.е. (" - вместо звёздочки)
Class Node {
private:
static Node" next;
ObjectClass data;
public:
Node(ObjectClass data = ObjectClass(), Node" pointer = nullptr);
void SetPointer(Node" pointer);
}
Node::Node(ObjectClass data, Node" pointer) {
this->data = data;
this->next = pointer;
}
Node::SetPointer(Node" pointer) {
this->next = pointer;
}
Добавляется так:
MyList::push_back(ObjectClass data) {
Node" newNode = new Node(data);
Node" currentNode = this->p_Head;
while(currentNode->Next() != nullptr) {
currentNode = currentNode->Next();
}
currentNode->SetPointer(newNode);
}
Решил я свою проблему, но не до конца. Я не понимаю, почему при создании нового узла, у него по-умолчанию указатель сам на себя устанавливается. Хотя в конструкторе по умолчанию я прописал, что если второй параметр не указывается, то он должен уйти в nullptr. А в итоге я закольцовываюсь...
Т.е. (" - вместо звёздочки)
Class Node {
private:
static Node" next;
ObjectClass data;
public:
Node(ObjectClass data = ObjectClass(), Node" pointer = nullptr);
void SetPointer(Node" pointer);
}
Node::Node(ObjectClass data, Node" pointer) {
this->data = data;
this->next = pointer;
}
Node::SetPointer(Node" pointer) {
this->next = pointer;
}
Добавляется так:
MyList::push_back(ObjectClass data) {
Node" newNode = new Node(data);
Node" currentNode = this->p_Head;
while(currentNode->Next() != nullptr) {
currentNode = currentNode->Next();
}
currentNode->SetPointer(newNode);
}
Пориджи изобретают список?/
Скинь свои потуги на пастебин, завтра с утра посмотрю.
Дружище, почему у тебя Next статичная?
И зачем ты за него все написал?
Скачал я от JetBrains -> Clion, но эту херню уже не купить из РФ (или может какие не замороченные варианты приобрести лицензию?).
Единственным более менее нормальным вариантом под Linux я так понимаю остается VS Code?
Вывод я сделал исходя из популярности, хотя сам не особый поклонник VS..но куле делать.
На линуксе clangd есть, это LSP для плюсов
Он настраивается и под VSCode и под всякие вимы с емаксамы
https://clangd.llvm.org/installation
Силион как и весь джетбрецнс ломается скриптом за минуту.
типо где в левом окне инфа написана, справа прямо редактор кода
Друже я бы с радостью, только скажи появилась ли там возможность установить темный фон?
Последний раз когда я это пробовал сделать у меня ничего не получилось.
Всегда была. Последние лет пять, если быть точнее.
лол, конечно-же можешь мой юный мамкин хакер.
Мне нужно вот что. Я в своей программе читаю Ethernet-фреймы из сети и обрабатываю их, делаю вычисления и все такое. Фреймы идут с большой скоростью по 4000 штук в секунду, это 250 мкс между ними в среднем. Пока я сделал все на сигналах слотах в одном потоке, вроде все алгоритмы работают как задумывал, но время от времени происходят пропажи фреймов. Пока не знаю, из-за чего, то ли сетевая карта не справляется, то ли windows, в общем хочу попробовать перенести это чтение фреймов в отдельный поток QThread. Но я сколько раз бы ни пробовал эти QThread использовать раньше, ни за что не получалось.
Вот сейчас сделал тестовую программку, в ней берутся два рандомных числа и перемножаются, и потом все это в виде строки пишется в QPlainText. Через сигналы слоты все работает, а вот когда я переделал код и перенес расчеты в отдельный поток, то сразу перестало работать. Что я делаю не так?
Код сюда выложил https://anonfiles.com/ecUfT8u9z5/ThreadingTest_zip
https://pastebin.com/DDpTWwZk
1. Ссылка твоя не открывпется.
2. Освой птхреад илм стд хотя бы. Простой тред пул это 200 - 400 строк всего. рекомендую на это пункте основиться
3. Кути конечно круто, но вот в их слотах для мультипотока много нюансов, возможно ты не так кутреды пообуждаешь и функции инвокаются в мейн треде.
Ну насколько я вижу с экрана телефона ты ту стринг у битсета делаешь, попробуй отдельно стрингу сделать а потом в битсет её обернуть. Посмотри на конструкторы битсета https://en.cppreference.com/w/cpp/utility/bitset
if цифра
{
while цифра
{
считывать символы;
}
сохранить в стек;
}
else
{
взять операнды из стека;
выполнить операцию;
}
Выложи куда нить по человечески, с этой хуйни даже с ВПН скачать не получается, просто редирект на Али по КД...
Попробовал, когда прям в СТРИНГ записывал - была ошибка "invalid conversion from unsigned int to const char*".
Попробовал в unsigned int - та-же самая ошибка что и в начале.
То-ли я еблан и в упор не понимаю, то-ли хуйню творю.
У меня она падает на добавлении в виджет. Поставил вывод в дебаг - все работает. Ща поковыряюсь что можно в выводом в виджет сделать.
Поставил задержку между повторным вызвом Calculator::process в 1мс, тоже все ок. И убрал processEvents из LogHandler::logWriteLine
Да, с задержкой работает. Но суть в том, что мне надо будет вызывать метод чтения фрейма настолько быстро, насколько комп вообще может, то есть вообще без задержки.
Я их не храню.
Класс FrameReader читает фрейм и передает его через сигнал всем желающим. Чтение бесконечно зациклено, он читает непрерывно их из сети.
Другой класс получает фрейм и по оффсетам считывает необходимые поля в буффер.
Третий класс ждет пока буффер заполнится, и делает расчет и выводит его в гуй.
И фрейм ридер читает нон стоп?
Нет варианта складывать фреймы в паки и отдавать уже их?
мне кажется ты бесконечным циклом забиваешь тред каким то образом, что он на сигналы из вне перестает отвечать
Нельзя, это по сути как система реального времени. Хотя хз, смотря насколько быстро будет складывать. В 20 - 40 мс уложится?
Рт стстемы не так работают и не имеют ничего общего с забивание потока бесконечной работой по кд.
Да я-ж тот мудак, который тут недавно со своей говноимплементацией Совиного Языка святился, пытаюсь на Qt перевести с консоли винды, заодно пытаюсь под Symbian Belle собрать чисто ради прикола.
код из оригинального листинга плохой, но рабочий
Ну смари, если надо делать некую задачу в отдельном потоке в бесконечном цикле, то я бы использовал наследование от QThread с реализацией метода run(). Например, у меня так говноплеер на ffmpeg'е сделан, там я кадры при воспроизведении в этом методе читаю. Т.е. случай из твоего примера с кулькулятором.
А если надо, чтобы объект "жил" в отдельном потоке и в нём же обрабатывал сигналы-слоты, то надо как раз через этот самый moveToThread делать. Т.е. случай с сокетом. И по описанию не похоже, что проблема пропажи фреймов нуждается в отдельных потоках. Как ты их читаешь? Надо читать по сигналам-слотам, по идее, через readyRead (патаму шта пикрелейтед).
Суть рт в том что все важное происходит в строго отведенный интервал времени а не фигачит нонстопом.
У тебя же нет никаких гарантий что другие процесс потоки, зависящие от читателя отработают своевременно да и что отработают в принципе.
Как лучше конкретно тебе - без понятия, вникать в делали не собираюсь, но выше тебе кто то уже советовал буферизацию, так делают.
Короче - оно заработало, вывел функции работы с текстом в отдельные функции как это было в соснольке и добавил количество проходов по тексту, как опять-же это было в соснольке (только нокию число проходов больше трёх кладёт на пару секунд к хуям, но да похуй), в общем всем кто помог - спасибо. Фотки работы прикладываю.
Почему когда я ставлю пакет imgui я должен отдельно бэкенды для него ставить?
Нахуя тогда вобще этот конан тут нужен, два хэдера и соурс файл можно и без него скачать и в проект закинуть
Так бы и написали вместо пакета: ХУЛЕ ЕБАЛО КОРЧИШЬ, ДАВАЙ ВСЁ РУЧКАМИ
Причем я вижу у них прям в файлах пакета всё нужное лежит
ЯВАХУЕ
потому что там бэков столько же сколько вообще существует способов вывести изображение на экран, вплоть до GDI. все ставить?
[options]
imgui.backend = "sdl2_vulkan"
или
imgui.backend = "none" ---- вот это сделать дефолтным
Я указал конану какой компилятор он должен использовать в профиле
Конан прекрасно видит и знает какие компиляторы я использую и где они находятся во время установки
Я пытаюсь собрать собрать симейк, и вот мое удивление, он не знает какой компилятор использовать, так как конан по какой то причине этой инфы не передаёт
Открываю гитхаб и оказывается разрабы конана просто НЕ УМЕЮТ получать путь до компилятора
Вот настоящие проблемы программирования в 2023 году, путь до бинарника получить и в переменную среды засунуть
Я вот это читаю и вообще ничего не понимаю, а когда начинает казаться, что понял, сразу путаюсь и опять ничего не понимаю.
>>721248
> Указатели передаются в функцию по значению, то есть функция получает копию указателя. В то же время копия указателя будет в качестве значения иметь тот же адрес, что оригинальный указатель. Поэтому используя в качестве параметров указатели, мы можем получить доступ к значению аргумента и изменить его.
Автор просто забыл разъяснить вкатусе тонкую терминологическую разницу между параметром и аргументом, а так же прочий жаргон времен разработки компиляторов алгола.
До твоего поста не задумывался о разнице между этими понятиями
Да с параметрами и аргументами я разобрался.
Я именно что запутался в указателях и ссылках. Я даже вопросы сформулировать не могу, потому что ничего не понимаю. Постараюсь щас с чатгпт попиздеть.
Кстати, у кого-то есть ссылку на телегу с нормальным чат гпт бесплатным?
Блядь, макакаич опять капчей насрал, поменял её в худшую сторону. Цифры срослись...
Ссылка - псевдоним переменной. создаётся с помощью присваивания, прим 'int &n = x' и адрес у неё будет такой же, как и у 'x'. Если мы взаимодействуем с переменной/рефом, то меняется и то и другое. Так же они нужны для того, чтобы не копировать данные во время работы функций.
Указатель - это НОВАЯ переменная, в которой будет храниться адрес той переменной, к которой поинтер был присвоен. Для этого нам надо сослаться ссылкой на переменную, т.е. сделать 'int &n = x', и только после этого использовать оператор разыменования в новой переменной, т.е. int 'ptr = &n' или сокращённо 'int *z = &x', чтоб не писать сначала 'int &n = x'.
Всё правильно на этом этапе понял?
>>721295
Так я что то забыл из базовых вещей. Какие то тонкости тем более. А может и не забыл. Вот мне надо все это освежить. В лучшем случае я просто пробегусь по всему и пойму, что помню все. В худшем повторю что то. Мне прям по всему языку что то надо
А на русском можно, а то я нихуя не понял?
> или сокращённо 'int *z = &x
Но это не сокращение, а взято из с.
&x возращает адрес объекта х, потом этот адрес оказывается в ячейке z.
Тогда я бы взял наследование от QThread с переопределением метода run, в котором в бесконечном цикле читал и обрабатывал эти самые пакеты. Результат бы отправлялся "наверх" сигналом.
А там уже смотреть, будут ли проблемы.
Наследовать ран, это ты байтишь нюфага так?
Оператор &это взятие адреса.
Int anus = 4
Int diametr_anus = &anus. &анус - это не ссылка, это операция взятия адреса у ануса. Таким образом анус лежит по какому-то адресу например (0xffaa). А внутри переменной указателя диаметр анус записан тот же адрес (0хffaa) .
Можешь сделать ссылку.
Int anus = 4;
Int& link_anus = anus;
Int diameter_anus = &link_anus. - опять же оператор взятия адреса, взятие адреса от ссылки вернёт адрес объекта на который ссылка ссылается.
Надеюсь я тебя не запутал.
Int ''diameter_anus
Это в неделю что ли?
гуру плюсов, почему мне выдает ошибку что вектор вышел за свои пределы?
я все перепроверял и по идее все должно работать нормально...
помогите, пожалуйста
Руками
Сел значицца, нашёл эту либу https://github.com/brofield/simpleini
А суть в чём - суть в том, что какого-то хуя выводит лишь последний прочитанный параметр, я хуй знает почему так, и поэтому снова пришёл сюда за очередным утыканием носа в ошибку, либо я уже сплю, либо тупой, в любом случае - с меня нихуя.
https://pastebin.com/99VemAe1
Когда хоть у одного убийцы появится хотя бы четверть своих либ вместо убогих биндингов к сишке и плюсам, ещё можно будет подумать.
Только растом
аааа. понял. спасибо.
>Int diameter_anus = &link_anus.
в таком случае диаметр ануса будет присвоен адрес?
В таком случае будет ошибка времени компиляции, используйте ебучую звёздочку из оп поста.
Написал программу в header-only стиле, сразу в заголовках писал реализации методов классов, и всё прекрасно работало.
Попробовал разделить на заголовки и исходники, и получил кучу проблем и никакой пользы.
Вместо сотни файлов --- две сотни, вместо 40 секунд сборки --- 2--3 минуты, вместо одного предупреждения --- полсотни, ещё и надо настройки проекта в IDE править, чтобы заголовки находились.
Так в чём же смысл?
Смысл плодить проприетарщиеу. Ну не хочу я показывать реализацию, пусть с DLL-кой ебутся.
Время сборки наоборот растет от такого
В том, что когда ты поменяешь 1 строку в самом вложенном хедере тебе придется весь проект пересобирать
Не знаю, у меня Эклипс редко так делает, в основном пересобирает проект целиком.
Редко пересобирает только изменённые объектники, зачастую пересобирает вообще всё.
Ты вообще понимаешь что сишный хедер не собирается в принципе, он встраивается туда где его заинклудили.
Соответсвенно время сборки проекта целиком возростет.
Нормальная реализация этих проблем лишена. Опять же не тянунтся зависимости самого хедера.
Короче сиысл в хедер онли только если там все в шаблонах.
Нормальная реализация - это модули, которые до сих пор почти нигде не.
Фиксирую долбаёба, которому НЕ ПОХУЙ кто и как дрочит.
Пробовал с gtest и с sfml, везде такая хуйня. Всё делал в точности по гайду индуса с ютуба (https://youtu.be/j13iYc6zRuk). Как фиксить?
Ты бы за день уже реально успел руками парсер написать
Причем тут студия если он ей не показал где ДЛЛ искать. Или показал, но неправильно.
540x960, 0:07
У меня почти получилось, в итоге вышло три отдельных потока:
1) Поток для чтения фреймов, назовем его reader.
2) Поток для обработки фреймов, назовем его handler.
3) Главный GUI поток.
Взаимодействуют друг с другом через сигналы слоты с Qt::QueuedConnection.
После этого производительность резко увеличилась, почти перестал терять пакеты. Но только почти.
Сейчас такая проблема, что когда я запускаю и ничего не трогаю, то всё работает, фреймы читаются непрерывно, обрабатываться успевают и обработанные данные выводиться в QTableWidget тоже успевают. Но если я шевелю мышкой по окну программы, то сразу начинаются потери фреймов в reader-е, почему то он прерываться начинает. Хотя с чего вдруг mouseHoverEvent главного GUI-потока вообще должен влиять на другой отдельный поток и прерывать его??? Я то ожидал, что они вообще полностью независимы от уровня нагрузки друг друга.
Еще есть та же проблема, но если добавить, скажем так, расширенную обработку данных с доп. расчетами и выводом их в таблицу GUI, то тоже начинаются потери фреймов в reader-e.
Вообще хз, че делать...
И еще заметил сегодня, что если соединять GUI с handler-ом не через QueuedConnection, а через BlockingQueuedConnection, то ситуация улучшается, хотя и не полностью ,все равно потери есть. Но это такое, шаманство с бубеном.
Не ищи логики в мире Си и сановских сблевов.
Хуй пойми какое слово в спамлисте, поэтому придется грузить картинкой.
Сейчас пригляделся и кажется нашел косяк.
Я тут пишу
> Direct connection, потому что они в одном потоке сидят.
А сам сейчас посмотрел, где PhsMeasReader создаются, а там то нихера не так.
Там так:
...
PhsMeasReader *phsMeasReader = new PhsMeasReader(sv, m_frameReaderWorker);
m_phsMeasReaders->append(phsMeasReader);
...
phasorGroupWorker = new PhasorGroupWorker(m_phsMeasReaders, m_derivedHandler);
phasorGroupWorker->moveToThread(phasorGroupThread);
Если я phasorGroupWorker инициализирую вектором m_phsMeasReaders и перенесу его в поток, то phsMeasReader-ы в m_phsMeasReaders перенесутся автоматом в этот поток или их надо ручками переносить?
Если да, то они (phsMeasReader-ы) просто не в одном потоке с FrameReader, но тогда как работает Qt::DirectСonnection между ними???
Если нет, то тогда phsMeasReader-ы, получается, остаются в потоке GUI. Но тогда тоже непонятно, как работает Qt::DirectСonnection? Обычно если между разными потоками я делал Qt::DirectСonnection, то программа тупо крашилась во время сборки.
По той же причине, по которой в стандартную библиотеку C++ не включают все существующие сторонние библиотеки, в ядро ОС не встраивают все существующие на свете драйверы, а в IDE не предустанавливают все существующие плагины. Контекст тебе нужен по-любому, а экстеншены все сторонние и опциональны.
Дайрект коннекшн = прямой вызов функции, если они внутри одного потока. Если в разных, то вызываемая функция сработает в вызывающем потоке, насколько помню.
Перенесутся автоматом, если phaspor их parent.
> Линуксоиды, на примере ЛОРа, очень строго относятся к новичкам, хуесося каждый вопрос.
Попустись, на лоре это было лет 15 назад. Там щас такие долбоёбы отжигают, цирк с конями просто. А им максимум клоуна поставят, а 10 человек ответят теме и ещё кинутся кусок кода написать.
Реально "те" хардкорные опущенцы переехали на опеннет и какие-то опущ-форки лора.
Просто елозишь мышкой или окно передумгаешь? На Винде qt шный гуй подвисает если окно захватывать и таскать.
Просто елозишь мышкой или окно перетаскиваешь? На Винде qt шный гуй подвисает если окно захватывать и таскать.
Вот есть у тебя два объекта: А и Б.
У Б парент А.
Если ты мувнешь А, то Б тоже перенесутся. Попробуй своим воркерам ставить парента фазораВоркера того.
Если память мне не изменяет.
Не особо понято сравнение со всеми драйверами и всеми библиотеками. Если glwf, например, создана для работы с opengl, почему не сделать ее самодостаточной, дополнительные 10 мегабайт, это слишком много?
Тип соединения в явном виде как правило указывать не обязательно, оно само чекает, что там по потокам и разруливает. Рекомендую попробовать убрать это указание.
>QueuedConnection, а через BlockingQueuedConnection
Весьма странная хуйня, по логике второй вариант менее производительный, поскольку блокирует вызывающий поток до выполнения вызова.
Ну и да, если ты переносишь методом moveToThread некий объект в другой поток и при этом внутре этого объекта тоже идёт обмен сигналами-слотами с его членами, то членов тоже надо переносить. Как вариант да, через parent'а.
Если члены создаются через new после переноса объекта в другой поток, то тут заморачиваться не надо, они создатутся с правильным thread affinity.
ой, тьфу, беру слова обратно, это же не жс
Какая тут глубина рекурсии максимальная может быть на обычных компах?
Когда они уже светофор заменят на радугу...
Glfw НЕ для гл, это абстркция окна, для вк так же подходит.
На работе
Их планшетные API и различные супер наноеба технологии которые уже давно забыти ничем не научили.
Теперь пидорасы хотят выпилить традиционный console api. И впилить какой-то наноеба терминал который конечноо же будет в 100 раз лучше совместим на любой платформе, ос и все только выиграют!
Иронично что все их супер наноеба введения в 8ке не зашли, в первых версиях десятки были частично выпилены, а последние редакции уже практически без все этой поеботы. Ну на десятку конечно уже хуй положили щас же очередный новые нано гипер технологии вечные, от чайника до суперкмпоьютера бля буду.
Оставьте:
windows nt ядро
win api32 подсистему
console host api
Не трогайте, api, не стройте ублюдских фремворков, заебали нахуй.
Хорошо, что эти гандурасы не додумались до изменения driver model и не додумаются я надеюсь)
Ну вообще там разницы особо нет, потому что даже функция ввода вывода разные в С и С++
в Си это printf();
в C++ уже cout << "ты хуй"
Но я бы все таки с си начал, денис ритчи автор языка книгу норм написал с упражнениями, там базу баз поймешь. А потом можено на страуструпа катиться.
Я вкатывался так:
Денис Ритчи язык программирования Си
Бьерн Страуструп ООП на примере C++ он там про шаблоны классы расписал годно, на 1000+ страниц книга, я ее до 900 страницы кое как добил и хуй забил.
А че никто не перекатывает? Вам нормально тут вообще?
Понимаю...
Залетных меньше
Когда тебе зарплату поднимут.
Прочитать 900 страниц справочника*
Ну не скажи, он там впринципе по основным функциям С++ бежит и потом пишет калькулятор ну такой нормальный который там аргументы читает чтобы определить какое арифмитеческое действие первым выполнять, подобный механизм есть в компляторах когда они код проверяют на синтаксические ошибки.
Но я читал, а задания не делал в конце глав. Потому что у меня в приоритете винда и драйвера под нее, а не цпп и основы его опп. Для разработчиков компляторов может быть самое то.
Алсо, если не ошибаюсь то это он вначале книги написал что она рассчитана для студентов на летних каникулах чисто на пару месяцев позаниматься.
Почитай ее, там по 5-10 страниц в день хотя бы, курочка по зернышку клюет. Хорошая книга и базу С++ получишь и хоть представление об ООП, он там все показывает.
Объясните синтаксис 285-290
Variadic templates понятно, а что дальше за стрелка, как это называется?
Это deduction guid для шаблонов классов https://en.cppreference.com/w/cpp/language/class_template_argument_deduction
А, это типо вообще не конструктор, а типо указание как проводить инициализацию аггрегирующего типа
Есть вот такая структура директорий:
../libs
../libs/foo/
../libs/foo/CMakeLIsts.txt
../libs/bar/
../libs/bar/CMakeLIsts.txt
../libs/baz/
../libs/baz/CMakeLIsts.txt
../apps/qux
../apps/qux/CMakeLists.txt
foo и bar - header-only библиотечки. baz - не header-only библиотечка и использует foo и bar. qux - приложение, использующее foo, bar, baz.
Что нужно прописать в соотв. файлах CMakeLists.txt, чтобы всё это нормально компилялось?
> что нужно прописать
Нужно прописать для каждой библиотеки и приложения свои таргеты
И подключать нужные таргеты там где они тебе нужны
Ну в зависимостях указывать.
add_library(name PUBLIC dep1 dep2 dep3...)
С мейкфайлов начинай, если непонятно как симейк работает
В хедер онли интерфейс либы, в баз обычная либа просящая интерфейс либы, в приложении все либы как зависимости
target_link_libraries(твой_таргет PRIVATE/PUBLIC/INTERFACE то что цепляешь к таргету)
>>734991
Так, например, в файле
../apps/qux/CMakeLists.txt
CMake не будет знать про таргеты, определённые в других CMakeLists.txt из ../libs, поэтому target_link_libraries работать не будет.
Вот если таргеты определены внутри одного файла CMakeLists.txt, тогда да, их можно подключать с помощью target_link_libraries.
Как в файлах
../libs/baz/CMakeLIsts.txt
../apps/qux/CMakeLists.txt
сообщить CMake-у про существование таргетов в других CMakeLists.txt?
У меня аналогично
cmake_minimum_required(VERSION 3.5)
project(Messenger LANGUAGES CXX)
add_executable(ClientAPI client/Client.cc)
add_executable(ServerAPI server/Server.cc)
target_compile_options(ServerAPI PUBLIC -lboost_thread)
Он флаг -lboost_thread ставит сразу после g++, если ручками компилить и указывать флаг в конце, тогда всё ок
А ну тогда используй это - https://cmake.org/cmake/help/v3.27/command/target_link_options.html
без шуток начинай чатгпт пользоваться, оно такие проблемы тебе за 2 секунды решит
Не верно. Для линковки лучше писать таргет линк лайбрарис.
Через схх флаги норм только самые деыолтные типа рт м атомик птхреад омп.
Как как, ждали ответа в с++ треде по несколько часов очевидно
Я пытался, не работает
> литерал {1} распознается не как одноэлементный вектор
Это не литерал. И оно не должно распознаваться как одноэлементный вектор, потому что это не одноэлементный вектор
>Это не литерал
А что тогда?
> И оно не должно распознаваться как одноэлементный вектор, потому что это не одноэлементный вектор
При передаче в моей метод литерала {1, 2, 3} все работает исправно. Компилятор не хочет ассоциировать {val} как контейнер
480x352, 0:09
>Could NOT find PNG (missing: PNG_LIBRARY) (found suitable version "1.6.39", minimum required is "1.6")
Это cppinsights.
решилось pkg install libpng-static
Ну ты явно тип указываешься, а я хочу передавать в метод тупо {значения}, так вот когда значений больше одного то все работает норм, но когда оно одно то компилятор начинает искать метод который вместо вектора принимает одно значение, а у меня такой метод уже есть и он перегружен для других целей
Я догнал, просто сигнатуру метода поменяю, чтоб он вместо вектора принимал initializer_list
Я догнал, просто сигнатуру метода поменяю, чтоб он вместо вектора принимал initializer_list
В интернете полно информации.
По задачам.
stringstream
В студии сейчас 23 стандарт не подключить?
Ахахах
В плюсах выходит новый стандарт и только через несколько лет появляются компиляторы под него
Я понимаю, что можно указатели пихнуть, но иначе никак?
Сперва были символы не те, я скачал те под хост*делал локальную отладку), потом оказалось что на виртуалке версия винды немножко более ранняя и пришлось опять ебучий .symfix делать благо что хоть в этот раз он мозг не ебал.
О СЕЙЧАС СУКА МНЕ НУЖЕН ДОСТУП К ПРОЦЕССАМ НА ВИРТУАЛКЕ, А НЕ НА ХОСТЕ КАК ЭТО СУКА СДЕЛАТЬ ПОЧЕМУ ЭТА БЛЯДСКАЯ ХУЙНЯ ВЫДАЕТ МНЕ СПИСОК ПРОЦЕССОВ ХОСТА ПОМОГИТЕ КТО-НИБУДЬ ПРОШУ НАХУЙ
спросите кто в антивирусных компаниях работает ПОЧЕМУ ТАК НАХУЙ СУКА. Пиздец заебался.
Из за какой-то ебаной залупы просто сжирается время нахуй, уже несколько дней впидорасил на эту залупу.
Вот 1 пик это я ввожу порт и ключ на вирталку.
Вот пик 2 . Я запустил виртуалку, подключился и сделал брейк.
Вот 3 пик, ЭТА ЕБАНАЯ ЗАЛУПА ВЫДАЕТ МНЕ СПИСОК ПРОЦЕССОВ С ХОСТА, ЭТО ПРОЦЕССЫ ХОСТА НУ СУКА НУ КАК МНЕ ПОЛУЧИТЬ СПИСОК ПРОЦЕССОВ НА ВИРТУАЛКЕ НЕ ХОСТА? НУ ЧТО ДЕЛАТЬ? НЕ НЕ ГУГЛИТСЯ НИХУЯ, ВСЕ КОМАНДЫ В ДОКУМЕНТАЦИИ НАПИСАНЫ ТИПА ВСЕ ЗАЕБУМБА ДОЛЖНО БЫТЬ ИЛИ В ЛУЧШЕМ СЛУЧАЕ ДАЮТ ЕБАНЫЕ ГАЙДЫ КАК НАСТРОИТЬ И ЗАПУСТИТЬ СЕАНС ОТЛАДКИ ПОМОГИТЕ СУУУУУУУУУУУУУУУУУУУУУУУУУКА
Блин, да. Не в том месте ошибка была
Код
Почему не работает?
И как сделать так чтобы работало? вместо перегрузки пилить шаблонную функцию и её специализации?
https://pastebin.com/7Bd3eqHT
Вот код, здесь генерируются точки, и затем соединяются линиями, всё работает, но из под мыши при масштабировании уплывает. Что надо исправить в методе wheelEvent?
Хуево, получается расширяемость есть только для шаблонов https://godbolt.org/z/98bjMen63
Но не понятно почему всё же не работает первое решение, ведь в момент инстанцирования g определены (и объявлены) все f, что заставляет компилятор не расматривать объявления после неё?
Ну да похуй в общем-то
Код смотреть лень, но это решается правильным перерасчет матрицы проекции. Примеры посмотри на гитхабе полно.
Вот ВЕСЬ текст программы:
> #include <jack/jack.h>
> int main() {
> int siz = jack_client_name_size();
> return 0;
> };
Далее делаю g++ мой_файл.цпп, и он мне говорит:
> неопределённая ссылка на jack_client_name_size
И gcc тоже говорит, что ссылка неопределённая.
Конечно, нужная либа установлена и компилятором правильно определяется (иначе ошибка была бы другая). Проект тестовый, так что в нём один-единственный файл, и выше приведён полный его текст. Имя jack_client_name_size точно правильно, написано методом копипаста из документации к либе. Никаких иде не использую, для чистоты эксперимента.
Куда копать? Откуда берётся это "неопределённая ссылка"?
Инклуд ыацл дает только имена из либы, но не их реализацию. Для этого другую либу нужно прилинковать к твоему экзешнику/либе.
Кажется, понял. И обычно это делается через мейкфайл; а его обычно создаёт иде.
Запустил кодеблокс, создал пустой консольный проект, туда скопировал код, вручную указал либу через настройки - собралось.
Пасиба, пацаны. Сам бы не догадался.
Аналога объекта из жабы нет
>полноценное ООП
Вот это словосочетание - это говно ебаное.
Ты хотя бы раз на smalltalk прогал? Попробуй. Всё есть объект, по-настоящему.
Это не очень хорошо перелагается на байтоёбство, которое нужно было в плюсах сохронить.
>вручную указал либу через настройки - собралось
-L и -I в gcc тебе зачем?
> Никаких иде не использую, для чистоты эксперимента.
Ты слабак.
Чё ита никакой? Он сделает precompiled header, который там какие-то вкусные плюшки даёт, если его включать везде. Кажется, время компиляции уменьшает?
Но по отношению к его проблеме, да, разницы никакой.
Ты совсем там обдвачевался? Просто пожача хедера гцц не сделает его прекомпилед.
Алсо прекомпилед хедер из внешней либы это 1000айкью - оно тебе нахуй весь код перетянет, так никто не делает. Это как в винде все проги с собой в директории все свои либы хранят лол.
Буквально все так делают
Заставлять юзера руками нужные тебе пакеты ставить, да и ещё не дай бог с версиями обосраться, моё почтение
если ты конечно что то не специально под пакетный менеджер пишешь, тогда да, все очень легко просто пишешь 10 версий софта под каждый пм
Или какую среду разработки вы посоветуете для него ?
P.S. - visual studio ide на линуксе не работает.
Ещё
Я использую Windows, так что выбор у меня невелик.
Для поддержки джека, пишут, надо компилить примерно так:
>g++ -Wall -D__UNIX_JACK__ -o midiprobe midiprobe.cpp RtMidi.cpp -ljack
Окей, с голым компилятором более-менее понятно. А в кодеблоксе куда это запихивать?
project > build options и не проебись для какого таргета настраиваешь, лучше для всех
> А оно тебе нужно, ну это, полноценное ООП?
Ну как бы лично мне похуй, я плюсы изучаю потому что но нужные мне фреймверки, библиотеки и движки(JUCE, VST_SDK, UE5) в которых я хочу развиваться написаны на плюсах, а там поебать какие в них парадигмы, на сколько плохой и сложный C++, у меня вариантов и альтернатив других нету, нужно жрать что дают. Просто думаю, как бы вообще в теории и практики ООП надо знать хорошо, потому что планирую когда нибудь в дальнейшем и в работу вкатываться на дядю, а насколько знаю как минимум на собесах по этому ООП ебут хорошо, вот собсно и задался вопросом, что не так в плюсах с ООП, чисто для себя по крайней мере, чтобы знать.
Он короч единственный этот чел в русском сегменте, да? Просто смотрю только его советуют когда просят совет че посмотеть не для совсем начинающих
Чем лучше?
Вот у меня есть задача, типа достаточно сложный сугубо математический алгоритм. Он паралелится. В такого рода задачах гцц ощутимо опережает кланг.
Если не скомпилено в дебаге - будешь видеть лишь ошметки кода практически без имен, надо быть достаточно подкованным чтобы из этого собрать то что было написано.
Ghidra может разбирать, но ты не увидишь то же самое что видишь при разборе своего дебажного кода или не запеченные джавы/шарпы.
Пишет: No Settings Found.
Стоп, а контейнеры типа вектор/лист/массив это не просто микс из указатель на первый элемент, размер, капасити и прочее, а сами элементы на куче?
наркоман что ли сука?
Как это нигде?
В C#, например, есть типы которые размещаются на стеке, а есть типы которые размещаются в куче.
Очевидно, в расте и паскале — тоже.
Не знаю насчёт Го, но скорее всего и там есть разделение.
да он тебя траллирует, ща еще скажет что stack overflow это просто название сайта
Нормальный язык джавой не назовут.
Ну, в строках, например, часто есть оптимизация, позволяющая хранить короткие строки внутри самого объекта, в том же куске памяти, где у длинных строк записаны указатель на кучу, длина и капасити.
В основном да. Поэтому сразу определять размер какого-нибудь вектора, а не менять его в процессе дает прирост.
RTTI
Ее нет, в 23 не завезут, может в 26 что то будет
а если ты про что то жутко рантаймовое, то и в 26 не жди
Странный вопрос
Перки в каком плане? В нахождение работы? Скорее всего да, хоть какой то опыт как никак плюс
Никак не обстоят, валяемся в постели и смотрим сериалы в перерывах между мыслями о проёбанной жизни и отсутствии перспектив. А почему ты спрашиваешь?
>Почему vscode не генерирует tasks.json
а с чего он должен это делать?
>зачем мне его нужно генерировать самостоятельно
откуда мне знать зачем ТЕБЕ это нужно?
Да так, хотел убедиться, что я не один такой.
Варианты:
1) string() вокруг каждого литерала
2) using namespace std::string_literals; и после каждого литерала добавляешь s. Типа такого: ". position: "s
3) создаешь буфер фиксированного размера, используешь sprintf для форматного вывода в строку
4) std::format("section name blabla {} position blabla {}", token, idx)
Буфером этот шиз назвал массив.
Аргументы будут?
В том что он ебнутый.
https://www.mingw-w64.org/
или этот?
https://osdn.net/projects/mingw/
Цель, компилить всякие кросплатформенные пакеты исходников, библиотеки, чтоб меньше гемороя было
Я в принципе все сделал, работает, но заметил, что когда данные быстро обновляются, то GUI не успевает и начинает лагать. При этом сами данные теперь читаются идеально, если выводить через qDebug(), то все збс, никаких ошибок или лагов. А вот GUI не могёт, захлебывается.
Я попробовал сделать QTimer и давать команду на считывание данных из другого потока раз в 50 мс или в 100 мс, это помогло, данные хотя бы стали выводиться при быстром обновлении. Но GUI все равно лагает, например, когда я его двигаю. Причем похоже лагает как раз раз в 50 мс или в 100 мс, смотря как задам. Если поставлю обновление раз в 1 секунду, то наверно будет лагать раз в секунду.
Как починить это? Чтоб GUI был идеально отзывчивый и чтоб я мог окно двигать даже при большой частоте обновления данных?
Я делал так. Закидывал свой объект в отдельный поток, из этого объекта забирал указатель на структуру, которая заполнялась в этом отдельном потоке. В основном потоке гуя, обновлял по таймеру значения виджетов, значения брал из сохранного указателя. Винда не будет работать с таймером больше 333гц(3мс) да и зачем обновлять значения виджетов с такой частотой? Чтобы гуй смертельно не зависал при перетаскивании окна в каждый тик таймера qapplication::processevent(). Избежать микрозависания в qt5 на венде не получится. (В qt6 может и починили, на линухе и так не виснет).
> Чтобы гуй смертельно не зависал при перетаскивании окна в каждый тик таймера qapplication::processevent()
А на другие потоки процессивент же не повлияет?
> Винда не будет работать с таймером больше 333гц(3мс) да и зачем обновлять значения виджетов с такой частотой?
Ну да, но я в принципе с этим согласился в душе и поэтому таймер добавил для вывода. Да и вывод не особо важен, главное, чтоб под капотом можно было эти значения юзать мгновенно в других потоках негуишных. Но че то с таймером тоже косячно.
Я ещё молодой, мне рано.
Разберись с системой событий, чтоб такие вопросы не задавать.
Ты гуй принудительно обновляешь?
Создаю в рокодблоксе тестовый проект по визарду WxWidgets. Запускаю. Работает.
Пишу WXовый хелловорлд в geany. Собираю. Не работает. Ругается на инклюд, что не может найти файл <wx/wx.h>. Но кодблокс почему-то нормально видит этот файл. Фактически он лежит у меня в /usr/include/wx-3.0/wx - то есть, очевидно, в кодблоксе этот путь где-то прописан, но где? И самое главное - где и что в геани прописывать, в таком случае?
Vcpkg
Плюсовики не умеют в пакетные менеджеры
Ну вот не могут и точка, нет смысла мусолить и просто нужно принять сей факт
Не шаришь - не лезь.
Так что странно ожидать что такие люди смогут что то кроме conan и vcpkg сделать
Задонать - создам
Для винды VS + Resharper
Какой же С++ все таки уебищный язык. Причем уебищный не просто в плане какого-то синтаксиса, а by design. Самое плохое при этом то, что с этой уебищностью никто не пытается бороться, а даже наоборот, защищают и преумножают ее.
Грамматика уже настолько наглухо ебнутая что его можно распарсить только на эвристиках.
Язык дает столько свободы что при 13% его наличия в кодобазе андроида он ответственен почти за все CVE, особенно самые критичные типо удаленного исполнения кода это вообще пиздец.
Использование библиотек в 2023 году всё еще остается на уровне ИНКЛЮДОВ блять. Вдумайтесь нахуй ИНКЛЮДОВ, той самой копипасты целого файла прямо как в ассемблере нахуй. Про установку библиотек и говорить не стоит, наделали блять 10 пакетников, а либы перевести не спешат. Используешь конан? А ну ебать догадайся сам как либу подключать, ведь use it на сайте не работает уже нахуй пол года. Хочешь добавить свой личный, протестированный, прошедший автотесты рецепт? Жди нахуй 6 месяцев пока у мейнтейнеров дойдут руки нажать кнопочку АППРУВ. А или ты фанат ВиСиПекедж? Ну тогда фиксируйся на последнюю версию или иди нахуй. А сайт с либой упал? Ну тогда хуй знает иди траву потрогай подожди пока у мейнтейнеров найдется время заменить ссылку на актуальную репу.
Само использование тот еще пиздец, никакого общего стайлгайда, все пишут как попало, если в проекте больше 5 библиотек то кодстайл можно распознать разве что на нюх. В одной либе есть эксепшены, в другой эррор коды, в третьей блять калька с растового Result. Там свои смарт поинтеры, там своя либа для многопотока знаете как использовать либы у каждой из которой свой тредпул? НИКАК. Я недавно даже наткнулся на либу в которой вот совсем недавно написали свою СТРОКУ. Причем вот этот плюсовой NIIH синдром это не исключение, я сменил уже 3 работы и везде блять свои костыли. На одной разве что буст был, но это не останавливало разработчиков хуярить свои парсеры и бесполезные абстракции.
В языке в 2023 году все еще невозможно не то что гет реквест сделать, невозможно блять даже СОКЕТ открыть. Нет нормальной многопоточки, нет нормального io, нет нормальных контейнеров, нет нормальных регулярок, нет юникода (!), нет НИ-ХУ-Я. Я бы сказал что если из стандартной библиотеки выкинуть все кроме вектора, мапы и компиляторо-зависимых трейтов то станет только лучше.
Язык-шутка, язык-костыль, язык-ассемблер, язык-сделай-всё-сам, язык-свобода, язык-инклюд, язык-не-хуже-раста, язык-геймдев, язык-зп-ниже-фронтендера
нужно было выговориться после недели работы после отпуска
Какой же С++ все таки уебищный язык. Причем уебищный не просто в плане какого-то синтаксиса, а by design. Самое плохое при этом то, что с этой уебищностью никто не пытается бороться, а даже наоборот, защищают и преумножают ее.
Грамматика уже настолько наглухо ебнутая что его можно распарсить только на эвристиках.
Язык дает столько свободы что при 13% его наличия в кодобазе андроида он ответственен почти за все CVE, особенно самые критичные типо удаленного исполнения кода это вообще пиздец.
Использование библиотек в 2023 году всё еще остается на уровне ИНКЛЮДОВ блять. Вдумайтесь нахуй ИНКЛЮДОВ, той самой копипасты целого файла прямо как в ассемблере нахуй. Про установку библиотек и говорить не стоит, наделали блять 10 пакетников, а либы перевести не спешат. Используешь конан? А ну ебать догадайся сам как либу подключать, ведь use it на сайте не работает уже нахуй пол года. Хочешь добавить свой личный, протестированный, прошедший автотесты рецепт? Жди нахуй 6 месяцев пока у мейнтейнеров дойдут руки нажать кнопочку АППРУВ. А или ты фанат ВиСиПекедж? Ну тогда фиксируйся на последнюю версию или иди нахуй. А сайт с либой упал? Ну тогда хуй знает иди траву потрогай подожди пока у мейнтейнеров найдется время заменить ссылку на актуальную репу.
Само использование тот еще пиздец, никакого общего стайлгайда, все пишут как попало, если в проекте больше 5 библиотек то кодстайл можно распознать разве что на нюх. В одной либе есть эксепшены, в другой эррор коды, в третьей блять калька с растового Result. Там свои смарт поинтеры, там своя либа для многопотока знаете как использовать либы у каждой из которой свой тредпул? НИКАК. Я недавно даже наткнулся на либу в которой вот совсем недавно написали свою СТРОКУ. Причем вот этот плюсовой NIIH синдром это не исключение, я сменил уже 3 работы и везде блять свои костыли. На одной разве что буст был, но это не останавливало разработчиков хуярить свои парсеры и бесполезные абстракции.
В языке в 2023 году все еще невозможно не то что гет реквест сделать, невозможно блять даже СОКЕТ открыть. Нет нормальной многопоточки, нет нормального io, нет нормальных контейнеров, нет нормальных регулярок, нет юникода (!), нет НИ-ХУ-Я. Я бы сказал что если из стандартной библиотеки выкинуть все кроме вектора, мапы и компиляторо-зависимых трейтов то станет только лучше.
Язык-шутка, язык-костыль, язык-ассемблер, язык-сделай-всё-сам, язык-свобода, язык-инклюд, язык-не-хуже-раста, язык-геймдев, язык-зп-ниже-фронтендера
нужно было выговориться после недели работы после отпуска
Ты не выговарился, а просрался походу.
Всё так. Сам перекатился в раст и ещё никогда лучше себя не чувствовал.
Забавно, ни одного аргумента.
лол, столько базы, что плюсовики-анальники будут только отрицать. Про инклюды давно так не смеялся, даже в паскале, который все так ненавидят, есть охуенная модульность.
Вот ссылка >>2743990 → на объект с вопросами.
> над перекатом в нормальный язык
Раст чтоле? Я о нем мало знаю, мне нравится ключевое слово fn для обозначения функций, что убирает мост вексинг парс и делает код приятнее. Нравится то, что все сущности по умолчанию иммутабельны. ООП в расте нету - это минус.
Но самый жирный минус в том, что это никому ненужное, кроме криподебилов, говно. На плюсах же и на Си ОГРОМНАЯ кодовая база, много интересных прог, которые хочется поизучать. Хочется анриал инжин попробовать, хочется посмотреть как видеоредакторы работают и многое многое другое.
>>744021
Мне норм, более того, мне нравится. А вот что убивает во мне живое, так это гребаные задачки с литкода, ненавижу их.
Ну так ты пиши на расте основу, а где надо дёргай свои кресты.
>ООП в расте нету - это минус.
ООП это пережиток, раз. Многие ООП всё равно не понимают хуяря статичные классы на тысячи строк и неирочнично думают что это ООП.
>задачки с литкода
Нахуа?
Текущие модули ещё хуже. Давайте учить 100500 приколов вокруг модульного связывания.
Пробовал я ваш Раст, первый раз блеванул с того, что везде возвращается ебаный опционал, второй раз когда узнал что у структур нет конструкторов и значений по умолчанию из коробки. Нахуй так жить?
Никогда ничего сложнее "написать бинарное дерево" не просили. А это я мог сделать просто зная его описание.
А, точно. У вас же есть модули, в которые не смогли. Ну, это проблемы уже плюсовиков
>у структур нет конструкторов и значений по умолчанию из коробки
Как же ебут, как же жить то?
Так собсно модули и убивали языки.
Они сложны для всех. И для разработчиков ПО, и для разработчиков компиляторов.
> "написать бинарное дерево" не просили. А это я мог сделать просто зная его описание
Со всеми методами? Там может быть хитровыебанная логика с двойными циклами. А на собесе вся сосредоточенность улетучивается, чтобы в этой дрисне не запутаться.
Пчел, Раст даже после плюсов кажется ужасным словоблудием. Нахуй и кому он такой нужен кроме дебилов, набранных по гендерным квотам я не знаю.
>Проверку на нулл уже сделал?
Нет, сегодня не делал. Воскресенье же, выходной. Ты совсем во времени потерялся пытаясь поправить тот фантомный баг который раз в час даёт ошибку 0x4хуя на проде?
Лучшее изобретение плюсов, после которого половина плюсовиков бросило язык? а ещё которое даёт 2% производительности?
Лучшее изобретение плюсов, это ссылки, но они уже были: var в Pascal. Так что и тут плюсы ничего такого не привнесли
>лучшее изобретение
>мув не мувает
>после мува состояние объекта unspecified
>деструктивного мува нет даже как понятия
Могут ли плюсовики придумать хоть одну нормальную фичу? У них есть столько времени, это же пиздец. В комитете сидят под две сотни программистов с опытом в 10+ лет, куча разработчиков компиляторов, техлиды бигтеха, победители международных олимпиад, почему на выходе у них всегда получается дерьмище?
Дизайнили io - получили стримы с перфомансом ниже php
Дизайнили шаблоны - получили sfinae которое невозможно отлаживать, дебажить даже принтами, оттестить и читать. В подарок получаешь отрицательное уменьшение времени компиляции
Дизайнили многопоток - получили std::thread, отсутствие нормальных примитивов синхронизации, урезанный даже по сравнению с буст тред функционал, отсутствие блять даже нормального тредпула, out-of-thin-air дыру в модели памяти.
Дизайнили контейнеры - получили unordered_map, переписывание которой стало уже добротной традицией каждого второго программиста, std::set/std::map с оверхедом по 40 байт на ноду в дереве, отсутствие flat_set-ов, строки без юникода.
При этом сейчас все еще в процессе дизайна находятся экзекуторы и сокеты. Вангую на выходе получится такая же дырявая бесполезная поебень имитирующая работу фич в нормальных языках, которую депрекейтнут в 2027 и начнут ДИЗАЙНИТЬ заново в 2032
Их тяжело реализовать. И работать с ними тяжело потом. как я понимаю
Сколько успешных сейчас языков есть с модулями по типу плюсовых?
>Сколько успешных сейчас языков есть с модулями по типу плюсовых?
Кроме тайпскрипта наверное ничего и нет, лол.
Судя по графикам популярность наоборот выросла.
>>744071
Спорное заявление.
>>744076
Мув-семантика это часть С++11 как раз таки
>>744075
> Дизайнили шаблоны - получили sfinae
Теперь есть концепты, о сфинае можно забыть.
> отсутствие нормальных примитивов синхронизации
Мьютекс нормальный примитив синхронизации.
-
> unordered_map, переписывание которой стало уже добротной традицией
Так и стринг переписывают, но не из-за плохого дизайна, а потому что другие реализации эффективны для других задач.
> Дизайнили многопоток - получили std::thread
А про std::future ты тактично умолчал. std::thread для более низкоуровнего управления.
> Дизайнили io - получили стримы с перфомансом ниже php
Пруфы.
> Спорное заявление.
Это факт, если ты можешь создавать объект напрямую, а оператор= делает то что и должен делать приравнивает одну структуру другой, то мув семантика не нужна
1. "Операция дорогая" это значит что вместо 1 наносекунды будет 55 наносекунд, это все еще абсолютно ничто, особенно в оконном приложении. Делай как умеешь, тебе перфоманс впринципе не нужен. А если вопрос "в целом", то данные по возможности на стеке, аллокаторы системные уже достаточно неплохо работают и имеют по 3-5 уровней кэша. На винапи емнип по другому никак, там ивент луп это база любого приложения
2. "exe" файл это обычный бинарный файл с специальным заголовком, при огромном желании конечно можешь нагуглить заголовок PE-файлов и забить файл рандомными инструкциями, смысла в этом правда не много. Исполняемые файлы генерируются специальным тулчейном. Если по какой-то причине хочешь сделать это сам то спроси у чатгпт инструкцию как вызывать cl.exe и ml64.exe причин этого делать если ты не компилируешь шеллкод я не вижу
Так оно это и делает, только избавляет от ненужных копирований при временном правом значении. Что ты вообще доказать хочешь?
> В C++ вечный цикл это UB
Плюсоёбы, вы понимаете что вы ёбнутые? Вы понимаете что вы поехавшие просто?
https://godbolt.org/z/d1WP4KP99
> cl.exe и ml64.exe
Опять вижуа студия. Вот тебе такая задача, в этом мире исчезли все компьютеры и все накопители, кроме одного со свеже установленной виндой без сторонних программ. У тебя задание написать компилятор и линкер для си, как будешь делать?
Возьму PowerShell (+.NET) или VBScript/JScript (+ActiveX), там хоть можно записывать двоичные данные в файлы. С батниками никак этого не сделать, хоть усрись.
>кроме одного со свеже установленной виндой без сторонних программ
Уничтожаю последний компьютер, еще вопросы?
Круто, а повторять можно бесконечно?
Пост перечитай, тезис достаточно тривиальный
Пошёл нахуй.
Да не спорь ты с ними, это просто толпа лохов, все аргументы мимо. Про треды я вообще проорал, си и плюсы литерали единственно что хорошо работает в многопотоке.
Это то что Никогда не должно быть частью плюсов. И никогда не будет.
> Ты гуй принудительно обновляешь?
Там QTableWidget, в нем айтемы обновляю через setText. Это считается принудительным?
Тебе по хорошему нужно создать модель, и чтобы она сама каждые Н мсек подтягивала новые данные из буфера.
может у меня шиза, но вроде виджеты сильно медленнее view model
> не нужно
Мне вот интересно, есть хоть одна причина зачем оправдывать минусы языка? Тебе платят? Тебе обидно что твой язык обижают? Тебе обидно что ты на нем пишешь? В чем мотивация?
Ты не понял от слова совсем.
Язык не мой, я его не защищаю. не от чего.
Минусы - нет.с твой субьективной точки зрения
Не нужно - очевидно, бало бы нужно, за 30+ лет сделали бы.
> бало бы нужно, за 30+ лет сделали бы.
Хороший девиз, я бы сделал его лозунгом плюсового комитета
Куда это гпу, а чем там абстракции построены - плюсами или си не суть. Дрова те же.
>>744501
Вперед, делай.
Но ты, оведно, путаешь комитет - разработчиков самого языка и прочих разрабов - пользователей этого языка, которые конечно могут писать что угодно, в силу умений и необходимрсть, хоть пакетники. Но вот имеем что есть.
Вывод очевиден.
Ну а если ты счиьаешь что все это тоже работа комитета надеюсь что нет, а то страшно становится, до давай тогда все инженеров автопрома обяжем и машины на заводе слбирать, например.
>Вот как на плюсах все плохо с многопотоком
Ты понимаешь что речь про язык? В плюсах буквально минимум, если что-то убрать то этим будет просто невозможно пользоваться. Из-за того что в языке минимум, а работа с библиотеками в плюсах это адовый пиздец, каждая вторая компания считает своим священным долгом изобрести все то что есть в нормальных языках из коробки. Только есть ньюанс, плюсовики в большинстве своем люди лоускильные, но самоуверенности им не занимать, в результате мы получаем на 10 либ пять тредпулов, два из которых писали люди без понимания модели памяти, два из которых скопипастили с первой ссылки на гитхабе - типо, НУ А ЧО, НЕ МОЖЕТ ЖЕ БЫТЬ ЧТОБ У ЛИБЫ С 1.5К ЗВЕЗД БЫЛО ЧЕТ ХУЕВОЕ может и еще раз может, а последняя либа написанная тобой или твоим коллегой. Самое смешное то, что либы друг про друга ничего не знают и узнать не могут, в результате у тебя вместо нормального количества тредов их будет штук 60 вытесняющих друг друга. Абсолютно та же хуйня происходит с абстракциями типо MPMC/MPSC очередями, хотя там наверное еще хуже, ведь плюсовики после прочтения целых двух абзацев про memory_order на цппреференсе считают что этого достаточно чтобы наугад расставлять мемори ордеры. Ну а хули relaxed написано быстрый, а плюсы что? правильно, быстрые, значит ебашим везде релаксед. Причем это будет работать под х86, но вот если ты попробуешь этой хуйней пользоваться под каким-то армом то твой код будет очень смешно падать, и тебе повезет если там будет хотя бы стектрейс.
В расте например есть нормальный фреймворк для многопотока и все юзают его, может он не самый лучший из всех возможных вариантов, но главное то что он есть, и люди в гораздо меньшей вероятностью начнут писать свои наколеночные ногопростреливающие обосраноубшные говноочереди.
То что на плюсах смогли написать что-то связанное с многопотоком это не благодаря, а вопреки, вопреки блять отсутствию нормальных средств работы с многопотоком. Я код куды не смотрел, но более чем уверен что плюсовых тредов там нет и в помине, как и этих смешных атомиков в которых нет функций для работы с сырыми данными без лишнего оверхеда
>Вот как на плюсах все плохо с многопотоком
Ты понимаешь что речь про язык? В плюсах буквально минимум, если что-то убрать то этим будет просто невозможно пользоваться. Из-за того что в языке минимум, а работа с библиотеками в плюсах это адовый пиздец, каждая вторая компания считает своим священным долгом изобрести все то что есть в нормальных языках из коробки. Только есть ньюанс, плюсовики в большинстве своем люди лоускильные, но самоуверенности им не занимать, в результате мы получаем на 10 либ пять тредпулов, два из которых писали люди без понимания модели памяти, два из которых скопипастили с первой ссылки на гитхабе - типо, НУ А ЧО, НЕ МОЖЕТ ЖЕ БЫТЬ ЧТОБ У ЛИБЫ С 1.5К ЗВЕЗД БЫЛО ЧЕТ ХУЕВОЕ может и еще раз может, а последняя либа написанная тобой или твоим коллегой. Самое смешное то, что либы друг про друга ничего не знают и узнать не могут, в результате у тебя вместо нормального количества тредов их будет штук 60 вытесняющих друг друга. Абсолютно та же хуйня происходит с абстракциями типо MPMC/MPSC очередями, хотя там наверное еще хуже, ведь плюсовики после прочтения целых двух абзацев про memory_order на цппреференсе считают что этого достаточно чтобы наугад расставлять мемори ордеры. Ну а хули relaxed написано быстрый, а плюсы что? правильно, быстрые, значит ебашим везде релаксед. Причем это будет работать под х86, но вот если ты попробуешь этой хуйней пользоваться под каким-то армом то твой код будет очень смешно падать, и тебе повезет если там будет хотя бы стектрейс.
В расте например есть нормальный фреймворк для многопотока и все юзают его, может он не самый лучший из всех возможных вариантов, но главное то что он есть, и люди в гораздо меньшей вероятностью начнут писать свои наколеночные ногопростреливающие обосраноубшные говноочереди.
То что на плюсах смогли написать что-то связанное с многопотоком это не благодаря, а вопреки, вопреки блять отсутствию нормальных средств работы с многопотоком. Я код куды не смотрел, но более чем уверен что плюсовых тредов там нет и в помине, как и этих смешных атомиков в которых нет функций для работы с сырыми данными без лишнего оверхеда
БОльшая часть твоего поста - это претензии к организации какого-то проекта и рукожопам на разрабах. Язык предоставляет базу для написания ВСЕГО, что ты хочешь. Тебе прямо и говорят, что если ты не долбоеб, то бери наш инструмент и решай свои задачи, все. Это как выбрать Сишку, а потом жаловаться, что изкоробки нет инструментов для работы с базами данных. Плюс, сам же написал, что для раста создали внешний фреймворк, который все используют. Ну так напиши свой фремворк на плюсах, которым будут все пользоваться, в чем проблема? Только потом окажется, что универсального решения не существует и на каждую задачу приходится универсальный велосипед костылить. Это как со строками, их десятки видов, на любой вкус, но при этом ни один из них нельзя выбрать в качестве универсального решения. Поэтому проще просто дать базовые инструменты и свободу пользователям.
>>744787
>в языке нихуя нет
>это не проблема языка
>и вообще сами виноваты что на этом пишите
Вот об этом я и говорил в прошлом посте, плюсовой стокгольмский синдром. Люди буквально защищают отсутствие функционала. Просто пиздец. Давайте еще контейнеры удалим, будут люди делать свои деревья и векторы с перфом в 4 раза хуже, а плюсовики будут это и дальше защищать
>НУ ВОТ ВОЗЬМИ БЛЯ И НАПИШИ ЗАЕБИСЬ ДЕРЕВО У ТЕБЯ ВСЕ ВОЗМОЖНОСТИ ЕСТЬ
>А ВОТ У НАС В ФИРМЕ ЗАЕБИСЬ ДЕРЕВО ЧЕЛ ОЛИМПИАДНИК НАПИСАЛ
>НУ СКАЧАЙ ТАМ ФРЕЙМВОРК НА 500К СТРОК ТАМ НОРМ ДЕРЕВО
Просто пиздец, вы на работе точно задачи решаете? Или вы где-то в отделе тулзовин сидите контейнеры пилите свои?
Просто ты не понимаешь, что можно сделать +- универсальное решение и добавить его в язык, а можно высрать говно, которым никто не будет пользоваться и напихивать язык каждым таким решением, чтобы он стал еще более хтоничестким, называя это функционалом. Где можно было обобщить, там пока что обобщили.
>а можно высрать говно, которым никто не будет пользоваться и напихивать язык каждым таким решением, чтобы он стал еще более хтоничестким, называя это функционалом
Буквально фьючи и async из плюсов
Ты кодил на чем-то кроме плюсов? Джава? Сишарп? Раст? Го? Ну или хотя бы на каком-то крупном фреймворке типо qt или UE? Ну или может юзал folly? Вот как сука нужно это делать. У одних плюсовиков и сишников пока не получилось, еще вот чуть чуть и догонят блять Ada и фортран, в которых семафор появился на 50 лет раньше С++. Я даже не удивлюсь если в Си нормальный функционал появится раньше, а плюсовики будут еще лет 15 аппрувить экзекуторы чтоб получилось хорошо и универсально, ведь у плюсовиков всегда очень хороший дизайн фич
>Джава? Сишарп? Раст? Го? Ну или хотя бы на каком-то крупном фреймворке типо qt или UE? Ну или может юзал folly? Вот как сука нужно это делать
Не метаязыки, а ЯП заточенные под задачу.
> У одних плюсовиков и сишников пока не получилось, еще вот чуть чуть и догонят блять Ada и фортран
И где твои Ада с Фортраном? Ты хотя бы пытался на Аде писать?
>Ну или хотя бы на каком-то крупном фреймворке типо qt или UE? Ну или может юзал folly?
Алсо, ты выше бухтел, что у плюсов нет хороших внешних фреймворков как у раста, а теперь сам их привел.
>Всё я сдаюсь, этот манямир не пробить
Блядь, ну давай разберем каждый твой язык
>Джава? Сишарп? Го?
Одна ниша с плюсами?
>Раст?
При байтоебстве превращается в самую худшую версию Сишки и плюсов.
> Вот об этом я и говорил в прошлом посте, плюсовой стокгольмский синдром.
Чел, ну ты встань на их место
НЕСКОЛЬКО ЛЕТ учить язык, знать устройство всех кишок, тратить огромное кол-во времени чтобы разобраться с зоопарком из инструментарии, просмотреть несколько десятков выступлений с советами как не убить прод
И тут заходит какой то анон, и говорит что они потратили время на недоделанный яп
Тут каждый возмущаться начнет
Вы просто не понимаете насколько плюсы и сишка охуенны, после нескольких лет работы в вебе, интерпрайзе и прочих микросервисах, где технология меняется не потому что техническо стало что-то лучше, а потому что МОДА изменилась.
После этого сидеть и писать коммерческую хуйню для исследования морского дна для прокладки торгового пути - просто 10/10.
>писать коммерческую хуйню для исследования морского дна для прокладки торгового пути
Это, конечно, круто и интересно, но при этом что сишка что плюсы отнимают просто дохуя времени на еблю с ненужными вещами. Я 4 года кресты учил, сам, идейный был. В универе базу дали, а я потом самостоятельно десяток книг прочёл и кучу говна на них слепил. Но так и не вкатился, потому что вечное понимание что "я знаю что ничего не знаю". Ну и я не молодой уже, чтобы проёбывать драгоценное время на траханье с тем, что изначально хуёво задизайнено. С другой стороны у меня раст где я написал cargo add, получил все необходимые мне зависимости и пишу что мне нужно написать. А конпелятор мне ещё и заботливо подскажет где и какую ошибку я допустил. Да что там, лол, он мне во многих случаях подскажет ЧТО именно я должен изменить/дописать. Говорить про то, что я спустя 3 месяца неспешного ебения с растом вкатился на работу на нём даже как-то неловко.
Так я не в вашей стране. Да, вкатился в крипто-нфт-млп-360-стартап, морское дно пока не исследую, но всё ещё кратно интереснее вебмакакинга, поспоришь.
Не будет нормальный плюсовик топить за введение всего этого говна в плюсы, да еще и в стандарт.
Я все жду пока гпт4 или продукт на его основе доведут до ума, и все эти знания, за которые по факту плюсовики и получают зарплату, можно будет дописать в резюме разве что как большой плюс. Сколько не видел плюсовиков в своей жизни, всех можно было поделить на 2 типа:
1. Дед/бывший студент, выучивший плюсы просто потому что в универе давали, после попал на галеру на которой сидит уже не первый год
2. Идейный фанбой добровольно тратящий всё свободное время на изучение языка. Именно языка, потому что пока какие-то мл ресерчеры просто берут питон, потому что он проще, и решают на нем задачи, фанбой учит сам язык в вакууме. Вот их я надеюсь и порешает ИИ, знания на уровне дрочки справочника и заучивания 400 эджкейсов и 75 уб не должны цениться вообще ни в каком виде. Наверное единственное исключение на моей памяти это чел из джетбрейнс который тулзы для языка пилит, там это и правда нужно. Остальные жсоноперекладывателями в яндексах и сберах гребут
Дядя это и в винде было, и на макоси с немного другим апи было, это было буквально везде. Знаешь где этого не было вплоть до текущего стандарта? Догадайся с трех попыток
>Так я не в вашей стране
Ну так с этого и начинать надо было
>крипто-нфт-млп-360-стартап
Все что на твоем расте и есть
>Ну так с этого и начинать надо было
вот тут плюсую. Обычно когда нахваливают вкат в раст, не говорят о какой стране речь. Тем более чел вон 4 года плюсами занимался, очевидно за 3 месяца вкат будет более простым. Дай изучать раст вкатуну - он так же точно будет 4 года его ковырять не понимая, что происходит и зачем нужна та или иная вещь
Ты то аниме/тролль. Ты вкурсе что плюсы прзволяют писать си и даже асм код. А ты все серишь что чего то тебе не хватает.
Ну я тебеивыше уже все разжевал. Пернчитай необходимое количество раз.
Ну и пиши сам, раз тебе что то надо.
>Ну так с этого и начинать надо было
Ну кто же вам виноват, что вы паспортом не вышли. Год назад с тем же успехом и вы могли устроиться.
>Все что на твоем расте и есть
Ничего-ничего, пока вы на своих плюсах будете кабели на дне морском прокладывать мы будем ПО для иксвингов писать.
>плюсы прзволяют писать си и даже асм код
Заорал, ассемблер тоже позволяет, он даже больше позволяет т.к в мсвц нельзя под х64 асм вставки делать. Ты лучше перечитай то что я писал, может сложишь 2 и 2 и поймешь почему на ассемблере уже ничего не пишут на плюсах впринципе тоже прекращают
Взял и обиделся на ровном месте, ебать ты.
>ь. Говорить про то, что я спустя 3 месяца неспешного ебения с растом вкатился на работу на нём даже как-то неловко.
А если бы без ебли с плюсам не вкатился бы в раст, ммм? Все таки питон/веб макаки верещат о сложности раста и как раст "взорвал" их мозг, а ты за 3 месяца уже разобрался и работу нашел.
>но при этом что сишка что плюсы отнимают просто дохуя времени на еблю с ненужными вещами. Я 4 года кресты учил, сам, идейный был. В универе базу дали, а я потом самостоятельно десяток книг прочёл и кучу говна на них слепил. Но так и не вкатился, потому что вечное понимание что "я знаю что ничего не знаю".
Проблема плюсов и сишки заключается не в сложности самого языка, а в сложности предметной области, где эти языки используются. И вот происходит эдакая подмена сложности языка на сложность предметной области, где такая мелочь как отсутсвие пакетного менеджера и нормальной системы сборки даже не заметны(хотя к пакетному менеджеру есть тоже тонна вопросов по безопасности и хранению пакетов) и разрабока зачастую не происходит в новомодном режиме, когда готовый продукт нужно было выпустить еще вчера.
>>744869
>Я все жду пока гпт4 или продукт на его основе доведут до ума, и все эти знания, за которые по факту плюсовики и получают зарплату, можно будет дописать в резюме разве что как большой плюс.
До появления полноценного ИИ о замене разрабов даже говорить не стоит. Все эти математические модели имеют свои ограничения и выполняют ровно то, ради чего они были созданы. В данном случае, конкретно для улучшения поисковых запросов.
>Именно языка, потому что пока какие-то мл ресерчеры просто берут питон, потому что он проще, и решают на нем задачи, фанбой
Эм, а ты в курсе, что этот питон под капотом дергает библиотеки на Си и плюсах, которые написали сами МЛ ресерчеры? Питон там чисто как клей для сишного кода. Плюс в этой сфере по каким-то причинам не взлетел раст, хотя его туда активно проталкивали и писали кучу фреймворков.
>мы будем ПО для иксвингов писать.
Обосрался. Софт для иксвинга либо на плюсах будет, либо на аде, либо на чем-то с верификацией вроде Coq-а(во что раст не могет). Хотя бы потому, что существуют коммерческие компиляторы и наработки, которые не зависят от желания СЖВ говна, которые обидные константы в духе "0xDEADBEEF" блокируют.
>А если бы без ебли с плюсам не вкатился бы в раст, ммм?
Хз, на уровне понимания базовых вещей - скорее всего да, я же умный.
>>744903
>Все таки питон/веб макаки верещат о сложности раста и как раст "взорвал" их мозг,
Ну так это не настоящие прогеры. Они услышали что где-то там есть курс после которого можно $2к заколачивать сидя дома вот и налетели как мухи.
>>744908
>Обосрался
В кабине иксвинга? Ты ебанутый что ли? Тебе же пизда.
>с верификацией вроде Coq-а
Нихуя не понял зачем для написания софта верифицировать cock.
>Эм, а ты в курсе, что этот питон под капотом дергает библиотеки на Си и плюсах, которые написали сами МЛ ресерчеры
Естественно, но людям похуй на то на чем оно там написано, они решают задачи, а не дрочат ньюансы инструмента. Я бы и сам с радостью на питоне писал, но в моей сфере не прокатит. Драйвера пишут с асм вставками, это не повод использовать асм вставки в своем коде, и тем более не повод писать на ассемблере.
>До появления полноценного ИИ о замене разрабов даже говорить не стоит
Ебать манямир, пройдет пол года и сетка будет без лимита на контекст и дообучаться за 15к$ под конкретную кодобазу, после чего штаб макак можно сокращать в половину. Какое же у крестовиков раздутое чсв это просто пиздец. Вот меня то точно не заменят
Знаю конечно ты не мне отвечал, но это просто ахахахахах
>Проблема плюсов и сишки заключается не в сложности самого языка, а в сложности предметной области, где эти языки используются
Нет. Буквально, сложность в самих языках. Если бы на си можно было писать не отстреливая себе ногу на каждой второй операции, программистов на этой хуйне было бы раз в 5 больше. С нее ушли буквально как только появились какие-то здравые альтернативы, и даже сегодня она жива только потому что она простая как 2 копейки и имеет стабильное аби и простой манглинг. Я не вижу вообще ни одной причины писать игры или медицинский софт на С++, впрочем как и не видят разработчики Юнити и блюпринтов в UE.
Как вообще можно говорить о какой-то сложной предметной области когда в одной из самых крупных компаний РФ программисты блять занимаются написанием микросервисов и перекладыванием жсонов на фреймворке пародирующем Go во всех аспектах кроме кроссплатформенности
не знаю зачем ты несколько раз одно и тоже спрашиваешь
скорее всего такого нет
попробуй каким нибудь grep'ом такое поискать
>Хз, на уровне понимания базовых вещей - скорее всего да, я же умный.
А не пришлось бы убить 4 года на понимание этих вещей, но только с растом?
>Ну так это не настоящие прогеры.
Чувак, твой раст развивается именно в сторону этих ненастоящих прогеров, а не в сторону байтоебства, потому что основная аудитория языка пришла из веба.
>Нихуя не понял зачем для написания софта верифицировать cock.
Конечно, ты же умный.
Алсо, при написании бортового ПО для боевых вертолетов Apache использовалась куча систем верификаций на всех уровнях.
>при написании бортового ПО для боевых вертолетов Apache использовалась куча систем верификаций на всех уровнях.
Спасибо Coqпитан Очевидность.
>Естественно, но людям похуй на то на чем оно там написано, они решают задачи, а не дрочат ньюансы инструмента.
Т.е. им похуй на чем написано, но продолжают писать хуеву тучу фреймворков на сишке, чтобы решить задачу, правильно понимаю?
>Какое же у крестовиков раздутое чсв это просто пиздец. Вот меня то точно не заменят
>Знаю конечно ты не мне отвечал, но это просто ахахахахах
Это не только к крестовикам относится, маня. Ты либо гопоту не трогал, которая на запрос, который хотя бы немного отличается от среднего запроса на СО, несет лютую хуйню, иногда придумывая что нибудь. Либо долбоеб с current things, который каждый год топит за новую вещь, которая точно в этот раз изменит мир. Сначала носились с квантовыми компами, потом с криптой, потом с виртуальной реальностью, а сейчас про нейросети вспомнили, которые используются уже десятки лет в серьезных областях и никто при них не бухтел, пока что соевым долбаебам не выкатили генератор аниме сисек и рерайтер ответов с СО.
>Я не вижу вообще ни одной причины писать игры или медицинский софт на С++, впрочем как и не видят разработчики Юнити и блюпринтов в UE.
Сугубо экономическое решение, чтобы не только кодеры могли работать. Да и последние релизы показывают, что эти решения не пошли на пользу играм.
>нее ушли буквально как только появились какие-то здравые альтернативы
Да? И какие же? В каких сферах?
>Как вообще можно говорить о какой-то сложной предметной области когда в одной из самых крупных компаний РФ программисты блять занимаются написанием микросервисов и перекладыванием жсонов на фреймворке пародирующем Go во всех аспектах кроме кроссплатформенности
По-твоему поиковик в гулаге и электромобили на Говне написаны?
>Нихуя не понял зачем для написания софта верифицировать cock.
>при написании бортового ПО для боевых вертолетов Apache использовалась куча систем верификаций на всех уровнях.
>Спасибо Coqпитан Очевидность.
Ясно.
Ыыыы, ита была шутка
>Т.е. им похуй на чем написано, но продолжают писать хуеву тучу фреймворков на сишке, чтобы решить задачу, правильно понимаю?
Все так, будет новый фреймворк на расте или ассемблере будут юзать его
>Сначала носились с квантовыми компами, потом с криптой, потом с виртуальной реальностью, а сейчас про нейросети вспомнили, которые используются уже десятки лет в серьезных областях и никто при них не бухтел, пока что соевым долбаебам не выкатили генератор аниме сисек и рерайтер ответов с СО.
Ебать тут проекции. Гопоту я трогал, я с ней работаю вот уже с пару месяцев, к сожалению без тюнинга под кодобазу не очеь полезно, но это исключительно вопрос времени. Джун с улицы после испыталки с гпт4/гпт5 будет настолько же эффективным как и мидл с трехлетним стажем в любой конторе, может даже более эффективным. Вкат станет еще проще, на собеседованиях начнут спрашивать не то сколько шаблонных параметров у шаред поинтера, а как задизайнить взаимодействие между сервером логов и основным приложением. Сказка, не знаю как можно быть против этого, разве что ты фанбой потративший пяток лет на выдрачивание стандарта
>Сугубо экономическое решение, чтобы не только кодеры могли работать
Именно, теперь даже не программисты или вчерашние вкатуны могут решать задачи, причем настолько сложные как разработка целых игр, а не блять отладка почему у тебя вектор от двух итераторов конструируется в std::vector<_Iterator_Base<_T>::value_type>>
>Да? И какие же? В каких сферах?
Джава в свое время для веб и мобильных приложений, сишарп для бэкэнда, плюсы для эмбеда, раст для приложений с повышенными требованиями к безопасности типо ОС и кодеков
>По-твоему поиковик в гулаге и электромобили на Говне написаны?
Нет конечно, Яндекс это целая фирма фанбоев типо гугла, там даже техлиды дают доклады почему они не перейдут на раст, глупо от них ожидать каких-то здравых решений типо использования Го. Они просто скопировали дизайн хорошего языка для своих сервисов, а теперь для перекладывания жсонов нужно знать не нормальный Го, а С++ в худших его проявлениях в виде меташаблонного ада компилирующегося 40 минут
>Т.е. им похуй на чем написано, но продолжают писать хуеву тучу фреймворков на сишке, чтобы решить задачу, правильно понимаю?
Все так, будет новый фреймворк на расте или ассемблере будут юзать его
>Сначала носились с квантовыми компами, потом с криптой, потом с виртуальной реальностью, а сейчас про нейросети вспомнили, которые используются уже десятки лет в серьезных областях и никто при них не бухтел, пока что соевым долбаебам не выкатили генератор аниме сисек и рерайтер ответов с СО.
Ебать тут проекции. Гопоту я трогал, я с ней работаю вот уже с пару месяцев, к сожалению без тюнинга под кодобазу не очеь полезно, но это исключительно вопрос времени. Джун с улицы после испыталки с гпт4/гпт5 будет настолько же эффективным как и мидл с трехлетним стажем в любой конторе, может даже более эффективным. Вкат станет еще проще, на собеседованиях начнут спрашивать не то сколько шаблонных параметров у шаред поинтера, а как задизайнить взаимодействие между сервером логов и основным приложением. Сказка, не знаю как можно быть против этого, разве что ты фанбой потративший пяток лет на выдрачивание стандарта
>Сугубо экономическое решение, чтобы не только кодеры могли работать
Именно, теперь даже не программисты или вчерашние вкатуны могут решать задачи, причем настолько сложные как разработка целых игр, а не блять отладка почему у тебя вектор от двух итераторов конструируется в std::vector<_Iterator_Base<_T>::value_type>>
>Да? И какие же? В каких сферах?
Джава в свое время для веб и мобильных приложений, сишарп для бэкэнда, плюсы для эмбеда, раст для приложений с повышенными требованиями к безопасности типо ОС и кодеков
>По-твоему поиковик в гулаге и электромобили на Говне написаны?
Нет конечно, Яндекс это целая фирма фанбоев типо гугла, там даже техлиды дают доклады почему они не перейдут на раст, глупо от них ожидать каких-то здравых решений типо использования Го. Они просто скопировали дизайн хорошего языка для своих сервисов, а теперь для перекладывания жсонов нужно знать не нормальный Го, а С++ в худших его проявлениях в виде меташаблонного ада компилирующегося 40 минут
>Собираюсь
>Готовиться
>К собесу в яндекс
Алсо на видео прямо эталонный сипипишник.
Бля, чувак, сьеби в свой загон.
У тебя в языке оменяют "обидные" константы, придумывают дегенеративные инклюзивные правила, используют лгбт новояз и срут политотой в ченджлогах компилятора с просьбой поддержать переворот в стране за океаном. Это просто пиздец. Такое ощущение, что языком управляют не инженеры, а политики, причем среднего пошива. Сука, о чем ты пришел нам рассказывать, если у вас из языка ушел один из основных разрабов за то, что ему на конференции не тот порядок выступления дали. Да вы же ебнутые. Нормальный человек никогда с вашим говном связываться не будет. Только хайпоманьки и криптоскамеры.
Чел, какую бы херню кто не творил питон это один из самых популярных и распространённых языков современности. Смирись с этим и не плачь.
Какой питон, долбоеьина, я про раст говорил.
Питон в виде склейки нормально подходит, а для большего его и не используют.
>я про раст говорил.
Нихуя не понял при чём тут игра
>Питон в виде склейки нормально подходит, а для большего его и не используют.
Чел, плиз...
Да всё жир, сгоняй в зал, похудей.
processEvents() помог, спасибо.
Так питон это питон лол. Там все стрящие либы это си/плюсы, а питон просто дергает их.
Вон сейчас mojo подвезут и тогда пососёте
>Все что крупнее простых типов. Контейнеры тоже можно на стеке, но если они небольшие, а то не влезут.
>Проблема стека - ограничение по размеру.
Шиза ебаная, ты из 1998 капчуешь? стэк у него ограничен... Пару килобайтами чтли по-твоему?
Вся ваша жизнь - это UB
Все твое сообщение в utf-16 весит 200 байт, то есть вы как ответ возвращаете 40к таких сообщений.
IT 2023 итоги.
>IT 2023 итоги.
Всё так, эпоха 5g и 10 Гбит оптоволокна. Вы со своим ансейф перекладыванием байтов морально устарели.
> используют лгбт новояз и срут политотой в ченджлогах компилятора с просьбой поддержать переворот в стране за океаном.
ебаааатттть)))) а че за история такая смешная?
>ебаааатттть)))) а че за история такая смешная?
https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html
https://www.opennet.ru/opennews/art.shtml?num=58969
>>746048
>Да фигня, Барнаул протекает.
Жополаз, спок.
>>746210
>в стране за океаном майданят
>все западные СМИ и ресурсы топят за нужную повесточку
>ко-ко-ко, пожалуйста, посмотрите по этой ссылке и думайте только в нужную сторону
Какого хуя это вообще должно быть в техническом проекте? Эти пидорасы собирают все current things, которые происходят, начиная с ковида и БЛМ.
Вы уже настолько одебилившие, что не даже понимаете в чем проблема. Это как посреди книги Кнута по алгоритмам найти рекламу фермерской техники и мясорубки.
>Вы уже настолько одебилившие, что не даже понимаете в чем проблема
Нет, дебилушка, мы то как раз всё понимаем. глбтэюя, блм, ковид - это хуйня из под коня и я с нетерпением жду момента когда их всех в лагеря начнут сгонять. С другой стороны война в Украине или животные которые прикрываясь религией творят что им угодно, дети, с пелёнок майнящие кобольт, торговля органами и прочая хуйня - о таком не молчат. Проблема только в том, что большинство таких упоминаний существуют только потому что таковы нынешние веяния в интернетах, а не потому что кому-то там, особенно из-за океана не похуй.
>С другой стороны война в Украине или животные которые прикрываясь религией творят что им угодно, дети, с пелёнок майнящие кобольт, торговля органами и прочая хуйня - о таком не молчат
Пикрил.
А может быть, если тебе не похуй, то пойдешь в СПЕЦИАЛЬНОЕ место и будешь там этим проблемы решать? В волонтерскую организацию, например, а не будете на сайте языка программирования этим говном срать? Я больше ни одного проекта не видел с такой хуйней, кроме веб-параши.
Ну и выборка тем, которую нужно поддержать ВСЕГДА совпадает с основной повесточкой демократов. Что-то я не видел поддержку чуваков из Бангладеша, когда их придавило крышей обвалившегося завода, потому что корпорации было похуй на рабов. Умерли и умерли, чего бухтеть? 10$ в месяц заплатил и к тебе новое мясо набежало вещи шить и технику собирать. К чему такая избирательность? Может потому что это свои корпорации и свои люди, которое в том числе спонсируют и вас? Лицемерненько получается.
Я тебе буквально об этом пишу, хули ты слепой то такой?
>Проблема только в том, что большинство таких упоминаний существуют только потому что таковы нынешние веяния в интернетах, а не потому что кому-то там, особенно из-за океана не похуй.
Ну так, а нахуй оно мне нужно на сайте технического проекта?
Можно было бы закрыть глаза на это, если бы поддержка нуждающихся была бы их фишкой и то где нибудь в отдельном месте/на отдельной страничке, но нет, эти пидорасы показывают только то, что им спускают сверху и прямо в ченджлогах
Не бит, а байт. Там написано, на какой конкретно архитектуре, ОС и версии компилятора его запускали? И на винде есть какие-то нюансы с Clang, что он может работать не сам по себе, а в костыльной связке с GCC (т.е. MinGW).
>> Там написано, на какой конкретно архитектуре, ОС и версии компилятора его запускали?
Неа. Просто названия компиляторов.
>>в костыльной связке с GCC (т.е. MinGW)
Тогда clang++ можно и не использовать на mingw, если разницы не будет с g++ ?
> В статье Metanit написано что long double имеет 8 бит для clang++, а для g++ 16 бит
Это очень хрупкая вещь и может отличаться даже на разных версиях компилятора, не стоит на это ориентироваться.
Где Qt Creator? И почему папка, куда я установил (командой cmake --install) весит 300 метров??
300 мб против 30гб, которые я пару лет назад установил с помощью инсталлера qt5.
> Дебаг либы
Я релиз поставил, не знаю зачем дебаг нужен.
> Креатор вроде надо отдельно собирать.
Спасибо, понятно, квест не закончен.
Ты мог натыкать тогда 100500 разных версий кути и компиляторов, доп либ и тд.
Ща глянул, у меня 5.12.11 весит 400мб, 6.4.3 10гб.
> в обход санкций.
Кути санкции то же наложила что ли? И в чем иванов ограничили они? Как разу подумывал вкатится в них то же по мимо JUCE
Какой самый простой способ сделать так, чтобы ширина столбцов этих таблиц была всегда одинаковая? То есть меняется ширина (от контента) столбца одной таблицы - меняется ширина этих же столбцов всех таблиц.
Сделай свою таблицуили хедер и по сигналу их синхронизируй.
Или подрочи доку, может там уже есть сигнал на ресайз хедера.
Унаследуйся от прости-господи тейблвиджета и добавь нужный функционал.
То и значит. Повесь сигналы на какую нить функцию, которая будет везде ставить нужную ширину.
Действительно, я долбаеб. Это слишком оверкилл.
https://en.wikipedia.org/wiki/Ultimate%2B%2B
>но есть же qt
Мне этот в кайф, плюс лицензия этого позволяет его статически линковать. U++ кажется удобнее.
мимо ОПхуй
Ноунейм никому нахуй не нужная залупа или зарекомендовавшая себя известная залупа?
>Ноунейм никому нахуй не нужная залупа
скорее зис, но мне для моего проекта подошел из-за лицензии.
Просто рекоммендую анонам, которым нкжен фреймворк со статической линковкой.
мимо ОПхуй
Да.
А ты?
Ананасы есть тут кто-то занимающийся сложными вещами? Разработка движков, компиляторов, прошивок для сложного железа, драйвера и т.д? Расскажите сколько шли к успеху и нравится ли работа?
>Ушел от них уже?
Да, перекатился в нейронки.
>Сколько опыта?
3 года
>Платили достойно или как рядовому прогеру?
Для Турции неплохо, если смотреть по континенту - средне.
Классический хуястый дс с прожаркой видях
Не думаю что для джава такое нужно
Предположим, у меня очередь из std::vector, каждый вектор по 1024 байт. Я начинаю туда-сюда пихать в очередь данные и читать из нее, в среднем размер очереди 5 элементов. Наступает ситуация, что я сделал pop() 4 раза, в очереди остался 1 элемент.
Вопрос: когда я сделаю пуш вектора, может ли он разместится в уже ранее найденную область памяти? Будет ли эта процедура быстрой пиздец, или ОС будет тупить с поиском совершенно новой области в ОЗУ?
> Вопрос: когда я сделаю пуш вектора, может ли он разместится в уже ранее найденную область памяти?
Почти 100%, но гарантий нихуя.
> Будет ли эта процедура быстрой пиздец,
С хорошей библиотекой да.
> или ОС будет тупить с поиском совершенно новой области в ОЗУ?
Ос только отдает куски памяти приложению в самом начале. Они обычно кэшируются библиотекой.
>>748839
Меня смущает, что в многих примерах, где используются большие буфера и межпоточная синхронизация, применяется std::queue без каких-либо намеков, что это неэффективный подход.
Если бы я делал свою очередь для межпоточной синхры, я бы указывал в ней максимальную глубину и элементы бы размещал строго по аллоцированным в конструкторе регионам памяти. Моя реализация очевидна, и во взрослых библиотеках она должна присутствовать, но я не встречал прям точного указания, что аллокация в очереди новых элементов опирается на уже выделенные участки.
Мне нравится std::vector::reserve(), понятно его поведение и использование.
Гугли Лок фри Кью.
Падажжи бро.
Во первых, у тебя не очередь, а вектор получился.
У очереди есть фундаментальные отличия - константное время вставки удаления элемента. У тебя такого нет.
Тебе нужна не очередь, а свой аллокатор, который уже внутри может быть устроен примерно так.
Может кто-нибудь объяснить или хотя бы отправить где и что почитать про вывод/декодирование символов на экран.
Пример: я нажал клавишу, затем у меня в буфере RAM находиться код символа.
Что происходит дальше?
Я так понимаю, сейчас везде используется векторные преобразования? На каком уровне это делается: программно или аппаратно?
1.С каким уровнем знаний можно уже работать C++ разработчиком?
То есть нужно знать базу C++ массивы, циклы, ооп и STL.
Плюсом можно добавить знания 20 библиотек + какой-то DirectX и Qt.
кста, дружочек нашел работу только со знанием базы плюсов, без стл и ооп)))
сказали, что в процессе выучишь.
2.Обязательно ли имеет вышку для работы на плюсах?
И возможно ли, что меня возьмет без нее, но со знаниями плюсов.
3. Какой лвл английского должен быть?
Минимум B1?
>1.С каким уровнем знаний можно уже работать C++ разработчиком?
Зависит от компании
>2.Обязательно ли имеет вышку для работы на плюсах?
Зависит от компании
3. Какой лвл английского должен быть?
Зависит от компании
Без шуток, на моей первой работе на джуна требовали знание С++ которое дают после одного семестра МухГУ. В яндекс на джуна даже С++ знать особо не надо, достаточно литкод загриндить. В нвидию на джуна нужно быть лучше пары тысяч индусов, в ресерч на джуна нужно иметь мат. базу, везде разные требования и зарплата
Вышка лично в моей фирме не требуется, хотя недавно обновили договор и она там вроде как обязательный пункт. В прошлой аутсорсной галере о вышке даже не спрашивали.
Про английский так же - если нужен английский то нужен, если не нужен то не нужен. Есть фирма аутсорс то нужен б2 и выше, если продукт то скорее всего б1 достаточно. В моей текущей фирме почти весь документооборот и взаимодействие происходит на русском, а на 3-х собесах которые я проходил в феврале просили 5-10 минуток поболтать на ангельском, после чего успокаивались. Всё зависит от твоих амбиций, хотя если ты в РФ я бы наверное пошел в Яндекс, там вроде бы зп более-менее
Ты високосный год не учитываешь
Потому что C++ почти полностью совместим с С, кроме некоторых мест, связанных, например, с регистровыми переменными, с некоторыми неявными преобразованиями, с ключевым словом restrict, с VLA массивами и ещё некоторыми другими вещами, о которых я забыл.
Как в visual studio code отображать ошибки при наборе кода на С ?
Она содержит два указателя о объект типа T.
Мы кастомным(или стандартным) аллокатором аллоцировали память под неё.
Конструктор мы не вызывали, то есть она в каком-то смысле неинициализирована.
Мы можем взять указатели на все её поля, записать в них что надо и затем пользоваться структурой как будто бы она инициализирована?
Я делаю просто свой лист и мне охота allocate делать структуры, а construct объекта типа T внутри неё.
Потому что иначе мне надо у ноды делать разные конструкторы и в них как-то прокидывать набор аргументов для конструктора объекта T (в логике emplace_back)
Читаю сорсы стд и там так и делают. Нода аллоцируется генНоде методом. У ноды нет конструкторов но есть метод гетВалПтр который достает указатель на значение.
И констракт делается уже по указателю на значение
А что за гварды я не понимаю, и возможно тут и проблема.
Есть камера с нее считываются raw кадры с частотой 40фпс. Я с считываю с помощью опенсв и запихиваю в QImage. Т.к считываются кадры в отдельном потоке на гуй передаю сигналом QImage и вывожу на обычный qlabel. Получается мало кадров, на вскидку меньше 20.
Как вообще с видео работают в qt? Может кидать кадры в какой-нибудь буффер, а потом из буфера по таймеру ImageLabel->setPixmap ?
Так это не вызов, это прототип функции с реализацией ниже скорее всего.
Где брать задачи по C++ , только без хуйни по типу codewars and leetcode.
Мне нужен конкретно задачник по каждой теме, ибо хочу усваивать материал лучше.
да есть clion называется
ооп решал средне, но как-то решал, но дойдя до задачек с файлами впадаю в состояние тряски.
если уж я это не могу решить, то я так понимаю, что не стоит дальше вкативаться в плюсы?
нормально ли что я не могу это решить или нет аноны?
В плюсы вкатываться однозначно стоит. С++ - своеобразый лингва-франка от мира программирования сейчас, сменяя на этой роли классический си. Хотите описать алгоритм так, чтобы его поняли 90% хоть немного углубленных в эту сферу людей - пишите на плюсах.
Это не математика, где нужны способности,чтобы решить задачу.Тут ежели не можешь - верный путь в учебники, а из них в разборы реализаций функций std для вашей системы. При достойном уровне понимания механизма работы вашего кода, последний сам складывается. Просто учить содержимое стандартной библиотеки, без понимания процессов есть очень странное решение.
Почитайте про fstream, изучите,как он работает на вашей винде(что-то мне подсказывает,что у вас именно она), и сможете решать подобное не особенно задумываясь о составных частях алгоритма,думая лишь о нем в целости - о маштабируемости, об оптимизации.
Я в вас верю.У вас все получитсяss
> Хотите описать алгоритм так, чтобы его поняли 90% хоть немного углубленных в эту сферу людей - пишите на плюсах.
Прикалываешься?
1920x1080, 1:35
исходник iostream https://pastebin.com/XyvFywV1
исходник ostream https://pastebin.com/rqezWtaX
сейчас заметил что программа выполняется корректно только в msys среде, где я собственно и ставил clang. переменные сред все указаны в винде (на прошлом видео видно как программа компилируется успешно из под cmd).
давно помню аналогично через msys ставил clang 11.0 версии, так же компилировал и запускал из под винды, все работало ок. сейчас хз в чем дело...
и я 100% такую хуйню не делал, как на 1 пике. я полностью работал из под command promt винды 10
>>771129
>>771144
блядь пиздец... оказывается у меня было 2 дллки libstdc++-6.dll в переменной среде PATH:
C:\Program Files\Git\mingw64\bin\libstdc++-6.dll
C:\msys64\mingw64\bin\libstdc++-6.dll
и судя по всему при каждом запуске программы из под cmd, она обращался к гитовской, которая не работала как надо. я удалил ее из PATH, запустил свой хелоу ворлд из cmd и все заработало. но это хуйня какая-то костыльная выходит. как это нормально теперь решить?
Утрированный пример: вот есть у меня массив, и я хочу сделать к нему ArrayView, который внутри указатель на массив хранит и определяет operator[], чтобы я мог к массиву обращаться по индексу. Я хочу иметь возможность:
- сделать ArrayView от обычного массива, тогда [] возвращает обычную или const ссылку
- сделать неизменяемый ArrayView от const массива, тогда [] возвращает const ссылку
- использовать обычный ArrayView везде, где можно использовать const ArrayView, в том числе и по ссылке
- не дублировать код, а то вдруг [] имеет сложную реализацию
Я сделал несколько вариантов, но успеха так и не добился. А еще они воняют.
Допустим, а как иерархию const -> mutable организовать?
Можно конечно делать reinterpret_cast тк поля все равно одинаковые, но этож вроде как не хорошо и не по сиплюсплюсному
это троллинг тупостью? хотя чего это я вообще, тред дохлый, не удивительно
давай, хуйня, расскажешь мне где ваша последняя помойка. бездарности на перекатах
нет, смотри, я тебе разобраться помогу. реальность такова, что ты даун 20 айкушный, и не понял для чего принтф был использован. а так же ты тред перекатывать не умеешь, не обосравшись. вот это реальность. пиздец, чет тебя аж даже жаль стало. представляю как тебе хуево живется. ну ты голову не опускай главное, может еще выйдешь в люди
А вот и шиза + проекции пошли
Как мне сделать swap строк таблицы? Мне нужно двигать строки вверх вниз.
В Qt нет готового swap ни для QVector, ни для QTableWidget. Когда сам попробовал вручную менять местами содержимое строк, начало вылетать с segmentation fault хер пойми откуда, даже в стеке вызовов не показывает, откуда. И связано именно с cellWidget, когда я добавляю строчку, где cellWidget записывается в ячейку таблицы, то вылетает. А если закомментить строчку, то нет.
Это копия, сохраненная 22 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.