Задать вопрос
  • Как отследить действия при закрытии игры?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Любая потеря фокуса приложения это OnApplicationPause, после этого события приложение может убить операционная система, если, например, ей нужно освободить ресурсы. На мобилках в большинстве случаев это можно считать выходом из приложения. Во время перехода в браузер для авторизации, например, ваше приложение скорее всего выгрузят, а потом перезапустят при возврате обратно.
    Ответ написан
    Комментировать
  • Ошибки при заполнении вектора. С++?

    myjcom
    @myjcom Куратор тега C++
    using namespace std;
    class Student
    { 
    public:
        string name; 
        string last_name; 
        string year;
        string get() 
        { 
             string s =  name + ',' + last_name + ',' + year;
             return s;
        }
    };
    
    int main(int argc, char* argv[])
    {
        Student student;
        student.name="Ivan";
        student.last_name="Ivanov";
        student.year = "2001";
    
        vector<Student> v1;
        v1.push_back(student);
        cout << v1[0].get();
    }
    Ответ написан
    6 комментариев
  • При инициализации массива строк в объекте появляется ошибка "too many initializers for 'String [0]'". В чем может быть проблема?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Потому, что это запрещено стандартом. Укажите размер массива или используйте std::array.
    Советую добавить следующие флаги компиляции: -pedantic -Wall -Wextra.
    Ответ написан
    Комментировать
  • Где поискать опенсорс проекты на С++?

    Nipheris
    @Nipheris Куратор тега C++
    А как вы искали, если не секрет? Я хочу узнать, как искать так, чтобы ничего не найти.

    Запрос "c++ open source projects" даёт первой же ссылкой набирающие популярность C++-проекты на гитхабе, среди которых TensorFlow, биткоин, OpenCV, Электрон, Solidity и прочие монстры индустрии. Время поиска - ~20 секунд.
    Ответ написан
    1 комментарий
  • Где поискать опенсорс проекты на С++?

    myjcom
    @myjcom Куратор тега C++
    Комментировать
  • Как отправить изменения в git через jenkins?

    EreminD
    @EreminD
    Кое-что умею
    Ну, как минимум, вы можете просто выполнить bash

    git add .
    git commit -m '${env.BUILD_NUMBER}'
    git push origin ${env.target_branch}


    У вас pipeline?
    Ответ написан
    4 комментария
  • Как прошить BIOS через EZP2010 + SPI прищепку?

    @shmool
    Senior Hardware Engineer
    Советую выпрямлять руки, выпаивать микросхему и программировать ее одну на программаторе. Применение сплава Розе сильно облегчает выпаивание.

    Если объяснить происходящее коротко, то когда вы прищепкой пытаетесь программировать микросхему flash-памяти, то заодно программатор пытается запитать еще некоторое количество других микросхем, которые питаются от этой же шины питания, например мультиконтроллер, какие-то блоки хаба, еще кто-нибудь. Программатор на подобное не только не рассчитан, но и часто несет в себе защиту от повышенного потребления программируемой микросхемы. Плюс все те микросхемы, которые мы ненароком запитали, начинают жить своей жизнью и включившийся мультиконтроллер может начать вычитывать из флэшки свою прошивку, а программатор ее пытается программировать.
    Ответ написан
    1 комментарий
  • Что пишут на Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Везде и всё. Кроме драйверов.
    Ответ написан
  • Есть ли какие-либо недостатки у статических методов?

    @D3lphi
    Значит так, берем толстую тетрадь, ручку и пишем фразу "Статические методы не имеют отношения к ООП" до тех пор, пока не запомним это на всю жизнь.
    Суть объектно ориентированного программирование, как понятно из названия, заключается в том, что должен существовать объект. Статика существует не в контексте объекта, а в контексте класса! Из этого вытекает то, что на протяжении всего жизненного цикла вашего кода будет существовать лишь одно глобальное состояние статических членов класса.

    Использовать статику нужно в случае, если то, что вы ей описываете принадлежит всей группе объектов, а не одному. Например, у класса Human может быть статический метод numberOfLegs(), который возвращает количество ног у людей. Количество ног - это общее свойство для всех людей (Речь идет о здоровых людях). В данном случае можно было использовать константу класса, но это не так важно, ведь, по сути, константа - это тоже статический контекст. А вот имя - это уже свойство каждого отдельного человека. И очень важно чтобы статические методы не изменяли состояние системы в целом, не содержали побочных эффектов.
    В статические методы можно выносить какую либо служебную логику. Например, метод перевода числа из арабской в римскую запись следует сделать статическим.

    Есть ли у статического варианта какие-то подводные камни

    Большое количество. При чем, не таких уж и подводных. Из-за того, что статика глобальна, она плохо поддается тестированию, ее нельзя замокать. Глобальное состояние плохо поддается отладке. Отсутствует возможность подменить реализацию, так как это позволяют сделать объекты.
    Ответ написан
    4 комментария
  • Использование прерываний в ОС Windows?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Assembler
    Седой и строгий
    Для этого нужно написать драйвер режима ядра.
    Ответ написан
    Комментировать
  • Как вызывается родительский конструктор в C++?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    В С++ нужно отдельно реализовывать конструктор потомка
    class Base {
        public:
        Base(int _i): i(_i) {//блок инициализации
        }
        private: 
        int i;
    }
    
    class Derived : public Base {
        public:
        Derived(int _i): Base(_i) { //зовём super конструктор
        }
    }
    Ответ написан
    Комментировать
  • Зачем нужен указатель на void?

    @Mercury13
    Программист на «си с крестами» и не только
    void* используется как указатель на сырые байтовые данные, не имеющие конкретного типа.
    Обычно это используется…
    1. В чтении-записи в файлы и на устройства, когда мы можем писать туда абсолютно любые типы.
    2. В «многоликих» функциях, которые могут принимать данные разных типов (malloc/calloc, часть функций WinAPI и ODBC).
    3. Как дескриптор — указатель, который запрещается разыменовывать. В Си для этого также часто используют указатель на недоопределённый тип, в Паскале с другими правилами эквивалентности типов — на пустой record. Но только пока не появится очередная многоликая функция вроде CloseHandle.
    4. Для обеспечения т.н. замыкания — передачи callback’у контекста, откуда была вызвана функция, вызвавшая callback.
    BOOL WINAPI EnumWindows(
      _In_ WNDENUMPROC lpEnumFunc,
      _In_ LPARAM      lParam
    );
    
    BOOL CALLBACK EnumWindowsProc(
      _In_ HWND   hwnd,
      _In_ LPARAM lParam
    );

    Вот этот LPARAM, который обычно определяется как какой-то указатель, и есть замыкание. Функция EnumWindows обещает передать его в функцию lpEnumFunc без изменений.
    (В Си++ для этого также используют виртуальные интерфейсы, но такой метод, сами понимаете, языкозависим и не годится для межъязыкового API.)

    Что происходит на стороне функции? Одно из двух (считаем, функция написана на ЯВУ).
    1. Либо вызывается некая функция устройства, которая говорит: «записать 100 байт», и дальше уже работает железо.
    2. Либо мы преобразуем void* в нужный нам тип и работаем с ним.

    Типы указателям дают по трём причинам.
    1. Вы забыли про операцию «разыменовать указатель». Чтобы его разыменовать, он должен иметь тип!
    2. Чтобы не ошибаться и не переприсвоить несовместимые указатели.
    3. Для полиморфизма — в Си++, давая delete x, мы даже можем не хранить, сколько байтов в блоке, поскольку мы знаем длину типа. (Есть ещё и виртуальные классы, но это другой вопрос.)
    Ответ написан
    Комментировать
  • Загружается ли код DLL библиотеки в виртуальную память?

    pavelkarinin
    @pavelkarinin
    Full Stack Web Developer
    Если объяснить очень-очень по-простому и не вдаваться в тонкости, то дело обстоит так: DLL, которые содержат исполняемые функции, методы и прочее действительно должны быть загружены в адресное пространство, которое представляет собой некий буфер, он выделяется из объема оперативной памяти и этот буфер принадлежит только этому процессу, т.е. тому процессу, в котором выполняется приложение. Физическая память к этому диалогу между приложением и DLL не имеет никакого отношения... это если кратко и без фанатизма.
    Ответ написан
    4 комментария
  • Как обнаружить утечку памяти?

    Andrey2008
    @Andrey2008
    DevRel в PVS-Studio
    Вам помогут динамические анализторы. Плюс можно попробовать PVS-Studio: Да, PVS-Studio умеет выявлять утечки памяти.
    Ответ написан
  • Как итерируется ranged for?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Советую зайти в документацию и прочитать про типы итераторов и что это такое.
    Ответ написан
    Комментировать
  • Как создать вектор оттягиванием мыши?

    coremission
    @coremission
    Профессиональный программист игр.
    Не используйте нормализованный вектор,- ну его!
    Оттягиванием - запомните позицию когда нажали мышь, отнимите эту позицию от позиции когда отпустили мышь,- и все, вот ваш вектор ;)
    Ответ написан
    Комментировать
  • Как сделать выход из цикла ввода строк в vector?

    @res2001
    Developer, ex-admin
    Оператор break.
    Ответ написан
    Комментировать
  • Тестовое задание для собеседования на php программиста?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Мы ожидали увидеть приложение с использованием готовых библиотек для работы с HTTP, базой данных, работы с консолью. А также легко расширяемое и поддерживаемое.

    Теперь понятно, что они хотят — но в ТЗ не было указано:
    • Под HTTP понимают либы, работающие с PSR 7 или близкие по «духу», например Symfony HTTP Foundation
    • Под БД понимают Doctrine 2 или Eloquent
    • По консольным — на рынкке используют как правило Symfony Console

    Именно это и хотели, предлагаю вам либо объяснить и написать уже на компонентах, либо послать к черту, НО отметить этот момент и на будущее таки делать уточнение, каковы ожидания от задания...
    Нескольких людей встречал до фанатизма не принимающих сторонние пакеты, и наоборот... Это нужно учитывать... видел задания на PHP 5.3, видел задания строго на Codeigniter...

    Тут на Тостере был пример, когда человек применил композер даже не для сторонней либы, а для внутренних, так на него тимлид сокрушился...
    Разве Composer бесполезен в 2017?

    Люди разные :)


    Материал по компонентной разработке

    Елена,
    не нужно Symfony ассоциировать с фреймворком — это в первую очередь компоненты — потрясающие компоненты:
    • Symfony Console
    • Symfony HTTP Foundation
    • Syfony Routing (к слову очень быстрый, недавно ускорили его в 70 раз ребята и сделали самым шустрым компонентом)
    • Twig
    • Debug
    [*!*] В некоторых вакансиях даже указывают, что нужно уметь работать с некоторыми выше перечисленными компонентами :) Пруф: https://novosibirsk.hh.ru/vacancy/25367906

    Doctrine — совсем не из Symfony и этот компонент можно использовать где угодно

    Zend к слову пошел по тому же пути, например
    • для HTTP Request/Response PSR 7 у него есть отличный компонент Zend Diactoros,
    • для работы с PSR 15 Middleware есть компонент Zend Expressive,
    • для работы с ролями и правами крутое решение Zend ACL

    Laravel уже да — фреймворк, и опять же на компонентах, и можно использовать его куски, например у него замечательная ORM (Active Record) — в отличие от AR в Yii2 ее можно (и нужно) использовать в любом кастомном проекте вне фреймворка Laravel или вообще фреймворка там , где Доктрина лишняя


    Почитать и посмотреть:

    Современный PHP без фреймворков (статья Mail.ru на Хабре)
    Консольное приложение (мастер-класс) — собрано из компонента Symfony Console и ORM Eloquent (от Ларавел)
    PSR-7 фреймворк от Д.Елисеева
    Ответ написан
    3 комментария
  • Хотите задать вопрос администрации Тостера?

    longclaps
    @longclaps
    Встречаются ошибочные (либо ну очень кривые) ответы, помеченые решением.
    Никакого инструмента повлиять на это нет - только язвительные и бессильные комментарии (
    Доколе?
    Ответ написан
    23 комментария