• Передача функции - шаблоны или std::function?

    Первый вариант:
    template<typename Func> void MyFunc (const Func & otherFunc);

    Гарантирует, что otherFunc будет заинлайнена в MyFunc, то есть такой вариант предпочтителен там, где требуется максимальная производительность. Но шаблонные функции не могут быть виртуальными. То есть такой вариант очень хорошо подходит для функций-утилит, и плохо подходит для методов публичного API и на границах модулей, так как там как раз инлайн не нужен, а нужны виртуальность и сокрытие реализации.

    Важное замечание! Приведённый код не совсем корректен, всегда в таких случаях используйте передачу по универсальной ссылке:
    template<typename Func> void MyFunc (Func&& otherFunc);

    Такой вариант покрывает и константные функторы, и те, которым необходима мутабельность для работы. Если вы планируете сохранить функтор, то это ещё и позволит воспользоваться perfect forwarding -- по сути, единственный способ, корректно работающий с любым переданным функтором:
    field = std::forward<Func>(otherFunc);

    Второй вариант:
    void MyFunc (const auto & otherFunc);
    Можно использовать, если вам не нужен тип функтора. По сути он эквивалентен предыдущему.

    Третий вариант:
    void MyFunc (const std::function<void()> & otherFunc);

    Возьмите отрицание моих предыдущих аргументов и примените сюда. Можно использовать с виртуальными функциями, больше подходит для API, но теряет в производительности. А именно, вызов otherFunc эквивалентен вызову виртуальной функции.

    Четвёртый вариант:
    void MyFunc (const void (&otherFunc)());
    Работает только с простыми, глобально определёнными функциями. Вместо этого практически всегда стоит использовать std::function.
    Ответ написан
    Комментировать
  • Возможен ли такой вариант использования in-app billing?

    GavriKos
    @GavriKos
    Все критичное надежно можно проверить ТОЛЬКО на сервере. Нет проверки на сервере - может быть взломано. Других вариантов нет
    Ответ написан
    4 комментария
  • Как происходит вывод денег из Google play?

    GavriKos
    @GavriKos
    Гугл перечисляет через GoogleWallet на вашу карту. Перечисляет вроде бы в долларах, но если карта не долларовая - то банк конвертит сам.
    Ответ написан
    4 комментария
  • Какова минимальная длительность подписок в Google Play?

    @Tiberal
    Неделя кажется.Автопродление есть.Сроки подписок можно посмотреть при создании продукта в консоли.
    Ответ написан
    Комментировать
  • Можно ли при помощи SDK Вконтакте реализовать такой функционал?

    artemgapchenko
    @artemgapchenko
    Если собираетесь заливать приложение в Play Market, то подписку можно будет реализовать только средствами In-App Billing, так как Google запрещает использовать в приложениях, заливаемых в Play Market, какие-то либо способо оплаты цифрового контента кроме своей собственной службы оплаты.
    По поводу SDK вконтакте под Android - посмотрите в документации к Android SDK, а потом задавайте конкретные вопросы.
    Ответ написан
    3 комментария
  • Можно ли при помощи SDK Вконтакте реализовать такой функционал?

    Rou1997
    @Rou1997
    VK SDK - это обертка над VK API, поэтому смотрите здесь: https://vk.com/dev/
    В любом случае, можно реализовать без API, но это трудоемко, и в любой момент может перестать работать, потребуется обновление, насчет Google Play тоже сомнения в таком случае, хотя, он вроде бы только жалобы обрабатывает.
    Ответ написан
    1 комментарий
  • Возможен ли такой вариант в магазине App Store?

    f0r3s1
    @f0r3s1
    iOS Developer
    Вопрос к контенту или к посуточной оплате? Контент - пожалуйста. Яндекс.музыка и еще море других приложений так работают, но думаю что будет немного возни с сертификатами для музыки, ну это сам разберешься, когда будешь выкладывать. По поводу подписки - каждый день невозможно, есть автоматически продляемые подписки возможны с шагом оплаты в 7 дней
    Ответ написан
    1 комментарий