>>1765789 Если я инициализирую константу переменной, то я так понимаю у нее есть адрес и ограничение на дальнейшие присвоения "искусствены"и с помощью указателя можно изменить константу?
>>1765420 → И как это сделать? Там даже значений нет. Конструктор без аргументов в mat не работает. Что-то вроде vec x{} тоже не работает.
Вот слева то что я хочу написать, а справа то что приходится писать с жутким }}}}. Я могу отказаться от union в vec записав оператор индексирования как *((&x)+i), но в mat это невозможно, потому что мне нужно как поле .x типа vec, так и поле .xx типа float. Либо я могу отказаться от конструкторов, и писать _vec, который будет static-функцией возвращающий vec.
>>1765847 В книге, что я читаю приведена таблица функций для работы с символами строки. Например isalnum, isalpha, isdigit и тд. Они работают в любой кодировке?
Я ввожу дату в стандартный поток через cin и проверяю ее соответствует ли она определенному формату через условие: if (stream >> y && stream.ignore(1) && (stream >> m) && stream.ignore(1) && (stream >> d)) { что-то делаю} Но если у меня не соответствует формату, то как мне вывести то, что было введено вместо даты? Пробывал так: else if(stream>>s) {cout<< s;} , где s- это строка, но нихуя не работает.
>>1765859 Ну там кажется внизу табличка ASCII и функции для нее, так что наверное прав этот >>1765860 Вообще планируется поддержка юникода? В 20 стандарте что то есть об этом?
>>1765587 (OP) говнарь-пыхер стаж 4 года, бумер. Вчера начал учить си++ для того, чтоб уехать РАБотать в амазон через пару лет в какую-нибудь ёба-разработку нейросетей.
Пожелайте удачи, ебать.
алсо, a tour of c++ 2nd edition норм тема для новайсов?
>>1765587 (OP) Господа, мне нужно написать 10 строчек кода для пердуино (бесплатно), я попал по адресу? Сам я так-сяк могу в питон, а в этих ваших крестах не могу даже вменяемо оформить цикл не говоря уже о бесконечных expected ";" и "{" и variable is not declared in this scope иными словами я жестоко страдаю. Ну и если кто заинтересовался, то вкратце о проблеме. Есть датчик, который возвращает дистанцию в сантиметрах и есть некое relay, которое можно on/off. Мне нужно, что бы relay on на определенной дистанции обьекта до датчика, и оставалось таким вплоть до изменения этой дистанции, после чего переходило в режим off с задержкой в 2 минуты. Но если за 2 минуты обьект снова попадает в дистанцию, то задержка сбрасывается, и relay остается в on. Если тут таким не занимаются, скажите куда идти только не нахуй
>>1766146 Подумай об этом не со стороны своих эгоистичных замашек, а со стороны разработчиков компилятора и кучи других разработчиков под самые разные архитектуры, и всё станет понятно.
>>1766147 Иными словами, тебе нужно постоянно проверять дистанцию - и если дистанция подходящия, то нужно две минуты держать что-то включённым? > я попал по адресу? Вообще нет, но твоя задача в самом деле решается за три минуты, если иметь ардуину и настроенную ide под рукой с датчиком. Вот так вслепую - не напишу, потому что ардуину мучал час или около того. Что-то вроде такого, но это в самом деле пальцем в небо и нужно дописать опрос датчика: https://ideone.com/yBqOdx
>>1765958 бумер на связи. Потихоньку читаю книжульку. Сейчас вот разбираюсь с понятием nullptr, вроде бы, пока что как по маслу маспу идёт, но медленно.
Здравствуй, анон. Хуй знает, по адресу ли я, но мне нужен совет шарящих людей из мира с/с++ разработки. Коротко - я не знаю в какую сторону мне дальше двигаться. Получил инженерную вышку, устроился в эмбедед разработку контрол инженером, шарю в ТАУ и физике, построить элементарную 1d симуляцию вообще не проблема, умею в fem и cfd. Разработка в основном в симулинк, с автоматическим кодогенератором. Некоторые модули пишу вручную на С, типа adc или пвм модуляции. Так вот, то чем я занимаюсь - абсолютно унылая и хуево оплачиваемая дичь, потолок может 100к в ДС. Эти скиллы никому практически никогда не нужны. Два стула - вкат в С++ разработку эмбедед или околоэмбедед, ну или забить на всё выученное хуй и вкат в какой-то дата сайенс/машин лернинг. По первому стулу меня готовы почти мидлом брать. Уже потыкался по собеседованиям. По второму надо будет начинать с джуна. Буду благодарен за совет.
>>1766290 да я уже именно в Гермашку и перекатился и занимаюсь вышеописанной хуйней к сути моего поста это правда отношения не имеет. Разве что это огромный минус, так как то, чем я занимаюсь есть только 5/2 8 часов в неделю в офисе, в очень дорогих городах, где 3к€ разраба просто смешны. Кодинг же в отличии от инженерии достаточно гибкий, фрилансить или работать удалённо или работать на гелере можно откуда угодно за те же деньги. Но это лирическое отступление. У тебя есть опыт или знакомые в эмбедед с++ разработке?
Ситуация: некая программа построчно пишет данные в конец файла(всякие логи), нужно отлавливать момент записи и собственно сами логи, в какую сторону капать? Возможно проблема слишком легкая, но никогда с этим не сталкивался, максимум парсил готовые XML-ки
>>1766183 Это почему? Давай на конкретном примере. Сложение двух знаковых целых чисел с переполнением. Это потенциально практически каждое сложение интов. Какие ты тут хочешь ввести атрибуты? Как ты уберёшь тут UB? Кому станет от этого легче жить?
Сап, аноны. Пытаюсь сделать небольшую роуг-лайк игру. Какие либы/средства использовать для отображения карты? В джаве я юзаю Jframe для этого. Нужна карта, которая будет размечена на секции со своими символами/иконками. Что посоветуете?
>>1766549 Весь driver assisntent systems на плюсах, почти весь автономный драйв на плюсах, всевозможные драйвера, комуникации, инфотеймент и тд. Эмбедед это же не только диодиками мигать.
Есть вообще хоть какая-нибудь альтернатива винапи для нормального интерфейса уровня софта от майков? wxWidgets не поддерживает кучу фич винды, qt сам рисует интерфейс и он выглядит как инородное говно, WPF ущербный и опять же не может как винапи. Неужели нет нормальной абстракции винапи с поддержкой всех свежих фич DWM?
>>1766333 Это как раз очень простой пример. Если у тебя переполнение, то у тебя UB. А значит ты не проверил данные, и на выходе у тебя мусор. Проверять надо или в рантайме, или в компайл тайме, где ты явно указываешь гарантии что твои данные вписываются в диапазон. Например специальным типом данных, который точно может быть только от -5 до 5. Или контрактами. От этого станет легче жить вообще всем - и программистам, которым меньше ловить плавающих багов и уязвимостей. И пользователей, чьи самолеты перестанут втыкаться носом просто потому что компилятор что то там оптимизировал скрыто.
>>1766589 Электронику и то, как работает микропроцессор. Слова регистр, adc, dma, eeprom, spi не должны наводить ужас. В зависимости от отрасли еще и теорию автоматического управления, физику этц. Эмбедед эмбедеду рознь.
>>1766705 Оба варианта так себе, но иногда перформанс действительно важен, и тогда программу должен писать очень высококвалифицированный кодер, чтобы она была как можно менее некорректная.
>>1767288 Зачем? Аргумент и так rvalue. В std::move надо было бы оборачивать, если бы передавался lvavlue объект, созданный заранее вектор. Здесь фишка в том, что объект создается прямо в выражении. Поэтому вызывается обычный конструктор в обоих случаях, а не копирования и не перемещения.
Есть какой нибудь супер простой пример реализации Model/View в Qt для полных даунов? А то я Шлее почитал, кутевские мануалы почитал и все равно нихуя не ебу, как это все создавать. Чувствую себя полным дебилом.
>>1766196 Перенял идею с этой проги, сильно упростилась жизнь, спасибо еще раз. >>1766221 А там оказалось ничего интересного, восседают господа Таурины и обсуждают по сколько ножек должно быть у резистора.
Решил прокачать boost::hana и для этого думаю запилить библиотечку которая позволяет 1) сначала декларативно описать правила комбинации флагов 2) проверить в compile time произвольный набор флагов на корректность
>>1767938 Ну да. Берем один стандарт, другой, и делаем diff. И вывод суем в grep. По миллиону строк исходников. Так проекты на новые сипласпласы и переводят.
>>1765587 (OP) Сап, анон. Какой есть самый адекватный способ передачи произвольных контейнеров определенного типа в функции? Через итераторы? Можете привести пример?
>>1767837 stb-стайл - в стиле библиотек от Шона Баррета (https://github.com/nothings/stb). Вместо размножения inline функций в каждом месте, где ты инклюдишь либу, ты в одном файле подключаешь инклюдишь с макросом (например, STB_TRUETYPE_IMPLEMENTATION), который вставляет реализации, а в остальных файлах будут только сигнатуры функций. Хотя если писать на плюсах, то линкеру от этого будет ни холодно ни жарко по сравнению с нагрузками от тысяч шаблонов. Final Destination - старый мем про Smash Brothers
>>1768055 >Class object = Class(); Создание переменной object конструктором Class >Class object(); Объявление функции object, не принимающая параметров и возвращающая объект Class.
Это, наверное, одна из самых больших грабель новичков. Читай про most vexing parse. Отчасти ради этого и ввели синтаксис конструирования объектов через фигурные скобки: Class object{}; ведёт себя так, как интуитивно кажется.
>>1768069 >Объявление функции object, не принимающая параметров и возвращающая объект Class. А разве мы можем объявлять саму функцию в структурном блоке?... Я думал можно только указатель на неё.
>>1768078 Бля, точно, мы же пишем иногда перед main блоком хуиту навроде void pidor() main... void pidor() {} >>1768077 Спасибо вам всем большое кто отвечал мне, вы даже меня не обоссали, я удивлён.
Qt Creator мне каждый раз при новом проекте предлагает запилить деструктор для мейн класса. Но я его удаляю обычно, т.к. лень писать. Чем это чревато для моих программ?
Допустим, я наследую у абстрактного класса. в С++ Что будет, если я при переобъявлении методов этого абстрактного класса не напишу const override позади них?
>>1768527 if работает только внутри данной функции. Прикинь тебе все функции придется оборачивать в тонны if. Но вообще сейчас в сторону возврата туплы смотри. [result, error_code] = some_foo();
Как вкатиться джуном/стажером в москве? Уже год ищу хоть какую-нибудь работу, везде либо отказ, либо просто не отвечают. Даже на заводы и нии просился.
>>1768893 На крестах нет работы для джунов (есть только для обладателей связей). 99.9% работы на крестах в продакшене требуют знаний как минимум миддла, который почти синьор. С++ - худший ЯП для вката. Тебя могут пригласить на собес, если у тебя есть очень серьезные личные байтоебские проекты (своя ОС, свой игровой движок, компилятор, эмулятор процессора - нужное подчеркнуть), но если не повезет и в то же время у них будет собеседоваться пчел с 10-ью годами коммерческого опыта разРАБотки на крестах - тебя пошлют нахуй. Се ля ви.
>>1768979 > опыт разработки в Qt на С++ под Windows/Linux; > уверенные знания С++, STL > знания ООП.
> Должен иметь представление о разработке многопоточных сетевых приложений на C++ под Linux > Знать С++11, STL, metaprogramming, Atomic, POSIX API, IPC; > Знать фундаментальные структуры данных и алгоритмы; > В состоянии прочитать техническую документацию на английском языке.
>>1768944 Ещё хочу заметить, что лично у меня никогда не было чисто плюсовской работы, даже если в вакансии были только плюсы. Везде нужен был какой-нибудь ещё доп язык типа шарпов или питона. Мимопроходил
Скачал CodeBlocks, создал проект hello world, а он не может найти компилятор. Оказывается там была отдельная ссылка для скачивания CodeBlocks+MinGW.
Удалил, установил CodeBlocks с MinGW. Опять не находит компилятор. Видимо старые настройки остались. Попробовал прописать пути, но то ли я не все прописал, то ли неправильно прописал. Ничего не компилирует.
Все снес. Установил отдельно MinGW в c:\MinGW, отдельно чистый CodeBlocks. CodeBlocks его увидел. Собираю проект. >fatal error: wchar.h: No such file or directory Но этот файл есть в C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++\tr1 Почему он его не находит?
>>1769162 Почему каждый тупой уебан ставит этот ебучий кок-блокс, который нихуя не умеет и нихуя не работает, а потом ебется с ним в жопу, когда есть стандарт индустрии под винду - Вижуал Студия.
Она просто работает из коробки, поставь ее и не еби голову.
>>1769166 У меня стоит VS2019. Я захотел попробовать SFML, а там на сайте нет либ для этой студии (есть для 2013, 2015, 2017) и написано, что разные версии не совместимы. Была еще версия для кодеблокс, и я решил ее попробовать.
> Должен иметь представление о разработке многопоточных сетевых приложений на C++ под Linux > Знать С++11, STL, metaprogramming, Atomic, POSIX API, IPC; > Знать фундаментальные структуры данных и алгоритмы; > В состоянии прочитать техническую документацию на английском языке.
Ты тупой? Сам же написал. Ща бы вкатываясь в плюсы стремиться "знать" какую-нибудь хуйню типа метапрограмминга, а о сетях и многопоточке просто "иметь представление". Складывается такое ощущение, что ХР нагуглила базвордов и разместила это гавно не особо заморачиваясь согласованием с разрабами
Сап, есть один абстрактный класс, а в нем есть ЧВМ, возвращающей указатель на объект абстрактного класса (в моей задумке для возврата объектов классов-наследников). Но трабла в том, что VS пишет, что функция, помеченная override в классе-наследнике не переопределяет функцию класса-родителя. ЧЯДН?
>>1769498 Это иллюстрация просто была, точки с запятой на месте. >>1769514 Трабла оказалось, наоборот, в значении аргумента. У меня в родительском классе есть статическое перечисление, которое и является аргументом метода pidoras. Проблема в том была, что я не указывал полный путь к перечислению (имя базового класса::enum name)
>>1769498 Странно, что про точки с запятой ты написал, а про то, что ЧВМ с модификатором доступа private по-умолчанию (private не наследуется) ты не написал.
>>1769487 Ты возвращаешь ссылку, а не указатель. Так-то это работает, но задумка странная. Класс А абстрактный, ты не можешь создавать объекты этого класса. При этом в дочернем полиморфном классе ты возвращаешь ссылку на объект класса А, который ты не можешь создать (по сути, ты можешь из этой функции вернуть лишь ⚹this - ссылку на объект класса B, именно в данном контексте). Зачем - непонятно, объясни если не лень.
>>1769744 Так мне в данном методе и нужно вернуть объект класса B. Но полиморфность должна сохранится, поэтому я возвращаю ссылку на класс-родитель, указывающую на объект this.
>>1769850 Они и так низкооверхедные. Точнее зиро оверхедные. Да, когда исключение таки кидается, все это разматывание стека и деструкторы это очень медленно. Но похуй же, это нештатная по сути ситуация.
>>1769771 Анончик, возможно ли в модуле завести hrtimer с периодом, скажем, где-то 20-50 мкс? В обработчике собираюсь ногами дрыгать (нет, не колхозный ШИМ). Сильно ли это повлияет на производительность системы, смогу ли я юзать гуй (KDE/XFCE), сеть, HDMI с такими выкрутасами? Платформа - RPi Zero W, 1GHz, 1 ядро. С DMA в пролете, не смогу обеспечить нужную (пониженную) частоту реквестов.
>>1767549 > Зачем? Аргумент и так rvalue. Внутри функции rvalue считается как lvalue, и если предполагается дальнейшая передача, то нужно юзать std::move
Анон, прокомментируй, пожалуйста код. Недавно начал изучать кресты, пишу маленькую игру для ребенка, есть ощущение, что написал что то лишнее в коде, он работает, конечно, ощущение есть. Может использовать goto лучше чем do и while? Посоветуй еще, что делать с игрой дальше, как добавить туда кота, который будет бить рыцаря в случае правильного ответа и наоборот. Подойдет ли для этого Unreal? Что почитать на тему того, как добавить всякие красивые свистоперделки, чтобы весело было?
>>1770029 >В языке Cи (но не в C++) есть специальный макрос препроцессора с именем NULL, который определен как значение 0. Хоть он и не является частью языка C++, его использование достаточно распространено, и должно работать в каждом компиляторе С++:
>>1770034 А как сделать красивый и элегантный генератор случайных чисел в С++? Я нагуглил такое решение и допил его в меру своих знаний, подскажи, пожалуйста.
>>1770039 https://pastebin.com/X0aALMPB Покатит? Это только для интов, но общий посыл, думаю, ясен. В плюсах если дистрибьюшн для чисел с плавающей точкой, если тебе надо.
>>1770072 Наверное, пока слишком сложно для меня. Буду пытаться дальше. Мне понравилось то, что я нагуглил потому что я смог понять что происходит в коде, а тут некст левел, походу. Расскажите, пожалуйста, как из кода сделать веселую игру? Куда его прикручивать?
Поясните пожалуйста, зачем ему надо, чтобы метод name был обязательно const? Это я пытаюсь выводить в ячейку таблицы параметр объекта MyClass, который находится в QVector<MyClass> *storage. И еще такой вопрос заодно: почему если storage - указатель, то я не могу обращаться к содержимому вот так storage[1], storage[2] и т.д.? Приходится юзать storage->at().
>>1770226 >storage — тоже const Так как обращение к нему осуществляется через this, который pointer to const, так как на скрине const-qualified method.
Аноны, у меня получилось вызвать шаблонный инлайн метод из другого класса, который находится в другом translation unit. Как это блять возможно? Инлайн методы же доступны только в пределах одного cpp файла (1 translation unit), не? Оно должно давать undefined reference to yoba_method же вроже как..
>>1770239 Ну да. То есть если в сигнатуре метода написано const, то он все внутри метода зашкваривает const-ом? Пиздец... И что делать? Переделывать MyClass, чтобы там все методы были const?
>>1770240 >То есть если в сигнатуре метода написано const, то он все внутри метода зашкваривает const-ом? В этот как бы и смысл const-qualified метода.
>Переделывать MyClass, чтобы там все методы были const? Если метод не изменяет состояние класса, то он должен быть const.
>>1770263 На курсере есть от яндекса, я правда не знаю, насколько бесплатно. Ну т.е там есть триал на неделю кажется, но что потребуется после этой неделе не в курсе.
>>1770271 Браузеры (3.5 конторы по понятным причинам), мк, эмбедщину, хуйлоуд, тяжелый image processing, игры ААА класса. Короче, в основном байтоебство и performance-oriented софт
>>1770362 Нет, между 2 и 4 есть разница, вроде даже в стандарте прописана.
Не компилировалось скорее всего из-за incomplete type в каком-нибудь unique_ptr, которому нужно знать, как удалить объект уже в .h. Или хотя бы успокоиться знанием того, что этот деструктор где-то там объявлен
>>1770217 >И еще такой вопрос заодно: почему если storage - указатель, то я не могу обращаться к содержимому вот так storage[1], storage[2] и т.д.? Приходится юзать storage->at(). Потому что сторейдж указатель. Разыменуй указатель, и сможешь использовать скобки. (✱storage)[1]
>>1770270 Списали бабки после недели, пидорасы, нигде не написано про это, а тех поддержи как будто не существует, еле нашёл контакты и добился рефанда, т. к. тогда уже забросил. Ну а вообще, для вкатышей хороший курс.
>>1770494 и пользуясь случаем - как сделать тоже самое но чтобы срабатывало во время выброса исключения (а то тоже задалбливает по стеку вызовов искать где же сработало исключение)
>>1770494 Вообще-то assert() ставит брейкпойнт, только чуть выше по стеку. Попробуй вот это: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/assert-asserte-assert-expr-macros?view=vs-2019 >>1770495 > и пользуясь случаем - как сделать тоже самое но чтобы срабатывало во время выброса исключения (а то тоже задалбливает по стеку вызовов искать где же сработало исключение) В студии в окошке exceptions можно поставить галочки на исключения, которые хочешь ловить. Вроде называется "other exceptions not in this list"
>>1770271 >>1770277 Еще очень много говноформочек на Qt, которые по каким-то причинами необходимо запускать на десктопе, а не в вебе. Примерно 60% всех плюсовых вакансий, как мне показалось, это дрочево на qt и иногда mfc.
>>1770904 Тебе нужен виртуальный деструктор в классе, который является прародителем всех подклассов в данном древе наследования, иначе привет утечка памяти.
>>1771382 в foo - undefined behavior. Как он работает - никто не знает. в main UB нет, т.к. по стандарту оно может быть без return, будет implicit return 0
>>1771388 Потому что когда говорят "рандомный мусор", не имеют в виду что в компе миниатюрные гномики кидают игральные кубике. То есть мусор не рандомный. (отсюда и многие траблы с безопасностью, когда могут прочитать пароль из памяти через уязвимость) Лень вникать, но допустим так - на стеке выделили память под две переменные a и b. В функции они сравниваются, для этого одна из них загружается в регистр eax, и потом сравнивается со второй. Регистр eax же используется для возвращаемого значения, но в него перезаписывается 1234 только если if сработает.
>>1771399 Спасибо огромное. Ну я когда говорил "рандомный мусор" имел ввиду что будет что то похоже на с использование переменной без инициализации. Типо в ней содержится то, что кто то до этого в участок памяти, где переменная лежит записал.
Как создать массив списков? То есть массив первых элементов списков. Чтобы это сделать, нужно, чтобы размер типа данных массива и list совпадали, но используя list из std сделать массив списков у меня не получается.
>>1771382 Это UB, а поэтому компилятор может делать все что захочет. Попробуй для теста скомпилировать с оптимизациями (-O3), обычно UB клоунада начинается у хитрожопых оптимизирующих компиляторов. Такой хитрожопый компилятор спокойно может заменить вызов твоей функции на константу 1234. Так как на программиста возлагается обязаность недопускать UB в программе, компилятор в полном праве предпологать что в твоей программе нет UB, тоесть в функцию foo будет всегда передаваться два равных аргумента (иначе будет UB чего программист не должен допускать). А при равных аргументах функция всегда возвращает 1234 - тоесть ее вызов можно просто заменить на костанту ради оптимизации. Например GCC что-то подобное и делает, при максимальных оптимизцациях функция foo превращается в int foo(){return 1234;} https://godbolt.org/z/T6Mjr5 Без оптимизаций возвращается первый аргумент скорее всего из-за того что его помещают в eax регистр в надежде потом перезаписать на правильный результат. Но все зависит от компилятора.
>>1771422 Так (динамическая продолжительность хранения aka "в куче") или list<list<int>> hash; - автоматическая продолжительность хранения aka "на стеке". Автоматическая предпочтительней. Если нужна динамика - желательно использовать умные указатели.
>>1771427 Ее нет потому что ОПТИМИЗАЦИИ. Без оптимизаций GCC https://godbolt.org/z/bqjE1M действительно первый аргумент функции помещает в eax, а так как при неравных аргументах он не перезаписывается правильным результатом его и возвращает. Правда неясно зачем его помещать в eax, я в асемблере нихуя не разбираюсь.
>>1771435 он помещает не аршумент функции в eax, а возвращаемое значение из функции. По конвенции вызовов (во всех популярных так, не видел чтобы хоть в каком-то ABI было по-другому) в архитектуре x86 процедуры кладут возвращаемое значение в регистр eax.
Ребята, подхватил adware изредка открывающее страницу в браузере. Антивирус не может найти. Есть ли на винде 10 какое- нибудь логирование событий, кто открывал ссылку в браузере?
>>1770362 >я видел примеры кода, которые не компилировались, пока руками дефолтный деструктор не пропишешь А может быть такое, что абстрактные классы требуют наследования чисто с помощью деструктора?
>>1771435 Я имел в виду потому что такой инструкции в x86 (да и в arm вроде) не существует. Значение из переменной (расположенной в памяти) должно быть помещено в регистр, чтобы с ним могли проводиться операции типа сравнения (=вычитание с отбросом результата). Сравнить значение в памяти со значением в памяти невозможно. Можно только регистр с памятью, другим регистром, или с константой, указанной прямо в инструкции.
>>1771465 Учиться нужно по хорошим книгам, а не по движущимся картинкам для даунов. Сначала читаешь что-то базовое (Страуструпа), потом учишь наизусь Effective Modern C++, потом внимательно читаешь Concurency in Action.
>>1771645 А причем тут траленк? Ты же можешь объявить константную переменную типа std::string и присвоить ей результат функции, почему тогда компилятор не сможет вычислить эту функцию в компайл-тайме, сделать из выхлопа строковый литерал и инициализировать им строчку? Естественно, предполагается, что функция без побочных эффектов и не опирается на рантайм-данные.
Про выделение в куче нехуй пиздеть, ты неизбежно выделяешь память на стеке в процессе любых вычислений, например.
>>1771699 > ты неизбежно выделяешь память на стеке в процессе любых вычислений Во-первых, нет (при 2+3 никакой памяти не выделяется), во-вторых, стек это очень просто, он практически автоматом работает если у тебя вызов функций. При заходе в функцию выделяется нужное место под аргументы и локальные переменные, при выходе автоматически освобождается то же количество. Ничего никуда утечь не должно. При new же надо следить, а когда delete вызвали, а не используется ли после удаления, указатель на этот кусок кучи могут передать в другую функцию, там изменить содержимое, короче муть.
>>1772132 Nvim + правильный набор плагинов. Если ты сойбой-говноед, то сойблайм или вскод. Активация защиты против долбоебов: я знаю, что вышеперечисленное не IDE, но IDE не нужна в байтоебских проектах любой величины.
>>1772217 IDE это просто набор полезного функционала. Он может быть условно в виде "одной" софтины (vs) или комплекта из нескольких (терминал + vim + плагины)
>>1772217 >Когда не писал ни одного проекта больше тысячи строк Проиграл. Писал L1 гипервизор, тотал 70000 LoC в одно рыло, вообще никаких проблем. У тебя в 2к20 есть полный автокомплит, средства рефакторинга, профилирования, global jump, линтеры, полная семантическая подсветка, отладка, нахуя тебе IDE весом с твою мамку, анон? Для байтоебских, мать твою, проектов. Единственная причина юзать IDE - когда она наворочена разным говном типа шаблонов для автовысирания гуй-окошек, но в байтоёбщине это не требуетсяв 99% случаев.
>>1772220 >У тебя в 2к20 есть полный автокомплит, средства рефакторинга, профилирования, global jump, линтеры, полная семантическая подсветка, отладка, нахуя тебе IDE весом с твою мамку, анон? Ты сам написал только что, зачем мне IDE? Я не хочу собирать конструктор, я хочу, чтобы работало. Студия + решарпер - оп, всё работает.
Почему нельзя убрать часть обратной совместимости с C/Очень старыми версиями плюсов, но сделать условия для возможности переписать старый код под новый стандарт?
>>1772325 В class scope есть member function declaration (int ClassA::g()), но для неё не существует member function definition.
В global scope есть function definition (int g()) — читай "global function" или "free function". Эта функция никак не пересекается с декларацией, которая есть в class scope.
>>1772329 >Все варианты инициализации, все об указателях, конструкторах и тд. По перечисленному не так уж много нужно знать. А так — вряд ли конечно, но очень многие знают 90%, а этого достаточно.
>>1772315 Некоторые вещи депрекейтят и затем полностью исключают (auto, register, throws, auto_ptr, триграфы и кучу другого). Главное - чтобы можно было прямолинейно переписать код из старого стандарта в новый. А сильно ломать совместимость никто не хочет, ибо уже есть триллионы строк кода. Уже который год ведуться дискуссии по поводу "эпох" и std2, но там дохрена проблем, да и компиляторостроители не хотят поддерживать несколько сильно различающихся версий одного языка.
>>1772384 Да и вообще, плюсы не самое сложное что бывает на свете. Есть монстры, знающие наизусть Евгения Онегина или там Гомера. Ну или на худой конец ещё какая нибудь ошеломительная память у них. Ещё вот попробуй разберись в математических книжечках каких. Матанчик там, линалчик, функанчик. Как по мне - куда жестче этих сраных плюсов.
>>1772220 Да пиши в виме, никто не запрещает. У меня на работе дрова в студии лепят, удобно. Одной кнопкой билдишь, другой дебажишь, третьей выкатываешь в прод, ну итд.
>>1772566 вебмакака всегда будет зарабатывать больше тебя, анон. Если твоя цель вката в плюсы - это 300кк/наносек, то ты не по адресу. Веб-макакерство - деньги и смузихлебство. Кресты - душа.
>>1772329 >Скажите, есть ли в мире человек, который помнит все нюансы плюсов? Думаю, нет. Видел несколько раз как ключевые разрабы GCC и Clang не помнили относительно простых вещей. Думаю, у них память занята ньюансами парсинга ~ в шаблонах.
Как-нибудь можно превратить parameter pack 'ts' в non-type template parameters если все значения известны в compile time? В данном случае на пике ошибка компиляции
Скажите, нужно ли запоминать например как писать функцию, возвращающую другую? Я же по идее для знакомства прочитал как, если понадобится загуглю или просто напишу auto
>>1773062 Ты можешь присваивать массив символов в std::string, там закулисами перегружены оператор =, (), через uniform initialization офк тоже можно, но это уже не присваивание, а инициализация. Отсюда вытекает, что можно слать в функцию, которая принимает std::string, сырой массив символов, вызываемая функция примет это, как std::string. То бишь,
>>1773062 Имей в виду что с-строка в памяти хранится как \0-терминированная, т.е. 'h' 'e' 'l' 'l' '\0' Но string_view может указывать на середину строки, и вернуть что то вроде 'h' 'e' 'l', т.е. работать с этим char* полноценно ты не сможешь, т.к. функции типа strlen будут ждать \0 в конце.
>>1773074 Тут про string_view вопрос, Он внутри хранит указатель на строку char (как я понял). Он не создает строку, у него вообще нет операций выделения памяти (типа умный указатель на строки?).
Но если я передаю "hello" в функцию - разве это "hello" не создается локально на время жизни функции и не удаляется по завершению функции Foo2? Если да, что тогда вернет return? Это UB? Если нет - как это работает?
>>1773084 В таком виде как ты написал - нет, литерал строки будет записан в static storage, т.е. секцию .data. На него ничего больше не будет выделяться, все уже выделено линковщиком 1 раз.
>>1773084 >Но если я передаю "hello" в функцию - разве это "hello" не создается локально на время жизни функции и не удаляется по завершению функции Foo2?
string_view все равно, оно хранит указатель, а валидный он или нет - твои проблемы
Как быть, если у меня есть класс A у которого есть класс мембер в виду указателя на объект класса В и я хочу использовать умные указатели? Я пришел к выводу, что если хочу, допустим, аллоцировать память для указателя на объект В во время вызова конструктора класса А, а пото деаллоцировать память во время вызова деструктора, то мне приходится использовать сырой указатель для этого. Я не то чтобы против, у меня первый ЯП См и я привык работать с сырой памятью, но в плюсах хочется обмазываться фичами плюсов все же. Например:
class A {
public: A() { ptr = new B(); } ~A() { if (ptr) { delete ptr; } }
private: B⚹ ptr; };
Здесь все предельно ясно - указатель на объект класса В аллоцируется при вызове конструктора класса А и деаллоцируется при вызове деструктора класса А. Лайфтайм указателя на объект класса В равен лайфтайму объекта класса А (при условии, что этот указатель не освобождали в одном из методов класса А, естественно). Как провернуть такое же, но с умными указателями? Или в таком случае лучше юзать сырые указатели и не ебать себе мозги? Заранее благодарю.
Cап, крестач, нужна помощь. Как можно сделать систему регистрации в быдлокоде? Задание моего проекта заключается в том, что нужно создать прогррамму, имитирующую работу сети ресторанов быстрого питания шаурмечных. Нужно сделать учетки для директора сети, и так сказатб менеджера каждого ресторана. Что я должен сделать? Мысли на тему у меня есть, но думаю, что пргограммисты с двача знают что - нибудь лучше
Есть мнение, что юник_птр на самом деле не нужен, ибо создаёт только лишние трудности, и для всего достаточно шаред_птр. А все идеи про "владение" - сектантство.
>>1773508 >>1773511 >>1773539 Ок, вы меня убедили. Просто после высокоуровневых языков со сборкой мусора хочется иметь единый универсальный способ управления ресурсами, но видимо не судьба :(
>>1773546 >>1773543 Да вы заебали ныть. uint64_t или void - это всё что нужно. Ну ещё char для байтоёбства. Память через malloc выделяем для массивов или структур. Типы вообще придумали инвалиды с IQ 60. Какая-то ненужная хуита. Лямбды, классы, корутины - нахуя? Или вот, вспомнил смешную хуйню - шаблоны. Это когда у тебя есть типы, но они мешаются...
>>1773546 У меня продакшена на плюсах нет, только пет-проекты в свободное время. Вообще, да, почти всегда хватает ссылок, RVO и прочего, но некоторые конструкции у меня иногда вызывают сомнения.
Ебусь с передачей данных между виндовыми процессами. Это программа Parent. Как теперь строку "Hello, my son!" принять в Child? Нихуя не пойму, что писать. А вот этот код я тупо скопипастил, поправив кое-что вызывавшее ошибку. http://www.cpp.sh/4ltcc
Поясните вкратце, визуальная уебищность программ на Qt является следствием лени и/или отсутствия чувства стиля у программистов, или платформа в принципе не позволяет делать годный интерфейс?
Один красивый скриншот богатого интерфейса на Qt будет лучше тысячи слов.
>>1773694 А как ты хочешь чтобы оно работало везде и сразу? Тут либо тащить бровзер (тебе же нравятся красивые программки на электроне выедающие треть цпу и 1 гб оперативки?) либо по костылику собирать вот такую еботину, которая кое как, но таки работает везде и быстро, лол.
Короче, хочешь красоту и чтобы не лагало — пиши на технологиях вендоров для каждой платформы свой код.
>отсутствия чувства стиля у программистов Частично конечно вот это.
>>1773698 Слушай, я в сях и юниксах мимокрок, поэтому весьма условно понимаю что ты говоришь.
Вот конкретный пример раз (пикрил 1): здесь слева, в навигации, можно (нужно) было поставить условный MinLength или .FixedPanel. Это кодер его не поставил или ферйморк не возволяет?
Кокретный пример два (пикрил 2): слева, в навигации, используется очевидно не подходящий по контексту контрол. Это от безрыбья или от вкусов пограммиста? И еще, эти гигантские отступы от иконок, это уебок-программист, или кутэ по-другому и не позволила бы сделать?
И еще один пример, который лично меня заебывает больше всего: комбобоксы в Qt-программах всегда позволяют редактировать содержащиеся в них элементы (или текст комбобокса, уж не знаю как там в кутэ). Это происходит даже тогда, когда по контексту список выбираемых элементов конечен и сами элементы неизменны (в том же WinForms это "стиль" DropDownList, пикрил 3). Я встречал это стопиццот раз, но ни разу не наблюдал фиксированного комбобокса. Его не существует в природе или кодеры говноеды?
>>1773704 >Это кодер его не поставил или ферйморк не возволяет? Скорее всего поставил, просто он может где-то и не работать — это же кроссплатформа, в Qt постоянно нихуя нормально не работает, кек.
>Это от безрыбья или от вкусов пограммиста? Это от вкусов программиста, как и >эти гигантские отступы от иконок зумерок. Эпол не так-то и давно всех анально прищучил к гайдлайнам и приучил везде пускать дизайнеров вперёд через мобилки, ещё лет 10 назад это был бы отличный по юзабилити и дизайну интерфейс, погугли что лепили в эпоху XP и Winamp.
>Его не существует в природе или кодеры говноеды? Или. Ещё раз, пчел — десктопный софт находится в полумёртвом состоянии не развивается уже больше десятилетия (даже проф софтины — поголовно говнины говн, наращивают фичи но чтобы ими пользоваться надо нахуй вышку по ним получать), то, что на мобилках и в вебе ускакали на столетия вперёд тут никого не колышит. Я вот например ничего страшного в этих пикчах не вижу, потому что застал кое что похуже.
>>1773694 У DevMachines есть куча стилей для qt. Ещё если ты не скопировал папку styles, то будет что-то вроде вин95. для меня лучшая программа на qt - это qbittorrent
> десктопный софт находится в полумёртвом состоянии не развивается уже больше десятилетия
Ты ебанутый, блядь.
>>1773708 >qbittorrent О, а он виндовый ну кутэ?! Ох нихуя! Ну тогда вопрос к кутэ закрыт, хуле я тут соплю жую. Двойных пиздюлей авторам всей той еболы, что я выложил пикрилами.
> Ещё если ты не скопировал папку styles А это че? Они на этапе вступления и компеляции подсасываются или конечный пользователь может их скомпелированной софтине подкладывать и вертеть ее представления согласно собственным представлениям?
>>1773711 >Ты ебанутый, блядь. Ну ты сейчас берёшь и показываешь живой софт широкого назначения, а не профессиональный софт который юзают в лучшем случае 5% от общей массы. Да и тот в плане интерфейса мёртв, только на маках красивые свистоперделки делают.
>>1773717 >Ну ты сейчас берёшь и показываешь живой софт широкого назначения, а не профессиональный софт который юзают в лучшем случае 5% от общей массы.
Бля. Столько хуйни в одном предложении, пиздец. Во-первых, венда - это все еще десктопное приложение. Это детский мат в один ход тебе. Во-вторых, неси-ка пруфы про "5% от массы", потому что это пиздежом попахивает. Как принесешь, сразу станет понятно, что такое "профессиональный софт", что такое "софт широкого назначения" (лол) и насколько можно доверять методике подсчета. В-третьих, даже если "софт широкого назначения" составляет "мало процентов" от "общего количества софта" (разрабатываемого? эксплуатируемого? поддерживаемого? Хуй знает, но ПРОЦЕНТОВ МАЛО Я СКОЗАЛ), это не значит, что развитие десктопа остановилось. Шапку посмотри, там один WPF твои домыслы опровергает на раз-два датой свежего релиза и спискотой допилов.
>>1773711 > А это че? Честно говоря не знаю наверняка, но вроде по умолчанию идёт попытка загрузить тот самый стиль из папки styles, если не удалось, то fallback до win95. Можно и текстом задавать стиль, вроде setStyle("fusion")
Оказывается, родительский процесс тупо ничего не отправляет на стандартный ввод дочернего. Помоги, анон, студенту. Что тут не так? http://www.cpp.sh/2hzyq
>>1773729 Поддержка юникода в ШИНДОВС. Когда у тебя определен дефайн __UNICODE, CreateProcess (а это макрос, шоб ты знал) разворачивается в CreateProcessW, а _T("xxx") в L"xxx". А когда дефайн не определен, CreateProcess разворачивается в CreateProcessA, a _T("xxx") просто в "xxx". И так большинство функций имеют две версии _A и _W, принимающие сhar и wchar_t соответственно.
Давай так, я сделал чтобы этот мусор компилировался. Но это все настолько ужасно и неправильно, и не имеет отношение к нормальному сиплюсплюсу даже десятилетней давности.
И чето у меня очень большие сомнения про создание маппинга от INVALID_HANDLE_VALUE, но я виндовое IPC не трогал, мб это правильно.
>>1773758 Не уверен, где заканчивается C и начинается C++, но, наверное, мне следовало обратиться в C тред с вопросом по CreatePipe. Это всё вообще имеет отношение к плюсам?
>>1773761 Вообще все классическое виндовое апи - это чистый си. И судя по всему, ты проходишь какие-то очень старые говноуроки, которые учат сложным и очень специфичным понятиям (нахуя тебе IPC руками?).
Мало того, что тут отвратительный си, и мешанина из какой-то полной хуйни, типа io.h (легасевые куски какого-то закоса под POSIX?), так и сама лаба тебе не дает никакого понимания, что происходит, а просто говорит, делай так-то - будет волшебство.
Т.е. это реально полная хуйня, и учить так не надо. Сначала надо набить хорошую базу на самом языке, а потом уже пытаться пердолить предметную область, будь она систеным апи\графикой\сетью\любой хуйней.
>>1773762 щас бы laba5.cpp в продакшен запуливать. А вот русский юзернейм в винде - только лечение.
>>1773698 >пиши на технологиях вендоров Это на чем, на winapi и cocoa без лейаутов? >>1773694 Попробуй winapi, чтобы почувствовать разницу. Особенно если у тебя формы резайзиться должны. Все инструменты для создания красивого гуя без ебли в Qt есть (я не свистоперделки QML имею в виду).
>что такое "профессиональный софт" Софт, юзаемый для создания чего либо и прочей проф. деятельности, эти самый "креэйторы".
>что такое "софт широкого назначения" Софт, который юзают обычные человеки, потребители.
>Хуй знает, но ПРОЦЕНТОВ МАЛО Я СКОЗАЛ Если бы было НЕ МАЛО, твой труд стоил бы как труд студентика-юриста в нулевых и начале десятых, и ты бы кряхтел в подвале за 10к.
>В-третьих, даже если "софт широкого назначения" составляет "мало процентов" от "общего количества софта" Не мало, а ничтожно мало. В общем-то, своим постом ты показал свой кругозор — ты программист и видишь вокруг только таких же гиков — значит врёти. Помочь достать голову из ануса я тебе не смогу, извини.
> Шапку посмотри, там один WPF Его там нет.
>твои домыслы опровергает на раз-два датой свежего релиза и спискотой допилов. Ещё раз, читай что я написал >>1773717 >в плане интерфейса мёртв ты возможно не увидел слова > интерфейса но я тебе могу объяснить: возьми свои WPF, и смотри на zbrush/photoshop/visual studio/3ds max/unreal engine(всмысле, редактор)/unity/qt creator/что угодно. Единственное, что изменилось в некоторых за последние годы (если не десятилетие) — добавилось свистуличек, и теперь там красивые иконочки, а юзабилити на уровне нулевых так и осталось. А теперь посмотри на веб/мобилки, и сравни прогресс. Тащемта, если 2 десятилетия стагнации — это не смерть, то хз что это.
>>1773720 Ок, пчел, вот поясни мне — чем эти скрины принципиально отличаются от того, что было лет так 10-15 назад? Тем, что всё свистит, пердит и выглядит в лучших традициях винампа, но с красивыми хуй-рез иконочками с тенями, а не пикчами 16x16 и квадратиками?
>>1773966 > >что такое "профессиональный софт" > Софт, юзаемый для создания чего либо и прочей проф. деятельности, эти самый "креэйторы". Тик ток это профессиональный софт, ясно.
>>1773846 >Это на чем, на winapi и cocoa без лейаутов? Cocoa адекватно сравнивать разве что с WPF, который и есть подход вендора к созданию гуя, но точно не с винапи. Там есть и лэйаут, и визуальный редактор, и куча контролов на все случаи жизни с возможностью кастомизаций/анимаций/ебли в ухо и всем чем тебе надо.
>Попробуй winapi, чтобы почувствовать разницу. Он на момент выхода XP уже не был главным вендор-веем, уже были и MFC и тонны прочей говнины от M$.
>>1773990 А я говорил о интерфейсах десктопных приложений, и ты ответил на пост про интерфейсы.
>>1773985 Ну да, можно и пеинт туда записать, мемы-то тоже делает пару процентов от общей массы. Только вот на десктопе-то нихуя кроме такого софта не осталось, разве что игры, и те сплошная кроссплатформа.
>>1774006 >А я говорил о интерфейсах десктопных приложений, и ты ответил на пост про интерфейсы. Нет, ты говорил о том что десктопные приложения мертвы. Игры не мертвы => десктоп не мертв.
>>1774010 >Нет, ты говорил о том что десктопные приложения мертвы Ну давай восстановим хронологию: >>1773707 >Ещё раз, пчел — десктопный софт находится в полумёртвом состоянии не развивается уже больше десятилетия (даже проф софтины — поголовно говнины говн, наращивают фичи но чтобы ими пользоваться надо нахуй вышку по ним получать) Перевожу: интерфейс мёртв.
>>1773717 >Да и тот в плане интерфейса мёртв, только на маках красивые свистоперделки делают. Перевожу: интерфейс мёртв.
>Игры не мертвы => десктоп не мертв. Во первых, это и не десктопные приложения. Ведьмака на свитче запустили, который вроде как мобильная консоль, теперь это что? Во вторых, из твоего вывода следует, что игры на мобилках и консолях не мертвы => пека не мертво. Справедливо, чо.
>>1774100 С Qt надо сравнивать вот этот самый >>1774038>>1774005 WPF, а MFC уже мёртв лет 15. >Да я уже позабыл все это говнище, как страшный сон Забыл то, чего в глаза не видывал, зумер?
>>1774169 Потому что 99% софта в то время делалось только для америки и американцев,отголоски этого до сих пор слышны в иррациональных страхах типа этого >>1773764 >А вот русский юзернейм в винде - только лечение.
>>1774315 Так ведь до сих пор встречается ситуация, когда какая-нибудь залупа отказывается работать из-за того что в каком-то там пути кириллица, или пробел, или конкретно символ 'я' (реальная история, я не тролль), или сам путь длиннее 254 символов.
>>1774552 Ха ха, у меня так emscripten однажды умер. Хотя если подумать, то не только он - еще сборка какой то прошивки. Пришлось творить адову хуйню типа переименовать все папочки чтобы путь был C:\M\N\P\fucking_long_file_name.cpp
Как кастовать QVariant в QImage? QVariant MyModel::data(const QModelIndex &index, int role) const у меня при DecorationRole возвращает QImage. Хотел запилить делегата, пишу значит index.data(Qt::DecorationRole), но index.data() то возвращает QVariant, сука. qobject_cast не сработает, т.к. QImage - это не QObject. Другие касты боюсь использовать. Как быть?
я начинаю путать инициализацию через () и просто через присваивание. Почему в конструкторе (), а не =? НУ а о всяких {} я молчу. КАк разобраться в этом?
>>1774676 При инициализации нового объекта копией вызывается конструктор копирования. (Или обычный конструктор, если применяется пропуск копии.) При замене существующего объекта новым вызывается оператор присваивания.
>>1774676 Шо тут сложного то? > Почему в конструкторе () Ну так придумали. Типа "безымянная" функция с именем класса. MyClass() >просто через присваивание Если ты напишешь MyClass obj() то ты создаешь объект конструктором. Если ты напишешь MyClass obj = MyClass() то ты сначала создашь (безымянный) объект, а потом присвоишь его переменной obj. Как написал анон, умные компиляторы сейчас выкинут этот лишний шаг. >о всяких {} То что MyClass() подозрительно похож на функцию, создало некоторые проблемы. Можно перепутать с объявлением или вызовом функции. MyClass {} работает почти так же.
>>1774703 > Ну так придумали. Типа "безымянная" функция с именем класса. MyClass() Я про инициализацию членов класса после двоеточия. > Если ты напишешь MyClass obj() то ты создаешь объект конструктором. > Если ты напишешь MyClass obj = MyClass() то ты сначала создашь (безымянный) объект, а потом присвоишь его переменной obj. Как написал анон, умные компиляторы сейчас выкинут этот лишний шаг. А просто MyClass obj не вызывает конструктор? > То что MyClass() подозрительно похож на функцию, создало некоторые проблемы. Можно перепутать с объявлением или вызовом функции. MyClass {} работает почти так же. Если почти также, то в чем смысл два разных знака делать?
>>1774710 Во втором случае создается объект 2, а потом он копируется. В случае примитивов ничего, но при объектах это могут быть лишние телодвижения. >>1774708 >Я про инициализацию членов класса после двоеточия. Не очень понял тебя. >Если почти также, то в чем смысл два разных знака делать? Чтобы убрать путаницу и неоднозначность, которая была со скобками.
>>1774729 У меня есть задача, которую я хочу сделать. Для нее нужен буст. Я открыл доку и понял, что не понимаю код. Начал читать липпмана. Потом прочту про многопоточность
Почему мой делегат не выводится в QTableView? Хочу, чтобы в ячейках таблицы выводились комбобоксы. Попытался по этому примеру сделать https://wiki.qt.io/Combo_Boxes_in_Item_Views, но что то не получается. Делегат добавляю вот так: MyModel model; QTableView view; MyComboBoxItemDelegate *myDelegate = new MyComboBoxItemDelegate(&view); view.setItemDelegateForColumn(2, myDelegate); view.setModel(&model); view.show();
>>1775462 Блять что за пиздец этот ваш qt и вообще ООП. В два раза больше ненужных строчек, выделение памяти под объекты, которые через 10 строк кода уже не нужны и прочая срань. Про читаемость вообще молчу. Вот другое дело процедурный стиль, когда каждая строчка - какое-то действие, которое из названия понятно.
>>1775489 Я не особый спец, но мне кажется, что ооп придумали, чтобы приложения можно было писать командой, а процедурный стиль годится только для одиночек.
>>1775492 Да, но когда кодишь соло, то от ООПа глаза вытекают и аж трясёт. Как будто специально сидели и придумывали как усложнить тебе жизнь. Пусть это в энтерпрайзе варится, обычным смертным-то зачем это высерать?
>>1775505 Ну не сказал бы, что усложняет. Оконное приложение на Qt довольно удобно пилить. А процедурно как его пилить? Через Win32API и всякие хэндлеры? По моему это еще сложнее и трудночитаемее.
>>1775462 Ну так что я все таки сделал не так? В MyComboBoxItemDelegate я определил методы createEditor(), setEditorData() и setModelData(). Может еще какой то метод надо определить, чтобы при вызове view.setItemDelegateForColumn(2, myDelegate) делегат стал отображаться в ячейке таблицы?
>>1775489 Приведи пример такой нечитаемости, желательно с пикрилом. ООП призван упростить разработку крупных проектов, и он реально упрощает. Я участвовал в проекте на 18 млн. LoC и без ООП там был бы просто ад ебаный. Даже в ядре Линукса, которое на чистых сях, есть овердохуя костыльных ООП конструкций. Костыльных - потому что в Си нет родного ООП и надо дрочить вприсядку, чтобы код хоть как-то был структурирован, а не напоминал один сплошной процедурный чиркаш, который невозможно ни мейнтейнить, ни отлаживать, ни вменяемо разбивать на модули.
Говнокодерскую маньку можно спалить по этим двум вещам: - дрочка вприсядку на паттерны ради паттернов (карго-культ). AbstractHelloWorldConsoleOutputPrinterFactoryFactory, сука. - тотальная ненависть к ООП
По сути причина одна и та же - неумение в декомпозицию и осознанное использование инструментов ООП, из-за которого его инструменты только усложняют работу и вносят неразбериху, вместо того, чтобы все структурировать, упрощать и уменьшать связность.
>>1775489 Просто ты школьник-неосилятор ебаный, и я рекомендую тебе просто прикрыть свою пасть и перестать тявкать. >>1775492 >>1775505 Процедурный стиль годится только для говнокода, или для мелких-мелких скриптов, или для микроконтроллеров, в которых тесно, как в сортире и даже на передаче this экономят место. И то, даже там бывает все же выгоднее использовать классы.
>>1775462 Нахуй тебе их недоMVC? Он же всратый, как говно, там даже размер колонок у QTableView нельзя настроить в модели, насколько я помню, и приходится дописывать свои велосипеды, или вообще слать нахуй эту парашу и пилить свой MVC. а лучше MVVM
>>1776180 > some of the C features we use may or may not be usable from C++ (statement expressions) Иронично но в С нет такой фичи (это нестандартное расширение языка), и он умудряется в соседних абзацах критиковать плюсовиков за то что они смеют писать на С++ в разных стилях.
Привет. Хочу начать учить С++ для Анрил Энжина по курсам от Udemi. Ну или по каким-то другим, если мне эти на зайдут, выбрать вроде есть из чего, не суть До этого писал некоторое количество кода в блокноте на AutoHotkey и в текстовом редакторе Линупса (каким бы он там не был) на Баше. В общем, я не хочу среду разработки здорового человека, типа Вижуал Студио или КЛион, я хочу себе околоблокнот, который не будет сам расставлять табуляцию, выделять ошибки и пытаться дописать за меня строку, типа вот такого: https://www.youtube.com/watch?v=F_dezRfdvg8 Если я начну учиться на таком - это инстафейл? Какую бы вы мне среду посоветовали под мои запросы? Или же вы посоветовали бы не выебываться и брать студию?
>>1778974 Да любой подойдет, если не будешь ставить плагины, у тебя будет только синтаксис подсвечиваться, никакого автокомплишена и проверки ошибок ни у какого редактора из коробки нету. Бери какой-нить сублим текст или нотпад++ и вперед, если хочешь конкретно заморочиться то вим из твоего видео, там он просто обвешан тонами плагинов уже.
Хотя если тебе будет нужно работать именно с анрилом и его кодовой базой, то скорее всего у тебя просто не будет выбора, там билд система скорее всего заморочена пиздец как, и без студии просто не обойтись новичку.