Задать вопрос
  • Что должен знать Junior C++ программист на данный момент?

    @MarkusD Куратор тега C++
    Junoir C++ developer должен очень хорошо знать язык.

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

    Во-вторых - свой язык программирования. Плюсы знать надо на таком уровне, чтобы не задавать простых вопросов. STL надо знать как букварь, это важный момент. Шаблоны и метапрограммирование - хотябы на общем начальном уровне (синтаксис, возможности, правила, type_traits в STL).
    3 способа использования слова static знаешь? Почему inline нужен? Что такое константный метод? Почему в деструкторе нельзя вызывать виртуальные методы? А как виртуальный метод все же вызвать, если ну очень хочется? Каким условиям для хеш-функции желательно удовлетворять чтобы эффективно использовать ее в контейнере std::unordered_map? Как правильно мириться с исключениями конструктора? Чем std::deque отличается от std::vector, в каких случаях что эффективнее? Перечислять вопросы можно хоть до второго пришествия.

    В третьих - английский язык. Нужно уметь читать документации и доклады, стенографии выступлений и, если понадобится, общаться с сообществом на гитхабе, гиттере, слеке. С ресурсом en.cppreference.com/w нужно не просто подружиться, надо знать что именно там есть все ответы на твои вопросы по языку.

    Штука такая, джуниор без знаний языка мало кому нужен, таких на грош с десяток взять можно. Когда с самого старта карьеры ты уже будешь уверенно владеть языком программирования, к тебе и отношение другое будет. И рост у тебя будет быстрее, и знания тебе с самого начала будут по другому предоставлять.

    А основная мысль у меня такая: как джуниора, тебя не азам обращения с инструментами должны учить, а сразу передавать тебе наработанную сноровку, алгоритмы, рассказывать про грабли и минные поля.
  • Как эффективнее сформировть apk файл?

    AppAlex , большой вопрос - что в этом APK файле будет кроме твоего контента.

    Как бы так сказать... помягче... Белые люди не пользуются такими сервисами. Нормальный человек берет Android Studio, сам пишет код, сам собирает, сам подписывает, сам выкладывает. Это очень просто.
    После первичной разработки проекта, дальше (руками или автоматически) его можно собирать уже просто из консоли, напрямую обращаясь к gradle.

    А если говорить прямо, то эти всякие онлайн-сервисы представляют собой просто ненужный костыль.
  • Это DDos или ломится вирус?

    m@ri0 , а раз помогло, то отметь плз ответы с решениями как решения. :)
  • Boost или не Boost вот в чём вопрос?

    @MarkusD Куратор тега C++
    LittleBuster , вопрос использования буста можно отнести к риторическим. :)
    Вопрос не является ни конструктивным, ни политкорректным, ни толерантным. У буста столько же поклонников, сколько и противников. В целом, на вопрос стоило бы пожаловаться за разжигание дискуссии. :)
    Буст или нужен и команда отчетливо себе представляет для чего, или не нужен.

    У меня есть пример, когда с использованием буста был разработан один очень крупный проект. Были использованы все техники ускорения сборки, включая многопроцессорный сервер сборки, пресловутые precompiled header и амальгамирование.
    И, не смотря на это, чистая сборка всего проекта все равно занимала порядка 3-4 часов. А при отладке средний исходник компилировался порядка минуты.

    Пробовал я и modular boost подключить. Ради включения asio и context пришлось подтянуть еще около 22 зависимостей, что, как бы, представляет нехилый кусок буста. Это все так же отразилось на времени сборки.

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

    @MarkusD Куратор тега C++
    Avery007 , вывод правильный. Именно tuple тебе и поможет в удержании значений до момента вызова.
    В том же самом libsigc++ используется такая же техника удержания. Сча глянул, они и вовсе на стандартный тупл перешли, раньше у них была своя реализация тупла.
    Вот точные координаты этого кода: https://github.com/GNOME/libsigcplusplus/blob/9cdd...
  • Как из строки вывести слова в массив?

    @MarkusD Куратор тега C++
    ZolaEk , обозначь в своем вопросе версию стандарта языка и среду разработки, с которыми ты работаешь.
    Еще важно увидеть твой пример кода вокруг места, где надо собрать слова в массив.
  • Возможно ли заставить вариативный шаблон раскрываться как отдельные аргументы?

    @MarkusD Куратор тега C++
    Avery007 , пожалуйста, конечно. Только я свое любопытство удовлетворенным не ощущаю. :)
    Но ладно. Все в твоем праве.
    Одно дело если тебе хочется изучить подходы делегирования в плюсах. Другое дело - это когда тебе надо использовать делегирование и приходится сперва его сделать.

    Во втором случае лучше использовать open source решение. К примеру libsigc++
    https://github.com/GNOME/libsigcplusplus
    Компилируется хоть на 98 стандарте, работает быстро, объекты легковесны. Плюсов у нее много.
  • Возможно ли заставить вариативный шаблон раскрываться как отдельные аргументы?

    @MarkusD Куратор тега C++
    Avery007 , если тебе просто хочется сделать свой личный std::bind, то для этого стоит полноценно вычитать сам std::bind. Хоть прямо из родного STL твоего компилятора. :)
    И эта аналогия с биндом не поясняет, что именно тебе хочется от вариативного шаблона. Захват аргументов во время конструирования? Удержание thiscall функции вместе с указателем на объект? Передачу аргументов при вызове функтора? Захват части аргументов при конструировании вместе с передачей другой части при вызове функтора?

    И еще... ты это все на каком стандарте делаешь? 14 или 11?
  • Возможно ли заставить вариативный шаблон раскрываться как отдельные аргументы?

    @MarkusD Куратор тега C++
    Avery007 , если честно, у тебя тут просто фарш. Этот код как-то работает что-то делает, только по нему не видно что именно он делает. Но мне стало интересно узнать что ты там такое делаешь. :)
    Давай, может, вот как подойдем к вопросу. Расскажи общую концепцию и что именно ты этим кодом хочешь сделать. Важно узнать - для чего именно может быть применен вариативный шаблон при решении твоей задачи.
  • Как правильно вызвать функцию другого класса?

    @MarkusD Куратор тега C++
    А... кстати. Еще неплохо будет добавить пример использования функторов для вызова this-call функций.

    en.cppreference.com/w/cpp/utility/functional/bind

    Пример использования.
    cpp.sh/2fuxm
  • Как правильно вызвать функцию другого класса?

    @MarkusD Куратор тега C++
    Pavel Tananykhin , это ответ на твой вопрос. :)

    Так же советую использовать библиотеку libsigc++, которая по своей сути является отщеплением и развитием Boost signals. Она простая в освоении, удобная в использовании и быстрая в работе.
    libsigc.sourceforge.net/index.shtml
    https://developer.gnome.org/libsigc++-tutorial/stable/

    Ну и исходный код:
    https://github.com/GNOME/libsigcplusplus
  • Использовать чистый OpenGL или Qt?

    @MarkusD Куратор тега C++
    Junior007 :
    Какой из вариантов используется в реальном геймдеве (когда компания свой движок изначально пишет, к примеру)?

    Давай вот пробежимся по гитхабу...
    https://github.com/godotengine/godot - Имеется ли тут Qt? Неа...
    https://github.com/cocos2d/cocos2d-x - Qt тут и не пахнет...
    https://github.com/godlikepanos/anki-3d-engine - Qt? Не, не видели.
    https://github.com/bekasov/SoftPixelEngine - Все так же, нету.
    https://github.com/moai/moai-dev - Ни намека на Qt.
    https://github.com/SFML/SFML - Чистый C++, Qt нету.
    https://github.com/blackberry/SDL - Тоже нету.
    https://github.com/urho3d/Urho3D - Тоже, как бы, нету.
    https://github.com/CRYTEK-CRYENGINE/CRYENGINE - И тут им тоже даже не пахнет.
    https://github.com/EpicGames/UnrealEngine - Для просмотра придется пройти регистрацию у Epic Games, но наперед можно сказать что и тут тоже нет ни намека на Qt.

    Какой из вариантов будет более предпочтителен для работодателя? Если у меня есть опыт с чистым OpenGL или через обертки Qt?<.blockquote>
    Qt является экосистемой, созданной для строго определенных целей. В этой экосистеме присутствует деформация в сторону удобства использования именно для этих определенных целей.
    Как и любой инструмент, Qt тоже стоит выбирать только тогда, когда от его использования имеется неоспоримая польза, которой не ожидается от использования прочих инструментов.

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

    @MarkusD Куратор тега C++
    Егор Марчук , да, тоже.
    Изучи текст в блоге Алены на эту тему, ссылку дал Алексей . В ней все на русском. :)
  • Можно ли скомпилировать под Android без сертификата?

    Rou1997, ну и еще могу предложить на практике проверить заливку без разрешения установки из сторонних источников. Чтобы совсем голословным не быть.
  • Можно ли скомпилировать под Android без сертификата?

    Rou1997, проверь на практике. :-)
    Бери устройство с версией 4+ и заливай.
  • Можно ли скомпилировать под Android без сертификата?

    Так если нет задачи выкладывать, то и GP не при чем. В sdk есть отладочный сертификат. Им подписываются только отладочные сборки. При чем, по умолчанию. Вот и играйся с отладочными билдами.
    Релизный билд, как Rou1997 говорит, подписать им тоже можно, но он не установится на девайс. Как и переподписанная другим сертификатом отладочная сборка. С этим у андроида все строго. Релизные билды надо подписывать своим сертификатом, который самому сгенерировать с помощью Java keytool не проблема. Только, опять же, зачем тебе релизный билд?
  • Какие можете дать советы по постоянной работе в ночное время?

    Александр Федотов , просто информацией поделюсь. :)
    Года полтора, находясь в Новосибе, жил по времени UTC-6 (это была разница в 9 часов). Вставал где-то в 5 вечера, ложился в 8-9 утра.
    По природе - сова. Ночной образ жизни мне очень понравился. Организму было комфортно.
    А самое клевое - это работать в ночной тишине. Ничто не отвлекает, один сплошной кайф. Хотя "ночная тишина" - это не про Москву...
    До сих пор, периодами, организм начинает требовать ночной образ жизни. Утром бывает непреодалимая вялость, а к ночи нападает работун. ))
    А содержание своего организма в здравии всегда важно, вне зависимости от режима бодрствования и сна.
  • Как добавить поддержку ZLIB в Android Studio ( C++ )?

    @MarkusD Куратор тега C++
    Anton Nadtoka , просто -l - это флаг линковки, а z - то короткое имя для zlib. :)
  • Как исправить ошибку 'сбой при специализации функции-шаблона' (многопоточность)?

    @MarkusD Куратор тега C++
    CodeInside , да и в целом... страшные это все вещи. Для чего тебе захотелось усыплять потоки?
    Ты ведь понимаешь что поток может быть усыплен посреди выполнения некоторой операции с данными или объектом?
    Это же страшная штука, от которой волосы дыбом встают. :)