• Почему возникает Access violation?

    vt4a2h
    @vt4a2h Куратор тега C++
    Она не функционирует нормально, это UB. Т.е. неопределённое поведение, при котором программа может работать якобы нормально и вообще вести себя как угодно.
  • Почему не вызвать конструктор с производным классом в аргументе?

    vt4a2h
    @vt4a2h Куратор тега C++
    В корне не верный вывод. Ключевое слово explicit не имеет никакого отношения к вашему примеру. Можете почитать зачем оно используется в официальной документации: https://en.cppreference.com/w/cpp/language/explicit .

    Компилятор всё верно говорит. Автоматическое преобразование типа в нисходящем направлении (downcasting) невозможно. Ваш вариант с dynamic_cast есть ни что иное, как явный downcast.

    К слову, я не уверен, что вы понимаете то что делаете с моделями. Чтобы указать parent у QItemSelectionModel есть специальный конструктор с двумя параметрами. А вы пытаетесь сделать что-то странное.
  • Где почитать про MVC Qt?

    vt4a2h
    @vt4a2h Куратор тега C++
    Saharman, По ссылке, которую я привёл есть описание делегатов.
  • Как вывести те столбцы, которые не скрыты в файл?

    vt4a2h
    @vt4a2h
    Просто напишите условие вида: if !hidden write to doc
  • Насколько безопасно использовать CURL в нескольких потоках?

    vt4a2h
    @vt4a2h Куратор тега C++
    Великолепно! И всё было бы ничего, будь у вас в приложении только эти строки или на них ничего не могло бы повлиять. Если это не так, то песочница вам пригодится для локализации проблемы. Помимо этого, необходимо потестировать на различных данных.
    А помимо этого непонятно, валиден ли входной url, что такое m_ResponseBuffer, шарится ли он между потоками, защищён ли он и тп. Тоже самое и про m_CURLErrorBuffer. Очищается ли всё это между запросами, хватает ли памяти. Что такое writer, имеются ли какие-нибудь сайд эффекты и т.п.
    Я не жду ответов на эти вопросы здесь, мне они не слишком важны. Они важны вам, чтобы решить задачу. К слову, подход универсален.
  • Насколько безопасно использовать CURL в нескольких потоках?

    vt4a2h
    @vt4a2h Куратор тега C++
    Бустовский поток под капотом всё равно будет pthread (от системы зависит конечно).
    Segfault может быть за-за чего угодно. Погоняйте анализаторы на ошибки с памятью, попробуйте воспроизвести ситуацию в песочнице (небольшой тестовый проект, вроде того, что в примере).
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    M M,
    Просмотр вакансий у Близзарда -- верный шаг. Возможно, знаний у вас пока и не хватит, но стремиться есть к чему. Это как хороший стимул для обучения. Вот тут есть неплохой набор ресурсов, если интересуют именно игры: https://github.com/miloyip/game-programmer . В тему старой кодовой базы, да, она определённо есть у Близзард, но стоит задуматься над тем, что у них есть вакансии на новые проекты (я видел ка минимум парочку), которые тоже на плюсах.
    Разумеется, можно поставить себе потолок вроде "я гожусь только для того, чтобы клепать казуалки на Джава под андроид", однако выглядит это довольно печально.

    Если вы поищите на Линкедин, то есть и другие игровые компании, которые пишут фундаментальную часть на C++. Например The King Company. И если поискать, то можно очень много подобных примеров привести.

    На Линкедин всегда можно написать человеку в PM и спросить кто на чём и что пишет. Всё что не является коммерческой тайной вам обычно с удовольствием расскажут.

    Аналогично обстоят дела и с серверной частью, которая пишется на плюсах. Не только такие гиганты, как Гугл, Амазон, Фейсбук и т.д. пишут много серверного кода на плюсах. Опять же, посмотрите по Линкедин, ну или на hh.ru для России. Компаний множество, причём разного размера, и попасть туда реально. Правда нужен хороший английский, если рассматривать зарубежные компании.

    Всегда собирайте данные из различных источников: открытые вакансии, описания продуктов, личное общение с сотрудниками компаний, публичные презентации проектов и анализируйте. И тогда взятые из воздуха утверждения вроде "устарело-не используется-сложно найти" будут казаться вас смешными.

    Я ещё советую переехать в какой-нибудь из двух городов России: Мск или Спб. В Мск вакансий больше, но и у нас в Спб хватает. В остальных местах всё сильно хуже в плане работы.

    PS
    Кстати, вспомнил ещё одну область применения C++: информационная безопасность, в частность большая часть движков современных антивирусов. Но, область эта довольно специфична.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    В java есть такая вещь как JIT которая "превращает" код в нативный в рантайме и следовательно тот факт что java интерпретируемый язык уже не так критично?

    M M, Смотря где опять же. Средство решения задачи должно выбираться исходя из задачи. Серебряной пули не существует. Java проще C++, код легче писать и поддерживать, экосистема более дружественная. Главный вопрос всегда в том, когда стоит использовать одно, а когда другое средство. Выше я привёл кое-какие примеры про C++.

    Возможно компилятор с++ (тот же g++) на выходе предоставляет лучше код в нативном виде чем в JIT и интересно с чем это связано?

    Опять же сложный вопрос. Сама по себе JIT-компиляция вполне себе может предоставить лучшие оптимизации, в плане, скажем вызовов в глубокой и сложной иерархии методов, аллокации ресурсов и т.п.
    Другое дело, что C++ код, написанный с пониманием и умением, всё это превзойдёт. Правда это требует больших знаний и квалификации, а следовательно и поддерживать будет сложнее. Но опять же надо конкретный пример.

    К слову, есть классы приложений, где отсутствие сборки мусора критично, и такие, куда всю порнографию, которую требует Java не затащишь. Там только С++ или С, но это уже от других критериев зависит.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    В "споре" выше были высказаны убеждения, что C++ на сервере не используют (а если и используют, то очень мало), и приведены доказательства, что это не так. Нe путайте, плз :)
    На самом деле, серверная часть игры может быть и на Java написана и на любом другом языке. Но, если важна скорость, производительность и низкая задержка, то серверная часть будет на чём-нибудь компилируем и без сборки мусора. Например, на плюсах. Но я уверен, что можно найти примеры, когда обходились той же джавой.
    Игры -- это хороший пример. Коробочные игры, например, посмотрите, к примеру вакансии Близзард.
    Софт для обработки видео и изображений.
    Софт для высокочастотной торговли и аналитики.
    И т.п.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    awesomer, Логическое следствие, на самом деле. Я не вижу никаких логических противоречий, а вы?
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    awesomer,
    Врете
    Только в нашем небольшом сибирском городке требуется несколько сотен, если верить объявлениям

    Как я писал выше, все данные с hh.ru, вот ссылка по России, зайдите и убедитесь: https://hh.ru/search/vacancy?text=Java&clusters=tr...
    Т.е. вакансий на Джаву примерно 6к, на плюсы примерно 3к. Вакансий на Джаву примерно в два раза больше. Где я ошибаюсь?

    В чужом глазу соринку видим, а в своем бревно не замечаем.
    Где эта самая репрезентати... тьфу. Пруфы где.

    Не вижу смысла в более глубоких доказательствах, ведь изначальное утверждение моего оппонента не было доказано, а следовательно и опровергать нечего. Но, повторюсь, любой, у кого есть достаточно времени может проделать этот несложный анализ, в сумме надо проанализировать около 9к (можно и существенно меньше, при правильной классификации) вакансий с hh.ru. Если вы не замечаете, то я ничего не утверждаю, а просто предполагаю, строю гипотезы, если угодно.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    awesomer,
    Бремя доказательства лежит на утверждающем.

    Утверждающий отказывается доказывать, к сожалению.

    информацией по Java.

    Окей: 6 371. Примерно в два раза больше.

    Возможно на Луне тоже используют С++.

    Ничтожно малая вероятность наверняка присутствует.

    Но как это влияет на вакансии на Земле?

    Не рассчитывал, и не уверен, что мне было бы это интересно. В примере с Луной, влияние скорее всего ничтожно мало.
    Насчёт примера с крупными компаниями, не уверен просто потому, что есть и немало компаний поменьше, которые используют эти же технологии схожим образом. Примеры легко можно найти на сайтах для поиска работы, например.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    То есть лучше это делать эмоциями?
    Я же говорю - вы слишком любите С++ и это не дает вам возможности посмотреть на рынок труда не предвзято.

    m0nym, Я не понимаю о каких эмоциях идёт речь.
    Я привёл вам множество доказательств, которые опровергают вашу точку зрения. И это несмотря на то, что вы ничего не доказали, поэтому-то и опровергать собственно нечего. Вы не привели никаких доказательств, цифр, выборок и т.п. Т.е. вообще ничего. Просто субъективное мнение. После чего утверждаете, что-то вроде "основываясь на моём субъективном мнении... бла-бла-бла". Что трактуется как безосновательно. А уж пытаться доказать общность конечным числом примеров, это просто венец всего.
    Субъективное мнение не должно и не может котироваться или же превалировать, когда есть цифры и факты.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    По стране?

    Да, я указал что по стране.

    И на них никто не претендует кроме вас и нашего топикстартера?<

    Это утверждение или вопрос? Я не осведомлён о количестве претендентов, на случай, если это вопрос.

    Для корректности вашего ответа - сопоставьте с количеством вакансий по Java, вспомните, что и по распространеннейшей Java нужно еще поискать хорошее место - и все же сделайте правильные выводы.

    Для того чтобы опровергнуть ваше ничем не подтверждённое высказывание о том, что C++ -- большая редкость, вполне достаточно приведённых цифр.
    Если вы прочитаете следующий абзац, то там есть пару слов про Java. Даже если на одну вакансию по C++ приходится две вакансии по Java, это никак не доказывает, что C++ -- большая редкость на рынке труда. А вот например, если на 1000 вакансий по Java приходится одна вакансия по Haskell, то это вполне себе повод утверждать, что Haskell -- большая редкость.

    Вы, я или топикстартер - будем там в ближайшее время работать? Планируется переезд?

    И каким образом этот вопрос должен опровергнуть тот факт, что C++ активно используется на стороне сервера? Никаким. Я привёл вам и другие примеры. А если посмотреть на международный рынок труда, да и на российский (хотя бы Яндекс из более известных), то можно наблюдать, что server-side приложения пишутся на C++ и пишут много где и эта цифра не ничтожно мала в сравнении с Java (см. выше почему). Там скорее всего даже одного десятичного порядка разницы нет, но я не проверял.

    Я и говорю - на уровне слухов. Кстати, Java/Go/Python в упомянутых компаниях куда как больше.

    Снова безосновательное утверждение. У вас есть статистика, репрезентативная выборка?

    Имею прямое отношение к найму (технические собеседования).

    Т.е. вы пытаетесь доказать общность конечным числом примеров. Великолепно!

    А вы чем занимаетесь по жизни?

    "Кто ты по жизни и чего ты добился?" :) А если серьёзно, то я думаю и иногда пишу код.

    Впрочем, вы только подтверждаете мои слова:

    Какие конкретно?
  • Как правильно следует избавляться от вложенных циклов?

    vt4a2h
    @vt4a2h
    Не слишком понял, к чему ссылка на статью.
    Можно обходить рекурсивно, можно итеративно и у каждого подхода есть плюсы и минусы. Какой подход использовать зависит от многих факторов и без дополнительных сведений ответ дать невозможно.
    В данном примере вообще всё равно как обходить.
  • Как правильно следует избавляться от вложенных циклов?

    vt4a2h
    @vt4a2h
    Это субъективные суждения а не объективный критерий. Попробуйте ещё раз :)
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    M M, Просто в резюме упомяните проекты на C++ (пусть и простые) и опыт работы, который здесь перечислили. Навыки покажете на собеседовании. Упомяните, что несмотря на то, что программировали на Java, в свободное время немного писали на плюсах, как хобби и теперь хотите перейти на тёмную сторону.

    Для перехода я бы посоветовал почитать последнюю книгу Мейерса по С++11/14, это как крэш-курс. Ну и пописать на современных плюсах, попутно узнавая например, что теперь почти не пользуются сырыми указателями и new, что есть move-семантика и т.п.

    Если бы я искал среднего разработчика, то я бы взял того, который может качественно и с приемлемой скоростью выполнять задачи, не конфликтует с командой, и интересуется IT сферой в целом. Это пожалуй основные критерии, а остальное мелочи.

    Правда, я прошёл немало собеседований и могу сказать, что частенько просят решить какую-нибудь простенькую алгоритмическую задачу, дерево там в ширину обойти (рекурсивно и итеративно) или односвязный список на месте развернуть. Могут попросить подробно описать как hash-based структуры работают, про сложности алгоритмов и т.п. Это вопросы, которые от языка не зависят, но повторить алгоритмы и структуры данных стоит.
  • Переквалификация из Java в C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Эксперты из 8-го Б подъехали... M M Этот ответ не заслуживает внимания от слова совсем.

    С++ нынче большая редкость.

    3 388 вакансии по стране, по данным hh.ru, безусловно подтверждают ваши слова, равно как и 113 487 репозиториев на гихабе и миллионы коммитов. Я уже молчу про HR'ов со всего мира, которые часто пишут в linkedin.

    В отличие от востребованного языка Java.

    По моим наблюдениям, язык и вправду востребован на рынке труда и вакансий на нём действительно больше, чем на плюсах. Только это никак не доказывает, что C++ не востребован.

    Вы нам из прошлого века пишете?
    Серверная часть на С++?
    На уровне слухов, что у кого-то типа где-то есть на С++ на сервере.
    Сейчас большая редкость.

    Поинтересуйтесь у компаний вроде гугла или амазона. Они наверняка не в курсе состояния дел в современном мире и хантят C++ программистов для работы над server-side. Можете ещё попробовать открыть глаза крупным финансовым и аналитическим компаниям (например блумбергу). Они явно чего-то не понимают в этой жизни. Срочно, срочно просветите их!

    От миддла и выше - всем пофиг.
    Работодателю прекрасно известно, что главное чтобы программировать умел.

    На самом деле, опять пустое заявление. Где репрезентативная выборка? Я вот могу доказать, что джава и плюсы два идиоматически разных языка, разный принцип работы, разные проблемы. Вчерашний джавист, скорее всего, наступит на такие костыли и будет так писать, что лучше Васю после универа нанять, у которого C++ свеж в памяти.
    Другой разговор, что предыдущий опыт программирования на другом языке поможет быстрее освоить C++. Вопрос только в том, захочет ли работодатель вкладываться в это обучение.

    Язык - это всего лишь инструмент. Как клавиатура или мышь. Всем плевать какого цвета у вас мышь. Если вы выполняете свои рабочие задачи.

    Тут сложно поспорить, но стоит напомнить про кривую обучения. Время проб и ошибок должен кто-то оплачивать. Если работодатель видит потенциал, то он оплатит.
  • Какую библиотеку использовать для JSON?

    vt4a2h
    @vt4a2h Куратор тега C++
    Кирилл Жиляев, Ну разумеется никто для вас специально не будет делать студийный проект, это просто нерационально для кроссплатформенного софта. Там есть cmake-файл. Запускаете cmake для тестов и получаете студийный проект. Он вам и пути для тестовой библиотеки catch (которая, к слову, рядом лежит) добавит в проект и т.п. А потом прогоните тесты, которые пройдут, и ищите несоответствия между вашим проектом и сгенерированным. В основном смотрите на флаги сборки.