Вместо шапки - https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
>>1375142 (OP)поч в семантике перемещение юзается ссылка на рвалью, ваще не понимаю чем она отличается от ссылки на лвалью
>>1375081>"../" значит "каталог выше", "../../" значит "два каталога выше" и так далее. Если ты беспокоишься за кроссплатформенность, то, во-первых, иди нахуй, а во-вторых, windows уже давно умеет понимать оба варианта слешей.Оххх, блядь...Слеши в #include не имеют отношения к слешам в ФС, этот меппинг на совести реализации.А бекслеши в #include это вообще UB.
>>1375171почему? в методах копи семантики аргумент ссылка на лвалью, а мув семантики рвалью, разве нет? в чем профит и разница
>>1375185чтобы у тебя в итоге сработал перекруженый мув-конструктор или оператор присваиванияникакой магии нет, все основано на перегрузкахединственные сложности могут возникать с пониманием необходимости истользования std::move и std::forward
>>1375199уже думал понял, но тут вспомнил про перегрузку присваивания с перемещением и не понял. присваивание просто принимает ссылку на лвалью, а присваивание с перемещением рвалью, почему?
>>1375199вернее, с пониманием не необходимости использования, до этого то быстро доходишь на практике, потому что тупо не будет работать как надо, а с пониманием, как это устроено под капотом, в частности механизм свертывания ссылок может сначала привести в замешательство
>>1375203ну вот быренько нагуглилпик 1-перегрузка присваивания с перемещением, принимает ссылку на рвальюпик 2-просто присваивание, принимает ссылку на лвальюну чому так, какая разница
>>1375175> На совести реализации> ubТы только что на ноль поделил.все современные компиляторы поддерживают обратный слеш
>>1375205Ну, в первом случае ты переместил, то есть больше старым объектом пользоваться не сможешь, во втором просто скопировал.
>>1375216а, понятны твои заморочкидык пользуйся наздоровье, но это не приветствуется, нехороший код будетименно для этого, кстати и сделана очистка в последних строчках метода
>>1375212>> На совести реализации>> ub>Ты только что на ноль поделил.Нихуя я не делил на ноль.Слеш — / — implementation-definedБэкслеш — \ — UB в C, но conditionally supported в C++.Так что я ошибся с UB. А ты не умеешь читать.
>>1375212>все современные компиляторы поддерживают обратный слеш Ну да. Только не так, как ты думаешь.#include <experimental/string_view>OK#include <experimental\string_view>fatal error: experimental\string_view: No such file or directory #include <experimental\string_view> ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>1375223я так и не понял почему аргумент мув семантики ссылка на рвалью а копи семантики лвалью, еще есть вопрос 1. оператор + принимает рвалью, поэтому вf=a+b;лвалью a и b заменяются на рвалью неявнокак можно рвалью заменить на лвалью
>>1375375Беги за стимуляторами. Все несколько на самом деле писец как сложнее в современном С++:- rvalue- lvalue- xvalue- glvalue- prvaluehttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3055.pdf
Я не знаю, анон, понял ты или нет, но на самом деле ничего никуда не перемещается, всё остаётся на своем месте.
>>1375242Что экранировать?>>1375375>как можно рвалью заменить на лвалью https://timsong-cpp.github.io/cppwp/n4659/conv.rval>>1375379>на самом деле писец какО да, писец как сложно. "Выражения делятся на нескольких видов." Ебать, без PhD в CS не понять!
>>1375418>Ебать, без PhD в CS не понять!Ох у тебя сарказм попер.Ну раскажи например про temporary materialization.
>>1375426Я как-то более детально встречал:Temporary materialization occurs in the following situations: when binding a reference to a prvalue; when performing a member access on a class prvalue; when performing an array-to-pointer conversion (see above) or subscripting on an array prvalue; when initializing an object of type std::initializer_list<T> from a braced-init-list; when typeid is applied to a prvalue (this is part of an unevaluated expression); when sizeof is applied to a prvalue (this is part of an unevaluated expression); when a prvalue appears as a discarded-value expression.
>>1375375>я так и не понял почему аргумент мув семантики ссылка на рвальюзатем чтобы эта функция работала только для временных значений! или для значений, которые стали ненужными в текущем контексте и их можно передать дальше (посредством std::move)все же простофункция, принимающая r-ссылку, просто не примет фактический параметр, который представляет из себя l-значение и все
>>1375386ну дык да, нужно еще как минимум понимание работы универсальных ссылок, понимание когда надо использовать std::move и std::forward, а лучше понимать механизм сверки ссылок
>>1375408>c++20>ничего никуда не перемещается, всё остаётся на своем местеагаа теоретические работы физиков-ядерщиков в последние годы ничем не отличаются от теологических диспутов в позднее средневековье
>>1375413>decltypeдзен заключается в том, что внезапно в c++14 и с++17 он почти не нужен, в то время как в с++11 его приходилось таки интенсивно использовать
>>1375489а вообще не буду выебываться типа сакральными знаниями: шикарное объяснение как работает и зачем нужен decltype есть у майерса в последней книжке, рекомендую
Поясните за эксепшоны: нужны или ненужны? Вроде столько учат их делать, а в продакшне вроде как ненужны.
Привет анон. Подскажи пожалуста какую книгу лучше использовать для вкатывания. Присувствуют навыки на уровне написать Hello world, сложить две матрицы, создать динамичный массив.
>>1375586для вкатывания куда? у нас все в труху!наверни мейерса последнюю книжку - "эффективный и современный с++" и "шаблоны с++, второе издание" вандервурда, там базовые инструменты крестов обсуждаются
>>1375491Спасибо, доброанон! Насколько рекомендованная книга пойдет вкатывальщику, хуеющему от 50 видов ссылок?
Хочу сделать что-то вроде https://www.youtube.com/watch?v=Y4gU2vttNToЧто мне использовать, чтобы сделать окошко, картинки привязать к объектам? DirectX? Opengl? WinApi?(нужно ли знание подобного на реальной работе? Оно, насколько я знаю, довольно тормозное)
Поясните за SRP. Вот у меня в симуляции эволюции есть один огромный обьект State, которые каждый тик проверяет состояние кучи вещей и вообще содержит всю инфу. Надо его разделить на кучу маленьких обьектов, у каждого из которых свой небольшой интерфейс?
Ребятки, помогите выполнить лабу. Всю ночь подменял на работе. Думал, что пары не будет оказалось будет, и собственно забил болт. Пожалуйста помогите. Понимаю, что закидаете говном, но надеюсь на лучшее.Кидайте тг. В долгу не останусь.
>>1375760По-идее да, у тебя должна каждая ентити хранить свой стейт, а не один стейт хранить состояние всех энтити. Если они неоднородные канеш, а стейт не просто контейнер.
>>1375615>а в чем принцип отказа от экспешнов? не ошибаться? парсить любой ввод? Пользоваться контрактами.
Сап, срочно понадобилась библиотека boost по работе (именно она -требование начальства), а значит и си, хотя я предпочитаю более высокоуровневые языки. скачал библиотеку, откомпилировал (пик1) в папочку. Пытаюсь подключить, пишу (пик2) и отключаю прекомпилированные заголовки и ловлю ошибку (пик3)... че не так? я так понимаю, файл недокомпилировался какой-то, но какой и почему? msvs 2019
>>1375934на твоем уровне понимания (судя по тексту) лучше бы тебе забирать ее через vcpkgа лучше вообще не забирать целиком.. а брать только то без чего не обойтись.. с учетом того что в с++17 множество функционала из буст перекочевало.. возможно и не пришлось бы бустом пользоваться при здравом размышлении..в любом случае если у тебя были проблемы, то с бустом их будет x2, кхе кхе
>>1375950окай, подключил vcpkg ставлю библиотеку boost::asio и ловлю вот такую ошибку. в чем проблема? она не компилилтся, насколько я понимаю
>>1375934>компилить бустТы же поехавший нафиг, его сами разработчики с трудом компилят. Ищи готовую сборку.
>>1376083он еще все это делает в vs19 которая буквально позавчера вышла, лолиз новых версий vs как правило 2 года баги вычерпывают ))
>>1376202Это нормально для ньюфага. Ибо придумавание английских имён вразумительных требует кучу времени по первой.
Не работает скин курсора в виндовс окне, ico нормально отображается, курсор тоже подключен, то при наведении на окно остается обычным.
Анон, никогда не работал с бустом.Для меня это какой-то монструозный монстр в представлении.С чего начать? Какие части библиотеки наиболее популярны или часто используемы?
>>1376270Почитай книгу Антоши Полухина. И да, буст сильно меньше релевантен, если у тебя компилятор с С++11
>>1376270уже особо никакие, основное уже есть в современных стандартах, другое - лучше брать сторонние либы
>>1376246А что такого-то? Мне недавно тоже понадобилось делать ГУИ, изучаю MFC. Всяко лучше чем со всяким кривым кроссплатформерным говном мучаться.>>1376304Не по хипсторски
>>1376340Ну хрен его знает, задал правила в property sheet'ах один раз и кодогенерация будет о себе напоминать лишь хлипкой строчкой в билд логе.или ставь расширение для студии, тогда вообще ебаться не нужно
>>1376341Это если все заработает.Но по моему опыту это все работает через задницу и постоянно ломается. Я немного экспериментировал с QT.Любая зависимость от чего-то в С++ проекте - боль.Гораздо проще выучить MFC/WinAPI, и все - Platform SDK ставится вместе со студией, добавил инклюд, прилинковал библиотеку и все работает.
>>1376349> Это если все заработает.> Но по моему опыту это все работает через задницу и постоянно ломается. Я немного экспериментировал с QT.Уверяю, ты что-то делал не так.> добавил инклюд, прилинковал библиотеку и все работает.Со всеми нормальными библиотеками так (с некоторыми даже линковаться не надо).Если тебе именно это нужно, посмотри в сторону wxWidgets, там тоже всё примерно так и работает (хотя документацию ты хрен найдешь, а если и найдешь, то 99% шанс того, что она устарела)
>>1376350Начинал, он как-то хуево объясняет + этот граф редактор, который за тебя пишет код вообще пиздец, нахуй я пишу на С++, если делаю часть функционала в конструкторе.
>>1376362Так никто не запрещает тебе самому писать создание гуя, другое дело, что через designer получается быстрее и не хуже, чем руками. Лично мне так удобнее. К тому же ты всегда можешь скопипастить себе то, что uic нагенерировал
Что-то решил вкатиться в DirectX для программирования приложений под винду и охуел от количества кода для по сути элементарного действия, сама математика для меня не проблема.Хочу сделать пару проектов для практики(виндовс окошки с кнопками, картинками, возможно анимациями). Но всё никак не могу решить на чём "основать" GUI, писать самому с окошками через API тормозно и много кода, использовать конструктор тоже не продуктивно. Хочу технологию, которая нынче актуальна, а не старую библиотеку для 2д графики, которая уже не используется. Что посоветуете?
>>1376316с не кроссплатформенным - идите на заводик станки настраивать, нашим клиентам требуется запуск приложения на разных архитектурах, поэтому мы вам перезвоним
>>1376270По работе в основном format, asio и периодически ptree/json/xml. А так, да, большинство полезных вещей в STL перекочевало.
>>1376452Кросплатформенных гуи не существует. Твоя кута это всего лишь говно как если запускать программу через RAdmin или терминальный сервер. Тормозная параша, которая тебе только картинку рисует вместо реального приложения под твою ос. Понятно, что показ картинок на любой ос сделать легко, но это не мультиплатформенное приложение, а наоборот, высер, не работающее ни на одной платформе, а вместо этого показывающее на всех платформах фальшивую картинку.Но это даже не самая большая ложь. Главная ложь в том, что кута это не гуи и не библиотека и не С++, а васянский маня-конструктор с васянскими маня скриптами, генерирующимися васянским маня-генератором. Если привести понятную аналогию, то это высер наподобие "Юнити" для игр, тормозное говно говна, но зато любой дебил сможет тыкать мышкой, отсюда и широкая популярность (среди даунов в основном). Только в отличие от Юнити, в куте не только нагородили тормозное говно, но еще и сам язык изгадили под себя, так что кто в эту парашу вляпается, на С++ уже писать не сможет, ведь там куча маня-парадигм васянских навертели.
>>1376474И, кстати, последнее означает, что если тебя угораздило писать программу на куте, а потом ты прозрел и решил перейти на нормальный С++ и нормальный гуи, то сделать этого не сможешь, ведь кутэ-параша пронизывает всё твоё приложение. Анальное рабство, которому эппл с гуглом и майкрософтом позавидуют.>>1376480Тупые дроны-подсоски кутэ уже давно слиты → >>1372781 (OP)
>>1376488Вообще он >>1376474 дело говорит.Не то чтобы я досконально знаком с Qt, но когда мне на жалкое окно генерируется куча ебучего кода, который лежит вообще в отдельном файле и в проекте не виден - такое себе удовольствие. Удали какую-нибудь кнопку - и больше не будет компилиться, потому что в этом файле с UI не удалена кнопка.Ладно ещё если самому писать гуй, но использовать ихнишний формошлёп - это совсем пиздец.Чего уж говорить о проблемах с компиляторами - у каждого третьего не работает и про Qt видишь только "как сделать шобы работало".Собирается все тоже особо охуительно в их родной IDE: чтобы внести маленькую правочку в проект в виде изменения символьной константы или изменения аргумента функции), нужно пересобирать проект.Она ж штука умная, этот QtCreator, видит, что изменения незначительные - нахуй собирать опять изменившееся. А потом сиди и еби себе мозг, почему access violation вдруг взялся и в строку какая-то хуйня записывается. Ровно до полной пересборки проекта.А особо доставляет вес последней версии на винду (35 Гб) и на линь(4 Гб).И умственный уровень адептов, имеющих охуительную и крайне подробную документацию хотя и у плюсов с этим проблем нет, но на каждом шагу спрашивающих, как и что сделать - полушепотом ух бля.
>>1376531>писать Что и куда? Нужно сначала определиться что, зачем и кому ты пишешь, а только потом, на этом основании выбирать подходящий инструмент и только потом садиться писать на нем.
>>1376505Вот объясни, нахуя ты пользуешься uic'ом, если он тебе не нравится? Пиши блядь самостоятельно эту простыню кода по созданию UI, хотя уже понятно, что ты ебанутый, который не может добавить .ui файл в проект и за каким-то хуем меняет автосгенерированные блядь файлы.
>>1376531Я пользуюсь SFML, меня устраивает.Есть ещё какая-то библиотека, в Страуструповской книге для начинающих из шапки используется - как раз примеры можно посмотреть.>>1376558> Ладно ещё если самому писать гуй, но использовать ихнишний формошлёп - это совсем пиздец.Ты пост не читал, да?
>>1376572Нет, я Qt вообще не использую.>>1376574Два стула, знаете ли.Давай, подскажи идеальный вариант для написания гуя, ты же лучше знаешь.
>>1376593Я не думаю, что в России есть много контор, которые готовы тратить бюджет на нативных разработчиков. Если команда девелопит какой-нибудь тул, то им быстрее нанять несколько Qt-прогеров, которые быстро сделают UI под все платформы сразу. К тому же сами продукты, которые на российском рынке разрабатывают, обычно не подразумевают нативно выглядящего интерфейса. Все делают профессиональные приложения (обработчики видео, редакторы и тд), у которых должен быть свой неповторимый стиль. Поэтому если хочется пилить интерфейсы в продакшене, учите Qt.
>>1376591Посмотрел как-то на мсдн пример hello world на uwp. Пиздец конечно.От C++/CX у меня вообще холодный пот на жопе выступил. Это ж надо было так изговнить язык (который и так не шедевр простоты дизайна)
Вот этот >>1376540 дело говорит>>1376531 этомуНо я скажу так - конторы, которые пишут на несколько платформ, пишут сразу кросс-платформу. Тупо дешевле.
>>1376531Imgui же, посмотри какой сложности приложения на ней хуячат. При этом либа по размеру всего в пару сотен килобайт.https://github.com/ocornut/imgui/issues/2265
>>1375142 (OP)hello worldПишу программу которя по условию работает с данными в файлах. Так как программа объемная (куча функционала помимо основного) отладка будет сопоставима -- немного побаиваюсь за распаеную emmc на моем лаптопе.Короче, если я открыл файл raw = fopen(_raw,"r+t"); для чтения и записи, потом рабтаю с этим файлом как с потоком читая через fscanf и пишу туда через << много раз (т.е содержимое постоянно перезаписывается) в цикле, но закрываю файл только в конце когда в нем уже конечная информация. Сколько раз в FS перезаписывается файл ? Только в конце ? Или постоянно как только я лезу в него во время выполнения программы через << ?Ах, да, как заставить scanf читать string ?
>>1377034> по условию p.s я не не хочу писать в файл, нужно писать туда но не сохранять пока не доделаю e.g если писать в notepad.exe, пока явно не сохранишь -- перезаписи файла не будет, в самом файле же за это время можно сколько угодно раз наперезаписываться.
>>1377024>Сколько раз в FS перезаписывается файл ?Столько, сколько раз вызывается flush (если, конечно у тебя буферизированный ввод-вывод).>как заставить scanf читать stringmystring.c_чтототам()>>1377035>нужно писать туда но не сохранять пока не доделаюТак и пиши в поток в памяти, а потом сохраняй его на диск.
>>1377035Я имел ввиду, что в целях тестирования можешь не всегда в файл писать.А для того, что ты описал, нужно наверное временный файл создавать (так примерно и работают все текстовые редакторы)
Ребят, дайте название функции, которая сравнивает два символьных массива и проверяет, какой массив старше по алфавиту, а какой младше.
>>1377239А какой у C++ есть подобный метод решения? Я, что ли, знал, что это из чистого C и из C треда меня не погонят сюда?
>>1377240те по какому алфавиту? языков на планете несколько десятков тысяч..в какой символьной кодировке? юникод? тогда какое представление юникода - utf8, utf16? может или старые восьмибитные кодировки? или вообще расширенные восьмибитные кодировки? дык их десятки, если не сотни..а во многих алфавитах вообще оче сложно определить порядок букв, там и понятие буквы и то может быть расплывчато..итого чтобы написать такую функцию, нужно потратить несколько десятков человеко-лет
сап. Нужно сделать сериализацию и десериализацию вектора структур, как я понял вектор это объект, а значит просто вектор структур сериализовать не получится, нужно по одному элементу из вектора сериализовать и кидать в текстовый файл. Как это реализовать, не до конца понимаю суть сериализации, всё что понял, это то что сериализация это превращение любого винда информации в бинарный набор символов, ну или в другой вид. Сможет кто-нибудь вкратце обьяснить как через fstream это реализовать?
>>1377323Бля, я вот нихуя не пойму, из какого ты принципа форматируешь код и как тебе может быть удобно делать разные отступы и подряд идущие переменные называть снейккейсом и кэмелкейсом, честно. Ты проверялся у психиатра? Я не оскорбить пытаюсь, я реально беспокоюсь. Это как первую половину строки писать курсивом, а потом - печатными прописью, а вторую половину листа вообще иероглифами.По вопросу.Во-первых - std::ofstream::operator>> + std::vector::data + reinterpret_cast<char*>. И никаких "записывать по элементу", у тебя же не список с последовательным доступом.Во-вторых - что ж ты уцепился за эти "(де)сериализации"? Записать в файл и все, ёпта. Сериализация, вообще - разложение функции в многочлен. Например, в ряд Тейлора. Десериализовать твоего препода на органы, раз он так сформулировал задание.А в твоём случае нужно просто сбросить груду данных на диск, а потом считать эту груду данных в контейнер. Как если ты ящик с двумя ячейками пересыпал в пакет и тебе надо обратно все разложить по ячейкам. Вот тебе и простое описание этих терминов.+ Замечание: твои члены-даты в структуре никак друг от друга не отличаются. Зачем два разных типа данных, а не две переменные одного типа "дата", объявленного за пределами структуры?
>>1377343>снейккейсом и кэмелкейсом,я не считаю себя знатоком в коей то степени плюсов, на фоне группы гуру мудрец сидящий на горе синай, но это просто они ещё хуже, а я мыслить абстрактно кое как могу, и так как мог многое упустить, не знаю как правильно форматировать код, и делаю как удобно читать, тоесть пишу параметры функции, после на новой строке фигурные открываю, и через табуляцию внутреннее, а как правильно это делать, и что значат эти два слова?>члены-даты в структуре никак друг от друга не отличаются.ну задумка была в том, чтобы добавить дату подачи заявки и дедлайн и по ним сортировать, но так уёбично будет выглядеть если начну по этим трём интам сортировать, столько строк бесполезного кода, а я хз можно ли удобно работать со временем через какую либо либу. Поэтому оставил только ради красоты/и ещё reinterpret_cast<char*> это не есть сериализация? Ну как я понял, это выражение переводит данные в тот код который я вижу в файле в который он должен быть записан, или нет?
>>1377323чувак, любой вопрос связанный с сериализацией, должен начинатся с первого пункта: с определения формата хранения, собственнокуда ты собираешься серилизовать то?текстовых и бинарных форматов сериализации десятки, нет сотни, они заточены под разные случаи, либо сеть, либо файлы, либо, внезапно, бд, либо более-менее универсальныпросто, блядь, сначала определись, какой тебе нуженну а дальше тупо реализуй в коде и вселибо возьми готовую библиотеку
>>1377357просто в файл, чтобы потом обратно достать, ничего сложного, но я немного не понимаю каким образом это написать, какая логика должна быть, ну и выражения.
Сап, двач. Какого хрена когда я пишу конструкцию cout << setfill(' ') << showpos << setprecision(5) << setw(8) << table[j].res << '|';я получаю пикрелейтед? Я просто хочу долбаную ровную табличку, почему компилятор не хочет рисовать double с 5 цифрами? gcc 2.95 windows
>>1377406О, спасибо анон. Я не забыл, а думал что оно стоит по умолчанию - во всяких гайдиках так написано. Изучаю c++ 2 недели, уже ненавижу. Сдать бы и забыть
Плюсаны, по-залипал тут немного в гитхабы сеньоров и всяких архитекторов, заметил одну характерную особенность: абсолютно у всех первые 2-4 года нихуя нет публикаций и только после этого периода времени начинается движение, которое постепенно перерастает в пикрилейтед. Меня как ньюфага вкатывальщика данная ситуация напугала... Опытные аноны, успокойте меня, скажите пожалуйста что за годик можно вкатиться..
>>1377426это вообще никак ни с чем не коррелирует. Я сеньор-помидор, и у меня 0 публикаций на гитхабе, потому-что программирую я на работе, а дома пишу только крошечные минипроектики, которые даже на гитхаб нет смысла выкидывать
>>1377343я точно как то криво написал, потому что всё ещё не понимаю что пишу до конца, но пишет ошибку сегментирования.
>>1377471Ты не понял. Data - это массив твоих структур, над которыми "висит" вектор. Не проходи по нему, его и пиши в файл.file >> vector.data();
Не хочу инициализировать в заголовках переменные, но компилятор выдает пикрил. На нём же реализация.Как фиксить?
>>1377484Бест практис - в заголовке, раньше инициализировали в конструкторе. Ты же пытаешься задать значение статическому элементу класса.В конструкторе как ты видимо хочешь типа этого:ClassName() : Element(ElementValue) { / c-tor body / }
>>1377525>Бест практис - в заголовке, раньше инициализировали в конструкторе.Вот это и хотел услышать, благодарю.Но всё путаюсь со статическими. Сначала думал, что это киллерфича здешнего ООП, но:Конст статик можно объявлять в заголовке, просто статик - нет.
>>1377471>>1377478Однако, нет, все норм.Ты открыл файл на запись - вот и пиши просто туда данные. Запомнил в массив структур vector::data, его же туда и записал через reinterpret_cast<char*>.А так ты объявил массив, но все равно используешь поля вектора.Почитай, как именно лежат данные в массиве, будет легче понять, почему так можно записать в файл содержимое вектора.И да, не забудь написать в самое начало файла в первой строке количество элементов массива - чтобы потом нормально считать.Хотя можно и просто считывать до конца файла.
>>1377543После c++17 можно ещё больше:A static data member may be declared inline. An inline static data member can be defined in the class definition and may specify an initializer. It does not need an out-of-class definition.
Анон. Хочу замутить две виртуальные функции в абстрактном классе matrixvirtual const matrix& operator(const int&b) const =0;virtual const matrix& operator(умножение)(const matrix&b) const =0;то есть умножение на число и другую матрицу, затем в двух классах я их переопределяюв наследнике класса matrix - matrixcount переопределяю умножение на число: const matrixcount& operator(умножение)(const int&b) const{умножаю; return tmp;} где matrixcount tmp(m) и matrixcount(int k): matrix(k) {}, вместо умножения очевидно 1) Почему я еблан?2) Почему это не работает?3) Что делать со второй виртуальной функцией? ведь без ее переопределения matrixcount тоже будет абстрактным.Пытаюсь учить язык по книге столярова но там это не разбирается особо
>>1377601Ты возвращаешь ссылку на созданую на стеке переменную. Возвращай по значению, RVO все оптимизирует.
>>1377550аа, так нужно создать char массив, потом через vector::data по одному элементу туда запихать вектор, и через file.write(reinterpret_cast<char*>(тот же char массив), размер) запихать в файл?
В с++11 вывод 1е7 чисел через printf работает за 2000мс, вывод же через putc за 500мс. В последующих версиях с++ оба работают за 2000мс. Чому так и как пофиксить putc?
>>1377607https://pastebin.com/TUk4nX2Gесли есть время, чекни пятый кейс, пожалуйста, я совсем что то хуйню нагородил, всё же не могу логически понять как это реализовать.
>>1377514Спасибо за вопрос. Как оказалось free pascal содержит gcc 2.95, и я хз как винда его нашла - но в path нет папок паскаля нет. Удалил, версия стала 7.4
>>1377616 const matrixcount& operator (звезда)(const int b) const { matrixcount tmp(m); ... return tmp; }Ты пытаешься вернуть ссылку на временный объект, который разрушается при выходе из оператора.
>>1377629Дополню, вообще matrixcount& - ссылка на текущий объект, чтобы можно было его использовать в цепочке вызовов. Если ты хочешь при умножении числа на текущую матрицу, не изменять текущую матрицу - надо перепроектировать.
>>1377619препод байтоёбствовать изволит. Сказал auto не юзать, так как это замедляет работу, я поставил int, мб size так тоже сможет значение вернуть, хз что из этого получится, ща подумаю как достав из файла перевести в норм типы данных.
>>1377655> Сказал auto не юзать, так как это замедляет работуАХАХАХАХАХ ПИЗДАВСЕМ ОПЕНСПЕЙСОМ ЛЕЖИМ В КОНВУЛЬСИЯХ
>>1377703>Поясните, чому препод не правПотому что код с auto и без скомпилируются в одинаковый файл, и разницы в абсолютном большинстве случаев не будет.
>>1377703Потому что auto это просто указание компилятору вывести тип переменной самому из контекста. На производительность программы это никак не влияет, только, возможно, на время компиляции, но это не точно.
>>1377656ну прост казалось бы добавили в плюсы чтобы облегчить работы, я и так вахуе с сериализации вектора, все с массивом работают, там изи, а тут мне как то надо из файла по частям достать данные, ну это понятно что sizeof указать, а как из дессериализовать, чтобы они обрели нормальную форму, хз. Но тут блять ещё "векторы не юзай, они медленные, вот пойдёшь работать куда нибудь, это тебе пригодится", приношу auto "ну это конечно хорошо, но медленно, нужно всегда оптимизировать". Хз, справлюсь наверное, auto всё таки оставлю, ебал, ща буду дессериализацию думать как реализовать. Ну и сделал вывод что я ничему по факту за год не научился, как умел логически что то придумывать, так и умею, в остальном всё упирается в синтаксис, вот хуй бы я додумался до reinterpret_cast, я впервые это вижу, а как правильнее изучать, чтобы всё это знать, чёт хз, по книгам учил, но такого не было, там основы впринципе только.
>>1377703auto выводится на этапе компиляции.Сгенерированный код будет идентичен, если у тебя всюду auto, или ты сам везде руками пишешь тип.Чисто теоретически, компиляция будет длиннее на какие-то наносекунды, но, на этом вся "МЕДЛЕННОСТЬ" и кончается.
>>1377712>но медленно, нужно всегда оптимизироватьТеперь, как истинный джентельмен, он обязан на тебе жениться изобразить все это на уровне шаблонного метапрограммирования. Чтобы расходов во время исполнения вообще не было. Скиньтесь ему на книгу со стандартом новым. Ну и Джосатисса "Стандартная библиотека c++"
>>1377719Не стоит. Если он упертый или упоротый, на экзамене припомнит. Да и ему разобраться с типами без auto полезно. мимопроходил
>>1377717Слушать преподавателя и учиться, малолетний дурачок.Ты придираешься незначительным к деталям в то время как преподаватель всё делает правильно в контексте твоего обучения. Сначала ты должен научиться программировать правильно, понимая что делаешь, а для этого нужно писать как следует своими руками. Вот когда научишься и будешь уже работать, тогда можешь экономить себе время как пожелаешь. Однако, если вместо обучения будешь лепить везде авты, предоставляя компилятору думать за тебя, так и останешься дебилом.
>>1377703Потому что auto гарантирует, что переменная будет инициализирована. Не использовать его сейчас - говнокод.
>>1377755на самом деле спорное заявление. Мне кажется, что с auto перебарщивать точно не надо, восприятие кода падает
>>1377714>компиляция будет длиннее на какие-то наносекундыОдин хуй компилятор смотрит тип rvalue. Не qword же везде копировать вслепую)
>>1377882Может он честно так и думает, какая разница. Понимаешь, учить программированию и программировать это разные вещи. Если это старый преподаватель, у него в голове въелось как преподавать, а про программирование давно забыл.А может и специально соврал чтобы побыстрее закончить бесплодные прения. Вспомни фильмы про всяких шаолиней, где учитель не цацкается с учениками, а приказывает что делать и заткнуться, посылая нахуй всяких умников с их "пачиму зачем".
>>1377888А можно по книгам 80-х вообще про Norton Commander читать. Как бы не очень препод, который не следит за новостями в своей дисциплине. мимопроходил
Ребят, я тут пытаюсь создать библиотеку, но при компиляции проекта я получаю ошибку"1>LINK : fatal error LNK1561: точка входа должна быть определена"вероятно, компилятор пытается найти int main, но он этого не должен делать, ведь я тип конфигурации выбрал "статическая библиотека .lib". Как избавиться от этой ошибки? Использую VS 2017 (v141).
>>1377888Тут хорошо бы преподам задуматься о престиже своего универа.Пойдут выпусники работать куда-нибудь и сморозят какую-нибудь херню. Его спросят: "Почему ты так решил?".Он ответит, что в универе так научили. И потом про выпускников будут думать, что там воспроизводят идиотов.
>>1377888ему 30+, он обожает открытый софт, узнал что я кое как умею ставить линух, и заставил остальным 23 челам бубунту поставить, БУБУНТУ, когда есть kde neon который лагает в разы меньше, ну и ща челики вахуе что существует линух сидят пытаются через мейк файлы и g++ -c main.cpp собирать и линковать проекты, даже запрещает мне .hpp юзать потому что это уклон на майкрософтовскую хуйню якобы, любит одноплатники, поэтому говорит заказывать с алика orange PI и учиться с ним работать, ну и изза того что я хоть что то могу, сказал что буду ядро линукса собирать в мае, а я сижу дессериализацию сделать не могу, так как файлы и вот это всё это мой криптонит, дальше пойдут классы, за минут 15 разъебу такое. А вот дессериализацию ща буду сидеть сосать, так как полез в векторы, а векторы не подимаю как через Push_ back это сделать, и уже 3 недели вторую лабу несу, пиздец хуёво на душе...
>>1377924> он обожает открытый софт> запрещает мне .hpp юзать потому что это уклон на майкрософтовскую хуйнюМне кажется он просто психически не здоров.
>>1377755>Не использовать его сейчас - говнокод.Auto может ненужных кастов понаставить. Например, тебе нужны флоаты, а ты забыл к литералу f приписать, и у тебя будет ненужное преобразование из double, которое действительно может понизить производительность. Или overflow на целочисленной арифметике. Плюс без auto код более читаемый. Но тот препод ебанат, конечно.
>>1377924запили ему сравнительный тест времени компиляции/выполнения софта с использованием auto и без, только не с предлогом вроде "смотри, лошара", а "мне было интересно насколько а оказалось нинасколько, ты реально лох"
>>1377606Блядь.Что такое char*? Это массив символов - добавь \0 в конец и получишь строку.Значит, ты весь этот массив можешь записать в файл одним махом, не поэлементно.
Как сделать такую функцию для библиотеки, которая возвращает адрес массива? Я сделал через int функция, но при попытке создать ехешник компилятор не даёт создать его, жалуется на в объявлении функций.
Как сделать такую функцию для библиотеки, которая возвращает адрес массива? Я сделал через int *функция, но при попытке создать ехешник компилятор не даёт создать его, жалуется на звёздочку в объявлении функций.
>>1377974>Разницы нет В VC++ разница огромная - в дебаг куча оберток добавляется. За другие компиляторы не скажу.
>>1377974+1, разница огромная, но наверняка видима только в риалтайм играх со счетчиком фпс, в простом же приложении скорее всего не заметишь.
>>1377968>ты забыл к литералу f приписатьЯ в кют креаторе в основном работаю, он все это в рилтайме подчеркивает, все ворнинги и ерроры.
Аноны, есть базовый класс с protected string, мне в дочернем классе нужно использовать значение этой строки, как я могу это сделать? Char_Line(Line *obj) : Line() { base = obj->base; }; Вот таким способом я не могу обратиться из-за модификатора доступа.
>>1378104Ты тупой - раз.>Добавь \0 и получишь строкуПоскреби татарина - найдешь русского. Чуешь характер предложения? Я не советую ему добавлять в data его вектора чаров символ нуля - два.char★, полученный из vector.data реинтерпрет кастом не будет иметь символ нуля в конце строки. Как и в принципе char★ в общем случае - три.Два подряд идущих нуля ничего не сломают - четыре.
Где мне найти человека, который хорошо разбирается в MPI?Нужна помощь с курсовой работой :CСколько бы не искал, не могу никак найти...
Я тут слышал вот, что массив структур из файла якобы можно заполнить одной единственной командой. А что за команда то? vvod >> strukt; не помогает, >> подсвечивается красным.
>>1378249Все зависит от того, как записана информация в файле. Если в бинарном виде, то все очень просто: читаешь из файла одной командой https://en.cppreference.com/w/cpp/io/basic_istream/read Если в виде текста, то тут уже сложнее: придется придумывать алгоритм парсинга, если в каком-то неизвестном виде, либо взять (или свелосипедить) готовую либу, если формат известен (например, xml, json и т.д.).
>>1378155>он все это в рилтайме подчеркивает, все ворнинги и ерроры.А откуда ему знать-то, что ты там f-то хотел? Это ж не ошибка.
>>1377999как я и предвидел, он сказал что в большом проекте это сыграет роль, и что Auto при выполнении программы ставит самый массивный тип, предположим лонг, и это тоже хуёво. Дальше последовал вопрос от меня а нахуя собсна его добавили если он настолько плох, на что он ответил "для того чтобы было похоже на жабу, тоесть лохам вкатывальщикам облегчить жизнь, нормальный специалисть, на обучение которого уйдёт больше времени гораздо, таким заниматься не будет. Это как в епаме сделают джуны массивную прогу, я гворю что она лагает, они мне отвечают "так компьютер обновите", ну обезьяны же"
>>1378332>лохам вкатывальщикам облегчить жизньЕбать он мастак портянки итераторов контейнеров STL расписывать.
>>1375142 (OP)в вузе активно пользовался http://www.pythontutor.com/visualize.html#mode=editон крч код визуализирует, очень удобно было для пониманияно там крч нет консолиесть ли мб аналоги какие-то более мощные для c++
> Создайте шаблон класса Stack и заполните его четными числами. Создайте шаблон класса Stack1 и заполните его нечетными числами. С помощью итератора объедините эти контейнеры в вектор. Мужики, объясните, пожалуйста как этот итератор реализовать
>>1378332>лохам вкатывальщикам облегчить жизнь, нормальный специалисть, на обучение которого уйдёт больше времени гораздо, таким заниматься не будетЛол, он на крестах кодил вообще с шаблонами? Метапрограммирование какое-нибудь минимальное хотя бы. Там без auto мозоли на пальцах за день отрастут.
Так, ребзи, есть инфа, как передавать в метод другие методы/функции/функторы с минимальными затратами?Другими словами, какой должен быть второй аргумент функции ниже? Шаблонный параметр? std::function? Как его передавать? Что, если понадобится передать этот метод/функцию/функтор ещё куда-то?template<class Container>void for_each_wrapper(Container const & cont, неизвестно func){for (auto const & el : cont)....func(el);}std::vector<int> vec{1,2,3};for_each_wrapper(vec, [](int val){ // do smth});for_each_wrapper(vec, &A::doSmth);for_each_wrapper(vec, std::bind(&A::doSmth, this, _1));std::function<void(int)> fn = ...;for_each_wrapper(vec, fn);etc.доп. вопрос - передавать контейнер по T const & или &&?
>>1378190у меня пидорнета нет на том компе.Есть возможность скачать всю доку?Я сегодня пару книг от пакта поглядел
>>1378713Есть отдельное приложение Qt Assist>>1378729Я привёл очень упрощённый пример - то, что в голову первое пришло. То есть цикла в моем методе может вообще не быть. Или будет, но сам контейнер, по которому идёт обход, формируется нетривиально, то есть придётся иметь в сотне мест простыню кода по заполнению контейнера - вот этого хотелось бы избежать.
>>1378675>передавать контейнер по T const & или &&?ты в свои алгоритмы передаешь итераторы, которые и указывают диапазон элементов над которыми будет применен алгоритм, плюс иногда функцию выборки, которая будет отбрасывать ненужные для обработки элементыв общем то же подход что и стандартные алгоритмы stl делайпо основному вопросу - в стандарт щас введено обобщенное понятие "callable object", вот его и передаешь параметром алгоритмаальтернативный подход - параметризировать твой алгорит через параметр шалонатут уже зависит от условий выбор, как минимум нужна ли тебе динамика, либо статики будет достаточно
>>1378789Глянул сейчас на cppreference как std::for_each мог быть реализован и сразу вопрос: почему callable принимается по значению?
>>1378811потому что это тот же указатель, ептесли тебе нужно его только передать внутрь, а не вернуть, то передаешь его тупо по значениюа вот если тебе надо вернуть callable oblect из функции, то тогда да, нужен указатель будеттут та же самая хитрость что и с применением указателей на указатели в параметрах функции
те как бы можно сделать ссылку на указатель, но нахуй надоникакой пользы то нет с этогозатрат никаких нет с того что указатель будет по значению передан, он небольшой сам по себе
>>1378837>он небольшой сам по себеНедостаточно радикально сказано. Техническа ссылка и есть указатель.
>>1378883corehard? а белорусы молодцы, на уровне держат, видно что коммьнити небольшое, но сплоченоесмотрю их видосики на ютубе, да
>>1378903ну как бы семантическое значение то все равно немного другоессылка должна быть проинициализированаесть и менее очевидные нюансы, про которые, внезапно, даже сеньоры не всегда помнят, типа низведения типов
кстати, скоро будет cppcon russiaпроглядел заявленные доклады и оказалось что для меня будет более-менее интересным лишь доклад по практическим применениям умных указателейи все вроде как такие дела
>>1378581Вообще да, но я таким не занимаюсь. Делаю на шаблонах, где UnderlyingType явно задается и все выводится.
>>1378925я о том, что в стек (или регистр) один хрен пушится 64-битовый адрес, так что бояться оверхеда при передаче указателя, а не ссылки на указатель (звучит как ехал void на void по void через void) - это слон не из мухи, а из воздуха
>>1378922нет, в полноценной старой гейропе, на английском. Тот еще позор был, но ачивку получил, что называется
>>1378985Передал ссылку на указатель - можешь менять переданный указатель.Алсо, если есть список указателей, то наверное лучше по нему ходить как const auto &, так при рефакторинге не надо голову морочить (например, если решишь вместо голого указателя хранить smart pointer)
>>1375142 (OP)Мужики, выручайте! Как правильно, надоело путь прописывать тут полный. Смотрел в интернете решение, так там для Visual Studio, у меня 2010, такое решение:/I "../../SomeProject/SomeProject"На первой картинке пример подобный, но нихрена не работает, на второй по понятным причинам работает.
>>1379006добавь где-то в C++ - Directories - Includes, и используй макросы типа $(SolutionDir)pidor\zalupa
Спецы, у меня тут вопрос встал. Как malloc/free уживаются рядом с new/delete? Например, если прога слинкована из кусков, написанных и на C, и на C++. Ведь, по идее, это разные аллокаторы, которые из общего могут только узнать общий размер кучи, которую ось выделила (sbrk(0) например), а что до списка свободных блоков внутри этого пространства им друг на друга должно быть похуй, нет? Гугл привел к какой-то очевидной инфе про автоматический вызов конструкторов/деструкторов...
>>1379010> Как malloc/free уживаются рядом с new/delete?Выделять malloc'ом и удалять по delete - UB. Наоборот тоже UB.Если либа, с которой ты линкуешься, наружу передаёт указатели, выделенные malloc'ом, то удалять тебе их придется по free. Внутри там может быть что угодно.
>>1379010помни, что у malloc\free могут быть разные имплементации в зависимости от версии либ\редиста. По-этому, если ты экспозишь сырые указатели из либы - будь добр, заэкспози свое собственное free()
>>1378338Да ладно. В VC++ 2013 или 2008 склероз уже, могу и припездеть (или вообще в билдере) дебаг версия new была через malloc реализована. Отладчиком залезал.
>>1378940>вполне себе объектобъект-обертка, он почти не содержит данных, а значит почти ничего не копируется
Почему при передаче параметров компилятору используют -DSomeName ... Откуда это пошло, почему это стали использовать, в чем профиты? Я думал что это чисто такая особенность компиляторов, но на днях заметил что CLI curl тоже можно передавать параметры таким образом--output somehuta.txt то же самое что и -osomehuita.txt т.е. это какая-то распространенная идиома.
>>1379019это вопрос не про С++, а про какую-то красноглазую консольную ебануху. Я не думаю, что реальный ответ существует.
>>1379020Раньше в с++ треде сидели самые адекваты доски, поэтому не совсем релейтед вопрос задаю вам.Ну мне просто любопытно было ли это сделано из-за каких-то древних ограничений, потому что такой синтаксис дает какой-то неочевидный профит, или это какой-то задрот в порыве красноглазого безумия придумал, а другие подхватили. Ну и называть clang и gcc красноглазой консольной ебанухой это ты конечно подтолстил
>>1379027я имею ввиду не clang и gcc - а сам подход. Тем не менее - не думаю, что его реально проследить, потом окажется, что в каком-нибудь MULTICS уже так делали
Можете помочь? Начинаю изучать типы данных, http://cppstudio.com/post/271/>Возникает вопрос: «Для чего остальные 253 значения?». Исходя из этой ситуации, договорились использовать числа от 2 до 255 как эквивалент числу 1, то есть истина. Вот именно по этому в переменной boolean содержится число 25 а не 1.Вот этого я вообще не вкуриваю. Я понимаю что использовать мы будем только true 1 и false 0, но если на примере того же сайта - бул 25. И что из этого следует? Почему не 26? Ну нахуя все-таки нужны остальные 253 значения?
>>1379058Насколько мне известно, всё, что выше нуля, то определяется как истина.Касаемо того ЗАЧЕМ эти значения, не знаю.
>>1379058В bool нет никаких чисел, только true и false. А что там под капотом, тебя ебать не должно, сделали как удобнее разработчикам компилятора. Ты разработчик? Нет, вот и нахуй следуй учить язык, а не косить от учебы дебильными вопросами.
>>1379058Обычно в ассемблере проще сделать проверки "равно нулю" или "не равно нулю". Так и решили - "равно нулю" значит false, "не равно нулю" значит true.
>>1379058Хватит всякое говно читать.bool может занимать 2, 3, 5 байт... — это ничему не противоречит.
>>1379010на самом деле, лишь поверхностное обсуждение этого вопроса займет целую статью..так чтож ничего объяснять по теме здесь я не будудавай сам как-нибудь, наступай на грабли и все такое
>>1379011>Если либа, с которой ты линкуешься, наружу передаёт указатели, выделенные malloc'ом, то удалять тебе их придется по free. Внутри там может быть что угодно.советую провести мысленный (а лучше практический) эксперимент: а что если либа использует другой, отличный от того что в исполняемом модуле, сишный рантайм, а? например в либе статически его линканули, а в проге - динамически, или в либе - релиз версия, а в проге - дебаг версия; или они тупо версиями отличаются? а?
>>1379012угу, есть такой подхода есть и другой подход - правило где выделил, там и удалилобычно вызывающий код предоставляет либе выделенную память, а уже либа заполняет его данными и отдает, а до этого вызывающий код запрашивает либу сколько надо отдать памятиопять же, некоторые библиотеки комбинируют оба подхода - в первом случае ф-я будет вызвана 2 раза - на запрос размера требуемой памяти и второй раз на реальную отработку, либо будет вызвана один раз, но будет выделена внутренняя память в либе, которую уже надо будет вызывающему коду почистить при помощи функций очистки, что предоставляет либа
>>1379005>Передал ссылку на указатель - можешь менять переданный указатель.это не удобно так как ссылка должна быть инициализировна всегда, а ведь это делают для того чтобы только вернуть указатель из функции, обычно делают указатель на указатель поэтому
>>1379011>>1379012Это само собой. Но я не понимаю, как разные массивы в куче друг друга не перезаписывают, даже если для каждого в отдельности используются функции строго от одного аллокатора? У них тогда по идее таблица блоков общая, а список адресов и размеров обслуживаемых массивов у каждого свой.
>>1379155>Но я не понимаю, как разные массивы в куче друг друга не перезаписываютПочему они должны перезаписываться? Они через mmap/VirtualAlloc работают. Страницы, которые зарезервировал один аллокатор, другой не получит.
>>1379058>Ну нахуя все-таки нужны остальные 253 значенияОни не нужны, но избавляться от них нецелесообразно.Так устроена память, только и всего. Меньше 1 байта память в капуктере не выделяется. А в один байт влазит 256 значений.Ну а дальше вот все пояснили >>1379096
Когда уже /clang/ и /cpp/ объединят в один тред, учитывая что скорость постинга одинаковая и вопросы в обоих тредах одинаковые, уже давно пора это сделать
>>1379151Ебанутый? Там для обоих заданий это делается на чистом си в 10 строк включая эти ваши поинти брекетс
>>1378203Не работает Char_Line(Line *obj) : Line() { }; В данном вызове получаю 0base - string объект (доступ protected)Line - базовый классChar_Line - дочерний класс
Анончик, а как передать в функцию массив структур и получить от неё указатель на его адрес? Вот для примера пример с обычным массивом:int звёздочкаhui(int pizda[]){ for (int i = 0; i < 10; i++) { pizda = i; } return pizda}int main(){ int pizda[10]; int звёздочкаa; a = hui(pizda);}А как быть с массивом структур?
>>1379471Вызов проходит, сайз 0 возвращает - все работает. А что ты хотел сделать, мы не знаем. Возможно ты в base ничего не пишешь. Кода нет.
ласт попытка. Помогите понять как запихнуть в вектор сериализованные данные и дессериализовать их, совсем въехать не могу. в голове логика такая: взять кусок данных по размеру структуры, дессериализовать и пихнуть в вектор через push_back, но как написать это, я хз, если не сложно обьясните пожалуйста.
>>1379612Читал вот это?https://isocpp.org/wiki/faq/serialization#serialize-no-inherit-no-ptrsАлсо, на твоём скриншоте ты пытаешься записать из файла в вектор, который использовал до этого. Тебе нужно новый создать, зарезервировать ему сколько-то элементов (это ты узнаешь, прочитав из файла размер), а потом через какой-нибудь std copy записать в vec.data() данные из файла.
поясните как бороться с минглингом.У меня в либе есть функция deinitialise_windows();Но Я не могу ее вызвать так как линк ер читает ее как _deinitialise_windows()?Что Я делал не так?
>>1379532Переменная base дочернего класса должна иметь такое же значение, как переменная базового класса, в конструктор базового класса передаю ссылку на string
>>1379706Char_Line(Line obj) : Line() - пустой конструктор у базового классаChar_Line(Line obj) : Line(obj) - может ты имел ввиду так?
>>1379711Вот конструкторы обеих классов. Необходимо чтобы переменная base в дочернем классе имела то же значение, что переменная base в родительском, при этом поле base должно быть private/protectred
>>1379761Это будет не просто...Char_Line(Line obj) : Line()Создаешь объект char_line, приэтом вызываешь line() - который Line()=default; string base; по-умолчанию инициализируется пустой строкой.Size пустой строки - 0. Что не так?Тебе в базовом классе line надо сделать конструктор принимающий указатель на класс line и в нем скопировать значение в string base из передаваемого.Соответственно Char_Line(Line 'указатель' obj) : Line(obk)
>>1379628знал что такой ответ будет, обязательно подумаю над этим, сподкнувшись о какую нибудь очередную проблему.
>>1379792Значит в твоем классе PCRepair где-то внутри содержатся указатели и/или выделение памятки. Соответственно так просто его нельзя выводить в файл, как сделал ты в case 5. Скинул бы что ли сам класс, а то нихера не понятно, что ты хочешь то от анона. Я ведь написал десериализацию только основываясь на case 5.
>>1379772Ты об этом? Char_Line(Line 'указатель' obj) : Line(obj->base)Это работает в случае, когда поле public, а мне нужно private/protected
Как сделать в visual studio нормальный автокомплит от редактора? После intellij где можно среда чуть ли не угадывала твои мысли, в вижуал студио лютое говно которое даже по почти целому названию класса нихуя не может предложить.
>>1380019> Как сделать в visual studio нормальный автокомплит от редактора? Никак.10 лет назад было тоже самое.
>>1380019Попробуй ReSharper C++ (плагин от JetBrains) или Visual Assist (только его настроить надо нормально).Или IntelliCode (должен вместе с 2019 студией поставляться).
Дан одномерный массив А.Найти сумму элементов в этом массив, стоящих перед минимальными элементами. ( решается в 2 цикла)Умоляю, помогите. Понимаю, что простота ебать, но я после травмы, и нехуя не знаю.
Ну шо, кто уже Bazel использовал?От Смейка попоболь на работе, думаю вот предложить Bazel.Кеширование билдов, распределённые билды, питоно-подобные конфиги, одна годнота короче.
>>1380238А распределённая сборка есть? Интеграция со студией?Алсо, про него в прошлом треде писали что-то
>>1380223У тебя травма мозга? Объясни, нахуя тебе программирование? Охуеваешь наверное, что госсистема не работает, а сам не лучше
Ньефаг итт.Прохожу сейчас курс по c++ in unrealПарочка вещей под конец первого курса осталась мне не совсем понятна, хоть программа и работает. Если я пропущу непонятные мне моменты и продолжу дальше обучение непосредственно с unreal это будет совсем пиздец, или так можно делать? Вообще пропускать непонятные на данный момент темы это нормально во время обучения? А то уже буксую тут, и никуда не могу двинуться нормально.
>>1380330Пропускай и изучай те части которые нравятся. С++ настолько огромный и ужасный язык что весь его изучать это всей жизни не хватит. Разбирайся по мере необходимости каких-то фич.
Как делать windows form в студии, доставил сейчас формы для студии, но у меня версия sdc не совпадает и постоянно приходится менять в настройках проекта, + не могу собрать проект, вечно ошибки про "не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре. проверьте правильность внедрения "
>>1380347Ну, год назад не особо прокатило. Говорят же, что сложно и проч.Буквально сегодня утром мне в голову ударила идея опять попробовать вкатиться в программирование. Интересно, до куда я дойду на этот раз.
>>1380353Джава и си лучшие языки чтобы начинать, никого не слушай кто говорит обратное. В них ты уделишь время основам, как теории (типы данных, память, области видимости, деревья, указатели), так и практики (фреймворки, зависимости, сборка проектов, компиляторы, работа с ресурсами), и за то же время, пока джс вкатывальщик будет делать телеграм ботов по гайдам и рассказывать как он ПРИМЕНЯЕТ ПОЛУЧЕННЫЕ ЗНАНЕЯ ЕА ПРАКТЕКЕ, ты уже будешь очень много знать и ПОНИМАТЬ.
Доброго времени суток, господа. Написал тестовое задание, которое мне дали недавно. Но возник маленький вопросик, о котором я раньше не задумывался, но все же не хочется перед потенциальным работодателем выглядеть идиотом. Вопрос в следующем: какой вариант лучше?1) Прописать #include <iostream> в двух файликах и вводить просто cout2) Везде прописывать std::cout не включая <iostream>
>>1380344>Плюсы как первый язык.примерно так же как терять девственность без гондона со шлюхой у которой вич и пара гепатитов
>>1380330>Вообще пропускать непонятные на данный момент темы этоОдин из самых важных скилов в программировании да и в жизни вообще.Тем не менее, все же нужно уметь как можно более четко локализовать непонятные вещи, то есть на каком уровне абстракции и где именно возникают вопросы.>А то уже буксую тут, и никуда не могу двинутьсяДля первого чтения определенно, важнее двигаться вперед, чем буксовать на месте. Дропай смело, пока такие дропы не мешают тебе усваивать дальнейший материал.По не усвоенным темам веди дневник, ну и естественно, не забывай про него кстати, половина вопросов у тебя отпадет, когда ты только попытаешься сам для себя их сформулировать письменно.
>>1380360>джс вкатывальщик будет делать телеграм ботов по гайдам и рассказывать как он ПРИМЕНЯЕТ ПОЛУЧЕННЫЕ ЗНАНЕЯ НА ПРАКТЕКЕМой опыт показывает, что это куда важнее на нынешнем рынке труда. Жалею, что решил после изучения С++ идти писать на нем впрод, а не вкатываться в более современные технологии. После С++ любой язык заходит очень легко, но работу не найти, так как нет релевантного опыта. А есть только опыт дрочения байтов в вымирающем десктопе и зп на 10-20% ниже веба/мобилок.
>>1380416>более современные технологиитолько это все про технологии продаж. Тут программирование, вообще говоря, кагбе лишнее звено.
>>1380405Я лишился девственности с индивидуалкой. Помню, как задрал её настолько, что она кончила два раза, а у меня не получалось. Тогда она начала сводить бедра и сжимать вагину, и мне удалось завершить. Потом я ещё к ней ходил и подарил дополнительно рафаэлки.байтоеб-энтерпрайзник
>>1380344Зависи от тебя. Я вкатился в плюсы первым языком, и вот уже сеньор-помидор. Но я адов задрот. Если ты тут ради денег - иди в веб\мобилки. Плюсы - призвание.
>>1380344Да не нужен С++, НЕ НУ ЖЕН. Для лоулевела и системщины есть С, которого вполне хватает, чтобы писать целые ОС. Что касаемо высокого уровня абстракции, то и тут есть варианты по-лучше, в зависимости от задачи. С++ это урод в семье.
>>1380487Ну иногда хочется забыть про шаблоны и конструкторы перемещения, и херачить всё в один файл с глобальными переменными..
>>1380487Дурак-дебил, ты? ОС не пишут на С++, жопоконтроллеры на С программируют, драйверы всех сортов пишут также на С.
>>1379955В обосанной иде.>>1380019очевидно снесни нахуй вижак.>>1380330>Прохожу сейчас курс по c++Перестань заниматься некрофилией>>1380344>Насколько моя мысль конченая?На все 100>>1380348Научится делать на электроне формочки.>>1380360Согласен, но жаба тоже говно.>>1380462Понахватались с двощей байтоебства, на шестнадцатиричный код спустись, мудень.Мда, половина треда засрана кт, другая по лабам, еще и пердуны сидят.
Я в курсе, что лабы идут нахуй, но я через весь гугл пролез и не смог понять, что от меня хотят(хотя инфы вроде достаточно)Мне надо вывести количество элементов в строчке, которые больше среднего значения.Я вроде сделал, но компилятор ругается, прошу знающих анонов объяснить человеческим можно двачерским языком, что мне нужно сделать и почему это получилось.https://ideone.com/UnT2M8
>>1380605i, j значит "вычисли первое значение, вычисли второе значение и верни второе". Соответственно massiv[i, j] это то же самое, что massiv[j]. massiv[j] имеет тип int*. Когда ты пишешь um = sum + masiv[i, j] ты прибавляешь к числу указатель. Вот компилятор и ругается как он ругается.>что от меня хотятОт тебя хотят, чтобы ты научился писать программы. Если ты высрал 77 строчек не постепенно улучшая код, а сразу, то это хуевый подход.
>>1380610Два чая тебе>Если ты высрал 77 строчек не постепенно улучшая код, а сразу, то это хуевый подход.50 из них я скопипастил из прошлого задания про одномерные массивы(+модифицировал под двемерный), не совсем понимаю, что ты имеешь в виду про постепенное улучшение кода.Я делаю какую-то часть и проверяю её на работоспособность, потом пишу дальше.Надо делать как-то по другому?
>>1380605>masiv[i, j];Чтобы компилятор такое проглотил нужны классы с переопределением операторов [] и ,
>>1375142 (OP)Двачи, какого хуя sscanf не двигается дальше как та же fscanf, i.e она должна каждый раз дальше искать, но с какого - то хуя всегда находит одну и туже еденицу.Что я пытаюсь сделать:У меня есть char array, мне нужно используя sscanf прочитать его пока не кончится (не упрусь в нуль пойнтер) закидывая значения в файл. P.S доброе утро
>>1380616Ты же каждый раз ей даешь один и тот же указатель, ессно она тебе одно и тоже парсит. Указатель - это тебе не файл, у которого есть текущая позиция, которая сдвигается при чтении.можешь использовать stringstream, но он сделает копию буфера (оверхед)можешь вручную искать разделители и парсить числа между ними.
>>1380610>Если ты высрал 77 строчек не постепенно улучшая код, а сразу, то это хуевый подход. Я иногда пишу тысячу-две строк даже не компилируя. Мне так удобнее. Но у меня много опыта, новичкам так и правда не стоит делать.
>>1380634std::string в крестах это не совсем обычный тип данных. Если очень сильно упростить, то это alias на шаблонный класс basic_string<char>, который "внутри" себя содержит указатель на область памяти, где "лежит" сам текст (может быть как на стеке (small string optimization), так и в куче), а так же переменная size (размер строки) и capacity (размер выделенной памяти). Поэтому просто кинуть в файл std::string через ofstream::write не получится, т.к. какой бы длины не была строка sizeof(std::string) будет постоянным.
>>1380711Поделись советом, каким образом изучать программирование, чтобы помнить всю инфу как ты, ну я доусона например прочёл, через пол года векторы еле вспомнил весь их синтаксис. Это нужно постоянно иметь практику, но практиковать все и сразу не очень то и получится, либо какой то ещё способ?
>>1380715> Поделись советом, каким образом изучать программирование, чтобы помнить всю инфу как ты, ну я доусона например прочёл, через пол года векторы еле вспомнил весь их синтаксис. Это нужно постоянно иметь практику, но практиковать все и сразу не очень то и получится, либо какой то ещё способ?По интересам общайся, двигайся и всё получится.А если серьёзно, то такие штуки запоминаются, когда решаешь какую-то проблему: загуглил -> запомнил, что такое вообще существует -> знаешь как загуглить ещё раз -> знаешь. Если часто встречаешься с какой-нибудь штуковиной, то хочешь не хочешь, а запомнишь.
>>1380721ну у меня проблемы только с сериализацией и файлами возникали год назад и сейчас когда к плюсам вернулся возникли, просто не понимаю логику записи, ну и синтаксис для работы с векторами хз, нам сказали с массивами делать, а я захотел с чем нибудь поприятнее, оказалось ебля ещё та, препод говорит делай не задумывайся, а я хз как можно что то делать не понимая механику, поэтому торможу.Алсо, я впервые вижу c_str() поэтому хз куда его впихнуть здесь? https://pastebin.com/AMTmMBqx
>>1380705Не понял, что ты хочешь заменить на char? std::string? Это два разных типа данных: char - один символ, std::string - строка. Или ты имел ввиду указатель на char? Тогда заменить можно, но ебли с сериализацией будет не меньше, но со всем другим придется ебаться с new/delete/memcpy. А вообще я бы решил твою задачу как-то так: https://pastebin.com/4x5nHkza Не самое лучшее решение, но на скорую руку сойдет.
>>1380726Обычно для сериализации пишут либо operator << и operator >>, либо методы Save/Load в своем классе (Write/Read), которые принимают ссылку на поток:void A::Write(ostream & out){....out << this.foo << this.bar;}ИлиIstream & operator >> (istream & in, A const & a){....in >> a.foo >> a.bar;...return in;}Тебе же видимо препод-хуепод не позволяет писать нормально, а ебёт мозг байтами.Тогда тот вариант, что ты скинул, должен прокатить (а если не прокатывает, то почему?)
>>1380579>Перестань заниматься некрофилиейИ как мне теперь кодить в Unreal? Попросить Epic Games переписать его на чем-то посовременнее?
>>1380749Ну он обожает байтоебить, но я сам себя ебу, все давно написали все с массивами на изи, а я полез в векторы, и как будто зашёл в диалог с тян, вообще не ебу шо писать, просто ни одной комманды не знаю, поэтому попросил тут помощи, чтобы сдать быстрее лабу, и нормально сесть разобраться что же такое сериализация, но прийдется как то в чары записывать слова цельные и редактировать, потому что стринг имеет указатель как оказалось, а тот код что ты(или не ты) написал выше, я пока что не совсем понимаю. Буду ебаться, вариант юзать класс c_str тож хз, так как не знаю куда его применить в моем коде.
>>1380854Неужели так сложно?>>1375142 (OP)> Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
>>1380576>ОС не пишут на С++Потому-что легася, а так можно даже на расте. >жопоконтроллеры на С программируютВсе вменяемые люди их уже на С++17 пишут, констэкспр вместо макродрисни и прочее, алле> драйверы всех сортов пишут также на С.Пишу на работе драйвер на С++17.За щекой проверяй, дебилушек
>>1380864>констэкспр вместо макродрисни и прочее, аллев задачах кодогенерации все равно не обойтись без макросов, тк при помощи макросов можно делать новые лексемы, а шаблонами - нетв лучшем случае получается смесь шаблонов и макросов
Так это, по поводу Bazel.Поясните как работать с ним со студии? Собрать я проект смогу, но как потом по удобному работать из любой другой IDE?
>>1380865>в лучшем случае получается смесь шаблонов и макросовВот этот вроде не совсем дебил хотя и мелкобуква
>>1380860Я к тому, что все о методах тех же vector и string описаны на этих сайтах. И c_str() в том числе.
>>1380733Хз что в коде не понятно, но попытаюсь объяснить. Основной смысл вот в чем: шаблонная функция serialize нужна, чтобы сериализовать все тривиальные классы (например int, Date_of_call, Deadline). Далее идут специализации шаблона для нетривиальных классов (std::string, PCRepair, std::vector). Специализация для std::string сначала записывает в файл размер строки, а затем саму строку. Специализация для PCRepair записывает в файл все поля класса последовательно, используя нужную специализацию функции serialize (это делает компилятор). Специализация для std::vector сначала записывает размер вектора, а потом каждый элемент записывается в файл с помощью специализации функции serialize для PCRepair. Десериализация делает все тоже самое, но в обратном порядке. А код со строки 117 и до конца вообще нужен только для теста всего.
>>1380891ну они описаны, но как юзать их именно в моей задаче я ещё хз, как переделать чтобы всунуть туда c_str
>>1380864Хуй знает что у тебя за говнокантора, но в моей мне платят 8к зеленых и пишем мы на С, начиная от поддержки легаси щит и заканчивая минифильтрами.
Анон, подскажи плиз решаю задачку Нужно сделать динамический связанный список работающий с парами ключ-значение, где значение может быть любого типа. Создаю класс списка который работает со структурами вида template<typename T>struct listItem{ int key; T value; listItem prev; listItem next;};Затем, по логике мне нужно создать указатель на первый элемент (NULL если мы только создали список и ничего туда не внесли)Указатель для нешаблонных структур выглядел бы как "listItem t;"Но как сделать его для шаблонных стурктур?Вариант с template<typename T>listItem<T> t;не подходит. Как это делается правильно?
>>1381032>>1381031Видимо это сделать невозможно. Максимально годный ответ нашёл https://stackoverflow.com/questions/26907770/how-to-use-templated-struct-in-class-cгде чел предлагает конвертировать все данные в std::string и их писать. Збс, блэд, это и было первым пришедшим мне в голову решением. Но может всё-таки есть правильное решение этой задачи? А, 8к в наносекунду сеньоры?
>>1381071>~40к в месяц+хатка, оставшаяся от бабушки - и в мухосрани ты уже можешь рассчитывать на 8/10 нордическую блондинку с зелеными глазами, сам будучи лысоватым пузаном с дефектами речи
Здравствуйте! Начал изучение c++ с помощью пикрелейтед. Прошел до конца 3й главы, выполняя все задания. Ответил на все контрольные вопросы 3й главы, кроме одного : 6. Что прекращает ввод значения в целочисленную переменную?Помогите пожалуйста разобраться.
>>1381539Наверное пробельный символ (не тоже самое что пробел) и EOF. В идеале найди в интернете английское издание и вбрось этот вопрос на английском языке.
>>1381541Просто перед этим вопросом, был похожий вопрос: 5. Что прекращает ввод значения в строку!Я ответил (надеюсь правильно) — считывание строки прекращается, как только будет обнаружен пробельный символ, то бишь пробел или табуляция.
>>1381551даже так, что скорее всего никто в дс за кодинг не даст 5к, навалят сверху тимлидерских и менеджерских функций, придется жопкой крутится чтобы все успеть
>>1381549 По совету >>1381541 нашел только такой ответ на англ. ресурсе - "Ввод в целое число завершается любым нечисловым символом." Правильно? ссылка на ответы - https://stackoverflow.com/questions/26851934/what-terminates-reading-input-into-an-int Да вот устал копать просто, на все нашел ответы в книге, кроме этого вопроса (Половину дня убил на это, но не жалею, лучше усвоил материал). И к сожалению, я не студент, не тот возраст уже, приходится самообучаться параллельно ненавистной работе T_T
>>1381549>рой студентик, рой Ну ок, пойду читать учебник по Java под ведро, всё равно за с++ больше 5 в дс не получить.
>>1381559Зачем? Ты так далеко не уедешь, и вопросы там довольно элементарные, лучше смотри вопросы с собеседований гугла/м.софта
>>1381557>И к сожалению, я не студент, не тот возраст уже, приходится самообучаться параллельно ненавистной работе T_Tвкатываться с непрофильной вышкой в кресты в 2к19 в северном мордохеох, щит
>>1381583о, да, деткащас еще чувак из нвидии отпишется что сидит на 400к и будет всем хорошо в тредевкатывальщики воспрянут духом
>>1381585У меня после налогов выходит где-то $13k в американской глубинке. Чистые плюсы, без каких-то специальных навыков вроде машинного зрения.
>>1381628нетв лучшем случае джун ничего не делает на проекте, а значит не вредита обычно джут первые три годика приносит прямой вред фирме
>>1381643>где-то $13k в американской глубинкепиздецэто просто дохуищи для простого работяги (коим и являются кодеры) для сша если не долина
>>1381568 В основном для работы с unreal engine начал, хотя бы плагины писать. Да и для общего развития, ну и это очень интересно оказалось.
Хочу написать обобщенную функцию для генерации опкодов инструкций с двумя операндами. Операнды могут быть регистрами, литералами и адресом памяти. Если делать не обобщенно, будет так:instruction* make_inst_reg_reg(instruction_type type, register_name reg1, register_name reg2);instruction make_inst_reg_num(instruction_type type, register_name reg, int value);Можно ли реализовать все это как один шаблон?
>>1381722Алсо, как можно сделать обобщенно это? Макросы подставляются в место, где определены переменные context и instr, все вместе образует единый блок кода.
>>1381854в области где кресты применяются это именно такджун первые три года только вредит проекту, портит кодовую базу
>>1381881Ну если в конторе никто не ревьювит код юнцов (да и не только их), то тут уже не понятно, кто больший вредитель
Я если честно уже заебался искать. Мозги уже не соображают нихуя вечером. Короче пните меня, где ошибка?И так и эдак пытался удалять один эелмент из лист-виджета. Нихуя.
Народ, помогите ньюфагу!Например, мы загадали число 90. Прога спрашивает за 50, мы говорим, что загадали число больше. Она даёт 95. Как сделать так, чтоб при выборе варианта "2. Меньше" мы получали число больше 50-ти?Много тапками не бросайтесь... пожалуйста.
>>1381965Очевидно, что твоя проблема в rand() % 100 + 1Расскажи мне, что означают каждая часть этой строчки.
>>1381968rand() — рандомное число% 100 — деление этого числа по модулю. Так мы должны получить диапазон от 0 до 99.+ 1 — так мы смещаем диапазон на единицу, то бишь получим от 1 до 100.Разве проблема в ней? Почему? Я думал, что я просто не могу придумать как юзать всякие if и прочие инструкции для дела.
>>1381973>Так мы должны получить диапазон от 0 до 99.Во-во. А на самом деле какой диапазон ты должен получать для того чтобы достичь цели?
>>1381979Тащемта ты должен получать диапазон от "1 или минимальное число предложенное пекой" до "100 или максимальное число предложенное пекой". Не совсем так, но суть ты наверное понял?Если нет то давай пройдём по шагам.