С юбилейным, сотым тредом нас, друзья-байтослесари!Вместо шапки:• https://github.com/sosachbot/cppthreadhat/wikiОтветы на вопросы:• https://en.cppreference.com/w/• https://www.cplusplus.com/reference/Прошлый тред:• >>1517305 (OP)
>>1526329Смотря на какую вакансию.https://hh.ru/vacancy/34625024 - Сюда сложноhttps://hh.ru/vacancy/34340415 - Сюда легко
>>1526333Мидлов не нанимали, конкретно крестовых.Глобальный ответ на твой вопрос - вкатиться проще, чем, например, в тот же яндекс. Но обязательное требование английского на вообще все вакансии.
>>1526334>Но обязательное требование английского на вообще все вакансии. Отвратительно.И как этот английский получить? Вот я лопух, что-то по английски могу сказать но понятия не имею какому уровню это соответствует и как этот уровень подтверждать.
>>1526346> И как этот английский получить?Вокруг миллоны школ\материала и прочей херни. Нужно только желание.Мы на собесе просто несколько минут общаемся на английском, если требование разговорного есть. Никаких бумажек и сертификатов никогда никто не спрашивал.
>>1526348>Никаких бумажек и сертификатов никогда никто не спрашивал.А, тогда нормально всё.Хотя такое, разговорный у меня в десять раз хуже письменного, потому что я только пишу или читаю. Произношение очень слабо соотносится с написанием, и знание написаний и значений всех слов очень посредственно помогает их правильно произносить/воспринимать на слух.
>>1526332Кинь несколько примерных вопросов с собеседования.ничегосе, в Москве есть офис нвидеа, я думал, что с началом кризиса иностранных контор стало меньшемимо из Киева
Ананасы, вопрос по смакеЕсть ли где-нибудь шаблоны этих файлов для проектов?Я имею ввиду мне лень каждый раз записывать в него всякие флаги компилятора, для дебаг, для релиз версии и тп
>>1526374То есть если я 25 годиков детина без опыта работы и вышки нормально пройду собес, то меня возьмут? Что прям реально никакой бюрократии, все открыто и прозрачно?
>>1526376Да. Но надо понимать, что на энтри-левельные позиции гигатонны желающих, и твое резюме будет максимально блекло смотрется на фоне всяких выпускников МГУ и прочих челиков, и тебя просто не позовут, т.к. нет времени собесить всех.Т.е. если ты без вышки но с релевантным опытом - это одно, но если вообще пустое резюме - то смысл тебя звать на собес?
Посоны, я придумал, как строки свич-кейсить. Короче, пишем хеш-функцию для строк constexpr, делаемswitch (strhash(s)) {case strhash("suka"): ...; break;case strhash("blyad"): ...; break;case strhash("nahui"): ...; break;}Свич будет считаться в рантайме, а кейсы заготовятся еще при компиляции, и любую коллизию прекрасно поймают правила switch-case. Охуенно, да?
>>1526385Само собой. С хорошей хеш-функцией скорее всего не будет, но если не повезло, то мне об этом расскажут, и я что-нибудь подменю, чтоб конкретно на мой набор легла удачная фаза луны. Было бы страшно, если бы компилятор при генерации таблицы прыжков несколько раз присваивал одному индексу разные метки в порядке повторения кейс-констант и не ругался, тихо оставляя таким образом последний из вариантов. UB нет, я об этом.
>>1526332Слушай, ну это дрочилово с C++ меня не интересует. Ты лучше скажи, есть ли у вас проекты на Java/Scala? Или вы все оверпрайснутыми видимокартами торгуете за 2 штуки баксов, у которых цепи питания гудят, ммм?!
>>1526380> хеш-функцию для строк constexprТеперь найди нормальную криптографическую функцию, которую можно написать c constexpr.
Повторю вопрос из прошлого тредаНа практике выдали задание,на стартовой форме приложения должно быть динамическое(подтягивать из БД) штатное расписание предприятия.Как это сделать?Думаю использовать tree view,но никак не могу найти код для его наполнения из БД.Проект пилю в Rad studio xe2
>>1526432Тебе нужен не программист с++, а программист использующий radstudio, чтобы ответить на этот вопрос. Я только делфи ковырял в radstudio. Заполняется tree view по идее тривиальным образом так же как и остальные "компоненты" - тебе нужно просто найти код, который откроет и считает значения из твоей бд.И из какой БД?Это зависит от формата твоей бд, которое никак из твоего поста не следует - соответственно никто тебе не сможет ответить. Например, если там csv-файл, то это очень просто сделать.
>>1526376твое пустое резюме не дойдет до технического специалистаты будешь "отфильтрован" девочкой-hr
Сап, есть строка string с числами: 1 2 3Как суммировать все числа строки и вывести сумму на экран? Именно string, тупо менять тип данных на int нельзя
>>1526647> stringstreamВот откуда ты это узнал? Почему этого нет в книге страуструпа, нет на сайтах и в видеоуроках?!Спасибо
>>1526663На стэковерфлоу когда-то подглядел, искал реализацию сплита строки по нужному символу(создаёшь со строки поток и делаешь getline).Мало ли, почему об этом не пишут, я сам в книгах и курсах не встречал, может, тяжёлая вещь слишком
>>1526688>может, тяжёлая вещь слишком Уж точно не тяжелее регулярки, которая сразу на ум приходит, если на коленке хуйню нужно сделать.
>>1526663У Страуструпа есть в его нубокнижке, у Липпмана тоже есть, он вообще люто топит за STL.Это сугубо библиотечное средство, соответственно искать надо в книжках конкретно по STL, а не в книжках по языку в целом или по совершенно другим узкоспециальным вопросам.
>>1526714Спасибо, Липпмана гляну. А у Страуструпа читаю пикрил>>1526688Делал так: stringstream ss;while(getline(myfile, numbers))cout << numbers;ss << numbers;int sum;ss >> sum;int result;result += sum;cout << result;counter++; ?
>>1527117Если нравятся кресты - то стоит. Первое время можно пердолить чистый С++ (как делают на курсере в Яндексовском курсе), а потом уже опустишься ниже на УКАЗАТЕЛИ и прочее си
>>1527121Я просто сейчас изучаю Java Core, потому что там КАДИЛО КРУТИТСЯ, ЛАВЭХА МУТИТСЯ и прочий энтерпрайз. Всё понимаю, но чувствую, что это не то, что я хочу. Поэтому хочу попробовать C++, но вот подумал, что батю С++(т.е. чистый СИ) надо знать хорошо перед изучением его.
>>1527126> чистый СИ) надо знать хорошо перед изучением егоВ любой более-менее нехалтурной книге о плюсах все необходимое из си всегда излагается.Если ты начнешь с чистого си, да еще так, чтобы >знать хорошорискуешь набраться вредных привычек или вообще до крестов никогда не добраться.С другой стороны, если ты уже осилишь какой-то курс по плюсам, то изучение сишечки вообще не составит особого труда + будешь понимать зачем тебе вообще эта сишка нужна.
>>1526322 (OP)Сап, двач. Вопрос к самураям Qt. Есть один QStackedWidget, в который засунут QSpinBox (вообще то реализация QAbstractSpinBox, но думаю, это не важно в данном случае). При вызове QStackedWidget::setCurrentIndex() происходит вызов QSpinBox::on_spinBox_editingFinished(), который обрабатывает сигнал QSpinBox::editingFinished(). Как отвязать on_spinBox_editingFinished() от setCurrentIndex()? Можно, конечно, обложить blockSignals(), но это кажется не очень элегантным решением (при каждом вызове setCurrentIndex() создавать QSignalBlocker это такое). Я попробовал что-то типа disconnect(ui->spinBox, SIGNAL(editingFinished()), ui->stackedWidget, SLOT(setCurrentIndex(int))), но нихуя не произошло.Ну и вообще, как сделать так, чтобы при вызове определенных методов не вызывались определенные обработчики?
>>1527156>QSpinBox::on_spinBox_editingFinished()Ошибочка, это слот не QSpinBox, а MainWindow. Попробую его и отсоединить от StackedWidget, мб получится.
>>1527081Возьмем сферического идеального джуна в вакууме. Как он выглядит в 2019 году? Какими навыками должен обладать?
Как в qt сделать, чтобы кнопка при наведении двигалась в противоположную от стрелки сторону? Как было например в веселой ферме.
>>1527284закончить бакалавриат по специальности связанной с программированием, быть мотивированным на то что закончит и магистратуру (совмещая с первой работой)знать базовые структуры и алгоритмы; чтобы было хотя бы задач 300 сделано на любой из компитив платформэээ, все?
>>1527648>чтобы было хотя бы задач 300 сделано на любой из компитив платформ300 хэллоувордов и lab4 тебе ничего не дадут, кроме ложной уверенности в том, что ты что-то знаешь и умеешь.
>>1527673>что ты что-то знаешь и умеешьесли под знать и уметь ты подразумеваешь еблю с конкретным стеком, то да 300 решений на литкоде этого не дадут.
>>1527816Под знать и уметь подразумеваю разрабатывать софт. Задачки не про разработку софта, а про спортивный интерес. В этом нет ничего плохого, но не надо обманывать себя, типа ты становишься лучше как профессионал от того, что решаешь задачки. Для того, чтобы научиться плавать в реке Янцзы, нужно плавать в реке Янцзы.
>>1527853>чтобы научиться плавать в реке Янцзы, нужно плавать в реке Янцзыно научиться не тонуть можно и в бассейне
Пытаюсь кликнуть в открытое окно, не кликается. Для наглядности кликаю в пейнт. Что я делаю не так?PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(400, 256)). Функция возвращает 1, то есть ERROR_INVALID_FUNCTION
>>1527904нам нужен тред системного программирования отдельно походу. Это вообще не С++, но спросить да, более негде
>>1527923Я новичок в с++, но вообще да, куда еще нести свое говно насчет винапи.видимо придется отказаться от затеи не двигать курсор визуально, send/post message походу ни у кого вменяемо не работает
>>1527902Говно мамонта, актуальность ~30%Некоторые вопросы откровенно ёбнутые, некоторые чисто байтоёбские - я бы не пошёл в контору, где их спрашивают, некоторые просто устарели. Но кодер, который прошёл этот собес в 2007 сейчас либо ГОЛОВА, либо некрокодер
>>1527902Байтоебство я бы провалил, первые три вопроса осилил бы, потому-что интересовался, а -2 в двоичном хуй знает если бы дали 2 минуты покодить то сказал бы . По плюсам вопросы вполне адекватные и даже лёгкие. Математика для гейдева думаю вполне адекватное требование, а за ассемблер на джуна я хуй знает. В принципе статья так себе, уровня ищем гения за 10к. Надеюсь у них реально охуенные проекты, раз такие требования к новичкам, иначе я даже не знаю стоит ли оно того
>>1528036Сейчас долистал до комментов, автора статьи даже там обосрали с ног до головы оно и правильно, нанимать С++ джуна и не спрашивать практически нихуя по С++, зато ебать мозги байтоебством
>>1527902>N*log(N) в дереве, и почему оно так. Лолват>Почему float умножение быстрее чем целочисленное. Лолват. <После просмотра таблиц Агнера> Блин, и правда. Это потому что там экспоненты складываются, и собственно умножать нужно намного меньше бит?А так по всему кроме математики, думаю, процентов 90 бы ответил (знаю почти всё кроме устройства виртуальных функций и исключений. Я как-то года три назад запарывался по этому поводу, но у каждого тулчейна и платформы они свои, и поэтому забил). Математику ответил бы 50%.
>>1528046Внимательнее читай, это специально ошибочные вопросы, чтобы с толку сбить. Аля виртуальных конструкторов, только из другой области
>>1528046https://gcc.godbolt.org/z/qRJJk2Я не уверен, что вообще корректно это проверил, было бы хорошо, если кто-нибудь адекватный отреагировал.
>>1528036> Надеюсь у них реально охуенные проектыЕсли мне не изменяет память, то автор статьи из команды разработчиков mortal kombat. К моменту написания статьи они многие годы уже находились в глубокой жопе и гнали лютый треш.>>1527902Задроты ищут себе подобных, чтобы общаться на одном языке и, судя по всему, им это удается. А чужое горе - ну кого оно когда ебало?
>>1528072>то автор статьи из команды разработчиков mortal kombat. К моменту написания статьи они многие годы уже находились в глубокой жопе и гнали лютый треш.Бля в голос>арряяя джуны совсем обмельчали нихуя кадров нету>ну и похуй что требуем как от мидлов>ну и похуй что зарплаты низкие>ну и похуй что из-за личной неприязни не берем
>>1527902Прошёл всё по плюсам и половину по математике, остальное выглядит как бесполезное доёбство. Неудивительно, что комментаторы его обоссали
>>1528046>Блин, и правдаА, не, я жопой прочитал таблицу.MUL: Latency 3 Throughput 2FMUL (котоаря на x87): Latency 4 throughput 1
>>1528074Ну это уже ресентимент какой-то, ребят: если я не могу, то они не только пидоры и говноделы, но ещё и найти никого не могут.Чувак, если что, не МК делал, а работал (может быть, и работает, но лень смотреть) в Naughty Dog / ICE Team - можете погуглить, кто это такие, но на всякий случай выражу мнение, что в контексте вторых такие заёбы с требованиями вполне себе оправданные, хотя, конечно, и иррациональные именно в контексте собеседования.
>>1528097Джун в Ноти Дог это как сеньор в среднем по рынку, просто далеко не факт, что тот чувак собеседовал в контору настолько высокого уровня, а не в дженерик галеру. В первом случае такие завышенные требования более чем оправданы, во втором -- нет.
>>1528102Там не было "дженерик галер" на момент написания статьи.http://blog.gamedeff.com/?page_id=45По комментариям ты можешь понять, что статью писал Борис Баткин, который в две тысячи седьмом работал в ICE Team:https://www.mobygames.com/developer/sheet/view/developerId,53108/
>>1528097http://emirr.ru/emirr_people/72-lyudi-rossijskoj-igrovoj-industrii-boris-batkin.htmlДа, к МК он отношения не имеет, но в Midway все же работал.
>>1528105С этим не спорю, но это было уже не на момент написания статьи.Вообще же, если честно, я защищаю такие требования просто из-за того, что сам предпочту дрочить железо и предметную область, а не всякие модные нововведения плюсовых стандартов, на которые принято класть в геймдеве (по очевидным причинам, кстати).
>>1528106Потому что главный разраб когда-то в 96м году наткнулся на баг кодогенерации в Borland C++ Compiler при использовании неизвестно откуда скачанного STL и решил, что оно зло?
>>1528111STL не зло, но его банально не везде можно использовать - если ты не догадываешься, почему, то бог тебе судья, конечно.Также стоит учитывать, что не на всех целевых платформах всегда есть самые свежайшие компиляторы - сейчас ситуация исправляется, но об окончательной победе говорить рано.
>>1527673>>1527699а что не так?в альтернативной вселенной где я бы не забил на кодинг и на работу вообще и сейчас сидел бы тимлидом в какой-нибудь конторе, то если бы пришел джун с образованием по специальности (и при этом не проебывал все пары подряд), и который до этого задрочил задачек 250-300 на каком-нибудь литкоде или хаскерранке, то почему бы и не взять?
>>1526357> Кинь несколько примерных вопросов с собеседования.Есть два компилятора. За какой сам сядешь, а за какой Страуструпа посадишь?
>>1528119300 задачек -- это странный критерий, он показывает умение решать простые отвлеченные задачи, а не умение решать сложные (читай -- комплексные) прикладные задачи. Это та же самая ситуация, что и с тестами айкью. Тесты айкью могут отсеивать совсем полных дегенератов от людей, обладающих минимальным интеллектом, но это невероятно хуевый способ искать даже не то, что гениальных, а хотя бы талантливых людей. Я бы не стал делать такой критерий необходимым, скорее просто как плюсик в карму.
>>1528135Задачи разные бывают. На leetcode хорошие задачи и 300 задач оттуда будет куда полезнее и для интервью или для чего либо еще.
Посоветуйте потокобезопасную однофайловую (не слишком крупную - чтобы не приходилось дополнительно изучать особенности именно этой либы, ебанутые местные типы/структуры или ещё что-то) либу для линейной алгебры. Обратные матрицы, решение систем уравнений, проверки на нормальность и вот всё это.Желательно, чтобы с си-массивами из float/double работала, без всяких std::array. Комплексные числа не нужны - нужны только если сразу с кватернионами, но в последнюю очередь.
>>1528119> закончить бакалавриат по специальности связанной с программированием, быть мотивированным на то что закончит и магистратуру (совмещая с первой работой)Ненужное дрочево, пережиток совка
>>1528171Почему-то не могу найти в каком месте стандартная библиотека позволяет вычислить хотя бы обратную матрицу.
>>1528178Благодарю, прям очень спасибо.Потестил, отличная штука на первый взгляд и запустилась сразу же, никаких lib-файлов, просто хедер добавил. По идее ихний Map не должен делать никаких реальных действий при использовании си-массивов определённой размерности - по крайне мере указатели в его структурах те же самые. Ещё и быстродействием хвалятся на своём сайте - круто, если оно так.
>>1528178>не слишком крупную - чтобы не приходилось дополнительно изучать особенности именно этой либы, ебанутые местные типы/структуры или ещё что-тоПросмотри эту страницу, на всякий случай.http://eigen.tuxfamily.org/dox/TopicPitfalls.html
Мне нужен конструткор и деструктор в статическом классе? Например static class abc{abc(); ?~abc(); ?}
>>1528463Откуда вы лезете только.> a storage class can only be specified for objects and functionsНет, ну ты можешь сделать класс только со статическими членами, но его всё ещё можно инстанцировать.
>>1528488Так удали конструктор. А вообще в С++ не нужны статик классы, потому что есть пространства имен.мимо
>>1528465Тогда странно что ты применил static к классу. Такое в сишке к структуре может еще прокатить, но эффекта никакого не даст
>>1528496Тогда это будет класс со статическими членами и удалённым конструктором, только и всего - речь же о самом понятии статического класса, которого нет в языке.
>>1528511У меня от тебя социальный конструкт. Интерфейсов тоже нет в языке, но ими всё равно пользуются.>>1528488> ну ты можешь сделать класс только со статическими членами, но его всё ещё можно инстанцировать.Я написал про delete в следующем посте.>>1528496У пространств имён нет модификаторов доступа. Если не нужно ничего скрывать, то я соглашусь.
>>1528577Так ты варнинги смотри, а не ошибки.И у тебя будет сообщение, что ключевое слово static опущено, т.к. не объявлена переменная.
>>1528565> У пространств имён нет модификаторов доступа. Если не нужно ничего скрывать, то я соглашусь.Тут, блядь, и спалились умники. "Статические классы" у них бывают, а неймспейсы ничего не скрывают (особенно безымянные, которые и используют, чтобы сохранить объявление в рамках единицы трансляции). Пиздец.
>>1528565тебе никто не мешает заэкспозить в неймспейсе только "публичную" херню, а в .cpp сделать кучу хелперов и прочего, чего тебе нужно, включая "статические" переменные.
>>1528577Ты так и не сказал, что сделать хочешь.Если тебе нужна та "статичность", что к функциям применяется, то только анонимные неймспейсы. Выбора нет.
>>1528565> Интерфейсов тоже нет в языке, но ими всё равно пользуются.Не путай тёплое с мягким - статических классов в плюсах нет хотя бы из-за того, что они тут вообще не нужны, в отличие от всяких джав и сишарпов, где для объявления любой сущности нужен класс.
>>1528645>безымянныеЭто другое, не маняврируй.>>1528650Ну тогда и модификаторы доступа в классах (любых) не нужны, если настолько изъёбываться.
>>1528733> не маняврируй.А по существу что-то сказать? Так можно все аргументы отметать, потому что "это другое".
>>1528736Перенося что-то в анонимный, ты отрываешь ребёнка от груди, разрываешь связи, сдаёшь в детский дом. В то время как нужен родительский контроль.
>>1528650> тебе никто не мешает заэкспозить в неймспейсе только "публичную" херню, а в .cpp сделать кучу хелперов и прочего, чего тебе нужно, включая "статические" переменные.@> Ну тогда и модификаторы доступа в классах (любых) не нужны, если настолько изъёбываться.Хотя нет, здесь я был не прав. Если класс не статический, то нужны отдельные экземпляры закрытых переменных, и тогда помогут ьолько модифткаторы.
>>1528733>Ну тогда и модификаторы доступа в классах (любых) не нужны, если настолько изъёбываться.тут уже наследование ломается
Ананасы, есть где-нибудь простенький шаблон резюме?Я вообще нихуя не понимаю что туда вписать нужно и стоит, а о чём лучше не говоритьПодавать себя не могу, а вот поговорить на счёт кода - пожалуйста
>>1528781пиши то, с чем работал и что сделал.А-ля2002-2004, ЗАЛУПА энтерпрайзСтэк: C++, C#, C++\CLI, C, MySQLНаписал новую базу данных, нахуй выкинул старую.Ускорил поиск на 0.02%
Всем привет. Я пишу Big Integer. Хочу сделать оптимизацию для маленьких чисел. Когда не будет помещаться, буду переделывать в вектор. Как это красивее сделать? Я пока думаю, что можно через std::variant. Супер оптимально по памяти/времени работы не обязательно.
>>1528737В первом случае у тебя занято подряд N*M памяти, а во втором - N расположенных отдельно участков размера M.Может оказаться, что и во втором случае все лежит подряд, но я бы на это не надеялся.
Можно пример для Qt, где тяжёлые вычисления выносят из гуевого потока? Посмотреть, как это обычно делают. Просто и без задней мысли создают поток, в конце выполнения которого сигналят о завершении?
>>1528781На хх открытые резюме посмотри.>>1528807https://www.qt.io/blog/2017/04/18/multithreaded-programming-future-promisehttps://habr.com/ru/post/311090/Ну хули вы ничего загуглить не можете.Модер додик, сосать.
>>1528801> > Ускорил поиск на 0.02%> Вся суть байтойобушков Это всё для того чтобы твой пронхаб грузился быстрее
>>1528815Ты, блять, программист. Нехуй тебе в резюме указать кроме стека, опыта (как показал этот анон >>1528788 ), примеров кода. Всё равно проход эйчара зависит от звёзд на небе, а дальше собеседование, до которого твоего резюме из программистов никто и не откроет.
>>1528873в геймдеве нужно шлепать на готовых движках\фреймворках. Графические программисты нынче очень большая редкость, а как вкатиться в джуна - видел вакансии только от Unigine в Томске (с Томской зарплатой в 3 роллтона)
>>1528799Успешное выполнение этого задания дает вам право на еще одну проверку любого дз.Братан, нафига? Тебе жалко +24 байта с вектора?
Что почитать по visual c++? Конкретно visual studio, я только консольные делал приложения, а тут глаза разбегаются.
>>1528903>в геймдеве нужно шлепать на готовых движках\фреймворкахЭто не означает, что ты избежишь контакта с графическим стеком, рендер инженер должен знать всё то же что и при написании с нуля.
>>1529101> хуйнюА ты умеешь заинтриговать. Будь ласка поведай поподробнее, чем именно надо заниматься
>>1529271Берешь библиотеку и делаешь. Конкретно вижуал студия тут причем?https://github.com/fffaraz/awesome-cpp#database
>>1528651Я вообщем сделал все методы и поля статическими, кроме конструктора и деструктора, их я удалил.
>>1526322 (OP)Насколько сложно перенести проект в 2.5к строк на С++/Qt виджеты на винформы, без знания последних. Сильно там различаются подходы, сам осилю срок - неделя или лучше найти кого-то?
>>1529471По большей части отрисовка с помощью QGraphicsItem и QGraphicsScene, вроде бы в шарпе тоже на наследовании от абстрактного контрола суть, но смущает что еще используется достаточно немало слотов-сигналов, хуй знает как их заменять.
Как скрыть верное значение в программе. У меня делается проверка и если это число равно данному, то идем дальше. Вот мне нужно что бы не было просто if a==b. Что бы нельзя узнать число смотря на исходник. Значение должно находиться однозначно. Это более маиематический вопрос, но я его тут тожа задам
Что можно ультимативного для дебилов почитать по всяким операторам копирования/перемещения, смарт поинтерам и прочим фичам, чтобы, например, я мог раз и навсегда понять как грамотно оформлять конструктор копирования для класса, у которого есть юник_птр на другой класс?
>>1529502Это уж как тебе захочется. Если похуй на взлом, можешь хоть связку умножить на два + поделить на два. Если ты хочешь проверку серийника запилить - плоти умным людям либо выдумывай свой способ шифрования.
>>1528799> Супер оптимально по памяти/времени работы не обязательно.>>1529530> Так-то довольно много целых чисел влезает в 24 байта.Нет, ну ты нормальный?
>>1529524> конструктор копирования для класса, у которого есть юник_птр на другой классОн разве будет существовать?
>>1528948Ну так-то если юзать std::variant, то там тоже оверхед будет, так что по памяти мб я и не выиграю, но прек в SSO/small vector из буста/такой вот хуйни в том, что ты не делаешь лишних аллокаций имплаинг не засоряешь хип. К тому же это полезно, если ты не хочешь думать над тем, как парсить строку (если есть такая оптимизация, то менее болезненно будет просто читать диджиты и делать a += d; a *= 10;). А вот сделать перегрузку для арифметических операций от инта нельзя, так как в таске требуется неявный конструктор от инта, и это будет компайл тайм эрор.
>>1529524>конструктор копирования для класса, у которого есть юник_птр на другой класс? Тут надо делать deep copy, ни у какого Майерса такое не расписано, самому делать надо.
>>1529314>Там вроде все по-другому.Не выебывайся, качай Qt Creator и делай свой интерфейс к бд. Qt Creator попроще и можно сразу все на формочки мышкой хуярить. Делая интерфейс в вижуалке на C++ ты обрекаешь себя на боль и страдания.
>>1529688Двачую, потом при сборке просто добавить папку с драйверами, которые сами генерятся, и всё. Никакой ебли с либами, переносимостью и подобного.
>>1529677Я в целом прошу какую-то книгу, в которой отдельно по частям будет хорошо расписано, чтобы потом было понятно какие правила накладываются при реализации сложных вещей.Прочитал Тур по С++ Страуструпа, там вроде все и обо всем написано, но как-то довольно общо. Хочется чего-то пообстоятельнее.
>>1529875Ну страдай тогда, что еще посоветовать. Мог бы и лабу сделать и кути начинать осваивать, потом пригодятся, а так будешь говно мамонта палкой ковырять, о котором после сдачи лабы забыть можно будет.
>>1529959>Хочется чего-то пообстоятельнее. Начни с практики. Накодь свою дженерик коллекцию. Двусвязный список, например, или хэш-таблицу. Со всей лабудой, рул оф файв, итераторами и т.д. Большинство вопросов отпадут в процессе работы.
>>1529502Хеш-функция. Заранее узнать хеш своего значения, захардкодить его, а затем брать хеш вводимого значения и сравнивать с захардкоденным.
>>1529494Кури алгоритмы, но это не поможет все равно. Без специализированных тулз, типа Vmprotect, скрыть ничего не выйдет. Если хочешь что-то спрятать, прячь это на своем сервере, а не в приложении.
>>1529524Вопрос дибила, в случае если тебе нужно копирование, логичнее сделать шаред, а не юник. Вообще если делать действительно хорошо можешь посмотреть сурс clickhouse. Там указатель на столбцы хорошо сделаны, совмещает идеи интрузив и юник для хорошего cow
>>1530040А в чем страдания, там вроде через ado.net просто должно быть подключить бд, не? Я книжку скачал Пахомова по vs C++.
>>1530356это скорее всего адовый мусор, который учит ВИЖУАЛ СТУДИИ, а не С++. При всей моей любви в студии - это только IDE, а не ебучий диалект, который раньше педалила микрософт
>>1530304Сука ты реально тупой, смотри человек хочет написать variant<int, vector>, что по памяти будет 24 + 1 + выравнивание. Ты как полный дегенерат пишешь> Тебе жалко +24 байта с вектора?Пиздец как можно быть таким аутистом
>>1530398Угу, так и вижу, как вася привинчивает кастомную систему анимации для залупанейм, не зная как кватернионы крутить. А саня пытается профилить рендер, не зная что такое дроуколл. Антошке поручили побороть ореолы оклужена при имеющейся геометрии, а он смотрит в шейдер и видит бибу. Бригада джамшутов, блять. Все юзают готовые движки, они экономят гору работы, но ни один не изолирует от кишков, всегда всё задрачивается под специфику игры, хоть на УЁ4, хоть на ебучем юнити. Это и есть работа геймдев макаки, поэтому она обязана знать базовые вещи, а рендер-инженегр и подавно. И плюс к тому специфику используемого двигла.
Сап кодеры. Я базово освоил С++ по SoloLearn, там функции, циклы, указатели, классы, шаблоны. Писал простой код по заданиям, которые есть в приложении, типа написать программу, которая разбивает любое введённое чётное число на 2 простых (проблема Голдбаха), или определяет кубический корень числа без вызова стандартной функции. Есть какие-нибудь хорошие обучающие ресурсы, чтобы двигаться дальше этого уровня, с заданиями, которые будут более приближены к тем, которые реально существуют в профессиональном применении языка?
>>1530491да вот, выбирай любое.правда хуй знает почему эти неосиляторы проблему ламберта в фак ю записали, там всё просто, если матан не прогуливать
>>1530498Ну я имел в виду скорее не просто задания, а обучающий ресурс, который даёт информацию, как что-то делается, и задание на отработку (так я в душе не ебу как можно сделать тот же Download manager)
>>1528331Да и так всё выровнено.А нормально что теперь моя программа компилируется по 90 секунд вместо 3? Это невыносимо. Мне нужно число с 2 на 2.5 переставить, а оно пересобирается минуту с лишним.
Не могу нагуглить решение.SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_GREEN);Сюда можно добавить параметр яркости?
>>1530776Например? Какие макросы ты исполсуешь? SIGNAL, SLOT устарели. https://wiki.qt.io/New_Signal_Slot_Syntax
>>1531002Да, знаю всю графическую подсистему винды наизусть. Первое, что должен уметь делать каждый С++ программист - это писать врапперы под апи своей оси, только макака будет качать 100гб кюти-говна и тащить за собой 10 метров дллок ради формочки из коробки.
>>1531056>Первое, что должен уметь делать каждый С++ программист - это писать врапперы под апи своей осиNIH syndrome во все поля.
>>1531056>Да, знаю всю графическую подсистему винды наизусть. Первое, что должен уметь делать каждый С++ программист - это писать врапперы под апи своей осиУ тебя ПТСР
Анон, помоги с MPI, пожалуйста. 1 пик код, 2 пик попытка запустить этот код. Почему-то процессы запускаются, но по очереди(о чём свидетельствует "MPI_RANK: 0"). ЧЯДНТ? Запускаю не так, или в коде проблема? Добра тебе заранее.
>>1531066>>1531085А вы я смотрю кроме хеллоуворлдов и формочек ничего не клепали. Во взрослой разработке всегда придется дрочить ось-апи, ибо в паблике нихуя нет, кроме фрейморка для формошлепов. > inb4 ко-ко-ко а как же БУСТЪ! А вот его тоже не хватает, представьте себе. Особенно под винду.>>1531069Ну можешь тащить сишечку, а нормальные люди пишут врапперы.
>>1531232Мань, вендролукнутное это про педиков из эпл, у майкрософт уже давно все чики-пуки. Еще раз говорю, всех этих бустов хватает на написание калькулятора, в лучшем случае. Если вы не заметили, то майкрософт выпускает новую ось каждые полгода.
>>1531250>вообще изучи билд-систему, процесс компиляции и линковкиЯ бы с радостью, но есть сколько угодно инфы про языки программирования и очень мало про конкретные компиляторы и линковщики, хотя второе мне кажется более сложным.То есть я даже понимаю что ты имеешь ввиду и как я бы сделал это в своём компиляторе, но когда я смотрю на эту фигню у меня просто руки опускаются, потому что я не телепат чтобы догадаться что нужно нажать и прописать, чтобы чужая фигня сделала то что мне нужно. И никаких внятных описаний или статей дающих цельное представление тоже не могу найти.
>>1531302Сириусли? Звучит как неумение в гугл, или в английский. Ищи доки по своему компилятору, билд системе и т.п., а вообще обзоры с высоты птичьего полёта есть в банальной википедии.https://docs.microsoft.com/en-US/visualstudio/msbuild/msbuild - MSDN раздел по вижуал студиевской MS Build, там и туториал и разложение по полкамhttps://cmake.org/cmake/help/v3.16/guide/tutorial/index.html туториал по текущей версии CMakeили что там у тебя, надо искать самому тогдаПо precompiled headers есть прекрасная обзорная статья в википедии и ссылки в ней. По линкерам аналогично.https://en.wikipedia.org/wiki/Name_mangling вот это ещё можешь почитать для общего развития, чтобы когда будешь разбираться в остальном, не возникало вопроса "а хули имена такие корявые".В целом кресты компилируются реально долго, они не затачивались под скорость компиляции, и прекомпилированные хэдеры - не панацея, под них надо подгонять структуру исходников изначально. Но знать всё это надо, ты неизбежно будешь контактировать с этим при работе с нативным кодом на любом языке, а то даже и при использовании какого-нибудь из source-based линуксов.
>>1531303>Сириусли?Угу. Почти три года ковыряю кресты "по выходным" трогая всякое, субъективно знаю почти все особенности до 17 стандарта, за исключением некоторых штук с шаблонами. А с мейками и подключением чужих либ беда - каждый как первый пытаюсь разобрать как оно работает.Я нашёл как сделать эти precompiled headers и уже их добавил (3 секунды вернулись даже несмотря на то, что я не всё смог запихнуть в эти precompiled, за что большое спасибо), но никакого понимания cmake мне это не добавило. Угу, теперь примерно представляю как такое сделать в простой ситуации, но если мне потребуется сделать что-то ещё - я всё ещё абсолютно не понимаю как сделать это на cmake без форумов и туториалов.
Сап, крестаны! не нашел отдельную ветку по Qt Creator'у, спрошу сдесь: как я понял, из всей кроссплатформенности в данной IDE мы имеем только ее кроссплатформенность (она красиво ставится и работает везде), но, запустив креатор под виндой, чтобы собрать исполняемый файл, например для linux x86, или (еще лучше) под arm lunux (малинку) нужно пердолиться без трусов. Не проще ли пердолить Qt creator сразу под Linux? и какой линукс ставить 64 бит или 32 бит? Вообще сдесь есть ветка для кутят?
>>1526322 (OP)Реально ли из Шарпа на плюсы пересесть? Насколько сложно?Интересует именно синтаксис, копипастом программу перенести же не получится? И знание сишарпа сильно будет мешать при кодинге на плюсах.
>>1531647Реально, сложно. Синтаксис будет очень непривычным.Нужно понимать, что плюсы более низкоуровневые. Стандартная библиотека скуднее. Вместо сборщика мусора умные указатели или ручное управление памятью. Байтоёбство во все поля. Много небезопасных операций, вызывающих undefined behavior. И очень много самых разных синтаксических конструкций. В общем, нюансов много, и шарп поможет только тем, что ряд подходов общий для всех основных языков, и ты их уже знаешь.
Аноны, тут такая проблема. Допустим, я хочу проверить, соответствует ли введённая фраза заданной. Я могу сделать это через cin, требуя вводить _ вместо пробелов:string s, check;s = "hello_world";cin >> check;if (check==s) {cout << "yes"};else {cout << "no"};И всё идёт как надо, компилятор ждёт моего ввода и только затем сравнивает введённую фразу с заданной. Но из-за _ вместо пробелов это убого и неудобно. И я пытаюсь использовать getline:string s, check;s = "Hello, World!";getline(cin, check);if (check==s) {cout << "yes"};else {cout << "no"};Но в этом случае компилятор не ждёт, пока я введу фразу, а сразу выполняет else и выводит no. Как сделать, чтобы этого не происходило?
>>1531689У тебя это внутри одной программы? По-моему нулевой символ в буфере у тебя остается и потом через гетлайн записывается туда сразу.
>>1531753Ну да, но я потестил, в main (первый скриншот) getline работает нормально, а вот в отдельной void функции (второй скрин) компилятор сразу выдаёт то, что по else (на третьем скрине можешь увидеть, он даже не просит ввести, сразу выводит текст и перескакивает на следующий ввод, где я оставил просто cin, без getline)>>1531755Так я не из компилятора копировал, а просто для примера написал прямо в сообщении, немного невнимательно
>>1531773Я же тебе говорю, у тебя cin берет из буфера твою цифру, а нулевой символ от нажатия enter нет. Когда программа доходит до getline, из буфера cin сразу берется этот нулевой символ, он естественно отличается от твоей строки s и программа переходит к else.Добавь после cin>>a; строку cin.ignore();
>>1531790Сработало, спасибо. Ты кстати как C++ изучал? Я просто выучил по SoloLearn, как написать простой код понимаю, но вообще как всё работает понимаю не очень
>>1531288MPI. Проблема в том, что с openmpi всё работает, а тут процессы запускаются последовательно, что не есть кошерно.>>1531294Мне не нужно разбивать массив по узлам, суть была в том, что один процесс кидает другому числа, тот их суммирует, кидает результат обратно, и первый выводит на экран. Но это неважно, я хочу понять, где я проебался при запуске.
>>1531813Это MPI. Код то у постера на плюсах, а сам MPI для си как разрабатывался (еще в 90-х), так и разрабатывается, поэтому у него такие биндинги.>>1531112У тебя какой-то неправильный mpirun. Какого хуя оба процесса в rank=0? Гугли в этом направлении, мб поставил неправильно, либо mpirun И mpicc различных версий.
>>1532188Так в том-то и прикол, юзал mpich, по мануалам всё должно работать, авотхуй. Он запускает один поток, абортит его из-за отсутствия второго, потом запускает второй поток и абортит его из-за отсутствия второго (так как он единственный). Что-то бред какой-то. Ладно, я уже понял, что проблема не в коде. Буду гуглить про сам мпи.Спасибо, аноны!
В интернетах нахожу массу аргументов за использование int вместо size_t.Но что делать с ебучими варнингами?>warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of dataих так много, что они мешают читат output компиляции.
>>1533356Хуй его знает что за дебилы топят за int. Особенно удивляют дебилы, которые везде пихают static_cast<int> и используют его в беззнаковом контексте
>>1533385Ошибки со знаковым int проще обнаруживаются.И еще с ним в некоторых случаях код попроще получается.
>>1533388> Ошибки со знаковым int проще обнаруживаются.> И еще с ним в некоторых случаях код попроще получается.Это мантра или у тебя есть примеры? Какие ошибки, какой код?
>>1533389Э, бля, вобщет я здесь вопросы задаю.Вываливай свои контрпримеры с кодом, если ты такой умный.
>>1533392Путь С++ - путь, страданий. Терпи.Где можно, используй ranged for, или таки size_t - в большинстве случаев он вполне безопасен.
class A{ protected: virtual void initContent() { //... }};class B : public A{ protected: void initContent() { //... }};Почему при вызове метода в B (Bobject.initContent()) вызывается метод из A?
>>1526431>Теперь найди нормальную криптографическую функцию, которую можно написать c constexpr.вася падпивасный
Class A{...public:A(int n = 1, int m = 1) {...};};Class B : public A{...public:B(int n) {...};};Почему при вызове new B(n) сначала вызывается A(1, 1), а потом уже работает B(n)?
>>1533668Потому что сначала вызывается конструктор базового класса. В этом случае неявно, т.к. все параметры по умолчанию. Убери один - вообще перестанет собираться, пока явно не укажешь
>>1533716Предположим, в базовом классе у меня есть protected virtual метод, который вызывается в конструкторе и переопределяется в наследнике. Можно ли сделать так, чтобы во время вызова конструктора базового класса при вызове конструктора наследника выполнялся переопределённый метод, а не изначальный?class A{protected:virtual void foo() {};public:A() {}};class B : public A{protected:void foo() {};public:B() {}}?
>>1533796Нет, невозможно. И даже если бы это было возможно, так делать очень плохая идея, вдруг метод в базовом классе делает что-то такое, что ты забыл учесть при его переопределении.
>>1533860Класс A ничего не знает о своих потомках и не зависит от них. Соответственно, не получится.Впрочем, есть способ. Каким-нибудь способом передать в A указатель типа A, указывающий на объект типа B. Затем в A::foo() обратиться по этому указателю к foo(). Так как метод foo() виртуальный, вызовется B::foo().Но не делай так. Код становится нечитаемым, к тому же очень легко получить бесконечную рекурсию.
>>1533860Когда вызывается конструктор наследника, сначала вызывается конструктор базового, в котором срабатывает метод foo, опеределённый в базовом, затем работает конструктор наследника, в котором вызывается собственно B::foo
void foo(){vector<A*> v;}void bar(){a = A();v.push_back(&a);}Когда bar() заканчивает работу, объект a разрушается. Как сделать так, чтобы после выхода из bar() объект a не разрушился, а ссылка на него осталась в векторе?
>>1533986Почитай про область видимости переменных. В частности, переменная a видна только до конца тела if, дальше к ней нельзя обратиться.Можно, например, вынести A *a за пределы тела if, а уже в самом теле писать a = new A();
Как считаете, к программированию нужен врожденный талант типа как к музыке и рисованию, или это вещь полностью обучаемая.
>>1534008То есть ты считаешь, что у 10 условных человек будет одинаковый прогресс в этом деле за один и тот же промежуток времени?
>>1534006Именно для проги талант не нужен совсем. Может есть что-то вроде склонности, но это скорее про то интересно тебе или нет. Ну возможно в олимпиадной проге, то есть в решение задачек, можно быть талантливым, но как бы это не особо влияет по жизни, да и все равно там нужно прикладывать дохера усилий чтобы быть жестким
>>1534028Если этих 10 человек держать в абсолютно одинаковых условиях с рождения, то да, прогресс будет одинаковый +- погрешность. Но уж точно прогресс не определяется рандомом до рождения.
Caп. Ecть тут люди, которые шарят в qml? А если точнее, то нужно мне менять масштаб через scale. Но качество картинки получается такое ебанейшее, что просто пиздец. Можно как-то повлиять на него?
>>1534108Можно изначально делать итем достаточно большим, чтобы он всегда скейлился в меньшую сторону. А если у тебя там только векторная графика и шрифты, то вообще не вижу проблем.
Помогите плиз лабу сделать. Я сам не программист но приходится. Задание : Дано строка состоящая из цифр разделённых пробелами.Вывести только чётные числа.Моя прога : #include "pch.h"#include <iostream>#include <string>#include <conio.h>using namespace std;int main(){ int n, i, chislo; char st[81]; puts(" Input string "); gets_s (st); n = strlen(st); i = 0; for (i = 0; i < n; i++) { if (st == ' ' && st[i + 1] != ' '){ chislo = st; if (chislo % 2 == 0) { cout << st << ""; } } }
>>1534960#include <stdafx.h>#include <iostream>#include <string>#include <conio.h>using namespace std;int main(){int n, i, chislo;char st[81];puts(" Input string ");gets_s (st);n = strlen(st);i = 0;for (i = 0; i < n; i++) {if (st != ' '){chislo = st;if (chislo % 2 == 0) {cout << st << " ";}}}getchar();}Если у тебя дана строка из цифр, то и выводить тебе цифры надо, верно? Для чисел нужна другая проверка, там хуй знает сколько надо разрядов. Я тугой в плане построения алгоритмов.
>>1534960>прекомпилед хедер в проекте из одного файла>вперемешку с другими инклюдами>int chislo>объявлять i не в цикле><conio.h>Комбо "laba1.cpp starter pack"
Мне вот только одно не понятно. Сегодня первое декабря, лабы у детсадовцев уже должны закончиться.Абу своих ботов уже и на тематику натравил?
>>1535238Хуй у них лабы закончатся. То сдать на последних парах, то сдать во время зачётиков, то сдать долг в следующем семестре.
>>1535290http://cpp.sh/4je3hСорян за говнокод если что, я немного бухой + на чистом Си давно не писал.
>>1535198А еще там кроме using namespace std - все из чистого си, лолconio.h кстате классная вещ если она есть
>"int atoi(const char )": невозможно преобразовать аргумент 1 из "char" в "const char "Я уже забыл что там за хуйня с этими char массивами. Как введенную строку в константу-то превратить?
>>1535341Поэтому и не классная, что есть не везде. На линуксе вот придётся жонглировать опциями терминала.
>>1535369>невозможно преобразовать аргумент 1 из "char" в "const char* "Правильно расшифровал? Ты хочешь символ в число перевести?Тогда n = c - '0';
>>1528169GLM, но я не уверен в потокобезобасности, да и вообще, мне кажется не задача математической либы её обеспечивать.
>>1528169что такое "потокобезопасная библиотека" в данном контексте?Вся линейная алгебра это чистые функции, которые потокобезопасны по определению, не?
>>1535468Не хранящие глобального состояния, например. Вдруг есть библиотека вида:set_a(vector_a);set_b(vector_b);multiply();int result = get_global_result();
>>1526322 (OP)Ананасы ещё вопрос возник.Мне нужно распарралелить циклы управляемо, помню что есть openmp. VS 2010 стоит.Задачи для копирования из массива в массив, а так же операций над ними.Openmp мне хватит для этих задач? И возможно ли распарралелить копирование в оперативку, естественно каждая нить - копирует в один или группу каких-то неиспользующуюся другими нитями область или адрес?
>>1535712распараллеливание будет выгодно, если над каждым элементом массива проводятся интенсивные вычисления на цп в случае же перекидывания данных с одного места на другое прирост производительности в случае распареллеливания будет минимальный, так как вообще до доступ к оперативной памяти у тебя последовательный, ну а прирост будет лишь в том случае если память работает в двухканальном режиме
>>1536044>если над каждым элементом массива проводятся интенсивные вычисления на цп Я покупал новую плашку и написал для неё какой-то тест на коленке. Твои слова звучат немного как чушь, потому что если там просто в цикле a=i, то в несколько потоков это работает в два раза быстрее, хотя интенсивными вычислениями там даже близко не пахнет.Любопытно, что произвольная запись работает с одинаковой скоростью, а произвольное чтение ускоряется. Читаются/пишутся разные ячейки, не одна и та же, само собой.
>>1536044>если память работает в двухканальном режимеХотя я же не знаю что такое двухканальность. Одна плашка может работать в двухканальном? Это бы всё объяснило.
>>1536065Вроде бы двуранговая лучше, но это не двух канал, хотя там доступ быстрее чем в одноранговой.>>1536044Если так, то печально, я думал над этим>>1536060А вот если так, то отлично.Мне нужно в некоторых задачах именно параллельное копирование.
Потыкал тут D и он мне очень понравился, но аноны говорят что он мёртворожденный и никогда не выстрелит и что бы я смотрел в сторону плюсов и Rust. Что можете сказать о D и его будущем?Все же вы тут народ опытнее и потолковее, чем на остальной доске
>>1536213Мне тоже понравился D, но к нему нет ide, нет либ, нет ничего. И не будет.Если бы был D вместо С++, это было бы чуточку лучше в целом для мира программирования, но на С++ уже такая база вообще, что это своего рода локальный минимум, причём очень-очень глубокий - и D не так сильно отличается, что бы его микроскопическая яма была хоть чуть-чуть заметна рядом с пропастью С++. Он сможет существовать только если у него будет полная обратная совместимость, так чтобы вообще любой крестовый код сходу компилировался и работал.
>>1536213ну смотри, он появился в 2001, и на нем так до сих пор вообще никто и не пишет. И нет вообще никаких признаков, что начнут. Даже сам Александреску на конфах по С++ тусит нынче.
Что будет, если бросить исключение в деструкторе? Приглашаю сеньоров итт порассуждать, зачем вообще такое может понадобиться.
>>1536228>Что будет, если бросить исключение в деструктореЕсли у тебя разматывается стек, то терминейт тебе.>зачем вообще такое может понадобитьсяЧтобы показать всем в интернете, какой ты дебил.
>>1536228> Что будет, если бросить исключение в деструкторе?Ничего плохого, пока во время размотки стэка не бросится второй, и там уже std::abort. >Приглашаю сеньоров итт порассуждать, зачем вообще такое может понадобиться.Если ты ебанутый, наверное.
>>1536228Исключения в языке без сборки мусора - это полный пиздец. Если и кидать исключения, то юзать смартпоинтеры. И пох, в деструкторе это или нет.
>>1536213Ничего, я позапрошлый раз раз смотрел за ним 4-5 лет назад, когда активно шли разговоры о разгоне гц, вроде как договорились что надо допилить гц чтобы он знал о типах и сделать генеративную сборку. Вроде как и такой, и даже паралельный с лоу паузами был, но никто не хотел переносить с D1 и допиливать.. Прошлый раз на него смотрел где-то год назад, все резко договорились что гц не нужен (работы в этой части за несколько лет сделано 0, лол) DIP25, DIP1000, делаем как в русте только круче, все дела. Посмотрел сейчас — DIP1000 послали нахуй, выкатили DIP1021 — как руст, только более кастратский вариант, что-то пыл резко убивился, лол. Нихуя не понятно что и как с ним, даже стд либа его скорее всего поддерживает примерно никак, зато в языке за это время появились ещё 2 сотни фич. Всё что нужно знать о D и о Александерску с Брайтом, или как проёбывать все полимеры 20 лет подряд.
>>1536251Исключения вообще сами по себе пиздец, нарушающий структуру всего, это блядь, даже не goto, это эдакий типизированный longjmp, который по хорошему надо избегать вообще везде.
>>1536266вот тут, пожалуй, не соглашусь. Исключения это охуенно, и помогают делать охуенный и красивый код. Правда да, в легаси говне и прочей параше ими пользоваться нереал.А вот в чистеньком новом проекте на C++1488, вполне отлично
>>1536282>>1536266>>1536251Вы откуда вылезли, ньюфани? В сишечке без исключений вообще никак. А goto вас чем не устраивает? RAII то нет, а крутиться надо.
>>1536266Двачую.>>1536282>Исключения это охуенноНет ничего охуенного в нарушении контекста выполнения.А многопоточное\конкурентное программирование превращается в сплошной ад с этой хуйней.
>>1536307>>Исключения это охуенно>>Нет ничего охуенного в нарушении контекста выполнения.че? при исключении происходит раскрутка стека вообще то, контекст выполнения не страдаета вот когда делаешь магию на сишном longjmp, то да, надо самому вытирать себе жопку
а я хочу еще напомнить, что страуструп ввел исключения в язык по вполне практическим приземленным соображениям: а именно он не понимал как можно красиво вернуть ошибку в случае конструкторов и определения операторов в классахстрауструп вообще считает возможность определения пары конструктор-деструктор и определения пользовательских операторов ключевыми особенностями языка, так как они лежат в основе создания новых типов данныхпри этом как то ошибку нужно было возвращать оттудавот пришлось и исключения в язык вводить
>>1536264как по мне, александреску убил вторую половину своей жизни впустуюа ведь его "современное программирование на с++" в нулевые были как откровение свыше, объяснение того, как, к примеру, можно часть паттернов из "банды четырех" реализовать на статике, на шаблонах, без использования ооп, без техники включения или без динамического полиморфизма..все же нытик страуструп был прав, когда долго и упорно всем объяснял, что нужно развивать существующий язык, что нужно сохранять обратную совместимость, что нужно делать что-то новое, используя существующую инфраструктуру языка, а не бросать все и делать заново
>>1536251>Исключения в языке без сборки мусора - это полный пиздец. Если и кидать исключения, то юзать смартпоинтеры.у тебя есть пара конструктор-деструктор, которая позволяет использовать технику raii; std::unique_ptr реализует технику raiiвторая альтернатива - это подсчет ссылок; подсчет ссылок поддерживается std::shared_ptr
>>1536388Нет, не через дерево вызовов. Сразу видно, что ты обычный микрочелик, который ничего серьезнее cout << "hello"; не писал, лол.
>>1536060ну дык, у тебя память работает в двухканальном режиме..тут какая забава получается: обычно когда ебашат синтетику, забиваю большой объем памяти в тестируемый массив, ну он и раскидывается по двум плашкам памяти, лолну и получают ускорение в 70-90%, что и неудивительно так как читаться/писать будет на обе плашки..
>>1536091>Мне нужно в некоторых задачах именно параллельное копирование.ты получишь заметное ускорение (процентов на 70%) если у тебя будут копироваться большие объемы данных, сравнимые с текущей емкостью озу у тебя на компе..
>>1536385Вот бы он тогда ещё подумал о последствиях в виде текущей памяти. А не только через несколько десятков лет.
>>1536418Тебе жалко чтоли памяти? Перегрузил сервер раз в сутки и все память снова в твоем распоряжении.
Как можно максимально приблизить вижлу vs code? Можно конечно настроить, чтобы все дебажилось и собиралось в вс коде, но делать этого я по некоторым причинам не хочу. Но слишком уж вижла какая-то топорная после вс кода. Какие есть может плагины на нее, которые делают вот это дописывание кода более удобным?
https://ideone.com/4bcVv1#stdinАноны, поясните, пожалуйста, что не так?Выходит пикрил.Думал что это из-за того что использую i-1 в строке, которая с нуля идет, но попробовал переписать с начальным i - единицей, все равно эта ошибка вылазит, в чем проблема?(на сайте не компилируется, т..к не открывает string.h, через vs19 компилируется, но выходит пикрил при попытке ввода слов)
>>1536856i равно 0. Проверка на 14 строчке не проходит и поле этого в 18 строчке ты обращаешься к -1 элементу - программа падает.В си-тред не ходи, этот кролик двинулся со своими std:: уже.
>>1536856Очевидно, потому что у тебя нет проверки на (i<90), в итоге, когда i становится 90, ты выходишь за границы массива и получаешь по еблу от ОС за чтение чужой памяти.мимо-расторак
>>1536856В 14 строчке проверка никогда не выдаст true, потому что x не может быть сразу и пробелом и точкой. Ставь || вместо &&.
>>1536873Да я писал про это, когда заменил на единицу все равно ошибка была, так что не из-за этого, но все равно спасибо>>1536875а вот тут да, добавил проверку перед i++ в конце и заработало, спасибо>>1536877А мне достаточно одного из них true для программы
>>1536856циклах нет проверки на конец строки...10. while (s != '\0' && s != '.')...14. while (s != '\0 && (s != ' ') && (s != '.'))...https://ideone.com/JXUIp7
>>1536879Второй выдаст false, и объединённые логическим AND они выдадут false. Я же написал, что твоя 14 строка никогда не выдаст true.
https://ideone.com/vjzmwtПереписал с i+1, но в итоге все равно переполнение, теперь видимо в другую сторону, хотя вроде длину сразу ограничил
>>1536920да я понимаю где выпадает, я не понимаю как использовать s[i-1] или s[i+1] если они постоянно переполняется
>>1536916Можно даже без дебаггера, просто в каждой строчки по три раза (после каждого действия) выводи значение всех индексов и переменных - эдакий наколенный дебаггер.У меня нет переполнений, у меня в бесконечный цикл твоя штука ушла, тому что индекс не вовремя прыгнул на 2 и проверки при которых i изменяется уже не могут пройти.Тебе написать эту штуку? Я сейчас в душ залезу и могу написать с комментариями, если нужно; могу ещё и в дискорде всё объяснить потом.
>>1536924Понял, сейчас попробую.Было бы хорошо, но я ща еще полчаса сам покопаюсь, если не смогу напишу
>>1536930Извиняюсь>>1536924Я короче по бумажке напроверял, вроде все правильно код работает, запустил отладку, код работает, запустил код - код сработал. Ничего не поменял, но все стало работать, хз что за магия
>>1536922char si = [92];si[0] = 0;si[91] = 0;char *s = &si[1];Не помню как в ваших этих крестах использовать указатель в качестве имени массива. Но можешь вот так вот сделать.опять-мимо-расторак
>>1536933В общем вот, я всё-равно уже почти написал - не поверил что ты разберёшься.https://ideone.com/8yPDpiЭто максимально понятное разложенное по полочкам, что я могу придумать. Рекомендую примерно так и писать, и только уже сильно потом сворачивать все проверки в одну строчку с -1 индексами, когда понимаешь что оно будет делать, как и зачем. fgets - просто чтобы ideone скомпилировал, и чтобы при строчке длиннее 1024 строчка просто обрезалась без ошибок.
>>1536933Это значит, что где-то в коде UB. Попробуй в релизе собрать или выключи SDL и Basic Runtime Check в дебаге, тогда меньше шанс зануления памяти, соответственно больше шанс вылететь из-за UB
>>1536955Но ведь если бы не рантайм чек, хуй бы оно вообще упало. Так и читал бы, обмазываясь UB до первого нуля.
>>1536962Как раз наоборот. В дебаге при включенных проверках больше шанс, что память будет в ноликах. Мелкие сами об этом пишут в описании к SDL/BRC
Наконец-то закончил эту блоксхему рисовать... Программисты их вообще используют, разрисовывают?? Я просто не шарю пока>>1536948Посмотрел, впринципе все понятно, state правда мы не использовали еще. Такую точно не примут, скажут своровал у кого-то, но спасибо, поразбираюсь сам
>>1536998>Наконец-то закончил эту блоксхему рисовать... Программисты их вообще используют, разрисовывают?? Я просто не шарю покаЛол нет. Вообще никогда.
>>1537002наверное вашему среднему преподавателю больше 50 лет, и из этих 50 лет он программистом не работал ни дня.
>>1536998Иногда. Именно блок-схемы — никогда, whiteboarding — иногда. Первое — ебанутая хуета, второе — полезно для понимания того, что ты вообще делаешь. И зачем.
>>1537003Нам вообще говорят, что мы этим заниматься будем в будущем (блок схемы рисовать, а не прогать) типа спец-ка у нас такая (инф. системы и технологии)и мы их все 4 курса будем рисовать. Походу я куда-то не туда попал
>>1537008Диаграммы рисовать иногда надо. Там какая-нить коммуникация микросервисов там, различных компонентов и тд. Но она не формализирована, как хочешь так и рисуешь.Но вот такую хуйню как на пикрелейтеде я рисовал только в универе, который нахуй дропнул потом.
>>1536998При написании сложных алгоритмов некоторые иногда используют псевдокод. Но такие вот блок-схемы не использует никто и никогда.
>>1536219>Он сможет существовать только если у него будет полная обратная совместимость, так чтобы вообще любой крестовый код сходу компилировался и работал.Ты только что изобрёл Qt MOC
>>1537016>>1537009Мб тогда сказать преподу или повыше кому-нибудь, чтобы нас не заебывали ими, раз это нахуй не нужно?
>>1537021Я уверен, что до тебя к нему подходила не одна сотня студентов с этим предложением, ибо эта хуйня заёбывает всех до единого. Но препод остался при своём мнении.
>>1537002Удваиваю всех выше про схемы.Нарисовать схему для взаимодействия сложных структур в какой-нибудь фигне нормально иногда, но рисовать схему для i++ смешно просто - никто никогда в жизни не будет такие мелочи изображать на схеме. Тем более в таком уродском виде. Схема для каких-то глобальных концепций, а не для отдельных строчек или даже функций.>>1536998Используй заместо state symb устанавливая его в ноль как вариант. Если он нулевой - то сейчас не число, если какой-то ещё, то там слово.Или вот на: https://ideone.com/oB192G - но это сработает только с пробелами между слов и точкой в конце. ":asdf12&$!@:" - тоже будет словом, которое начинается и заканчивается на один и тот же символ.
>>1537021Ты правда думаешь, что УВАЖАЕМЫЙ ЧЕЛОВЕК С УЧЕНОЙ СТЕПЕНЬЮ будет слушать какого-то сопляка? Попробуй, потом расскажи нам о результате.И аргументы о том, что программисты 300кк\нс этой хуйней не занимаются очень врятли их убедят.
>>1536514Не совсе понял. Ты хочешь настройти студию, что бы была похожа на vs code?Если так, то это равносильно просто сделать её более легковесной, я так и сделал как мог. Поотключай все лишнее, весь визуальный мусор, к которому еще не привык, все эти боковые панели, красные полоски итд, всплывающие подсказки, оставь только то что деуствительно нужно и удобно. Из плагинов можешь попробовать найти плагин для терминала, это по сути единственное, чего очень сильно не хватает студии.
Сисярпоблядь в треде.Нужно ли изучать кресты с нуля, если до этого дрочил шарпы? Много ли схожего, или это два совсем разных языка?
>>1537318Ручная память (по большей части лечится RAII, но книги за 567 год, по которым все советуют учиться, об этом нихуя не знают), без статик анализатора (или RAII на любой пук) можно сразу сказать, что код работать не будет, если у тебя больше сотни строк в проге. В остальном современные кресты мало отличаются, учи сразу 17 или 20 фишки.
>>1537320А что по стандартной либе и фреймворкам/другим библиотекам? Дикий дроч, или, разобравшись, становится более-менее легко?
>>1537321шаблоны и вот это вот все>>1537323>фреймворкам/другим библиотекамну кют это что то типа дот нета по фичам, куча инфы и примеров, асло qml после xaml очень приятен и легок пока тебе сложные скрипты не понадобятся (жс)
>>1537315Все самое интересное в коде с++ происходит "между строк", поэтому знать всякие мелочи критически важно.>Много ли схожегоТебе-то как раз должны быть важны не сходства, а точное понимание различий.>с нуляЦена вопроса околонулевая.Лучше начать с нуля. Если для тебя что-то не окажется новым, то чтение и не займет много времени.А если времени потратишь много, значит оно тебе было необходимо.
>>1537318>>1537320>>1537325>>1537328>>1537359Благодарю за советы, аноны. Пойду дрочить литературу по крестам.
Кто-то знает какие-нибудь сайты где шерят коды на С++? Ну типа где можно найти любительские коды на любую тематику
Можно очевидным образом подменить malloc/free.А можно как-либо подменить delete/new не для отдельного класса через перегрузка - а вообще во всех случаях? Хочу сравнить стандартный менеджер со своим. Я погуглил, но по запросам перегрузки delete/new идут только их перегрузки для отдельного класса - но это и так очевидным образом делается. Ткните пальцем какой запрос вбить, пожалуйста, если это вообще возможно.
>>1537485> А можно как-либо подменить delete/new не для отдельного класса через перегрузка - а вообще во всех случаях? https://www.geeksforgeeks.org/overloading-new-delete-operator-c/
>>1537485Всё, нашёл кое-как. Кошмар, сколько там вариантов для старых/новых стандартов и потом ещё для aligned, noexcept и квадратными скобочками во всех комбинациях.Кстати повторюсь ещё раз и соглашусь с мнением выше, что исключения не нужны. По умолчанию вообще всё должно быть noexcept, и только в каком-то очень редком случае, когда ты используешь исключения - только тогда нужно поставить какой-нибудь мерзкий спецификатор по типу _e_X_c_e_P_t_a_b_L_y_, чтобы смотреть на него больно было.>>1537517Мм, спасибо. Сам уже нашёл правда, но всего несколько минут назад. Глобальная перегрузка, брр.
>>1537521а я, повторюсь, что исключения нужны как минимум потому что в языке существуют конструкторы и пользовательские перегрузки операторов
>>1537485все что ты перечислил - плохие подходы к проблемев стандартной библиотеке есть механизм аллокаторов, через него и следует проворачивать такие вещиточка
>>1537471насколько я понимаю, квест по переезду в канаду тот еще:типа чтобы получить визу и статус резидента, нужно набрать баллова баллы набираютсянужно высшее образование, и нужно конвертнуть дипломнужен подтвержденный опыт работы, и потом нужно оформить документы подтверждающие егонужно знать английский язык, причем это знание подтверждается тестированием ieltsнужно иметь на счете в банке 12к баксов, минимум, эта сумма тоже должна быть подтвержденапричем каждый этап требует пусть и не бумажной, но электронной волокиты, и обойдется минимум в 2к баксовна самом то деле это нихуевый квести для чего все это нужно?а чтобы переехать в ванкувер, устроится там куда-нубудь работать, ебашить как проклятый, реально вьебывать, при этом ты будешь тупо выходить в ноль, откладывать ничего не получится по крайней мере первые годаохуенноловушка для умных дураков, на самом то деле
Помогите с регулярками плизbool IsBigChar(std::string str){ std::cmatch result; std::regex regular{"^[A-Z][a-z]"}; return std::regex_match(str.c_str(), result, regular);}По задумке оно должно возвращать тру, если 1 буква большая, а остальные любые латинские
>>1537775Как сказал чел выше, глупо сранивать беззнаковое с нулем. У тебя скорее всего при вычитании числа, больше чем хранит переменная, число становится очень большим. Поэтому перед тем как вычитать добавь проверку
>>1537809Я пытался в проверку. Сначала было без unsigned, но когда значение хп становилось меньше 0, то цикл не прекращался, а продолжался уже с минусовыми значениями
>>1537669> нужно высшее образованиеИзи. Просто взял и без задней мысли получил заочно бакалавра в шараге в родной мухосрани. Да и очно не так уж сложно отучиться, а если в нормальном вузе, то даже в удовольствие (МФТИ, например).> и нужно конвертнуть дипломНе нужно.> нужен подтвержденный опыт работы, и потом нужно оформить документы подтверждающие его3 года работаешь на какой-нибудь адекватной галере, которая устраивает тебя по ТК.> нужно знать английский язык, причем это знание подтверждается тестированием ieltsВ 2019 это не должно быть проблемой. Сдать экзамен не сложно, стоит не дорого.> нужно иметь на счете в банке 12к баксов, минимум, эта сумма тоже должна быть подтвержденаЭто вообще самое лёгкое в квесте.> причем каждый этап требует пусть и не бумажной, но электронной волокиты, и обойдется минимум в 2к баксовОткуда 2к-то? Переборщил.> и для чего все это нужно?> а чтобы переехать в ванкуверНахуй этот китайский оверпрайсед гадюшник не нужен. Едешь в Торонто, зарабатываешь нормальные деньги, получая отличный ворклайф бэланс, через несколько лет получаешь паспорт нормальной страны. А потом и в Швятые можно без задней мысли ехать, в Bay Area или Сиэтл на $250k+/год.
Аноны, помогите с юнит тестом для исключения, постоянно ловлю ошибку C2337 ExpectedException: атрибут не найден
Почему я не могу в абстрактном классе создать виртуальную функцию, которая возвращает экземпляр типа этого класса? Хочу сделать интерфейс для нескольких классов, у которых будет функция, которая должна возвращать экземпляр этого же класса. В моем случае такое решение должно довольно красиво выглядить, но как это реализовать?
>>1538505Точнее ситуация даже такая: есть несколько классов с одним методом, который по своей сути делает одно и то же, но те, кто использует этот метод, должны знать, что он возвращает экземпляр этого же класса. Так вот думаю по-хорошему надо для них создать абстрактный класс и как-то указать, что у наследников есть такой вот функционал. И еще метод должен даже не экземпляр класса возвращать, а QStack с типом этого класса. Проблема в том, что если ты в абстрактном классе указываешь, что метод возвращает QStack<base>, но в наследнике надо, чтобы он возвращал QStack<derived>, то перезаписать он не может.С указателями все работает, но со стеком было бы красивее конечно.
>>1538505У виртуальных методов тип (если это не указатель/ссылка на сам класс) изменить нельзя. Все дочерние методы будут возвращать экземпляр базового класса, крася твои трусишки в коричневый цвет
>>1538530Можно приводить типы к потомкам, например. Но возвращать разные типы в потомках не выйдет, ты ломаешь сигнатуру базового метода.
Метапрограммисты ИТТ имеются?Дано:enum class MyEnum : long{val1 = 2,val2 = 3,val3 = 4};Нужно:std::tuple<std::integral_constant<long, 2>,std::integral_constant<long, 3>,std::integral_constant<long, 4>,>Про буст знаю, есть дрисня вроде mpl::range_c, но выходит слишком громоздко, есть mp11::iota, но там только с нуля отсчёт, fusion идёт нахуй вместе с hana
>>1538745Дабл. Есть еще екстендед и квад точность по моему, но это уже екзотика. На самом деле все говно. Если попробуешь это 64 бит(0.1+0.2)+0.3 == 0.1+(0.2+0.3) результат будет falseЕсли возмешь флоат 32 бит(0.1f+0.2f)+0.3f == 0.1f+(0.2f+0.3f) результат будет true, лол
>>1538745__float128, функции к нему в quadmath.h - 30 с хреном знаков после запятой. Но он в раз в двадцать медленнее (тому что программный и не имеет аппаратной поддержки), чем десятибайтовый long double, который работает всего на 10-20% медленнее, чем обычный восьмибайтовый double.
>>1538797По видосикам на ютубе научился? Я это 2 раза смотрел уже, не въехал, без удобной отладки не получается полностью понять, в какой вид шаблон разворачивается. Ты как боролся с этим?
>>1538799Потратил больше времени, наверное. Для несложных тимплитов есть https://cppinsights.io - поймешь как работает, а дальше уже сложные сможешь в голове писать. По кр. мере у меня получается.
Помогите алгоритм запилить, чет я опух уже.На шахматной доске для заданной клетки построить диагонали координаты i, j клеток диагонали пушатся в конейнер, проходящие через эту клетку.inb4: Не лаба. Задачка из книжки. Я-то наговнякал решение, но как-то много if получается для такой простой задачи.
>>1538816Я не знаю как словами описать, вот три немного разных по смыслу функции: https://ideone.com/qoDiG3>как-то много if получаетсяВо втором (m_2) варианте нет ифов, но там цикл очень угрёбищный, хуже него только цветовая схема в моей ide.Очень нравится писать короткие программы на одну функцию - целыми днями бы их писал. А то эта занудная фигня со структурами и шаблонами, брр.
>>1538745Какая у тебя задача, что не хватает флоата? Я сильно сомневаюсь что тебе даже даблы нужны, не говоря уже о больших типах из математических библиотек. Ну и да, нельзя просто взять и использовать их, ибо они в двоичной базе и многие десятичные значения не могут быть точно представлены, надо обвязать дополнительной логикой. Вот читай классику https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ и всё остальное у него под тегом floating point
>>1538745все очень сильно зависит от задачик примеру, иногда лучше вообще использовать библиотеки (или самим писать) реализующие арифметику рациональных чисел, тк они вообще не теряют точностьтакие дела
>>1538682тебе же все равно в компайл-тайм надо ))тупо сгенерируюй и множество и тапл, тем же макросом ))
>>1539002Чем макрос отличался бы от метафункции? Если что, енам там на пару сотен элементов. Препроцессор буста тоже идёт нахуй.
>>1538990>они вообще не теряют точностьВ том-то и дело. Когда делаешь какие-нибудь длинные вычисления над числом, типа деления/перемножения в цикле, оно заботливо сохранит все сомножители. Ну сократит парочку, конечно, но рост числителя и знаменателя потенциально неограничен.алсо>арифметику рациональных чиселsqrt(2)В общем, зависит от задачи: для расчета зарплаты с умножением на НДС подходит, для трассировки лучей - нет.
А можно мне тоже книжку с задачками, чтобы я опух? Можно со сложной математикой и геометрией, главное задачи не навязывали определённую внутреннюю структуру по типу, сделать то-то-то с использованием дерева.Я погуглил, всё унылое на первый взгляд.
>>1539396слишком много математики там имхочтобы там набить много задач, приходится осваивать тот матаппарат, который тебе не пригодитсячисто как развлечение сойдет, кому нра математические задачки
>>1539387попробуй лучше реализовать алгоритмы, которые делают в современной крипте..там много всего интересного выкатывают буквально каждый месяц..
>>1539396Ту, вроде ничего. Но очень много с виду глупых.>>1539468А в чём суть? Не очень представляю что такое текстовая игра, полистал описание - не понимаю что они имеют ввиду и в чём там элемент игры.>>1539464>в современной крипте..Вот это уж точно про "приходится осваивать тот матаппарат, который тебе не пригодится".
>>1539489Посмотри текстовые квесты, к примеру. Там показывают описание ситуации и насколько вариантов выбора, от которых в дальнейшем что-то зависит.мимо
>>1539489Сингллеерный MUD (да, знаю что тавтология) - потом сделай его мультиплеерным и тд. Это реальная задача, в которой надо будет думать.
>>1538861С одноклассником на перемене искали такую, пару натуральных чисел, что при деление одного на другое получалось число пи приближенное. У меня в какой то момент перестали находиться новые числа. Как я понял из за того что точности не хватает
>>1539510Мне тут один анон доказывал, что так низя передавать массив, но слился так и не объяснив почему. Цикл вечный, это не важно.void MakeAnswerToAntuan( Cls_Anonymous &SomeAnon ){whlie( SomeAnon .IQ < 10 ){cout << " Пшов нахуй" << endl;}}
Может кто доступно пояснить зачем мне использовать GNU Readline в c++ если у меня есть стандартный ввод-вывод?
>>1539569могу провести консультации, скайп, телеграммяндекс деньги либо прямой перевод на карточку сбербанк 1500к в часустраивает?
>>1539577Не, просто скажи, как вызвать функцию pcap_open_offline для файла, который лежит не в текущей папке?
>>1539540readline это такой пепелац для организации cui, те для организации взаимодействия твоей проги с человеком, а не в качестве конвеера с другими прогами (если примитивно говорить)если бы не анальная лицензия, то он бы поактивней использовался в проектах, а так когда нужно пилят свои поделия
>>1539538"настоящий" массив можно передавать по ссылке, это дано нужно понимать что у него будет фиксированная размерность, а это неудобно в большинстве случаевтем более, если это с++, то у тебя вместо этого можно передавать константный вектор, можно передавать std::array, а с 20го стандарта еще и появится вещь, похожая на string_view но для массивов и векторов
>>1539590ШТО?У меня там в классе есть динамический массив, который есть указатель на блок памяти. Что же это получается, по ссылке на класс с ним он по старой и доброй традиции будет передавать только первый элемент?
>>1539594Ну так и win32 проект прибит гвоздями к ней, в чем разница-то? Я что-то почитал про управляемую кучу, но на практике не очень понимаю.>>1539595Не знаю, наверное ты прав.>Среда CLR является реализацией спецификации CLI
>>1539579Я конечно не специалист, но попробуй функцию SetCurrentDirectory что ли, если оно такое отбитое.>>1539589>в другую сторонуЧто? Там в обе стороны можно писать. Можно даже чередовать :3
>>1539548По идее, чтобы писать на крестах без отстрела ног. В MS этого достигли отстрелом всего, кроме ног
>>1540637Александреску не очень релевантен, если у тебя есть С++17. Но как хобби чтиво для разрыва мозга - ок.
>>1540766Добавь в References проекта другие проекты. Разумеется, они должны быть DLL, static lib или utility. В первом случае ещё нужно пару макросов написать для экспорта символов. (Можешь создать новый проект, там студия уже сгенерирует всё, что нужно - оттуда можешь брать)
>>1540801Делать либу ради нескольких вспомогательных функций, которые никак не связаны между собой? А попроще как?
>>1540805У тебя какой-то неправильный интернет. Первая ссылка в гугле:https://github.com/Akagi201/learning-cmake/blob/master/docs/mastering-cmake.pdf
Подскажите вектор который ниже какого-то лимита выделяется на стеке, выше лимита - в куче. Короче нужен динамический массив, чтобы при этом не дрочить лишний раз кучу.
>>1541005>который ниже какого-то лимита выделяется на стеке, выше лимита - в куче. Короче нужен динамический массив, чтобы при этом не дрочить лишний раз кучу.std::string
>>1541023нет, посты удаляются только в закрепленных тредах. а это простой тред, который может утонуть(исчезнуть) если упадет на дно доски
А какие есть способы спрятать заголовочные файлы?Чет у меня плодятся заголовки, которые нужны только в одном месте и все.
>>1541426"sudo" не является внутренней или внешнейкомандой, исполняемой программой или пакетным файлом.
https://www.youtube.com/watch?v=w7gIClKZ85sБьерн страуструп говорит, что образование и опыт в программировании не важны. Нужно ПРОСТО брать и писать код. Все.
>>1542213>Бьерн страуструп говорит, что образование и опыт в программировании не важны.В результате получился си плас плас.
>>1542074Через bitblt совершенно точно можно скопировать кусок чужого окна, и соответственно один пиксель тоже. Если тебе нужно считать больше одного пикселя - копируй через bitblt в буфер - это очень быстрая функция и не нужно возится с windows-структурами после неё, у тебя тупой буфер в виде одного массива останется после извлечения. И это вопрос по winapi же, а не по плюсам.И вот ещё функция. GetPixel принимает hdc же, да? Только потом ReleaseDC не забудь вызвать, а то оно с ума сойдёт через некоторое время.
Недавно сдавал курасач, рейтаните насколько наговнокодил, кому не лень. Boost сериализацию как-то через жопу сделал, но работало.https://github.com/AI-Decay/Coursework
>>1542751Да нет, с точки зрения логики все нормА вот за перенос s=с; на новую строку/невыделение тела if-блока скобками я бы на бутылку посадил
>>1542751Оно робiт, только отступы криго расставлены. По факту в тело for входит только s = c;Дальнейший код в цикл не входит.
>>1542753Во-первых \0 затрет последний символ, не? Надо сначала индекс i прибавить, а потом туда нулевой символ пихать, правильно? Алсо массив будет УЖЕ создан в main и размер в памяти будет определен с количеством элементов, i будет возвращать lim, т.к. "пустые" символы будут с мусором из памяти, разве нет?>>1542754Ну так и надо, нулевой символ один нужен в конце, а не цикле.
>>1542757>Во-первых \0 затрет последний символ, не? Надо сначала индекс i прибавитьНет, перед выходом из цикла сработает i++ из заголовка for
>>1542757Прочитай задание еще несколько раз, и заодно загляни на страницы, где написано как работает for. А лучше выкинь нахуй это говно, го к нам на раст, почпокаемся
>>1542760Теперь понял, но возник новый вопрос. Почему при объявлении счетчика внутри круглых скобок for область видимости ограничена, как будто это внутри фигурных скобок?
>>1542773Вернее я нихуя не понял, если я ввел например 2 символа, на i=3 цикл остановился, в этот индекс я записал нулевой символ, почему к счетчику все равно надо прибавлять единицу? Тогда 4 будет по такой логике.
>>1542777А, все, индексация с нуля ведь идет, забыл совсем об этом.Но вот про область видимости у параметров for это что-то новое для меня.
>>1542773>Почему ... область видимости ограниченаРаньше было лучше в си не допускались объявления в заголовке for. А Страуструп запилил эту фичу как раз для того, чтобы не засиралась внешняя область видимости.
>>1542905А как готовить? Допустим, хочу обработать ошибку в конструкторе класса, как реализовать такое с этим вариантом?
>>1542926Никак, лол. А в каждом методе делать проверку, что значение существует, и если нет, возвращать пустое значение. Привет от сишки и Go с его if err != nil.
>>1542926Я не понял, у тебя ошибка при создании объекта? Если так, то это тебе ничем не поможет. Твои варианты - это а) кинуть исключение, б) переписать класс так, чтобы у него появилось "невалидное" состояние, типа bool m_isInitialized; и дальше что-то делать с этой информацией, в) переписать код так, чтобы класс не создавался если не выполняется какое-то условие, которое раньше было в конструкторе, г) создать make_* функцию, которая инкапсулирует пункт вОбычно используют второй вариант, чтобы лишний раз исключения не бросать.Если у тебя просто вызывается какой-то код, который может выполняться с ошибкой, то пишешь что-то вродеstd::variant<MyType, ErrorCode> LoadMyType(){...if (!opened)return ErrorCode::MyError;...return MyType(smth);}auto res = LoadMyType();Дальше много вариантов развития событий: писать std::visit для типов - громоздкоилиauto const ★ myObj = std::get_if<MyType>(&red);if(myObj)...илиif (res.which() == 0)...
>>1543009Я про то, что использовать виндовс х смысла нет, давно появились намного более удобные библиотеки для создания контекста, к тому же кроссплатформенные.А жлБегин и прочее - это из древнего стандарта опенжл. Сейчас принято использовать VAO/VBO (опенжл 3.3+). Учить их, правда, сложнее.
>>1542750Пайдет. Будь я преподом, поставил бы А Ты же сам писал?. Конечно это если ты бы не слился на вопросах и доке курсача.А теперь ИМХО:1. Сохраняй исходники в UTF-8. Я установил екстеншн force utf8 no bom.2. Проверка места, занято или нет, сравнением имени с пробелом - так себе решение (Почему пробел? Почему не просто пустая строка?). Лучше добавить метод bool Place::isOccupied() const.3. Какой-то мутный метод void Railcar::CreatePlase(), вот нахуя он?еще и с опечаткой. Сразу в конструкторе инить вектор нужным числом. Кстати в таком случае поле CountPlace не нужно, так как оно дублирует информацию из вектора. Его можно заюзать как счетчик реально занятых мест, и быстро определять есть ли в вагоне свободные места. Ну, это тебе наверно не надо.4. Поработай над передачей аргументов. Некоторые лучше было бы передать как const&. А в некоторых местах, например, сеттеры, где передача по значению, не хватает std::move.5. Тоже с геттерами - самим методам не хватает константности, и, если геттер константен, незачем возвращать копию поля класса, можно const&6. main можно было бы поразбивать на ф-и.7. Парсинг юзерского ввода пролистнул, но там тоже есть что улучшить.
>>1543030Спасибо, писал сам, сдал на А, в следующий раз учту замечания. Больше всего проблем было с бустом, никогда раньше не пользовался, был рад что оно хоть работало.Вообще реализация всего этого по заданию должна была быть на С#, но мне разрешили на плюсах написать
>>1542947А передавать в конструктор какой-нибудь ErrorHandler не вариант? Или тот же std::variant<MyType, ErrorCode>?> в) переписать код так, чтобы класс не создавался если не выполняется какое-то условие, которое раньше было в конструкторе, г) создать make_* функцию, которая инкапсулирует пунктМожно пример? Благодарю за помощь.
>>1543126> А передавать в конструктор какой-нибудь ErrorHandler не вариант? Или тот же std::variant<MyType, ErrorCode>?У тебя всё равно объект создастся. Если в конструктор передавать out-параметр с ошибкой, получится неочевидное и нечитаемое месиво. Хотя можно передать этот ErrorHandler как in-параметр и заставить его бросать исключения, но это тоже такое себе.> Можно пример?У тебя конструктор наверняка выглядит как-то такMyClass(...){...if(uslovie){std::cout << "pizdec\n";}}Замени вот это на std::variant<MyClass, ErrorCode> MakeMyClass(...){...if (!uslovie)return ErrorCode::pizdec;...return MyClass(...);}Можно без variant, с optionalЛучше приведи сам пример того, что сделать хочешь.
Как собрать программу, чтобы её не обнаруживал антивирус? Засунуть её в обфускатор? Только какой, после stunnix она вообще не собирается
>>1543413нужен рабочий kernel mode rootkit, возможно нужна будет его адаптация для твоей "полезной нагрузки", нужен набор рабочих эксплойтов для доставки и разворачивания руткита..
>>1543676Здесь нет таких.>>1543413Никак. Современные антивирусы могут и обнаруживают абсолютно любую угрозу. Алсо, малварь запрещена правилами борды, алсо помни об УК РФ.мимо майор
>>1543905У тебя что, ни разу антивирусы не ругались на хеллоу ворлд? А у многих они ругаются. И хуй с этим что-то сделаешь.
>>1544049Пиши авторам антивирусов, пусть твой сертификат к себе в базу добавляют. Или заставляй пользователей отключать его, или в исключения добавлять. А сначала на вирустотал загрузи
>>1543905> Никак. Современные антивирусы могут и обнаруживают абсолютно любую угрозу. Алсо, малварь запрещена правилами борды, алсо помни об УК РФ.Как вы могли подумать об этом? Мне необходимо проверить на безопасность свой собственный пк. Интересно изучить, надёжно ли защищён мой компьютер, если его попробует взломать злоумышленник>>1543443> нужен рабочий kernel mode rootkit, возможно нужна будет его адаптация для твоей "полезной нагрузки", нужен набор рабочих эксплойтов для доставки и разворачивания руткита..Зачем такие сложности? Разве не хватит обычного обфускатора + криптора?>>1543676> Пиздуй в тред по инфобезу> или в /hackСпасибо
Я правильно понимаю, что в visual studio формочки-кнопочки делаются именно через вот этот .netовский диалект c++/cli который больше похож на c#?
>>1544103Если ты хочешь шлепать формочки на С++ - то тебе в qt + опционально Verdigris, как замена MOC.Студийные да - дотнет. Есть еще WinRT, но я не трогал его.
>>1544244Да мне лаба1 нужно сделать, я понимаю, что qt сейчас обычно используют, но я на студии сижу, в ней я хоть немного что-то попробовал в отличии от остального.Просто читаю книжку, а там эти указатели ^, массив по-другому объявляется и т.д.
>>1544283C++\CLI это совсем другой языкЕсли тебе лаба1 на 2 кнопки - можешь попробовать через классическое Winapi, а-ля CreateWindow
>>1544345Да я выше писал(или это был прошлый тред), это должен быть интерфейс к бд. Я думал через технологию ado.net в VS как раз сделать как у Пахомова в книжке.
>>1527126с одной стороны как бы да. Но после перехода на кресты будешь писать немного иной код, нежели те, кто сразу писал на крестах. Хз хорошо это или плохо. Си более строг, нежели Си++
>>1543384Пишу обертку для винапи и хочу сохранить возможность получать код ошибки. Инициализации объекта происходит через YobaCreateSomthing и возвращает код ошибки, надо пробросить этот код через конструктор и все.
>>1526322 (OP)помогите мне разобраться с qt под андроид. Моя операционная система ubuntu 16. Мне нужно собрать приложение на qt под андроид. Вроде как нужно использовать clang для компиляции под андроид, потому что в новом ndk убрана поддержка gcc. Но qt не видит clang, хотя он установлен. Я пробовал искать решение в интернете, и на форуме qt есть тема со схожей с моей проблемой, >https://forum.qt.io/topic/95104/qt-creator-android-clangно там проблема не решена.Но там есть сообщение>https://forum.qt.io/topic/95104/qt-creator-android-clang/3Я не понимаю, мне нужно перекомпиливать весь qt с помощью clang чтобы мой проект на андроид компилился с помощью clang? Объясните мне пожалуйста, просто я не работал толком никогда с sdk и ndk андроида.
>>1544550Код выглядит как MyYoba(){HRESULT res = YobaCreateSomething(&m_winYoba);}?Попробуйstd::variant<MyYoba, HRESULT> MakeMyYoba(){WinYoba winYoba;HRESULT res = YobaCreateSomething(&winYoba);if (FAILED(res))return res;return MyYoba(winYoba);}а вообще, ты думаешь MS случайно два раза обосралась сначала с MFC, потом с ATL? Не благодарное это занятие, писать обёртки над винапи
Есть вопрос по qt, мб кто в темею Крч пишу курсач (в QT creator) надо завтра сдать попытался собрать, а оно без библиотек не запускается, ну это еще решаемо, но когда в собрал в релиз версии не считывает текст из форм вообще никак, мб поможет кто вроде не гуглится
>>1544872Может ты вызовы важны какие-нибудь обернул в макросы типа assert, вот оно в релизе и выпилилось. Или в коде где-то UB и проявляется после включения оптимизаций.
>>1544885Не работает: QString name=ui->authorNameTextField->text(); ui->label_14->setText( name);Работает: QString name=ui->authorNameTextField->text(); ui->label_14->setText( "name");Удалил старый проект, теперь и в дебаг сборке не работает
>>1544894блять пиздец я дегенерат, крч я поставил в ебаном эдиторе при нажатии на кнопку "добавить" связь на очистку поля откуда взяты данные, и в режиме отладки значения считывались быстрее чем происходила очистка
>>1544865Да, примерно так. А с уничтожением объекта как быть? Как оттуда результат вернуть? Мне нужно знать, что там очистилось все.
Как сделать чтобы вместо ptr->ptr->ptr->var можно было писать var. Только без дополнительной переменной, чтобы было как using только с переменными. Такое возможно?
хелпаните, как через SendMessage послать массив общий для двух окон, изменилось в одном приложении -> через SendMessage и изменилось в другом, чет у меня по кд 0 0 приходит. я пытался передавать ссылку на массив, но чет тщетно
>>1544947Я не спец в winapi, но разве такое вообще возможно? Скинь ссылку почитать.И что предлагают делать в такой ситуации? Не очищать?
>>1545062Я пишу auto& =. Если посмотреть на godbolt, то куча разыменований даёт один в один такой же код, как и доступ через ссылку-синоним. Но если у тебя указатели поменяются разыменования продолжат работать, а ссылка - нет. Не представляю почему они аналог дельфийского with не выкатили.>>1545136Тебе нужен глобальный кусок памяти. Твой массив (и твои указатели) существует только в адресном пространстве твоей программы. Смотри VirtualAlloc, GlobalAlloc и иже с ними.Вроде бы там можно выделять кусок памяти, и давать к нему доступ на чтение, на запись и на выполнение.
Есть тут кто? Приём!Я пытаюсь прибавлять double к double, но переменная почему-то при присвоении превращает число в нечто непонятное. В чём прблема?
>>1545282Я почитал, я начал подозревать, что мне нужно явно указывать количество знаков после запятой для каждой переменной. Верно?
>>1545307На первой картинке вычисление времени выполнения блока кода, на второй простой подсчёт количества условных тактов и проверка таким образом на прохождение некоторого времени.
Пишу программу для поиска значений в памяти. Как мне искать разные типы? Вот есть какое нибудь число, которое нужно найти, причем ттп его я не знаю. Может int, может float, может double. Если с интом все более менее понятно, то как искать дробны? Float занимает 4 байта, а double 8. Как всякие cheat engine'ы ищут?
>>1545533Что то не помогает> QObject::connect(&cmd, SIGNAL(clicked()), &label, SLOT([](){setNum(4);}));
>>1545548Для начала почитай как хранятся в памяти числа с плавающей запятой. Мантисса, характеристика и тд
>>1545557Ну знак, порядок и мантисса. Но для разных типов же разное колличество бит под каждый раздел
>>1545548В общем случае нельзя определить тип данных, не имея дополнительной инфы, это просто байты, которые могут быть чем угодно.
>>1545706Я ничего не знаю про cheat engine, но почти наверняка он может найти что-то только в исполняемых файлах или библиотеках, где формат жёстко задан. В произвольном же бинарном файле, который взялся невесть откуда, он вряд ли что-то найдёт.
сап прогеры, вопросменя интересует библиотека, которую я нашел на гитхабе, а именно https://github.com/whoshuu/cpr , которая позволяет делать post/get запросы.Но я никак не могу понять как добавить эту библиотеку в среду. Т.е. кинул по пути, где другие библиотеки (пик 3), среда не выдает ошибок.При попытке скомпилить линкер выдает ошибку, которая связана с библиотеками (пик 2).Помогите плз, я реально не могу этот момент уловить второй день.То что с гитхаба скачал - пик 4. Оттуда перебросил 2 папки - include и cpr. ПАМАГИТЕ ПОЖААААЛУЙСТА
>>1545753СПАСИБО!!! Потещу завтра как выйдетЯ перекат с питона, где все за тебя делаетсяТ. е. я скачал библиотеку, мне нужно специально место для них и в каждом новом проекте я должен ссылаться на папку, где. h и .cpp файлы?Я правда думал что кинул в кучу все либы и он сам потянет что нужно. Кстати lib это по сути просто пак заголовков и объявлений, да? А то с гита отдельно файлы не в формате либ.Ещё вопросик:Хочу запросом из интернета цеплять словарь, где слева именам соответствует имя переменной, а значением - значение переменной. Т. е. был словарь например {"a" : 3}. Как создать переменные заранее известного типа с этими именами? Это же невозможно вобще, да?(в пинотне просто locals().dict() и он словарь в переменные преобразует)
>>1545766>Я перекат с питона, где все за тебя делаетсяс какой целью?>Хочу запросом из интернета цеплять словарь, где слева именам соответствует имя переменной, а значением - значение переменной.начни с того, что к тебе приходит не словарь, а ебучий текст, который ты должен распарсить еще.> Как создать переменные заранее известного типа с этими именами?это в принципе хуёвая практика в программировании, когда хуй знает что берется хуй знает откуда. то, как ты будешь получать значения из запроса, может очень сильно отличаться от библиотеки к библиотеке.
>>1545766>Т. е. был словарь например {"a" : 3}. Как создать переменные заранее известного типа с этими именами?Если ты питонист, то ты вроде как должен знать каким образом работает словарь.Точно не скажу, но по идее там хеш-таблица со структурой, которая содержит информацию (структуру) о типе (int/не_int/ещё словарь) и содержит нужное значение или указатель на него.Если ты хочешь сделать то же самое на крестах, то убьёшь большую часть производительности и сделаешь очень много рутины и велосипедов. И это будет не переменные, это будет обращение к хеш-таблице по индексу "a" - что собственно и делает за тебя питон.Ну или придётся вникнуть в стандартную библиотеку, там вроде как есть std::variant для разных типов, который я никогда не использовал.Тебе зачем такое? Если для питона это естественный инструмент, то для крестов - довольно-таки противоестественный.
>>1545948> QObject::connect(&cmd, &QPushButton::clicked, [&](){label.setNum(45);});Хотя если написать такое говно, то всё работает, но почему хуй его знает
>>1545766>Это же невозможно вобще, да?вообще это возможно с препроцессором или с макросами. в свифте есть codable, 1 это генерируемый обвес к структуре, 2 это как выглядит структура для программиста.скорее всего в сях есть такая же хуйня уже готовая, и вообще то свифт ебаное говно и хотелось бы воздержаться от его упоминания, просто я еще нуфаг в сях
>>1545839>Ты что не видишь CMakeLists? Гугли как собирать библиотекиВыжу, скачал CMake, охуел с того что там нет файла .exe, который можно открыть и собрать библиотеки. Крч непомерно сложно, правда. Совсем не юзер френдли>>1545846>>Я перекат с питона, где все за тебя делается>с какой целью?Задача была отображать оверлей поверх окна. На питоне безмерно костыльный метод, который еще и ресурсоемкий.>>Хочу запросом из интернета цеплять словарь, где слева именам соответствует имя переменной, а значением - значение переменной.>начни с того, что к тебе приходит не словарь, а ебучий текст, который ты должен распарсить еще.там json слава богу, библиотеку для работы с ним тоже нашел, жаль не понял как установить. Коллекции/словари есть - думал будет изи>это в принципе хуёвая практика в программировании, когда хуй знает что берется хуй знает откуда. то, как ты будешь получать значения из запроса, может очень сильно отличаться от библиотеки к библиотеке.понятное дело, но есть просто список переменных, начальное значение которых есть на сайте. Ну кстати можно все переменные объявить, а потом значения подгрузить с сайта. Но в питоне было так просто целиком словарь преобразовать.>>1545858>Если ты питонист, то ты вроде как должен знать каким образом работает словарь.Понял, звучит мудро на самом деле>>1545977сложно, свифт не видел никогда в жизни.
>>1545951Написал говно - не понимает, почему не работает.Написал норм - назвал говном, не понимает, почему работает.Почитай ты уже ебучую статью в кутишной вики про сигналы и слотыИ указатель захватывай по значению бля
>>1545989> Выжу, скачал CMake, охуел с того что там нет файла .exe, который можно открыть и собрать библиотеки. Крч непомерно сложно, правда. Совсем не юзер френдлиТебе надо было vcpkg скачать, дурашка
Не могу понять как работать с графическим интерфейсом в qt. Размещаю кнопку, а в самом коде она нигде не появляется.
>>1546432Как ты её блядь размещаешь тогда? Научись писать интерфейс на крестах, а не перетягиванием виджетов на формочку. Забудь вообще о такой функциональности
>>1546436> Научись писать интерфейс на крестахС этим проблем нет. Но хочется быстро и наглядно накидать на формочку.> Как ты её блядь размещаешь тогда? Перетягиванием блядь. В контекстом меню кнопки можно перейти к слотам, но на этом всё. Самого объекта в коде нет
>>1545989>>1545766делай на питоне, кресты тебе не к чемуможно сделать standalone прогу на питоне, если у тебя есть в этом необходимость и все
Пытаюсь распарсить html-страницу на плюсах inb4 долбоеб с помощью CURL и gumbo. Загрузить страницу получилось, только нужной информации в ее коде нет нужный <div> пуст, хотя в браузере нет. Ее скрипты что-ли догружают? Как тогда эти данные можно получить?
>>1546602> Ее скрипты что-ли догружают?This> Как тогда эти данные можно получить?Внезапно, запустив эти скрипты.Поэтому современный веб такое говно.
>>1546653>Внезапно, запустив эти скриптыСомневаюсь, но это можно как-то сделать на плюсах? Может библиотека там какая, хз>>1546661Загуглил селениум, не понял как он мне поможет. С парсингом проблем нет, дело в том что парсить нечего
>>1546673> Сомневаюсь, но это можно как-то сделать на плюсах? Может библиотека там какая, хзК сожалению, да. Гугли webkit, webengine и т.п.Но тебе 100% не понравится, лучше скинь эту задачу на кого-нибудь другого
>>1546602>пытаюсь распарсить html-страницу на плюсахдля страницы, что содержит сложный динамический контент есть 2 пути:первый - использовать браузерпод виндой ie automation, там все просто, только надо шарить в com хоть чуть-чутьпод линуксом чуть сложнее - ты пишешь расширение браузера, которое будет работать с твоим сайтом, потом прогой запускаешь браузер в котором это расширение отработает открыв сайт, и выдерет тебе нужные данные, которые сбрости куда-нибудь, да хотя бы во временный файл в каком-нибудь формате, или еще как; а потом уже твоя прога возмет эти данныевторой путь - использовать библиотеки типа microsoft C++ REST SDK, смотреть какие запросы идут во время формирования динамического контента на сайте и формировать эти запросы ручками (а возможности этих библиотек помогут в этом), довольно гиморно, но это позволит делать проги которые не зависят от того установлен ли браузер в системедругое дело, что если у сайта уже есть какой-нибудь официальный rest- или soap- бесплатный доступ, то проще воспользоваться им и получать все нужные данные официально
>>1546833к примеру, в файрфокс сейчас можно писать расширения только на ява-скрипт, но есть возможность коммуникации этого расширения с нативным запущенным приложением при помощиhttps://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging
>>1546867Допустим, ты написал хедер, в котором есть несколько определений. Если ты захочешь использовать этот хедер при написании других хедеров, а затем несколько таких хедеров заинклудишь в одном файле, то одни и те же определения включатся несколько раз, на что компилятор ругнётся. Чтобы этого избежать, достаточно в начале хедера написать pragma once, и препроцессор будет проверять, включался этот файл уже или нет, и если включался, пропускать.Также есть другой подход, называется include guards. Более переносимый.
>>1546902А если какой-то стандартный хедер типа iostream(в нем есть эта директива?) в моем хедере нужен, в основном файле его потом не подключишь?
>>1546907Подключишь, все библиотеки используют pragma once или include guards. Стандартная библиотека не исключение. По-другому просто невозможно написать хоть сколько-нибудь большой проект.Из-за этого можно даже написать:# include <iostream># include <iostream># include <iostream>И это соберётся.
>>1546922Ок, но используется это в целях экономии размера итогового файла, а не для разрешения каких-то конфликтов компиляции?
>>1546954А, ты выше написал, что при повторении компилятор будет ругаться без этой директивы, я невнимательно прочел.Вроде теперь понятно, спасибо.
>>1546954Используется всё только для разрешения конфликтов. На размерах исходников никто не экономит, в этом нет смысла.
>>1546432>а в самом коде она нигде не появляется. Она появляется в генерируемом мок файле.Обращаешься к ней в твоем классе окна как ui->кнопка_нейм
>>1526322 (OP)```InterfaceReg::InterfaceReg( InstantiateInterfaceFn fn, const char *pName ) : m_pName(pName){ m_CreateFn = fn; m_pNext = s_pInterfaceRegs; s_pInterfaceRegs = this;}```вот это `: m_pName(pName)` что это такое?
>>1547670Это, считай, `m_pName=pName;` в теле конструктора первой строчкой до остального кода. Можно туда же ещё дописать m_CreateFn(fn).
>>1547674Спасибо за разъяснение. Я или не понимаю практического смысла такого написания, или просто говноед так написал...
>>1547677https://ideone.com/SZDfbAВот этот код нельзя записать без этого угрёбищного синтаксиса с двоеточием. Идея в том, что если B наследуется от A, то объект A должен быть сконструирован строго до любого кода конструктора B. Написать A=124 там не получится.>не понимаю практического смысла такого написанияЯ тоже не понимаю, выглядит отвратительно, особенно когда там пунктов 5-6 после двоеточия и в скобках указать нужно не просто параметры, а какие-то выражения. Например, если в коде выше нужно не просто 124 указать - а получить число из файла и только потом передать его в конструктор A, то придётся всю процедуру получения числа из файла указывать в скобках после двоеточия. То есть придётся по сути написать дополнительную функцию, которая нужна только как вспомогательная для получения бедного числа из файла, чтобы вызов этой функции затолкать в скобку после двоеточия.Объясняется это тем, что конструкторы имеют другой смысл, и если я хочу из конструктора B прокидывать значение получаемое во время конструктора A - то это должно быть не конструкторами, а функциями инициализации (обычными методами по типу void init(...), где B::init будет получать нужное значение и передавать его в A::init). Использовать конструкторы как предлагаю я не православно, якобы. Но это всё ещё можно сделать через placement new.
>>1547690Предлагаешь делать на каждый чих new/delete? Дерзай. Только потом не удивляйся, почему перформанс упал до уровня питона.
у меня дано n количество точек на плоскости,мне надо вывести вершины такого шестиугольника,чтобы в нем содержалось максимальное количество точек. Я знаю как проверять точки на принадлежность,но как более оптимально построить шестиугольник
>>1547721Звучит как задача поиска выпуклой оболочки. Но там количество точек не учитывается, а у тебя должен быть именно шестиугольник.
>>1547721Не понял задачи.Найти минимальные и максимальные значения x и y и построить шестиугольник, в который этот квадрат точно поместится, чтобы внутри него были все точки? Но это же бред какой-то, задача не может в этом заключаться. Может быть шестиугольник должен быть минимальной площади?Или вершинами шестиугольника могут быть только точки из твоего списка? Это никак не следует из твоего описания.
>>1547741если "выпуклых" точек будет 7, а не 6, то твой препод идет нахуй с формулировкой задачи.если "максимальное количество точек" подразумевает все таки не вообще все точки, то модифицируешь Алгоритм Грэхема https://habr.com/ru/post/144921/ под свои нужды. ну просто находишь все возможные шестиугольники и выбираешь из них самый оптимальный)
Делаю свою игру на Ditect2D как тестовый проект. У меня есть что-то вроде стрельбы (при нажатии на проблем возле спрайта создаются эллипсы, которые в моем случае круги и перемещаются в соответствующем направлении). Хочу добавить ограничение на минимальное время между выстрелами, потому что у меня получается если зажать пробел, то шары вылетают как линия. Как это лучше сделать?
>>1547677Так инициализируют константные члены, и члены без дефолтного конструктора.А при эксепшене раскрутится стек только для уже созданных членов, при записи через = они сначала создадутся по умолчанию потом переназначатся.
Аноны-кутешники, поясните дауну как работать с динамической памятью. Везде использовать смарты или подход "я убиваю деда, дед отца, а отец сына". Если смарты, то какие - стл или кутешные?
Уже немножечко ажтрисет от того, что какой-нибудь setItem просто крашится, а не выбрасывает исключение пре неправильных данных. Полагаю, что это потому, что он сигналит, а дальше в определенном не мной слоте естественно исключения не пробрасываются к месту моего вызова. Что с этим делать?>>1548327Использую смарты там, где без их использования требовалось бы вызывать delete у сырого указателя.Использую STL (с кастом к Qt типам при востребовании) там, где можно обойтись без Qt. Если же это например список заголовков таблицы, то храню его сразу в QStringList, потому что он используется только в одном месте при передаче Qt-методу, который принимает QStringList.
>>1548310Можно, конечно, внутри метода сделать какой-нибудь статик таймер, но не знаю, хорошо ли это.Быдловариант: проверяй, нет ли в направлении выстрела на определенном расстоянии уже выпущенного снаряда.Но оба варианта так себе, вроде бы.
>>1548422>проверяй, нет ли в направлении выстрела на определенном расстоянии уже выпущенного снаряда.Вот это может и сделаю, звучит неплохо и довольно быстро
>>1548310>Как это лучше сделать?ух бля зря ты спросил, там очень сложная концепция для новичка, да и в общем то не нужная для говно-пет-проектов.дело в том, что ФПС в "высокоразвитых" играх не константа. то есть ты не начинаешь быстрее бегать в майкрафте при 1000фпс, а в тяжелых играх на слабом железе у тебя даже при 20 фпс ну в теории возможно поиграть, это будет слайдшоу, но не замедленная съемка.дельта подход очень прост, ты прописываешь скорость снаряда в пикселях в секунду, и каждый кадр увеличиваешь позицию снаряда на скорость помноженной на дельта, где дельта - разница времени между предыдущим кадром и текущим. для говнопетпроекта на самом деле и его более чем достаточно, но что делать, если событие должно было произойти именно между кадрами?ведь если фпс будет скакать как ебанутый(предположим), то и пули будут вылетать не равномерно. я на самом деле не знаю как именно это делают грамотные разработчики игор, но можно предположить, что они тупо интерполируют. вот например как я это вижу: я нажимаю стрелять между кадрами, пуля помещается на условную архитектурную временную шкалу, в параметрах к пуле запоминается параметры дула именно во время нажатия кнопки, в следующий кадр я просто отрисовываю все пули на временной шкале с учетом прошедшего времени. если пуля столкнулась с чем то(наложилась на другой объект), я пытаюсь вычислить когда это произошло, то есть пулю надо отодвинуть немножко назад, так как она может наложиться на объект, и допустим вместо пули запустить анимацию маленького взрыва.
>>1548310Если скорострельность сильно ниже частоты кадров (у тебя же игровая механика к отрисовке привязана, верно, бака ты такая?), то просто напиши что-то вроде:reload-=dt;if (reload<=0 and probel){ vistrel(); reload+=0.2;}Где dt - время между кадрами, 0.2 - время перезарядки, а vistrel создаёт новый спрайт-снаряд. Это будет не очень хорошо, но зато просто.Если скорострельность сопоставима с частотой кадров (например, 20 выстрелов в секунду), то нужно анализировать время до перезарядки и время кадра. Например, если у тебя время кадра - 0.1, интервал между выстрелами 0.03, и на начало кадра до перезарядки осталось 0.02, то за этот кадр тебе нужно создать три снаряда. Тот, который создастся в момент 0.02 (и при этом нужно ещё посчитать, что он пролетит 0.08*v, где v-скорость), и ещё два в моменты 0.05 (пролетит 0.05v) и 0.08 (пролетит 0.02v). И на конец кадра время перезарядки будет уже 0.01.Могу написать демку с обоими способами, правда, только на opengl.
>>1548866Да, там не reload+=0.2, а просто reload=0.2, иначе будет что-то очень странное происходить, если долго не стрелять. Или reload-=dt занеси под условие (reload>0).
>>1548465Либо, кстати, просто делай перед выстрелом задержку в полсекунды. Как лайтовое решение - сойдёт.
>>1548866Решил попробовать привязаться всё таки не к отрисовке, а времени. Сделал как-то так, но мне кажется, что я опять привязался к времени выполнения и чем быстрее компьютер на котором это запустят, тем меньшим будет интервал между выстрелами. Кстати а не рискует ли std::chrono::steady_clock::time_point просто выйти за границы?
>>1549032чел чел чел я все придумал. когда нажимаешь выстрел, создаешь блядский поток, который будет выстреливать и sleep в цикле. когда отпускаешь кнопку - убиваешь поток.
>>1549145Слишком сложно сделано? Я просто хотел потом ко времени ещё подвязать что-то вроде восстановления энергии и может какие-то смены фреймов для врагов, поэтому сделал целый класс. Я думал в chrono довольно легкие функции, способа сделать это легче я не нашёл к сожалению.
У кого-нибудь новая visual studio стоит? Если не затруднит, проверьте, там можно добавлять database в качестве источника данных в c++? В шарпе главное есть, а в плюсах нету, только "объект". У меня старая версия просто, может вернули возможность.
Аноны, крик души. Я люблю C++, но какую же боль вызывает у меня использование чужих библиотек. Каждая из них написана в своем собственном стиле, и в итоге мой код превращается в шизофреническую фантазию, где в одном случае методы пишутся с маленькой буквы, а в другом - с большой, где одни классы называются TClass, а в другом - JDNTBNPWClass. Вот как с этим мириться? Почему за все эти года так и не придумали какой-то единой договоренности о стиле кода, и чтобы еще и тулчейны били по рукам, если код написан иначе?
>>1550125Ну напиши свой мини-фреймворк, который будет обёртывать нужные тебе либы в одинаковый интерфейс. Частая практика, в том же Я.Такси так делают и не парятся
>>1550075У меня прямо в главном меню есть пункт "данные" и там можно добавить источники. Типа как на скрине, но тут какая-то другая версия тоже.
>>1550125За все эти годы даже нормальный менеджер зависимостей и нормальную систему сборки не придумали, что уж говорить про соглашения, которым следовали бы все.C++ - хороший язык, но его экосистема - полное говнище.
>>1550213Что значит нормальную? Большинство существующих сегодня систем сборки решают какие-то конкретные задачи. Как там с распределенной сборкой? Много из нормальных систем в других языках её поддерживают?
>>1550389It depends on the language. For example, if the problem is very generic, then we can just use C. We use GCC as a general purpose assembler on Linux. However, if there is no generic problem to solve, then we tend to use the most specific language. For example, if you have a generic problem such as memory allocation, then you'll usually use the most generic language and go to the C language. There is some variation on the theme, however. In C, we tend to use the more general language, and if the problem is very specific like a register overflow, then we'll use an implementation of C and go to C++
>>1550125The first reason is that it's a very complicated subject. You might be interested in the "Style Guide" that's available from the C++ standards committee, and which is an attempt to standardize things. It's a very thorough thing. But it's not a single code-style standard. The standards committee is a large, complicated, overlapping thing. It's a very complicated problem, and it's very hard to get anything done, unless there's a consensus. If you go to it, you get a whole bunch of stuff, and there's not a lot of consensus.The second reason is that there's a whole bunch more to the problem than "Style Guidelines", you're looking at many different languages, and you're looking at many different programming styles. There's no standard way of doing things. If you look at any language, there's something else going on, and there's no single standard that will tell you all the things. You just have to learn to look.
I am C++ programmer and I practice here for understanding russian non-formal text. I'm a member of the C++ core committee, I've contributed to STL, the C++ standard library, and I'm the C++ editor.I started to study russian language in 2007, I am studying Russian Language. I'm a member of the Linguistic and Cultural Society of Moscow, a committee of researchers and instructors for Russian language. I'm a member of C++ committee, member of ISO and I'm responsible of internationalization for the russian standard. I'm a member of the C++ core committee, a member of committee of research and instructors of Russian Language.Ask me if you want.
>>1550594Это паста с 2channel, поцоны, расходимся!>私はC ++プログラマであり、ロシア語の非公式テキストを理解するためにここで練習しています。 私はC ++コア委員会のメンバーです。C++標準ライブラリであるSTLに貢献し、C ++エディターです。>2007年にロシア語の勉強を始めました。ロシア語を勉強しています。 私はモスクワの言語文化協会のメンバーであり、ロシア語の研究者とインストラクターの委員会です。 私はC ++委員会のメンバーであり、ISOのメンバーであり、ロシアの標準の国際化を担当しています。 私はC ++コア委員会のメンバー、研究委員会のメンバー、ロシア語のインストラクターです。>よろしければお願いします。
>>1550603Yeah, and they do the same thing. It's just different ways to communicate. There are no certain rules of communication, so people can find the right way to convey their message. The way I communicated was the way they did. I was trying to get their point across, but I couldn't do it in this manner. That's what I had to do. But if we just sit here for three hours, and we just sit here like I just sat down with the guy in a movie and have some kind of conversation, we're just going to be confused and we're going to be confused all the time because I'm not communicating in the same way they did.
Do not get me wrong, I'm trying to give you information in a unique way, and not copy from somewhere else. I'm giving you information from my personal experience, my experiences, and my research, and I know that you are going to take everything I say with a grain of salt, because your experience is unique to you. But I can guarantee to you that I'm not a scam artist who wants people to take everything he says as fact.
Есть текстовый файл с числами. Числа из него считываются в массив.std::ifstream in("file.txt");if (in.is_open()) { while (getline(in, line)) { Array = std::stoi(line); i++; } }Как сделать, возможность не указывать расположение текстового файла в коде, а выбирать его через диалоговое окно?
>>1551119std::ifstream in("file.txt");if (in.is_open()){ while (getline(in, line)) { Array = std::stoi(line); i++; }}fix
>>1551120std::ifstream in("file.txt");if (in.is_open()){while (getline(in, line)){Array = std::stoi(line);i++;}}else{for (auto itr : lines_iter()){if (itr.count() > 0){for (auto itr_str : i){if (std::stoi(itr_str.first).str() == line){std::ifstream itrout(inout, line);if (itrout.is_open()){while (itrout.getline(in, line)){Array = std::stoi(line);i++;}}}else if (itrout.is_open()){while (itrout.getlines(in, line)){Array = std::stoi(line);i++;}}}}}Попробуй этот код
есть структура:struct S {float x;float y;float f;}массив:S* A = new S[J]и есть кодfor (int j = 0; j < J; j++) { A[j].x = fmod(rand(),640); A[j].y = fmod(rand(),320); A[j].f = generator(); }Какого-то хуя ровно после 10-ого значения он начинает записывать хуйню, а не то, что его просят. Вместо троек 123 123 533245 он заисывает 123 345345 0 или что-то в этом роде. В чем может быть ошибка?
>>1551119>>1551120>>1551125>>1551198да иди нахуй студент ебаный, если не можешь вставить код нормально, то используй pastebin
>>1551198Вот рабочий вариант:struct S {float x;float y;float f;}S A = new S[J]for (int j = 0; j < J; j++) {A[j].x = fmod(rand(),640);A[j].y = fmod(rand(),320);A[j].f = generator();}A[0] = 1;float[] A0 = new float[5]A1 = new float[]A2 = new float[]A3 = new float[]// Generate a random number between 0 and 2,000,000,000// The generated random number is the sum of the numbers in A0 + A1 +// A2 + A3// Note: The generated random number is always between 0 and 2,000,000,000// The generated random number is the absolute difference of// the numbers in A0 + A1 + A2 + A3for (int x = 0; x < 5; x = rand() 2, 0) { // Note: If x == 2,000,000,000 this is the same as 0, 0A0[x] = 0;A0[x + 1] = 0; // Note: If x == 2,000,000,000 this is the same as 0, 0A0[x + 2] = 0;}for (int j = 0; j < 5; j = rand() 2, j++) {for (int x = 0; x < 5; x = rand() 2, x++) {A0[x] = fmod(A0[x] A0[x + 1], 0);// Note: We add 1 because we know x has to be a multiple of 2.// The generated random number is the absolute difference of// the numbers in A0[x] and A0[x] + A0[x + 1]A0[x] += A0[x + 1] A0[x] - A0[x];Там только вывести осталось
на skillbox курсы по си++ стоят 2.5к в месяц. Был у кого-нибудь опыт? Заочная второкурсота информатики, учу теовер и статистику, а по крестам че-то тухло - препод древний деда, который дает какие-то странные изи задания на семестр. Что-то типа найти минимальный элемент массива, лул.
>>1551473Единогласно. Skillbox - хуйня, развод и говно. Если ты тупой даун, который этого не понимает, можешь попробовать конечно. Но потом не жалуйся, когда попадешь в пучину анальной безысходности
C++ бояре уровня $300КК/СЕК, поясните, почему в примере [1] constexpr auto var = 10 катит, а остальное нет?1. https://wandbox.org/permlink/E9yTL78tkWY6opje
Сап, как собрать проект на c++ со сторонними либами через командную строку? Я нуб, перешел на второй курс вузика. На первом мы слегка затрагивали эту тему, конкретно команду make и make-файлы, но делали это очень поверхностно + по книжке. И сейчас возникла необходимость скомпилировать один проект с использованием curl. Проблема в том, что при компиляции вылазит миллион ошибок, вроде "не найдено определение...", пробовал компилировать так:g++ main.cpp header.h json.hpp curl/curl.h curl/curlver.h тут еще несколько файлов curl -o testНасколько я понимаю, файлы компилируются не вместе, но как сделать правильно я не знаю.
>>1551719Не нужно указывать 100500 файлов, хватит -Iпуть_к_хедерам -Lпуть_к_либам -lназвание_файла_с_либой.Если что, -I - заглавная i, а -l - строчная L. Ненавижу пидораса, который это придумал
>>1551473https://ru.coursera.org/specializations/c-plus-plus-modern-developmentвот курс для новичков хороший платныйhttps://stepik.org/course/7https://stepik.org/course/3206этот курс более старый, но он тоже неплохой и бесплатный
>>1551788>cmake лучше изучайОн не понимает, как компилятор запускать, что такое объектный файл, как инклуды работают, а ты ему сразу cmake советуешь.
>>1551719Сurl needs the full headers to compile your c++ projectIt is a good idea to add header files to your project (with a few exceptions, you can add only the header files). However, it does not mean that your project is compile-able. The header files don't include the libraries, and the only exception is header files that contain only library headers. The reason is that they contain only libraries definitions (including headers) and headers from the external sources are included, the external sources are not defined in the .h files. The other exceptions are: The header files in the same directory, the headers of external source files and the headers of libraries (including headers).
>>1551800Ну так таам документация есть, как раз все поймет, мне просто больше дедуктивный метод познания заходит а не индуктивный
>>1551830Ctrl+Space при курсоре в скобках? Там отображаются даже неявный конструктор копирования.Они в новых версиях иконку F1 выпили уже наконец?
Подскажите как закодить интерполяцию. У меня есть решетка, в ней какие-то значения. Нужно получить значения для одного квадратика, например, а потом для всей решетки. Беру один квадратик, получаю интерполяционный многочлен. Беру другой получаю другой многочлен. И что дальше делать?
>>1551889ок, ты нашел многочлен первой степени для одного значения, одного квадратика. Но в каждом квадратике несколько значений, а самих квадратиков 9 штук.
>>1551727>Ненавижу пидораса, который это придумалfor (int I=0; I<11; ++I) for (int l=0; l<I; ++I)Есть шрифты, где ещё и 1 похожа на l. А иногда 1 из одного шрифта выглядит как l из другого и наоборот.
>>1551903вот те картинка, нужна одна функция, которая все это интерполирует>>1551893т.е. если я последовательно буду применять мнк для двух соседних квадратиков, потом для объединений по два и дальше, то это приведет меня к успеху?
>>1551727>Ненавижу пидораса, который это придумалКогда это придумывали, каждый байтик был на счету, короткие тэги реально экономили место. Плюс l и I в тех шрифтах в терминалах отличались очень сильно, и никто не думал, что дизайн шрифта когда-нибудь станет проблемой.
>>1551914>вот те картинка, нужна одна функция, которая все это интерполируетЕсли хватит линейной интерполяции, то можешь сначала строить выпуклый многоугольник через триангуляцию Делоне (его еще надо будет экстраполировать до краев твоей решетки), а потом смотреть в какой треугольник попадает узел решетки, и получать его значение через барицентрические координаты.https://en.wikipedia.org/wiki/Delaunay_triangulationhttps://en.wikipedia.org/wiki/Barycentric_coordinate_system
>>1551936Так почему сейчас, когда шрифты весят десятки мегабайт с чуть ли не всем юникодом, это легаси до сих пор доминирует, а не сдохло?>>1551951Вот бы ещё хоть один из этих шрифтов можно было бы указать здесь при форматировании кода. Хотя о чём это я, у нас даже звёздочки съедаются до сих пор.
>>1552009Ну так ты почитай то, что там вместо шапки. А потом можешь в настройках браузера можешь выбрать какой шрифт использовать для моноширинного текста.
>>1552009> это легаси до сих пор доминируетПотому что никто системы сборки и миллионы скриптов ради одного хипстера переписывать не будет.
>>1550594>'m a member of C++ committee, member of ISO and I'm responsible of internationalization for the russian standardСделайте stod/to_string, в которых явно можно задавать сепаратор, точка или запятая, без настроек локали. Это действительно нужная вещь. Полезнее 2d графики в стандарте, как мне кажется.
>>1552009>Так почему сейчас, когда шрифты весят десятки мегабайт с чуть ли не всем юникодомКстати, вопрос: почему сейчас код весит десятки мегабайт. Я понимаю, что инлайн и 64-бита, но, например, у Qt за десять лет бинарники распухли в 10 раз без серьезного увеличения функционала (при этом 32 и 64 бита отличаются по размеру процентов на 30). Os нифига не помогает. Я хочу экзешники на 500 килобайт, как на дельфи, а не 20 мегабайт ради одной формочки.
>>1552052>При чём тут системы сборки и скрипты? Вроде, речь про щрефты.Ему не нравится -l в параметрах компилятора, потому что похоже на -I.
>>1552051>Пиши на сишечке Там такая же фигня. GTK сейчас не меньше Qt весит. Потому что flto, и компиляторы дофига умные.
>>1552057Я вообще про бинарники и библиотеки, которые с каждым годом пухнут, как на еде из макдака, без серьезного улучшения функционала.
>>1552056>Я негодую из-за шрифтов. Реальная проблема со шрифтами - это то, что почти нигде ` и ' нельзя использовать как парные кавычки. Даже в шрифтах "для программистов" вроде Terminus.
>>1552064Тут дело не в шрифтах, а в том, что лексеры многих языков так научены искать строки. Лексеру пох, как выглядит символ, он думает числовыми кодами символов. И для него они разные.
>>1552069>Тут дело не в шрифтахВ шрифтах и клавиатурах. Раньше в шрифтах можно было делать `такие кавычки', и это выглядело нормально, потому что у этих символов было парное начертание. В старой юниксовой документации это повсеместно используется. Теперь в юникоде добавили кучу символов для одинарных кавычек, но специальную раскладку ради них никто использовать не станет, и на клавиатуры лишних символов не добавят. Это и бесит: почему в кодерских шрифтах не сделать парными как раньше, и забить на правильную типографию, на которую все равно всем пофиг в этой области?
>>1552064>>1552069>>1552081в емаксе и виме (и, наверное, в других редакторах) можно по желанию настроить "представление" любого символа или сочетания символов)в емаксе специальный режим для этого естьвот
>>1552032>Сделайте stod/to_string, в которых явно можно задавать сепаратор, точка или запятая, без настроек локали.напиши сам то, блядьне долго и писатьвот
Хакеры, молю, >>1545733Я так и не разобрался с траблой. vcpkg скачал, либы получил.Никак не могу победить эту студию. Пожалуйста, памагити.
>>1551950Ну допустим у меня есть линейные многочлены для каждого треугольника. А дальше что с ними делать?
>>1552175>Ну допустим у меня есть линейные многочлены для каждого треугольника.Если есть треугольники, то многочлены не нужны. Переводишь декартовы координаты точки в барицентрические по формуле из вики, потом находишь значение в точке = As+Bt+C*u, где A, B, C - значения в вершинах треугольника, s,t,u - соответствующие барицентрические координаты.
>>1552119>напиши сам тоЯ-то написал уже давно. Это в стандарте должно быть, потому что абсолютно все за пределами англоязычного мира на этом спотыкаются хоть раз.
>>1552150Куда ты их получил блядь?vcpkg integrate install прописывал? Что у тебя в настройках линковки творится?
>>1552217>Может научить stoi/atio возвращать optional вместо хуй пойми чего? Да, эксепшены для таких вещей - не очень хорошее решение.
Нужно добавить пустую секцию заданного размера во время компиляции в студии. Пробую вот так:#pragma data_seg(".sec")__declspec(allocate(".sec")) unsigned char buffer[size];#pragma data_seg()Работает, но если включить оптимизацию, то очевидно компилятор оптимизирует этот хак. Как это делается по канону?Алсо, пилите перекат.
>>1552302>>1552303И volatile тоже оптимизирует. Что себе позволяет этот компилятор?> Алсо, оптимизирует скорее всего линковщик из-за LTO, хз как это отключить для одного файла> Ну тогда добавь post-build step и пихай свою секцию прямо в файлКак такое без пердолинга провернуть?
>>1552313LTO наверное можно в параметрах файла вырубить (если ты студией пользуешься).Post-build step указать можно в настройках проекта, там будет что-то типа создания раржипега
Вопрос по qt. Есть класс Mainwindow, в нем я создаю указатель на кнопку и в конструкторе класса делаю так> button1 = new QPushButton("Button", this);Но проблема в том, что кнопка не активна. Хотя если создать кнопку отдельно > QPushButton sd("df",&w);Где w экземпляр класса, всё будет работать. Почему?
Помогите кто-нибудь, я создал проект в 10 студии, ни единой строчки кода не написал, а мне уже выдаёт >fatal error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежденинкрементную компоновку отключил, но ошибка осталась. Что это за хуйня?
>>1552505> я создал проект в 10 студииА открываешь небось в более новой, либо более новая вообще установлена на пеке.> fatal error LNK1123: сбой при преобразовании в COFF. Что это за хуйня?У меня эта хуйня проявлялась при компиляции ресурсов. Для начала можешь все ресурсы (иконка/инфо о версии) удалить из проекта и попробовать пересобрать. А так, чтобы с ресурсами компилировать нужен какой-то апдейт на 10-ю студию. Какой - не помню.По факту более новые студии меняют какую-то нужную либу и 10-я студия обсирается. Как вариант можно эту либу взять с машины, где нет студий новее 10-й и положить её рядом с компилятором. Что за либа опять таки запамятовал.А вообще нахуй тебе десятая студия вообще. Бери новые или вообще QtCreator.
>>1552515>А открываешь небось в более новойВ 10 и открываю. Никаких студий новее я не ставил, 10 поставил из-за того, что мой ноут 17 или 19 не потянет.
>>1552527>17 или 19 не потянетТы практик или теоретик, ты пробовал?У меня тоже достаточно динозаврический ноут(что дома, что на работе), но полет нормальный с обеими версиями.
>>1552536Теоретик, значит. Как хочешь.Как я помню, десятая-двенадцатая сами по себе лагучие. Мне сначала поставили на удаленной машине 12 - она работала хуже, чем 17/19, которые я ставил сам.
>>1552219Прописал. Проект скомпилился.Анон, спасибо большое.В приложении 2 и 3 два скрина. Я в душе не ебу что это значит. Просто напихал путей куда мог. Как эта хуйня вобще работает? Где можно прочитать инструкцию как добавлять библиотеку? Так чтобы по пунктам, с обкашлянными моментиками всеми.Я буквально не понимаю что я сделал.
>>1552561Тебе ничего не нужно руками добавлять, если ты прописал vcpkg integrate installПо поводу подключения библиотек ты хуй где инфу найдёшь. Нужно только уяснить, что со стороны библиотека - это по сути набор заголовков и, опционально, lib(+DLL если линковка динамическая). То есть всё, что тебе нужно, этоа) указать пути к заголовкамб) прописать названия .lib файловв) чтобы не писать каждый раз путь к lib файлу можно указать путь к папке с этими файлами.г) если линкуешься динамически, то нужно не забыть DLL положить рядом со своей приложухой/библиотекой(DLL)В студии для пункта "а" это твой пикрил 2 либо пути в пункте выше (каталоги vc++ блядь, какой же уёбищный русский перевод у студии, пиздец просто).Для пункта "б" это твой пикрил 3, для пункта "в" это пункт выше (или нет, не ебу как оно там на русском называется)DLL если планируешь запускать без студии копируешь руками либо скриптом самописным, хотя если в студии не прописаны пути до бинарников, то тоже придётся так делать.Конечно, это всё при условии того, что библиотека написана нормально (в vcpkg все библиотеки приводят к нормальному виду).
>>1552606Мне это надо собрать, всё, столько ебли из-за этого, ор выше гор, понятное дело, что проще поставить 2017 или 2019 и не мучать себя, но у меня йобта, а качать надо от 10 ГБ.
Есть в 2к20 рабочие эмуляторы cuda (просто чтобы код протестировать)? Поискал в интернете, только какие-то васянопроекты 3-4 летней давности.
>>1552045Нихуя ты охуел, 500 килобайт на бинарник! Распухшая делфи. Я хочу чтобы вообще весь гуй влезал в 30КБ, как GEOS DESK TOP на коммодоре 64, с контролами, менюшками, окошками, иконками и всем-всем-всем.
есть main.cpp, в нём определеноconstexpr char null_char = '\0';есть token.h и token.cpp, в которых используется null_char. Если я пишу в token.hextern char null_char;main.cpp(8,16): error C2373: 'null_char': redefinition; different type modifiersесли ничего не пишу в token.htoken.h(22,16): error C2065: 'null_char': undeclared identifiertoken.h(22,16): error C2065: 'null_char': undeclared identifiertoken.cpp(11,12): error C2065: 'null_char': undeclared identifierКак сделать, чтобы одно и то же constepr использовать в разных файлах?MS Visual Studio 2019 Community
>>1567632Но это же тебе надо обратиться в делфи/паскаль тред.Код процедуры пункта Г будет меньше чем на 10 строк (может быть даже 5 строк), и написать его можно секунд за 30. Просто смешно предлагать за такое денежку. Я бы написал, если бы у меня был настроенный компилятор под рукой - нужно потыкать функции, там какая-то контринтуитивная эбола была со строками, если не ошибаюсь.
>>1572205А, ты в плане что тред старый? А я то думаю в чём же дело. А я и не заметил, их тут перекатывают раз в год, и нет в треде сообщения о перекате обычно.