Почему от C++ программистов ждут дохуя, а платят нихуя? 180к в Москве каждый второй JS-кодер может за круды получать, а нам столько отвалят только за computer vision какой-нибудь.
>>1381999 Мне кажется, фенгомен JS связан с тем, что создание сайтов сейчас очень востребовано на рынке, много заказчиков и за это хорошо платят. C++ это в основном наука, разработка игр и программ для десктопа. В науке никогда не заработаешь, в геймдеве зарабатывают только какие-нибудь транснациональные сверхмонополисты вроде Valve или EA, а десктоп в 2019 никому не нужен и стремительно умирает, его вытесняют смартфоны и мобильные приложения.
>>1382096 > студия разработки игр или своя научная лаборатория определённо ещё более дохлый номер фак ю!!!! мы все это сделаем! не сдавайтесь работяги!!!!!!!!!!
>>1382070 Потому что быдло пишет сайтики для быдла. Весь веб уже лет десять как в жопе, всё благодаря пиздоглазым братьям нашим меньшим, а всяким васянам и бабкам сракам похуй, что всё тормозит, не работает, выглядит как оргазм шизофреника и всё в этом духе.
>>1382107 Двачую, web 2.0. был ошибкой, но это неизбежно должно было произойти в связи с популяризацией интернета и компьютерных технологий. Вот на пике пример хорошего стиля: нейтральный спокойный фон, черный текст на белом фоне хорошим шрифтом, концентрация на информации, никаких отвлекающих картинок и анимации, только ссылки и текст. Благоря этому, кстати, страница весит максимально мало и загружается практически мгновенно.
>>1382109 черно-белый стиль имеет очень высокий контраст, который далеко не всем нравится. я бы например сделал эту страницу менее контрастной в мягких цветах, аналоговая цветовая схема или что-то вроде. алсо т.к. бэк это кишки негра и вообще перегружать страницу это фу то я бы сделал чтобы весь текст генерился джаваскриптом динамически с помощью реакта и все это была бы одна страница
Двощ помогай Пишу курсовик на тему "Распознавание неба на фотографии" Речь идет о синем небе если облака и могут быть то немного. Хуярю на плюсах и библиотекой opencv. Нейросети и прочее не предлагать так как время поджимает. Сначала расписал тупо алгоритмы сегментации но препод такую хуйню не принял и поставил парашу в полугодии. Сейчас уже горит конкретно не знаю за что хвататься. Кто готов помочь отпишитесь расскажу поподробнее. Может закину копеечку какую на пиццу с пивасом хватит. Застрял на ситуации с пика. Посчитал градиент и видно что то что темное это небо. А че дальше делать и как это писать не представляю
Есть qt-мастера? Как к rectangle или text свойство onClicked присобачить. Делаю датчики и хочу к ним присобачить Tooltip, но он требует окно собственно.
>>1382266 >onClicked >Tooltip Как это связано? Вообще в кюмл клики присобачиваются оче просто к чему угодно с помощью AnyItem { MouseArea { anchors.fill: parent onClicked: { /code/ } } }
Двач, как указатель (любой обычный указатель, void* к примеру) перевести в std::string? Интернет хуйню выдаёт, указатели можно выводить в cout, но что-то не получается у меня перевести его в строку.
>>1382391 нормально только все равно некоторые части остаются черными. Вот если бы начать заливать сверху то тогда нормально будет. Осталось понять как это делать
Блятьб, как проект на ебучей вижуал студио может использовать либу, но при этом она нигде в настройках проекта не указана? Нигде даже рядом с проектом не лежит либа. Что за хуйня?
Как в istream передать целую строку с пробелами: friend std::istream&operator>>(std::istream&in, Movie&object) { std::cout << "Movie name: "; in >> object.name; std::cout << "Show time: "; in >> object.time; ... ... } Надо чтобы в object.name записывалась строчка с пробелами
Окей, я переделал под стринг, но теперь он перепрыгивает сразу на время сеанса и ничего не записывает в название \tfriend std::istream&operator>>(std::istream&in, Movie&object) { \t\tstd::cout << "Название:\ "; std::getline(in, object.name); \t\tstd::cout << "Время сеанса:\ "; std::getline(in, object.time); \t\tstd::cout << "Цена:\ "; std::getline(in, object.price); \t\tstd::cout << "Зал:\ "; std::getline(in, object.room); \t\treturn in; \t}
>>1382567 Потому что читать надо внимательнее. >>1382569 > Окей, я переделал под стринг, но теперь он перепрыгивает сразу на время сеанса и ничего не записывает в название Опять же, читать надо внимательнее. По умолчанию сепаратор стоит '\n'. Непонятно, какой у тебя формат файла, может ты записал всё в одну строку и теперь искренне надеешься прочитать обратно так, как записывал. Кстати, нахера тебе эти вызовы std::cout при чтении из потока?
>>1382572 Записываю в бинарный файл в строку, да. cout'ы чтобы сказать пользователю, что вводить надо. Извините меня, пожалуйста, но у меня до завтра курсач горит, а я не совсем выкупаю, что делаю.
>>1382575 > Записываю в бинарный файл в строку, да. Чё? > cout'ы чтобы сказать пользователю, что вводить надо. Ну так и пиши тогда cin, зачем тебе отдельная функция? Ты же понимаешь, что если на неё натравить ifstream, то у тебя на экране появятся ненужные строки
PS: никто в код твоего курсача смотреть не будет, пиши как тебе удобно
>>1382579 В общем заколхозил, что он просто дважды спрашивает это и всё работает) \t\tstd::cout << ""; in.getline(object.name, 32); \t\tstd::cout << "Название: "; in.getline(object.name, 32);
>>1382597 У тебя после цифрового ввода остается '/n' в потоке. Гетлайн ее считывает и получает пустую строку. После ввода цифр делай cin.ignore(1000, '/n');
>>1382705 Спасибо. Бтв, курсач всё-таки не написал и буду заново переделывать с нуля уже своё. Можешь совет дать? У меня есть класс movie а ля сеансы в кинотеатре и мне нужно хранить все эти сеансы в бинарном файле. Как лучше сделать: 2 отдельных класса для сеанса и файла, или методы с работой с файлом просто в классе фильма сделать? И как лучше реализовывать поиск и редактирование?
>>1382712 Показ фильма это данные в программе. За каждый показ отвечает объект твоего класса. Файл -- это способ вывода из программы. Твой класс должен отвечать и за возможность своего вывода. Короче: класс для сеанса и метод в нем для вывода.
>>1382712 > У меня есть класс movie а ля сеансы в кинотеатре и мне нужно хранить все эти сеансы в бинарном файле. Как лучше сделать: 2 отдельных класса для сеанса и файла, или методы с работой с файлом просто в классе фильма сделать? У класса Movie заводишь метод для сохранения/загрузки, делаешь ещё один класс, который будет иметь допустим std::vector<Movie>, вот у него и делай методы поиска/редактирования/etc. Заодно и сохранение всего списка. > И как лучше реализовывать поиск и редактирование? Поиск либо как find(enum критерий, строка), а внутри уже в зависимости от критерия использовать эту строку (например, для поиска по названию обычным find_if проходишься по вектору, предикат будет сравнивать название с аргументом, для поиска по году можешь сначала перевести строку в число и точно так же искать) ИЛИ сделать несколько разных методов findByName, findByYear и т.п. Для редактирования можешь id какой-нибудь у фильма завести
Написал небольшую програмку. По задумке должна создавать .txt файл. И впринципе создаёт. Но с русским языком- беда. Даже сетлокаль не помогает [CODE] #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); //Не помогает это дерьмо string text; cin >> text; ofstream fout; fout.open(text + ".txt"); system("pause"); return 0; } [/CODE]
Щас потестил cout << text + ".txt"; Почему-то и вывод тоже не работало. ХЗ кто виноват. Я или MINGW, но бля, чё делать?
>>1382919 Дохера всего перепробовал. Даже скатился до стандартного вывода введёной фразы в консоль- не робит вообще ни как. АЛСО файлы так же создаются в неверной кодировке.
>>1383077 Советую прекратить жрать пердоговно. В студии проекты по умолчанию юникодные. Вместо "ололо" пишешь L"ололо", вместо char - wchar_t, вместо printf - wprintf, и так далее.
>>1383077 Добавлю. Ядро Windows, графическая подсистема и NTFS, начиная с NT 4.0, полностью на Unicode. Добавлены библиотеки для поддержки ANSI. Но часть вызовов из ANSI конвертируется в Unicode. мимопроходил
Прочитал пару книжек по плюсам (прата, александреску) + практика около года. Для меня сейчас наиболее сложные вещи, в которых я хуево разбираюсь это аттрибуты (их я и не знаю, кроме [[noreturn]], который я узнал из предпреждений) , fold expressions вкупе с variadic temlates, сам язык темплейтов (в плане как вычислить факториал на этапе компиляции), множественное наследование от разных иерархично построенных классов в вирьуальном виде и нет одновременно (кто там кого перекрыает и с каким приоритетом - в душе не ебу) , многопоточное проганье - вот за это вообще не шарю, и за пределами std тоже не шарю. Так вот, что и сколько мне нужно еще учиться, чтобы стать гуру в C++ (с учетом того, что вышеперечисленное я например уже выучил (авансом) )?
>>1383205 Ну бля дохуя разной, в т. ч. проекты на github, игры там, sdl2 ncurses sfml. Но я прост не понимаю, типо все пиздят мол C++ дохуя сложный, его никто не знает и т. д, но во что эта сложность упирается? В изучение всевозможнвх бустов? В умение писать на темрлейтах тьюринг полные языки?
>>1383291 Но на самом деле нужно быть не гуру c++, а разбираться в предметной области и библиотеках, в куче всякой хуйни типа вероятности отказа ячеек памяти, аппаратных багов и прочего.
>>1383197 погоди, а какую книжку александреску ты читал? "современное проектирование" что ли? как ты ее читал, если не понимаешь "как вычислить факториал на этапе компиляции", там без понимания шаблонов вообще не стоит ее открывать, лол
Какие возможные подводные камни? На идеоне с простым классом отрабатывает без проблем. В проекте начинает неистово жрать память на моменте с erase (доходит до 10+ ГБ отожранной оперативы и умирает)
>>1383440 Видимо время затрачивается на ресайз вектора. Вариант с vec.erase(vec.begin(), vec.begin()+1000) работает в 1000 раз быстрее. Вариант с vec.erase(vec.begin(), vec.begin()+10000) работает мнгновенно Если требуется контролируемые итерации по 1 шт, то vec.pop_back() работает с приемлемой скоростью. Ща местные гуру разъяснят, мне тоже интересно.
Анон, а как правильно работать с кириллицей в винде? Мне нужно прочитать кириллические значения из файла с кириллическим названием.
Сначала я ищу нужный файл в папке wchar_t szPath[MAX_PATH]; GetCurrentDirectory(sizeof(szPath), szPath); lstrcat(szPath, mask); hf = FindFirstFile(szPath, &fd); etc.
Файлы с кириллицей в названии я не нахожу. Ок, пишу setlocale(LC_ALL, "russian");
Файлы с кириллицей начинают находиться. Начинаю читать их при помощи кода std::wstring line; std::wifstream in(name); if (in.is_open())\t{ while (getline(in, line)){ std::wcout << "readed: " << line.c_str() << std::endl; }} in.close();
Читаются 2 символа "Ee". Отрубаю setlocale(LC_ALL, "russian") и хардкожу название файла. Файл читается нормально.
Получается что я могу или читать файл или искать файл. Как делается правильно то?
>>1383440 проблема в том что ты не понимаешь, как устроен вектор проблема в том, что удаление первого элемента, как и удаление элементов из середины вектора - дорогая операция
>>1383444 В 21 веке интернета, международного текста, неиспользование юникода, свободно поддерживающего все языки сразу, должно быть законодательно объявлено вредительством против человечества и наказываться кастрацией и пожизненными принудительными работами на лесоповале в Колыме.
>>1383465 Попробуй erase через remove сделать, чтобы удалять не с начала вектора первый элемент, а с конца почитай, как remove работает. И ты компилишь в дебаге или релизе? Я не такой гуру, чтобы точно знать тонкости и разницу в видах сборки, но мои скудные знания дают предположение, что это может сыграть свою роль.
>>1383465 Конкретно в этом примере или с твоим классом? Потому что здесь память жрать и правда нечему. А вот у тебя может быть утечка памяти в деструкторе или конструкторе копирования/перемещения.
>>1383465 >Я не могу понять, почему начинает заниматься память в огромных масштабах. потому что ты не понимаешь, что происходит в векторе при удалении первого элемента а происходит кое-что (что ты должен знать так то) люто непроизводительное но объяснять я этого не буду здеся
Выбрал почему то с++. На ваш взгляд хороший язык? Могу поднимать 300к наносек 50к на нем? Вообще перспективный язык для вкатывальщиков? Чем он отличается от С и C#? Или все как то взаимосвязано. Вроде С++ дополнение к С.
У меня вопрос к вам, уважаемые: Я хочу сделать variadic функцию, но мне нужно передавать в нее два инта, которые имеют разные значения. (Один - высота, другой - ширина) причем я не могу передавать их структурой, т.к. я хочу, чтобы можно было передать что-то одно, а не целую структуру. Короче, как мне различить два инта из параметров?
>>1383588 > Я ещё слышал, что вместо написания компактных программ, люди покупают память, это так? > Я думаю да, ведь долбоебы все на utf8 Гляньте, весь мир - долбаёбы, один ты знаешь, как писать софт. UTF8 при использовании только ASCII символов занимает столько же памяти, сколько и ASCII.
>>1383613 Создай специальный класс, по сути обертку над структурой, которая будет в полях хранить значения аргументов. Создай сеттеры для этих полей. Дефолтный конструктор этого класса будет полям присваивать значения по-умолчанию. Если нужно отслеживать, были ли переданы те или иные аргументы, заведи в пару каждому полю флаг. Для удобства пусть каждый сеттер возвращает ссылку на себя (на объект этого класса, то есть *this). Тогда ты сможешь писать вот так:
if (params.HasHeight() && params.HasWidth()) { //есть и ширина, и высота } else if (params.HasHeight()) { //логика на случай, когда дали только высоту }
Немного заебно, но это самый расширяемый вариант, да и вообще полезный паттерн.
>>1383625 Я знаю сколько у меня аргументов будет, но я хочу функцию в которой (1)не принципиален порядок аргументов и (2)можно вызывать с произвольным кол-вом аргументов (их всего 10) Например, так: foo(width) foo(height, witdth) foo(color, width, height) и т.д.
>>1383629 Извини, но твой варик мне не особо подходит. Мне это нужно, чтобы уменьшить кол-во букав. Дело в том, что я использую билдер, для создания объекта класса, а хочу, чтобы была вариадик функция в которую я могу передать сам билдер, а потом параметры.
>>1383636 Типа так: setBuilder(ОbjectBuilder(), param1, param2, param3) и у всех парамов произвольный порядок и можно их вообще не задавать (типа так - setBuilder(ОbjectBuilder()) )
>>1383636 Не понял тебя. Допустим ты смог написать вот это: >вариадик функция в которую я могу передать сам билдер, а потом параметры >не принципиален порядок аргументов >можно вызывать с произвольным кол-вом аргументов Разве в таком случае необходимость в билдере не отпадет? Не думаю, что такую функцию возможно написать без именованных аргументов, которые запланированы на 20 год.
>>1383633 > (1)не принципиален порядок аргументов И как же ты собираешься что-то осмысленное с ними делать, если ты не знаешь какой именно у тебя аргумент? > (2)можно вызывать с произвольным кол-вом аргументов (их всего 10) Например, так: foo(width) foo(height, witdth) foo(color, width, height) и т.д. Ну так запили десять методов, не еби голову ни себе, ни тем, кто твой код поддерживать будет. А лучше подумай ещё раз, что-то твоя функция какую-то хуйню делает.
>>1383642 >Разве в таком случае необходимость в билдере не отпадет? Мне в некоторых местах нужен именно сам билдер. Например, когда кол-во задаваемых параметров меньше 2(такое часто бывает). В общем, у меня вопрос, как можно отличить один инт от другого?
>>1383645 >И как же ты собираешься что-то осмысленное с ними делать, если ты не знаешь какой именно у тебя аргумент? Именно это я у вас и спрашиваю. Как можно один инт от другого отличить? Я этого не знаю. Можно может, например, создать какой-то свой тип который будет просто оберткой над интом? >десять методов >не еби голову ни себе, ни тем, кто твой код поддерживать будет.
>>1383647 >как можно отличить один инт от другого? Только при помощи билдеров, эмуляции именованных аргументов при помощи пар и прочих костылей. То есть в твоем случае никак вообще. Повторюсь, если бы такие функции можно было писать, билдер как паттерн был бы не нужен, хоть тебе и кажется обратное.
>>1383645 >Ну так запили десять методов, не еби голову ни себе, ни тем, кто твой код поддерживать будет. Эти 10 функций, что сетят параметры билдера уже есть. Проблема в том, что когда мне нужно засеттить все 10 параметов, например, это выглядит так:ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10().getResult(); А я хочу так: createBuilder(ObjectBuilder(), param1, param3, param2, param5, param4, param7, param6, param8, param10, param9); Понятно?
>>1383649 > Как можно один инт от другого отличить? Надеюсь, ты уже понял ответ... >Можно может, например, создать какой-то свой тип который будет просто оберткой над интом? Конечно можно, но если я тебя встречу в реальной жизни, то скорее всего сломаю нос. Серьезно, бля, перегрузки писать не хочу, хочу обёртку над интом писать. Пиздец ты гений. Зачем тебе вообще аргументы местами менять? Ты что, на вызывающей стороне не можешь их в правильном порядке расставить?
В общем, > не еби голову ни себе, ни тем, кто твой код поддерживать будет.
>>1383653 >Зачем тебе вообще аргументы местами менять? Ты совсем бака? А если я захочу засеттить последние три параметра. Мне нужно будет написать: createBuilder(ObjectBuilder(), param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) Вместо: createBuilder(ObjectBuilder(), param8, param9, param10) Понимаешь, почему мне не нужна перегрузка?
>>1383652 Хотя нет, у меня есть безумная идея. Пишешь функцию, которая принимает 10 аргументов и собирает из них билдер в стандартном порядке: >ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10() Когда нужно вызвать функцию в особом порядке, делаешь std::bind и нужным образом расставляешь плейсхолдеры >std::bind(foo, _1, _3, _2, _5, _4, _7, _6, _8, _10, _9) А затем вызываешь в стандартном порядке >createBuilder(ObjectBuilder(), param1, param2, param3...) Может ты сможешь из этой идеи что-то толковое сделать, но пока это довольно сомнительно.
>>1383652 > >Ну так запили десять методов, не еби голову ни себе, ни тем, кто твой код поддерживать будет. > Эти 10 функций, что сетят параметры билдера уже есть. Проблема в том, что когда мне нужно засеттить все 10 параметов, например, это выглядит так:ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10().getResult(); > А я хочу так: createBuilder(ObjectBuilder(), param1, param3, param2, param5, param4, param7, param6, param8, param10, param9); > Понятно? Попробуй передавать функтор, у которого билдер может спрашивать, нужен ли параметр и его значение. Что-то типа std::function<std::optional<int>(enParamType)> getParam Параметры придется описать енамом (ну а хули ты хотел-то?). Вызывающая сторона будет писать что-то вроде auto getParamFn = [](enParamType t) -> std::optional<int> { ....if(t == param1) ........return myParam1; ....else .........
>>1383656 Не, дело не в том, что мне в особом порядке нужно их вызывать, дело в том, что я хочу сеттить в функции только некоторые из параметров (как я написал в этом посте >>1383655)
>>1383659 Так что, нельзя так? Я в принципе не против такой хери createBuilder(ObjectBuilder(), width(5), height(20), colorR(255)). Но, как ее лучше реализовать?
>>1383675 >Тип-то тебе всё равно надо как-то различать, хоть это и обёртка Ну, да в плюсах же вроде бы есть способ сравнить типы? >или опять же, десять перегрузок на каждую обёртку Всмысле? Будет одна вариадик функция, куда я все буду пихать и там в зависимости от типа буду вызывать методы билдера.
>>1383677 > Ну, да в плюсах же вроде бы есть способ сравнить типы? Подумай десять тысяч раз, перед тем, как сравнивать типы. > Всмысле? Будет одна вариадик функция, куда я все буду пихать и там в зависимости от типа буду вызывать методы билдера. Можешь обертки свои наследовать от какой-нибудь хуйни с методом getType(), где будешь возвращать свой тип (enum), потому что то, что предлагает язык это совсем пиздец.
>>1383689 >Подумай десять тысяч раз, перед тем, как сравнивать типы std::is_same + магия перегрузок (или if constexpr) может как нибудь помочь тебе Мимопроходил-кун
>>1383783 >Веб-хуеб - js/css/html Сюда и >>1383783 >.NET или Пайон Можешь дописывать в веб хуйню. На дотнете так точно придется пердолить фронт на ангуляре либо нокауте.
Посоветуйте нуфагу, как вкатиться в C++. Есть ли какие-то реально полезные книги/сайты и пр? Пока что могу только в мертвый Pascal. И еще один вопрос, хотя возможно не по теме. Что делать с тем чувством лени, когда начинаешь учитить язык, а после бросаешь из-за лени
Комрады, есть кто по QT? Короче написал прогу, она сначала считывает большое количество файлов, потом строит по считанным данным из структур графики. Решил сделать считывание файлов отдельным потоком через QThread (компилятор msvc2010). Вызываю старт треда при загрузке формы. Но фишка в том, что данные он считывает только после перезагрузки формы или обновления формы. Собственно вопрос. Как мне вручную остановить этот тред или же отладить это дело? Не понимаю как правильно его делать
>>1381995 (OP) Какой Qt лучше установить на Ubuntu, который в репозитории, с помощью apt, или самый новый, с сайта разработчиков, или какие еще есть варианты? Если с сайта качать, его же ведь автоматически обновить не получиться.
Такой вопрос, как правильно сформулировать вопрос для гугла: Как устроен контрол типа ListBox, тоесть один поток постоянно перерисовывает данные из некого контейнера, а другой - добавляет данные в этот контейнер. Что там происходит? Как избегается состояние гонки? mutex?
>>1385001 У меня такая хуйня была из-за передачи через &. Попробуй без нее, если выйдет - сделай current position глобальной переменной. P.S.: не join, а detach, иначе будешь ждать окончания выполнения каждого вызова, а ты же хочешь параллельности.
чел из яндекса, один из тех что делал курсы по крестам на курсере, в видео обмолвился, что их проходит около 25 тысяч человек на тот момент вы только вдумайтесь, 25 (!) тыщ вкатывальщиков на платных курсах по крестам целая армия, бля
>>1386292 на курсере курсы можно аудировать бесплатно, но и платно их ради сертификата много кто проходят. 25к со всего мира сравнительно немного, большая часть не вкатывальщики даже а уже работающие прилепить что-нибудь на линкедин или студенты или просто любопытствующие, немало буржуев просто собирают сертификаты, плюсы фигня для вката же
>>1386301 >на курсере курсы можно аудировать бесплатно, но и платно их ради сертификата много кто проходят неа (( если бесплатно, то не будет доступа к заданиям и к проверяющей системе а без выполнения заданий смотреть видео - пустое дело
Сейчас хоть сколько-то востребован бэкэнд на плюсах? Очень нравится сфера компьютерных сетей и Интернета, и в то же время люблю С++ от js убежал в ужасе , но не знаю нужно ли вообще это учить. Геймдев не привлекает вообще
>>1386812 Я не ебу за твои методы треугольников, но вот тебе код который хотя бы начинает выполняется, с моими допущениями что там имелось в виду. https://pastebin.com/5y5ZBXfp
>>1386834 Блять ты скопировал откуда-то код, у тебя операторы ввода и вывода заменились на треугольные кавычки, и компилятор тебе открыто говорит что он не понимает что ты от него хочешь. Во вторых у тебя почему-то стоит точка с запятой после обьявления функции, и отсутствует список формальных параметров а потом ты еще и передаешь в эту недофункцию какие-то значения.
>>1381995 (OP) Доброго вечерочка, друзья. Примерно года два назад начал немного увлекаться программированием на C++, до этого никакого опыта в разработке у меня не было. Наверное, сейчас разбираюсь в механиках языка на уровне чуть ниже среднего (как мне кажется) - это STL, ООП, немного шаблонов и лямбд. Но всё это теория. Есть ли какие-либо протоптанные дорожки постижения плюсов на практике? Какие задачи стоит решать для увеличения опыта в разработке на C++? Уж очень мне понравилось программировать и я хотел бы в этом развиваться, книг я набрал, но в каких областях стоит начать применять полученные знания?
Стоит ли перекатываться на Си++98, если обычный Си в общем-то устраивает, но костылить свой ассоциативный массив и как-то париться со строками не хочется? Пишу свой корявенький валидатор текстовых файлов для моддинга одной игры, в перспективе развить до редактора.
>>1387193 Выбор в пользу 14-17 очевиден. Даже если тебе понадобится только map, то в процессе изучения ты попутно узнаешь(а может и попробуешь и тебе понравится) вещи которых нет в 98
>>1387201 Внезапно, далеко не все нововведения направлены на ООП. Набери в гугле про 11-14-17 стандарты, почитай краткие выдержки (я вообще впервые на хабре наткнулся на короткое статьи) и почитай.
>>1387248 Я написал делегат и модель для ListView В делегате у меня круг, текст внутри круга, текст под кругом и тултип. Пытаюсь добавить элементы с включенным spacing, но вообще ничего не добавляется. ЧЯДНТ?
Дайте совет, как сделать: Создайте шаблон класса Stack и заполните его четными числами. Создайте шаблон класса Stack1 и заполните его нечетными числами. С помощью итератора объедините эти контейнеры в вектор.
>>1387446 1. Создаёшь шаблон класса Stack 2. Заполняешь его экземпляр четными числами 3. Создаёшь шаблон класса Stack1 4. Заполняешь его экземпляр нечетными числами 5. С помощью итератора объединяешь эти контейнеры в вектор.
>>1387446 > заполните его четными числами Что-то никогда не задумывался, если мы берем какой-то плюсовой контейнер (вектор например) и начинаем его заполнять четными числами то когда ошибка будет? Когда вообще все доступная (скажем 16 гб) оперативная память кончится (с поправкой на фрагментацию) или там есть какие-то технические ограничения которые раньше сработают?
Я нулевой мешок, из знаний: посчитать интеграл, производную, умножить матрицы, помигать диодом на микроконтроллере с помощью asm или Cи, припаять конденсатор, припаять резистор, сверстать страничку html, css, js. На этом все. Живу в далекой провинции.
Такой вопрос: Сколько лет надо тренировать-тренировать-тренировать навыки С++ одиноко в горах как мастер каратэ, чтобы суметь найти удаленную работу джуниором за дошираки и кипяток? Если хотелось бы научные вычисления делать.
>>1387735 Насколько понимаю, да. Я проходил предварительный этап отбора на их сайте и собеседование в скайпе, когда ещё не работал в стартапе. Эйчар сказал, что доволен, но не прислал оффер. А связался со мной через несколько месяцев, когда я уже работал. Они писали системы удалённого контроля персоналом и видеонаблюдения.
>>1387790 >Для научных вычислений сильные плюсы не нужны Лол >>1387817 >А какие-нибудь йоба шаблоны используются там? Да. Повсеместно. Открой eigen какой-нибудь. Там сплошная магия на expression templates. Или pcl, там буст обмазанный ейгеном, обмазанные еще десятком либ, и все обклеено шаблонами для нажористости.
Может кто-нибудь сказать какую библиотеку юзать (может даже кто напишет пару строк кода) для чтения веб странички.
Вот я, например, в опере и любом браузере могу просто смотреть "исходный код страницы", и я хочу так же просто, имея адрес страницы (чтобы https поддерживало только) тупо получать в символьный массив весь вот этот текст со всей разметкой и не нужной лапшой без выебонов, чтобы дальше уже без проблем можно было это парсить и сохранять в файл, если понадобиться.
Короче то что в браузере делается нажатием кнопок ctrl+u, я хочу автоматизировать для считывания самой программой, чтобы не копировать каждый раз как бухгалтерша кучу текста мышкой и все на c++, поскольку маломальский опыт только на нем есть.
Curl ставил, он мне пару строк показывал, вместо около 7000, и типо все. Было бы неплохо если кто-то просто своим опытом поделился даже, а не просто знанием необходимых библиотек, хотя рад буду всему.
>>1387880 На сишарпе делается парой строк. И в отличие от говняных браузеров, можно слать нахуй сертификаты, чтобы любые считались как хорошие и всё качалось без проблем.
Как выйти на уровень отцов, которые пишут буст и всякие крутые либы с использованием метапрограммирования? У нас на работе шаблонов почти вообще нет, а хочется чего-нибудь эдакого.
>>1387927 ну, дзен заключается в том что метапрограммирование на крестах используется для кодогенерации соответственно, если у тебя есть какие-нибудь задачи кодогенерации, то можно их попробовать решить с использованием шаблонного метапрограммирования, а не олдскульными макросами или внешними препроцессорами как то так
>>1387927 алсо, щас все проще и понятней стало почти не нужно использовать рекурсивное инстанцирование, sfinae для условных конструкций и прочие функциональные трюки что мозг выносили раньше
>>1387970 на крестах ты тоже можешь написать, если дело будет происходить в винде, используешь ie com automation но таки проще щас плагин на js к хрому или лисе написать
Смотрите. Я хочу поменять местами данные в шаблонной функции, вот я это и делаю. template<class T>void kek(T &a, T &b) { T tmp(a); a=b; b=tmp; }
То есть я просто два раза вызываю оператор= и один раз конструктор копирования, ничего страшного.
А теперь представим что сюда будет подставляться йоба класс в котором хранится хитрая структура данных там дерево какое-нибудь по указателю лежит и соответственно операция присваивания очень дорогая. Получается сначала будет супер долгое копирование, а потом два супер долгих присваивания, да ещё и долгий деструктор для tmp. Как мне сделать чтобы вместо этого просто вызывался оператор копирования с переносом? Вот если бы это был конкретный класс то я бы мог просто сделать void kek(Dada &a, Dada &b) { Node * root = b.root; b.root=a.root; a.root=root; /... } И именно это же и делает конструктор копирования с переносом или оператор присваивания с переносом. Только как мне его запустить?...
>>1388026 Гугли "template specialization". Суть в том что у тебя может быть шаблонная функция, но в довесок к ней еще и несколько альтернативных реализаций под конкретные типы для которых не подходит базовый шаблонный вариант.
>>1388032 То есть в любом случае придётся под каждый хитрый тип данных отдельную реализации писать? Просто я подумал что было бы круто если бы я в итоге мог сделать например std::vector<int> v1; std::vector<int> v2; //... swap<std::vector<int>>(v1, v2); без определения специализаций и всё - внутренние данные v1 и v2 поменялись местами.
Вообще, даже стандартный автоматически генерируемый оператор присваивания, который просто почленно копирует поля, сделал бы то что мне надо, но проблема в том, что он же в 99% случаев уже переопредлён в подобных классах, как и в этом же std::vector, поэтому я к нему доступа не имею(или имею?).
>>1387880 Ебать я счаслив, я кажись нашел решение, или по крайней мере приблизился. Какой-то пиндос спрашивал за проблемы с подключением через https, ему ответили.
одна из самых интересных (в смысле изучения) вещей в stl это стандартные функциональные обьекты, привязки и предикаты, позволяющие использовать еще один способ программирования, а именно функциональную композицию даже жалко, что сейчас в большинстве случаев удобней использовать лямбды стало
>>1388026 >>1388032 щас с новой мув семантикой это делают по другому ф-я swap реализуеются как принимающая универсальные ссылки, а классы, объекты которых будут обмениваться своим внутренним состоянием через эту функцию, должны реализовывать мув-конструкторы и мув-оперторы присвоения все просто на самом деле std::swap примерно так и написан (чуть сложнее на самом деле), а все стандартные контейнеры щас с мув-конструкторами и операторами присвоения
>>1388057 >То есть в любом случае придётся под каждый хитрый тип данных отдельную реализации писать? ты же можешь std::swap воспользоваться, зачем тебе свою функцию писать? но надо реализовать для твоего класса мув-конструктор и мув-присваивание
НО на самом деле ты можешь написать и специализацию для своего класса, если у тебя в интерфейсе класса будет ф-я swap, которая работает эффективней так собственно, и в стандартной библиотеке сделано - у swap 9 перегрузок для стандартных контейнеров есть, которые вызывают внутренную функцию swap
тем более, все равно для сложных классов приходится делать функцию swap, тк с ее помощью удобно реализовывать конструкторы и операторы присваивания
Кто-нибудь может пояснить за надежность хранения данных в текстовом документе?
Вот записано у меня там данных на 1кк байт, какова вероятность что каждый информация будет считана ровно на этот 1кк байт без потерь? Или это зависит от старости моего жесткого диска? Возможны ли ошибки и как их устранять, если возможны, есть что почитать?
>>1388601 как я себе представляю: вот есть такая практика, что классы начинать с большой буквы, а экземпляры этих классов - с маленькой, и тогда их можно отличать друг от друга но для большинства stl-сущьностей все равно нужно указывать типизацию, тк это шаблоны, поэтому и сделали с маленькой буквы а стилей кода много разных, все они, правда, получаются некрасивыми, самий уродливый, наверно, их всех, это тот который страуструп придерживается, лол а так ты все равно будешь следовать стилю кода тому проета, к которому присоединишься но есть к примеру, у гугла свой стиль кода, у qt, у саттера в книжках (один из самых симпатичных для меня) выбирай..
>>1388601 Обычно придерживаются стандартов крупных компаний. Поищи google/mozilla coding guidelines. На винде можно в vs настроить форматирование под один из популярных стандартов. На линукс/мак можно через clang.
>>1381995 (OP) Аноны, пишу в файл через fprintf. Мне нужно записать строку вида:
Fri Apr 26 15:03:22 2019 {
Первую часть я пишу так fprintf(data, "%s", ctime(&_daterow)); Но как записать еще символ "{" без перехода на следующюю строку ? fflush который мне советует гугл не помог
>>1389093 Почему много? Мало же. Там под капотом много выполняется без твоего участия, ну и у компиляторов, как часто у софта, есть свойство жирнеть. Новые версии либ жирнее старых и дефолтный экзешник получается больше. Бери как можно более старый компилятор если хочешь маленький размер.
Pizdec какой - то, я нихуя не понимаю что тут происходит, такое ощущение что компилятор ебанулся, ну или я не выспался... Какого хуя наличие одного fscanf так влияет на fscanf совершенно иного файла и переменной... I'm Done
>>1389354 Никогда бы не подумал, что fstream - не прямая работа с файлами. Или ты какие-нибудь микроконтроллеры прогаешь, в которых std нельзя использовать?
Хочу изучить BOOST Оно того стоит, полезная вещь? С чего начать? А то выглядит с виду как просто нагромождение кучи всего и создаётся впечатление что проще под конкретную задачу специальную библиотеку найти, чем это всё прикручивать.
>>1389559 >по части работы со строками особенно интересует) Да тот же qt. Там есть все что можно придумать, если только тебе не какой-нибудь rope нужен.
Сап. У меня уровень знаний в плюсах сейчас примерно на наследовании, виртуальных функциях, возможно успеть за 2 дня, примерно 6-8 часов изучить всё необходимое, чтобы сделать на qt окно, где будет предоставляться выбор между двумя уравнениями в виде картинок, и при нажатии вывода их решений?
>>1389755 ну мне решение на плюсах нужно написать, 300 страниц шлее усвоить не успею, мб есть что то более практичное из туторов? могу забить конечно и написать консольную хуйню, но интереснее сделать с интерфейсом.
>>1389766 так я закончу с лабами по плюсам и начну жабу, просто консольные приложения 2 года писать заебало ужасно, интересно что то новое попробовать. Спасибо за ссылку, чекну ещё на ютубе мб что то есть.
>>1389774 Ясно. Ты студент непту_а_бгуир? Хочешь чуть-чуть личных наблюдений? Те, кто учил cpp на третьем курсе уже рубили капусту, те, кто учил жабу по полгода ходили на курсы ерата и ещё полгода сидели у них в лабе, а потом полгода работали за копейки. до сих пор работают за копейки
мимо отчислился с последнего курса, ни о чём не жалею
>>1389779 у меня нет внутри коммерческого гена что-ли, ну тоесть я в группе остальным 18 челикам делал лабы за спасибо весь год, убивал по 8-9 часов на каждую лабу каждому челику, просто было со своих денег брать как то не оч. ну я долбаёб короч. И нет, даже не в минске, это гомель, тут кроме ерата есть iba, но шот аксиома эскобара в действии. >рубили капусту моя проблема в том, что я на самом деле и не знаю где можно такую подработку найти, если подскажешь пару ресурсов и в сторону чего оставшееся время развиваться, буду очень благодарен.
>>1389779 У нас плюсовики с прикладной математики занимаются байтоебством на галерах либо в рога и копыта педалят легаси, и все за копейки. Чеды-джависты с программной инженерии в модных стартапах под ведро пишут за нормальные деньги.
Аноны, программа обрабатывает данные, они либо берутся из файла, либо вводятся с клавиатуры. Для различия режимов я решил заюзать аргумент для запуска, так вот, по умолчанию программа будет хуярить данные из файла, но нужно придумать аргумент при котором данные будут вводится с клавы. Аргумент должен быть в витде одной буквы e.g "/m". Вопрос, какой обычно аргумент используется для обозначения опции ввода с клавы в cli приложениях ?
>>1389782 Подработку кодером ты не найдёшь, но в какую-нибудь мелкую контору на полставки вполне. Только не унижайся и не работай бесплатно, двух+месячные стажировки тоже нахуй, хотя испытательный срок два месяца - это нормально, только не бесплатно. Составь грамотно резюме, не ври в нём, не собеседовании всё равно скорее всего вскроется. Ну а изучить стоит наверное Professional C++ Development 4th Edition и C++ core guidelines, ну и задачки на каком-нибудь hakerrank порешать
>>1389870 ну это скорее всего не скоро, я ток наследование понял, ещё гора вещей которые нужно знать, главное блять просто как то победить ебучую лень, самое сложное в этом всём.
>>1389884 ну перед одногруппниками был груз ответственности, короче нужно воспитать себя как то, заебалось, что каждая попытка сесть за код, сводится к тому что я не знаю какие задания повыполнять интересные и сажусь катать во что нибудь, буду это исправлять, спасибо за разъяснение!
>>1389895 За геймдев в рашке нормально платят, но отрасль специфичная и имхо не очень приятная. Вообще не знаю, как найти интересную (не легаси, не эмбед) и оплачиваемую работу на крестах. Вся движуха сейчас в мобилках и вебе, а там кресты почти не нужны (если не считать исключительных примеров уровня применения функциональных языков в энтерпрайзе)
>>1389828 > Вопрос, какой обычно аргумент используется для обозначения опции ввода с клавы в cli приложениях ? Можешь ознакомиться https://it.wikireading.ru/29002
Что есть максимально легковесное для гуи(в первую очередь под винду, на остальные платформы похуй, хотя я бы глянул отдельно еще что-нибудь кроссплатформенное)?
>>1390004 Под винду - WinAPI. Даже устанавливать ничего не надо, правда заебешься на этом писать. А если нужно что-то кроссплатформенное, то есть FLTK из легковесного, но выглядеть все будет как говно.
Помгите аутисту. Есть строка (string), в цикле выполняется append целого числа + " " таким образом строка выглядит как - то так: 1 2 3 4 55 224 2 4 5 6 ... Нужно выводить эту строку в столбик с фиксированной шириной, если элемент не входит, то переносить его часть на следующюю строку, если на конце пробел (то есть строку завершает пробел) игнорировать его и начинать выводить следующюю строку.
Пиздец, уже всю голову сломал как это лучше сделать
>>1390015 Жаль. А то вот есть например пикрил - выглядит нормально(не считая того что нету адаптации под масштабирование винды, лол) и весит всё вместе 362кб, но это для шарпа с .нет фрейворком. Неужели для С++ вообще ничего подобного нету?
>>1390027 Ну это из-за того, что дотнет фреймворк уже установлен на компе юзера где-то в недрах системы. В принципе, тоже самое можно сделать, например, с Qt, т.е. сам экзешник будет весить мало (несколько десятков килобайт), но библиотеки, требуемые для работы весят довольно много (но их также можно установить куда-нибудь в недра системы и их не будет явно видно).
>>1390037 Мне нужно чтобы строка из цифр разделенных пробелами выводилась столбиком более менее фиксированного размера, при этом цифры могут быть разной длинны.
Грубо говоря мне нужно вывести первые (для примера возьмем фиксированную длину в 10 символов) 10 символов строки, потом следующие 10 символов уже после "\n" и так далее.
>>1390048 Самый простой способ это разделять цифры не пробелами а '\t'. Соотвественно если у тебя стандартный терминал на 80 символов то после каждых 10 чисел проставляешь '\n' вместо '\t'. Ну и числа должны быть неболее 7 разрядов, иначе все поедет.
>>1390052 Охуенно, кланяюсь, в ноги пабадю чалом ударая об пол ! Вот я аутист.... Хули нам, велосипеды изобретать мы любим.
>>1390064 Анон, тебе тоже спасибо большое, но вариант что предложил >>1390052 действительно правильный, со всех точек зрения. Я даже пытаться что - то еще сделать смысла не вижу.
>>1389828 Логичнее было бы наоборот. Если ты передал в параметрах запуска имя файла, то считываешь из него, если ничего не передал, то считываешь с клавиатуры.
Надо всегда делать 2 реализации функции - одну с рассчётом на копирование, другую с расчётом на перенос? Пикрил.
Или на практике обычно делают в виде одной функции - пик2? А то ведь это менее эффективно, потому что будет вызываться на 1 перенос больше в обоих случаях. Разница конечно наверное ниочём, но тем не менее.
>>1389552 А какой смысл? Самое полезное оттуда включили в стандарт, а качество кода там максимально сомнительное временами, так что чтение исходников того не стоит - с использованием же по пути разберёшься.
>>1390181 Для imgui нужно ещё что-то, что будет за него рисовать - если брать полностью самостоятельные фреймворки, то из легковесных есть FLTK, но он страшненький и устаревший в плане концепций (я про вёрстку и прочее).
>>1390145 На практике смотрят, что у тебя размер структуры сопоставим с размером указателя (надо бы на поля посмотреть, чтобы наверняка), так что перемещение жизнь лучше особо не сделает.
>>1390135 Анон, я жопой читал, и мой совет может тебя поставить на долг. Написанно же >Создайте в программе Можешь сделать джавой через Javax окно, и нативно в него закрутить крестовые методы
>>1390130 Смотря для чего. Интерфейсы бывают программные и пользовательские. Программный интерфейс не визуальный, а интерфейс пользователя всегда визуальный, ведь человек общается с компьютером посредством зрения.
Если у тебя речь идет об интерфейсе пользователя, значит нет смысла говорить про него "визуальный", он и так такой в любом случае, а значит под этим словом подразумевается графический.
Сап, есть вариант с помощью чего написать математические формулы в qt? мне нужен форматированный вывод а-ля пик 1, посоветуйте что нибудь годное, пока что всё что нагуглил это пик 2, проект qt который должен отрисовывать, но на самом деле я хз как его заюзать, никакого тутора не предусмотрели.
>>1390563 С чего ты ахуел, дырявая маня? Ах да, ты же студент-долбоеб дрочащий кутешку и не знаешь, что принтфом можно форматить стринги. Нахуй иди уебан. Я твою мать ебал, кстати.
>>1390392 > ведь человек общается с компьютером посредством зрения Нет. Это я получаю информацию от компьютера посредством зрения (и слуха ещё). А с компьютером я взаимодействую, обычно, с помощью клавиатуры и мышки.
>>1390574 Ебать, я думал ты просто студентишка позорный, который нихуя не учил и просит помощи потому что ничего не знает, а ты долбоеб который учил и не может строку отформатить. ЙА ТОЖ АХУЕЛ НО РИШИЛ НИЧИВО НИПИАСАТЬ!!! Быдло ебаное, сука.
>>1390545 >Сап, есть вариант с помощью чего написать математические формулы в qt? используется тот же подход что и во многих генераторах математических выражений в вебе, а именно сама формула задается в tex формате, далее вызывается tex, которой генерирует это в картинку, далее картинка выводится на страницу (в твоем случае на холст или куда ты там в qt хотел отобразить) несомненно, это геморно с той точки зрения что tex не имеет апи как такового, то есть его нельзя использовать как шаредбиблиотеку, на линуксах придется тащить с собой зависимость от пакета, если нужна кроссплатформа с виндой, то еще больше еботни будет
альтернативный подход требует еще большего геморроя: а именно использование mathml, а дальше чтобы эта формула рендерилась кутешным встроенным веб-движком большой плюс этого решения, что в результате будет форматированный текст, а не картинка, и даже можно настроить что при выделении-копировании этой формулы в буфер обмена сохранялось xml-mathml представление, что вообще охуенно в некоторых случаях
хотя может я зря тут расписываю, и тебе нужно всего лишь вывести несколько статичных формул (которые не изменяются) тогда их просто генеришь заранее через tex и встраиваешь в виде картинок на формочку, это то просто, рас плюнуть а вот когда формулы меняются во время работы программы, то тут геморроя на порядки больше чтобы их только отобразить ну а встроенный редактор математических формул - это уже rocket science
Сейчас попробую объяснить, нужно вот это решение отобразить, только с числами которые вводит пользователь в формочки, тоесть из решения меняются только цифры в формулах, сами формулы остаются теми же.
И ещё, это решение сгодится для сдачи лабы по "КЛАССАМ", я бы говна вьебал смотря на формулы в терминале, поэтому полез туда, где я ничего не знаю, и тут вроде как в мейн файле никакого класса создавать не нужно и все действия я распишу в функции "когда нажата кнопка", так? не до конца ещё концепцию понял.
6 лет пишу на Qt/Boost, хочу перекатиться в другую контору на unreal engine. Как думаете, хорошая идея? Знания по unreal engine нулевые на данный момент, но готов учиться.
>>1391099 нет смысла учить кучу языков программирования, тем более, что до готовности писать прод на крестах пройдет годика 2. Лучше стать полноценным специалистом в чем-то одном
>>1391118 так цифры нужно в формулках менять, согласно заданным, я могу например вставить текст например 45I1, 45 могу текстом хуйнуть в зависимости от данных, а I1 картинкой. но это будет уже когда не смогу нормально всё сделать.
>>1391145 нужно много знать из кодинга, кресты - самый сложный язык из мейнстримовых, а на нем чаще всего в геймдеве сидят, постоянные переработки, авралы перед выпуском, и все это за более чем скромную зарплату, конкретно джуны работают за еду буквально - те зп им выставлятся ровно чтобы снять комнату в общаге и не сдохнуть от голода
>>1391092 >какие подводные? лютейшая конкуренция да, на одно годное рабочее место прилетит не 500 резюмех в первые два дня, а 50, но среди этих 50 будут монстры с 20ти летним опытом работы либо вчерашние выпускники, дрочившие кресты и олимпиады всю учебу
>>1391067 на самом то деле, если ты и вправду кресты на уровне спокойного понимания и применения библиотек буста знаешь, то без проблем в геймдев перекатишся (с просадкой в зп, само собой) только нахуй тебе это надо?
>>1391160 Математическое образование есть, плюсы вроде задрочил до неплохого уровня. Так у меня и на текущей работке авралы. Ну мне особо большая зп не нужна, на старте соглашусь на 70к. >>1391067 Хочется попробовать чего-то нового... думал вообще на другой язык перекатываться. Игрульки вроде интересно делать.
>>1391270 1) Чтобы другой похроммист, читая код,сразу понимал, что используются стандартные средства. 2) Для избежания возможных конфликтов имен. Если в проекте используются другие либы, там тоже могут быть функции с названиями, совпадающими со стандартными.
>>1391279 Оно передалось в функцию как rvalue, да, но теперь внутри setglobal у объекта s появилось имя, и s ведёт себя как обычная переменная (то бишь lvalue). Мы хотим сделать move assignment для переменной global, поэтому мы ещё раз делаем move(s).
>>1391160 >авралы перед выпуском Что вообще может срочно перед выпуском потребоваться от программиста? Фичекат разве что, но ломать - не строить. Сейчас же весь геймдев упирается в контент.
>>1391512 Блин, ну если погромист годами писал бажный код, то наверное не стоит удивляться, что рано или поздно с него за эти баги спросят. Что мешало ему заранее об этом подумать?
Все таки здесь программисты хуевые, а не геймдев злой.
>>1391613 на этот вопрос нельзя ответить. С++ просто быстрее, но очень сильно зависит от задачи. Если у тебя крошечный клиент какого-нить IO, то выигрыш от плюсов будет незначительным, т.к. тормозня будет на IO. А если у тебя какая-нить числодробилка - то сильно быстрее.
Адепты с++ секты, объясните пожалуйста про i/o функции. Вот я хочу прочитать файл, читаю путь к нему с клавиатуры через cin, читаю его самого через ifstream, все хорошо. Я хочу использовать реулярки для проверки пользовательского ввода, все тоже хорошо, но уже не совсем - с кирилицей они работать не хотят. Ага, есть wregex, с которым вполне себе можно юзать кирилицу и все работает. Но я не могу заменить все строки на wstring - тупо для того же пути к файлу мне нужен обычный тип string. Еще я хочу ввод с клавиатуры каких-то строк с пробелами и использую для этого getline. Нахрена придумали такие сложности и как я должен поступить по с++ way, чтобы совместить все хотелки: regexp с кириллицей и открытие файлов, ввод с пробелами? Если я совмещаю все, как я хочу - я получаю вообще странные вещи, потому что юзать cin и wcin вроде нельзя. Пикрелейтед - пример странных вещей
>>1391350 перед релизом любой игры, даже дженерик срани под мобилку, ключевые разрабочкики вьебывают по 12 часов в сутки и без выходных в 100% проектах
>>1391737 алсо, щас геймдев перепрофилируется на такую хрень как "игра как сервис", это означает что к игре непрерывным потоком идут патчи, новый контент и все остальное те пока игра приносит прибыль, ее доят для разработчиков же выстреливших проэктов все это превращается в непрерывный аврал
>>1391672 Это поделие еще хуже g++, оно не умеет в кириллицу я уже час не могу понять, какие еще команды, галочки и т.д. нужно поставить, чтобы Гейтс понял, что мне нужна кириллица
>>1391782 iostream или stdio или conio.h Погугли, но те две функции которые я написал - 100% избавляют от твоей проблемы, проверено мной когда я час ебался и не мог понять почему у меня буква ё не пишется.
Анон, я сейчас решаю для себя задачу по распознаванию лиц. Использую openCV Задача: 1. Парсить папку с кучей видео 2. В одном видео может быть несколько людей 3. Один и тот же человек может быть в разных видео 4. На выходе я должен получать список "человек - видеофайл1;видеофайлХ;". 5. Предварительного сета лиц для обучения нет.
Как это лучше сделать? Пока у меня получается следующее: 1. Нет ни одного лица в сете 1.1. Обучаем модель распознавания на двух чёрных квадратах 2. Берём кадр1 видео1 ищем лица. 2.1. Пытаемся распознать лицо - получаем слишком большую дистанцию 2.2. Всё ок, мы знаем что у нас в модели только чёрные квадраты, поэтому создаём новую персону (персона1) и апдейтим модель распознавания. 2.3. Берём кадр2 видео1 ищем лица. 2.4. Пытаемся распознать лицо - получаем нормальную дистанцию с персона1 и апдейтим модель. Теперь персона1 имеет 2 фотки и распознаётся лучше. 2.5. Начинаются проблемы. В кадр3 видео1 у нас может внезапно поменяться ракурс лица и оно хоть и распознается как персона1, но дистанция получится относительно большой или у нас может появиться персона2 ещё не внесённая в модель распознавания, но она распознается как персона1 с относительно большой дистанцией. Как обойти этот случай? Как понять - это персона1 с другим ракурсом/освещением или персона2? 3. Но ок, допустим в видео1 у нас только персона1. Открываем видео2. Там может быть как персона1, так и персона2. Но у персоны1 будет новый ракурс\освещение. Как результат мы с примерно одинаковой дистанцией распознаем человека и или будем считать что персона2 = персона1 или что персона1видео1 != персона1видео2.
>>1391862 Согласен, люблю плюсы, иногда скроллю нулевую, ничего интересного, дай думаю зайду в плюсотред в пр, ну и спустя минуту такая тоска охватывает и закрываю.
>>1392131 Это начальные курсы, или для уже квалифицированных? Если один, то лучше Ютуб и книжки, если два — то так не работает, и надо выбирать что-то одно.
Вот самое невыносимое в кодописании это когда начинает происходить какая - то необъяснимая хуита, понятное дело что CPU ничего кроме того что написано не выполняет и, как следствие, сам дурак, но, бля. Какого хуя char array на пике меняется от чтения файла никак с ним не связанного в никак с ним не связанную переменную. Я все проаерил,массив менется только если выполняется этот ебаный цикл.
Массив объявлен как char qdata[] = ""; До цикла он используется только в пик2, да в него что - то пишется и потом он записывается, но как это связано с циклом из пик один -- хуй знает.
>>1392231 Поменял используемый в цикле файл на вообще нигде не задействующийся, ничего не изменилось, разве что { прибавилась хуй пойми откуда опять же.
>>1392242 >>1392241 >>1392231 Так, проблема решена. На первом пике я пишу число в buff, buff имеет целочисленный тип. Стоило начать писать числа (на которые мне, к слову, здесь поебать, я ихтупо считаю) в другой char array как все стало ОК. buff до этого нигде не использовалось, попытался писать без & получил вылет (ожидаемый), так что похоже я неправильно пишу целое число в целое число, ну или что - то еще.
>>1392242 > Во - первых я уже локализировал проблемное место А итерацию цикла на которой проблема возникает локализовал? Нет. >во - вторых, текстовый редактор что я сипользую так не умеет. Ну так нах тебе это говно, используй нормальный.
time = (double)duration_cast<milliseconds>( finish - start ).count();
Вылет нахуй, без цикла все заебок.
В цикле выполняется fscanf(mrg, "%i")?n++:false; т.е чтение в никуда. Если читать куда - то, ошибка пропадает.
Я понимаю что говнокожу/хакерю по полной, но как блядь все эти вылеты и изменения связаны, с какого хуя пускай даже fscan там как - то нитак выполняется она мешает посчитать время между метками (вылет), но если не считать время то все выполняется, при этом scanf отрабатывает как надо. Ну просто рот ебал этого компилятора.
>>1392257 >итерацию цикла Прблема уже решена, но возникала на первой. Прервать выполнение программы можно и без != по твоему мнению IDE/DE с тонной каши из ненужного для написания простенькой CLI утилиты на чистом C++ кала+мб еще и electron'а.
Нужно ли знать как устроена ОС для программирования? Сейчас углубляюсь в сетевые технологии, и в итоге выяснил что все сводится к запросам к апи системы, ну а она насколько я понимаю обращается уже к физическому оборудованию. Достаточно ли знать теории по какой-либо теме, или стоит почитать исходники системы? Вопрос наверное слабо связан с С++,но в нуфаг-треде уже 3 раза игнорили
>>1392260 Ну вот оно, блядь, ну вот какого хуя - то. Строка фиксирующая начало отсчета времени режет массив qdata. Вы можете мне обхяснить ПОЧЕМУ НАХУЙ или нет ?
>>1392268 Смотря что ты программируешь ofc. Одно дело прикладные приложения, там также своя иерархия в этом отношении. Другое дело какие - нибудь АИС, сами системы как таковые. В общем случае, если твоя программа начинает работать с каким - либо ресурсом помимо самой себя -- ты используешь API, если не системы, так готового фреймвлорка который использует API системы. Прямо изучать API особого смысла нет, появятся задачи -- появится причина загуглить то или иное, все это делается на лету. Знать как устроена ОС, скорее как утсроены типовые ОС нужно обязательно, без этого вообще работать за ЭВМ по идее нельзя. Углубляться там можно до бесконечности, но, обычно достаточно понимания работы с процессором и прочим HW + изучения основных абстракций.
Ну, а ежели ты системный программист, тут и отвечать не нужно, полагаю.
>>1392272 >>1392275 За ответы спасибо, в устройство ОС наверное углублюсь. Решил написать простой p2p чатик с tcp соединением. В итоге оказалось что практически все классы пусть даже не самые сложные для работы уже были готовы, и ощущение что я конструктор по частям собираю, а не программирую, от того такой вопрос и возник
>>1392294 >>1392299 getch() из conio.h еще с эпохи DOS является одним из самых простых способов реагировать на нажатия кнопок в "реальном времени" (не долбя ентер после каждого символа).
То что в данном случае можно обойтись без этого, конечно уже другой вопрос.
Я не понимаю как так. Решаю сейчас задачки на leetcode на C++, и судя по комментариям решения на жаве оказываются нередко намного быстрее. Например сейчас сделал сложения чисел хранящихся в односвязном списке(в порядке с конца) - вродё всё предусмотрел чтобы нигде ни одной лишней проверки не было, ничего лишнего не использовалось, да ещё и порчу исходные данные(использую первый список чтобы лишний раз new не вызывать и если он кончается тогда в конец его вставляю уже нвоые узлы), моё решение занимает 24 мс, это лучше чем 99.91% решений на C++. А в обсуждениях скидывают решения на жаве 1-2 мс(причём 2мс у решений на жаве в топ 97% что ли, т.е. в среднем их решения намного быстрее), и это при том, что их решения мало того что не обходят все лишние проверки условий, так они ещё и не портят исходные данные(т.е. с самого начал вызывают new), а список выделяя для него память(я пробовал также делать - решение становится 28мс вместо 24мс). Вот например https://leetcode.com/problems/add-two-numbers/discuss/1182/4ms-11lines-java-solution (его решения я один в один переносил на C++ результат - 28мс) 4мс, использует деления, одинаковые проверки, исходные данные не портит. Вот мне поэтому интересно - это просто жава решения на других исходных данных тестируются или JIT какой-то всё оптимизирует в этой задаче?
>>1392326 Уж не знаю, на кой черт тебе этот вопрос задавать в плюсовом треде сдалось, но я в благородство играть не буду, раз ты хочешь через жопу, то держи ответ через жопу: Отображение f : R² → [0, 255] по правилу (√(x - x0)² + (y - y0))² = k) * c, где k - расстояние от выбранной точки (x0, y0), откуда строится градиент, а c - коэффициент нормирования, чтобы для любой выбранной точки мы попадали в допустимый для RGB диапазон.
Если там срр без оптимизаций компилируют, всякое возможно. По крайней мере -g запросто может быть хуже -O3 в десять раз. (хотя и не в этом случае, я думаю)
>>1392450 Я скорее о том что asm может работать с ресурсами в и без api системы. Сбросить настройки тогоже биваса например. емнип: mov ax, 1010h mov dx, 70h out dx, ax
>>1392492 >Зачем тебе сишные строки Чтобы использовать printf/scanf в различных вариациях (e.g sscanf/sprintf), а их я использую потому что того требует ТЗ. >Так а на каком ты языке пишешь? C/C++ по - моему.
В принципе, уже пишу документацию, код таки в релиз ушел.
>>1392499 Да, кстати все равно спасибо. Все необъяснимые вещи были как раз из - за вот этого >>1392309, въебал max_size_limit и соответсвенно нормально выделил массив.
>>1392499 Их может для этих функций заменить vector<char>::data(). По идее, string::data() тоже может их заменить, но у меня только константный метод выбирается компилятором и не компилится.
Ты можешь уже хоть выдержку из своего тз скинуть, чтобы мы точно поняли, что тебе нельзя в потоки(которые ты используешь) и что тебе запретили использовать std?
Если во время набора очередного числа просто хуйнуть enter ничего не ввидя, он реально введется (строка сменяется) в терминале и продолжит ждать ввода номера, после ввода числа и поторного нажатия enter число улетает как надо в number, но как заставить cin фейлится если введен тупо enter без чего - либо.
>>1392521 Решение довольно кривое, т.к. обычно это никому не нужно. Сначала считываешь из потока в std::string с помощью std::getline, и ее анализируешь: - если вначале есть пробельные символы, то выкидываешь ошибку; - если все норм, то создаешь std::istringstream и из него считываешь в переменную.
Есть ли какое-нибудь хорошее пособие по визуальному программированию winapi(желательно под visual studio)? Все книги в основном по общим принципам в виде консольных приложений.
>>1392551 String string = String(4,'A'); Из-за этой строки. Почитай на досуге про конструктор копирования, копирующий оператор присваивания, ну и про move-семантику не забудь. Если коротко объяснять, то в твоей программе вызывается два деструктора, которые вызывают оператор delete[] над одной областью памяти, что по правилам C++ является undefined behavior (UB).
>>1392551 >String string = String(4,'A'); А разве можно так использовать зарезервированные слова? Или оно зарезервировано только если подключать библиотеку string?
>>1392564 Это ты так подколол, что winapi настолько уже устарел по сравнению с тем, чем сейчас пользуется, как и описываемое в книге по сравнению с winapi в VS/C++ builder?
>>1392569 Посмотрел повнимательнее, у тебя какая-то хуита в конструкторе написана. Замени на: String(std::size_t n, char c) : size{n}, str{new char[n + 1]} { \t\tstd::fill(str, str + n, c); \t\tstr[n] = '\0'; \t} #include <algorithm> не забудь. Все должно заработать.
>>1392537 >Решение довольно кривое Вполне неплохое, по сравнению с моим в итоге: scanf("%[0-9]s", &element)?({goto next;}):({goto fail;}); fflush(stdin); Спасибо.
>>1392557 Ты на n + 1 позицию ставишь \0, возвращаешь указатель на n позиций назад и вызываешь для этого указателя delete[]. Если я не проебался с пониманием того, что ты делаешь, то косяк в этом.
Почему бы в цикле не сделать str = c? И не надо смещать потом указатель обратно.
Аноны, а есть ли существенные различия между чистым C и тем, си, что является подможеством C++?
Прост хочу прояснить для себя кой-какие вопросики по крестам, что сводятся к си. Если я возьму книжку K&R, например, там будет все актуально для C++, или есть более специализированная литература? Сам по себе си мне не нужен, только в рамках плюсов.
>>1392833 Я не очень разбираюсь если честно, но по-моему дело в подключении файлов, судя по ошибке линковщика, а не в объявлении шаблона. У тебя main подключает hpp файл с одним прототипом, а само тело функции находится в файле, который как у тебя не подключен.
>>1392557 Ну ёпт, анон. Ты заполняешь в str со сдвигом нахуя именно так непонятно n+1 элемент, а потом возвращаешься на n назад. В итоге ты удаляешь массив не с адресом, например, 0x0000A0A0, а 0x0000A0A1.
>>1392949 Скомпиль прямо на компе, где показываешь, или положи ucrtbase, vcruntime, msvcrt и остальные зависимости (посмотри через depends.exe) в папку с твоим исполняемым файлом. В крайнем случае посмотри, какой redistributable стоит на том компе, установи соответствующую студию у себя и скомпиль ею. Технически ты можешь вообще избавиться от CRT, но не для студенческой лабы это дело.
Аноны, испытываю сложности с переносом сущностей реального мира в плоскость языка программирования. То есть проблемы с математическим описанием этих сущностей или что тр вроде того. Есть ли книги, в которых описываются способы решения этой проблемы?
>>1393080 > Аноны, испытываю сложности с переносом сущностей реального мира в плоскость языка программирования. То есть проблемы с математическим описанием этих сущностей или что тр вроде того. Ну приведи пример того что ты пытаешься перенести и желательно распиши ход своих мыслей касательно того как бы ты это сделал
>>1393670 >не в твоем примере Я набросал просто по минимуму, чтобы ошибку продемонстрировать. В книге вызов деструктора выглядит вполне легально: там строка - это член union, сам union завернут в класс.
>Зачем ты это вообще мучаешь? Ну бля, столкнулся с непонятной хренью, надо же разобраться. Тем более - это последние страницы книги буквально.
>>1393671 > Почему оно не крашнулось еще на delete? А почему должно крашнуться? > И если delete сработал почему деструктор вызывается 2ой раз?! Вектор вызывает деструктор всех своих элементов. Откуда ему знать, что ты вручную вызвал деструктор его элемента? Надо было тогда и из вектора удалить его.
>>1393739 s.~basic_string<char>() Я понимаю, что книги не могут успевать за стандартами, но в С++17 для данного случая ввели безопасный и удобный std::variant (ну или если невозможно использовать C++17, тогда boost::variant).
>>1395035 Кароче, задали задание, через структуру лист, написать программу по определению в строке десятичных цифр и выносу их. Написал код на работу со строками(шоб слова по отдельности определялись), а вот как определить десятичная ли у меня цифра для выноса не могу понять как
>>1395878 Короче я запостил пикчу и понял. Надо проверять, есть ли по соседству с пикселем другой пиксель с цветом фона. Если есть хоть один такой сосед, то значит наш пиксель - граничный. Только это дебильный алгоритм получится, проверять каждый пиксель области, точнее соседей каждого пикселя, а их будет 8 штук. Если область будет большая, алгоритм будет медленным. Надо как то сократить количество проверок. Может знает кто, как это можно провернуть?
Ананасы, поясните за виртуальные функции и наследование. К примеру, базовый класс Widget и у него есть какие-то виртуальные функции. А в качестве наследников будут ButtonWidget, LabelWidget и тд и тп. Естественно у них будут функции которых нет в базовом классе: Click, SetText и прочее.
Всегда ли нужно в качестве типа указателя иметь базовый класс? Или можно, допустим, в базовом классе определить несколько виртуальных функций и в наследниках переопределять их и добавлять другие функции (не только виртуальные) при необходимости, если нужно? Считается ли это каким-то неправильным проектированием?
>>1395830 Операторы Прюитта, Собеля и Кэнни, методы Харриса, Моравеца и SUSAN. ебись с этим, как я ебался на диплом, зато к получится - будешь собой доволен.
>>1395909 Как я понял, через указатель надо делать только если класс абстрактный с "чисто виртуальной" функцией без определения. То есть тут больше вопрос полиморфизма нежели чем наследования.
Аноны, поясните, как сделать. Допустим есть класс точка со свойствами Х и Y. Как мне правильно добавить к свойствам класса массив с указателями на соседние точки, чтобы можно было потом ссылаться на эти соседние точки? Чтобы можно было потом, например, для точки А писать что то типа А.nearPoint[2]->Х, то есть обращаться к координате соседней точки для моей точки.
>>1396500 Я пробовал уже нечто такое, ругается, что якобы taking the address of temporary object of type, когда я прописываю, на какие адреса должны ссылаться указатели.
>>1381995 (OP) Сап, как получить текущую директорию в с++ ? Гугл выдает 17 версию языка, которая не поддерживается у меня и какие то костыли на си. Возможно я не правильно гуглю и есть простой однострочный способ получить текущую директорию, как это например в питоне или жаве.
>>1396508 Либо читай про сишный DIR, либо пробуй вытащить из потока результат system("cd"). А вообще, по идее, filesystem доступна не только в 17 стандарте, но и в 14 - правда, это достаточно уебищно из-за отсутствия автовывода типа шаблона. Попробуй std:: experimental::filesystem::v1 посмотреть, мб у тебя будет. Мне изначально на рабочий комп поставили VS2012, там было это. В общем, удачи, брат - ебаться тебе много придется.
вроде как сюда писать. как должен выглядеть полный код программы (хотя бы для консоли), рассчитывающий эту функцию? безрезультатно бьюсь третий день, с меня тонны нефти
>>1396541 Разбиваешь это уравнение на разные функции. Например x2k+1 сделаешь одну функцию Для 4k2-1 другую и тд Потом это всё комбинируешь в цикле и выводишь результат
Как сделать, чтобы Qt записывал число в файл в нужное количество байт? То есть у меня там например 64, а он записывал бы 0064? Записывать в файл надо в 16-ричном формате, а числа в программе в quint16.
>>1396556 > Записывать в файл надо в 16-ричном формате, а числа в программе в quint16. Записывай по два quint16 в один quint32 или какой там тип А при считывании "разбивай" quint32 на два quint16
>>1395880 > проверять каждый пиксель области, точнее соседей каждого пикселя, а их будет 8 штук зачем 8? проверяй 2 или 3 если диагональные тоже считаются граничными.
>>1396563 Все, проблема решилась. Оказывается, он может и quint16 записывать, просто я забыл записывать по одному числу в цикле, и из-за этого он писал хуйню.
>>1396564 Я уже придумал, как это делать, проверяя все 8, но не проверяя каждый пиксель области. Теперь надо придумать, как запилить градиент от какой нибудь центральной точки до границ неправильной области.
>>1396588 Да, я видел. Уверен, что это отличные способы, но они слишком сложные для моего случая, когда есть всего два цвета. С двумя цветами можно придумать что нибудь попроще.
>>1396598 Ты в любом случае будешь использовать те же принципы, только изобретешь свой велосипед. Конкретно сейчас ты хочешь SUSAN использовать(оценивать количество рядом стоящих пикселей схожего цвета, а вообще интенсивности, если по-хорошему). Хочешь просто сделать - бери оператор Прюитта, ебашь свертку и получишь только граничные пиксели после обработки. Собель будет точнее, Кэнни ещё точнее, но сложнее.
>>1396614 Я думаю просто выбирать следующий пиксель рядом с текущим, который соседствует хоть с одним пикселем фона. То есть грубо говоря проверять все 8 соседних пикселя: если сосед белый, соседствует с черным, то переходим на него, а предыдущий вносим в контейнер. Ну и надо проверять, не пришли ли мы к самому первому пикселю, чтобы выйти из цикла.
>>1396616 А это метод Моравеца, брат. Он сложный самый долгий был у меня среди всех реализованных.
Я тебе говорю, проще в цикле по всем пикселям(т.е. по I и по j) сделать цикл по соседям, в котором умножать интенсивность пикселя на соответствующее значение матрицы свертки(имеется в виду, что левый верхний сосед умножается на число, которое стоит в левом верхнем углу матрицы свертки), собрать результат а переменную, разделить ее на коэффициент нормировки и записать в пиксель. Описал немного сложно, но загугли, описания алгоритмов есть на том же хабре.
>>1396616 >>1396614 один не может тривиальную проблему наговнокодить, другой третьекурсник затирает ему про какие-то операторы, свертку, фильтры, которые они недавно прошли. типикал с++.
>>1396529 Cпасибо, в общем я решил пойти по другому пути. Пздц, чем больше работаю с С++ тем больше удивляюсь что какие то элементарные вещи не сделаны, либо сделаны через пень колоду.
>>1396622 А ты не видел мое сообщение, что я на диплом это делал? Определенно, я до сих пор студент, да. А ты в самом деле Д'Артаньян, но нихуя в обработке изображений не смыслишь.
>>1396626 А так и гугли, если через свертки - то это Прюитт, Собель, Кэнни. Там матрицы и будут.
Аноны, я что то не могу сообразить. Вот любую функцию можно смещать относительно координат, верно? Например, арксинус. Представляем его в виде записи a arcsin(bx−c)+d, где а - амплитуда, b - период, с - смещение периода, d - смещение амплитуды. И вот считаю я значит для своего графика эту формулу, и у меня получается с = pi/2. И из-за этого я тупо не могу посчитать арксинус, потому что внутри скобок из-за этого pi/2 всегда получается число больше 1, а арксинус больше 1 не рассчитывается. И как тогда считать смещение для арксинуса?
>>1397262 почему у тебя радианы внутри аргумента арксинуса? почему у тебя какой-то "период" внутри аргумента арксинуса? ты с тригонометрией не обосрался?
>>1397262 >>1397278 Наверно слишком сложно объясняю, в общем сформулирую по другому. Арксинус по умолчанию меняется от -pi/2 до pi/2 по Х, и от -1 до 1 по Y. Мне же нужен график арксинуса от 0 до xмах по Х и от 0 до yмах по Y. То есть смещенный наверх вправо. Как эту йобу запилить?
>>1397224 >френд функшонс ар нот инхеритед >https://stackoverflow.com/questions/3561648/why-does-c-not-allow-inherited-friendship Я понимаю что их нельзя перегрузить. У меня вопрос можно ли как то организовать френд функцию абстрактного класса дабы работал оператор сложения? Вариант с оператором+ членом класса примерно представляю, его можно перегрузить. Интересно именно френд функция
Сап.Как сделать так,чтобы фишки нард могли перемещаться только в определённые места("лунки" или как их там обозвать)?vcl,фишки и поле-image Не обоссывайте,я сильно ньюфаг
Перемещаюсь по коду мышкой, стираю мышкой, все делаю мышкой, кроме написания самих букв. Напрягает, вечно правая рука двигается туда сюда от клавиатуры до мыши. Вообщем хочу себе облегчить жизнь и научиться делать все дела на клавиатуре. Но как блять!? Нужно специальные бинды делать или что?
>>1398316 У меня от этой хуйни брат умер рука разболелась. В отпуске заставил себя выдрочить всевозможные сочетания для студии\вима. Сейчас по минимуму пользуюсь, брат воскрес.
>>1398681 > hjkl Нихуя неудобно. Они постоянно "теряются" в остальных клавишах или часто путаю направление. За это время сделал бы на стрелочках всё что надо.
>>1398802 Даже в стандартном убунтовском pdf ридере функции стрелок продублированы на hjkl. И manpages туда же. И консольный клиент vk. HJKL - это охуенно! Кто считает иначе, тот хуесос
>>1399081 ХЗ. Во многих IDE встроена симуляция vim, еще больше где поддерживатся как минимум доп.плагином. Если IDE не умеет в редактор с цивилизованной парадигмой, то это хуевая IDE. Обезьянья парадигма с единым режимом "для простоты" не считается цивилизованной.
>>1399250 Никакие плагины не дадут той власти мгновенного редактирования, которую дает Esc в виме. Пока клавиши с буквами без зажатых альтов и прочего говна печатают только буквы, все очень хуево.
>>1399021 Пробовал. И писал в виме какое-то время. Да, многие вещи очень удобны, но навигация по коду, переход к определению/реализации функции (особенно что касается виртуальных), цепочка вызовов и тд и тп это всё приходится ебаться и настраивать. В той же студии это уже всё есть.
>>1399305 > Никакие плагины не дадут той власти мгновенного редактирования, которую дает Esc в виме В виме можно переименовать переменную в рамках функции/класса? В виме можно переименовать функцию какого-то класса? Или добавить (убрать) у неё аргумент и чтобы в реализации/определении тоже поменялось?
>>1400118 Согласен. Только очень глупый человек может счесть серьезным занятием использование говноедского видео-терминала. Все настоящие ценители пользуются строчным принтером вместо монитора, перенаправив на него stdout из bash, и довольствуются адекватной последовательной работой с редактором sed. Припадочноя интерактивщина с ненужным перемещением курсора по вертикали - вовсе для душевнобольных, и даже визуализированное перемещение курсора по горизонтали - для гуманитариев, неспособных держать в голове даже одну строку текста, набранную вслепую. Такие люди напоминают школьников, предпочитающих электронные книги бумажным. Экраны - заговор жидов, зарабатывающих на испорченном зрении потребителя. Пожалуй, кончу на этом, чтоб не деградировать от невозможности писать в петровской орфографии за неимением соответствующей раскладки.
есть кто работает в 19 визуалке, скажите какого хрена дебагер выплевывает исключения по поводу и без при всем том что та часть кода на которое выкидывает исключения работал без проблем.
>>1400362 Ебанаты из Microsoft сломали студию ещё в версии 15.9, починить собираются только этим летом (тикет написан в ноябре, ответ через пару месяцев, починят почти через год, пиздец)
>>1400362 Нехуй сырое говно качать. Только ньюфани не знают, что у продуктами майкрософт можно пользоваться спустя минимум год после релиза. Ставь 17 обратно.
>>1400507 даже не удалял 17, но сдури мейн проект перевл в 19 обратно ставить начал все очень плохо стало. Да проблему решил с горем пополам пол дня убил
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/