• C++ что надо учить чтоб уметь создавать оконные програмы?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Тут вариантов не так уж и много на самом деле: Qt. С остальным только играться.
    Ответ написан
    Комментировать
  • Какой язык может заменить c++ в связке "с++, Qt, Direct3d"?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    В Qt можно писать на QML + JS, используя C++ по минимуму.

    Новый C++ (от 17го), к слову, довольно красив. Не слишком понятно, почему он вам не нравится.
    Ответ написан
    Комментировать
  • Как намекнуть иностранному работодателю, что хотел бы получить помощь в переезде?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Тут обычно всё довольно просто: зарубежный работодатель либо предоставляет релокацию, либо нет. Если предоставляет, то об этом написано (если неоднозначно, то можно уточнить). Если предоставляет, то вам расскажут что включает в себя релокационный пакет. Обычно эта та самая помощь, которую вы описали + набор бенефитов, которые зависит от компании. Потратить сумму, эквивалентную вашим двум-трём месячным зарплатам (ну или больше), работодателю обычно ничего не стоит. Люди -- самый важный ресурс.

    Переехать более чем реально. В Европе и США программистов, мягко говоря, не хватает. Под программистом, я понимаю человека, который реально умеет разрабатывать ПО (реальный, а не формальный опыт минимум от трёх-пяти лет), владеет английским на уровне выше среднего и обладает необходимыми социальными навыками. В эту категорию редко попадают люди, которые окончили курсы вроде "PHP за шесть дней" и/или не имеют фундаментальных знаний.
    Можно конечно переехать и без всего этого, но условия у вас будут очень плохие и платить вам будут очень мало.

    Возможны варианты, когда работодатель предлагает релокацию после удалённой работы (прямой, или через аутсорсинговую/аутстафинговую компанию). Это довольно редкий вариант, но такое возможно, если вы действительно хороший специалист.
    Я когда-то работал в аутсорсинговой компании в иностранном проекте. После пары лет работы, клиент предложил мне переезд и работу в его компании напрямую, и даже с аутсорсинговой компанией договорился (т.к. обычно есть специальные соглашения, чтобы не хантить сотрудников). Я правда тогда отказался, т.к. мы не сошлись по з/п. Я слышал ещё несколько подобных историй, т.ч. и такой вариант возможен.

    Есть международные компании с зарубежными офисами, которые тоже могут предложить вам переезд. Т.е. работали в России, а потом переехали. Но тут сильно от компании и от условий зависит.
    Ответ написан
    2 комментария
  • Почему это компилируется и вообще как работает место в коде и что, так можно было (QSharedPointer)?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вообще непонятно почему у вас так. Попробуйте чистый пример вроде:
    QSharedPointer<QDataStream> doFoo()
    {
        return false;
    }

    Возможно у вас что-то не то с флагами, или окружением, или компилятором, или версией Qt. Дело в том, что у QSharedPointer нет такого конструктора. Сделаю предположение, что у вас MSVC вместо компилятора :)

    Советую возвращать какой-нибудь DefaultAnswer или просто nullptr.

    Roman, те ссылки, что вы привели не релеванты. Они про приведение типа к bool, но не наоборот.
    Ответ написан
    5 комментариев
  • Как правильно подключить библиотеку в С++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Если вы используете conan, то:
    1) Прописаны ли у вас все нужные зависимости в conanfile.txt?
    2) Подключили ли вы нужные репозитории к конану?
    3) Выполняли ли вы conan install?

    Файл-то сборки-то у вас более-менее правильный, но проверьте то, что я написал выше.
    Ответ написан
    1 комментарий
  • Почему не работает перевод из 2 в 10 и обратно?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Используйте стандартные функции, коль скоро у вас есть Qt. QString умеет и в число и из числа, с указанием системы счисления. Смотрите методы toInt и number.
    Ответ написан
    1 комментарий
  • Откуда берется overhead?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Во втором случае, я не думаю, что это правильно сортирует, т.к. в переменную b всегда ноль записывается. Переменную tmp нужно переменной a инициализировать.

    Время нужна считать с учётом включенных оптимизаций. Например в релизном режиме, с флагом -Ofast или -O3 результаты будут сильно быстрее (в том числе и для std::swap). С похожими параметрами обычно компилируются программы, которые поставляются конечному пользователю.

    В режиме отладки, который обычно активирован по умолчанию, компилятор не применяет множество оптимизаций и генерирует отладочную информацию, чтобы программисту легче было разрабатывать. Узнать, какой код был сгенерирован в зависимости от флагов компиляторы, можно тут: https://godbolt.org/ .

    Чтобы понять, какая часть программы потребляет больше всего ресурсов, пользуйтесь профайлерами. Например valgrind с соответствующими флагами.
    Ответ написан
  • Каков профессиональный путь программиста?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Я тоже начинал в небольшом сибирском городке (правда с населением 500к). Вакансий на C++ почти не было, равно как и обучения. Но язык C++ мне всегда нравился, т.ч. я выучил всё что было необходимо самостоятельно, и устроился работать удалённо мидлом (без реального опыта коммерческой разработки). Благо для обучения есть куча бесплатных ресурсов. Ну а потом уехал в Спб, а через несколько лет и из страны.

    Я к тому, что это вполне реально. Попробуйте разные технологии, выберете то что вам нравится и развивайтесь в этом направлении. Отсутствие вакансий в родном городе не должно вас смущать: в современном мире надо быть мобильным и быть готовым к удалённой работе. Ну и английский знать надо, без этого никуда.

    Плохо конечно, что у нас в стране есть полтора города, а остальное малопригодные для жизни места. Но тут сложно что-то изменить в краткосрочной перспективе.
    Ответ написан
    Комментировать
  • Пробелы в пути к файлу для функции system(). Как решить?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Как вариант, в современном C++ можно написать, например так:
    std::system(R"_("C:\Program Files (x86)\test\test.exe")_");

    Всё что в круглых скобках будет интерпретировано как написано. Разделители могу быть почти любыми. Больше примеров тут: https://en.cppreference.com/w/cpp/language/string_... .
    Ответ написан
    3 комментария
  • Сколько раз выделяется память под локальные переменные цикла в С++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    На самом деле, всё зависит от того, насколько хорошо компилятор оптимизирует код. Я советую вам использовать вот этот сервис: https://godbolt.org/ для изучения. Попробуйте поиграть с различными флагами оптимизации и т.п. Современные компиляторы очень хорошо оптимизируют код.
    Помимо этого, можно использовать различные бенчмарки.
    Ответ написан
    Комментировать
  • Насколько адекватно требовать домашнего развития от разработчиков?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Вы с компанией заключаете контракт, в котором прописаны права и обязанности сторон. На основании контракта определяется адекватность требований.
    В компаниях Европы, допустим, сильно следят за work-life balance сотрудников. Занимать личное время никогда не потребуют.
    Я, например, кучу личного времени трачу на саморазвитие, просто потому, что мне это интересно. Кто-то считает иначе, и не тратит. Его право.
    Ответ написан
    Комментировать
  • Как получить размер файла?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    1) удостоверьтесь, что файл действительно существует. Для этого open возвращает bool.
    2) лучше используйте QFileInfo.
    Ответ написан
    1 комментарий
  • Как создать концепт, в функциях которого есть вывод типа?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Концепт должен применяться к вызывающему коду. Я слегка модифицировал ваш пример для общего случая. Сейчас им можно проверять, содержит ли любой класс метод match с определённой сигнатурой:
    template <class T, class V>
    concept bool HasMethodMatch = requires(T a, V v) {
        { a.match(v) } -> bool;
    };
    
    class A {
    public:
        template <class T>
        bool match(T t) const {
            return t == 1;
        }
    };
    
    template <class V> 
        requires HasMethodMatch<A, V>
    void doSmth(const A& a, V v)
    {
        a.match(v);
    }
    
    int main()
    {
        A a;
        doSmth(a, 5);
        doSmth(a, 5.f);
        doSmth(a, 5.d);
    }

    Для более общего случая, в методе doSmth, класс A можно заменить на ещё один шаблонный параметр. Но, я думаю, что логика теперь более-менее ясна.
    Ответ написан
    6 комментариев
  • Как сделать закрытие окна QMainWindow по кнопке на QDockWidget?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    self.closeBtn = QPushButton(self.tr('Close'))
    self.closeBtn.clicked.connect(self.close)
    self.dockedWidget.layout().addWidget(self.closeBtn)

    Вот документация:
    https://doc.qt.io/qt-5/qwidget.html#close
    https://doc.qt.io/qt-5/qabstractbutton.html#clicked

    Ну и на сам pyside тоже доки есть. Хотя, можно и просто на Qt смотреть. pyside -- просто биндинги в конце концов.
    Ответ написан
  • В чем ошибка, почему выдает ошибку компиляции?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Обычно же компилятор пишет почему он не может скомпилировать. Читайте и исправляйте.

    Тут у вас неправильный тип у переменных "z" и "y".
    Ответ написан
    Комментировать
  • Можно ли собеседоваться в другие офисы крупной компании (google, amazon, etc.) сразу после отказа?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    В случае с гуглом точно нельзя. Т.к. у них процесс собеседования общий и база данных единая, например, если вы прошли собеседования в Дублине, то вам работу могут предложить в другом офисе, если там есть более подходящие/горящие вакансии. Ну через полгода примерно можно снова попробовать.
    Про Амазон тоже самое слышал. Ну и вообще, если логично рассудить, то подаёте заявление вы на работу в компанию на самом деле, т.ч. скорее всего во всех гигантах схожие правила. Просто у них очень много кандидатов и собеседований, а если можно было бы подавать в разные офисы постоянно, то стало бы ещё сложнее.
    Ответ написан
    2 комментария
  • Насколько хорошо надо знать английский?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Чем выше уровень, тем лучше. С upper intermediate уже можно более-менее комфортно жить будет.
    Ответ написан
    Комментировать
  • Как использовать вектор классов?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Ну только такие методы не должны классу user принадлежать. Было бы лучше создать новый класс, вроде Database, который используется для хранения пользователей. А уж у этого класса можно сделать методы вроде find или sort. Только сигнатура этих методов уже разумеется никаких векторов не содержит: вектор -- это деталь реализации в данном случае, которая может быть изменена потом.
    Ответ написан
    Комментировать
  • Куда лучше поступать на дистанционное высшее образование?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Просто корочку вы и в метро купить можете. Причём, за определённую сумму, вы можете купить и такую корочку, которая будет во всех базах данных и вообще будет официальной полностью. Не то чтобы я вам это советую, но вы просто можете заработать денег, а когда приспичит... получить диплом.

    А вообще, тут и везде уже много раз об этом писали, в образовании есть ценность и существенная. Можно воспользоваться поиском, чтобы найти соответствующие вопросы. Поэтому я рекомендую его получить, если есть возможность.
    Ответ написан
    Комментировать
  • Где найти комплекты для Qt Creator?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вот это специально написали для вас: https://doc.qt.io/qtcreator/index.html

    Коротко, чтобы собирать что-то в Qt Creator нужны "комплекты" (kits), обычно такой комплект состоит из валидной версии Qt, компилятора и отладчика. Всё это можно настроить в опциях.
    Ответ написан
    4 комментария