• Чем отличаются JSON от JSONB?

    @curator
    JSONB — двоичная разновидность формата JSON, у которой пробелы удаляются, сортировка объектов не сохраняется, вместо этого они хранятся наиболее оптимальным образом, и сохраняется только последнее значение для ключей-дубликатов. JSONB обычно является предпочтительным форматом, поскольку требует меньше места для объектов, может быть проиндексирован и обрабатывается быстрее, так как не требует повторного синтаксического анализа.

    Источник: https://habrahabr.ru/post/282764/
    Ответ написан
    1 комментарий
  • Где посмотреть, какие операции можно применить к определенному типу данных в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Это legacy наследние, которое сейчас считается устаревшим.
    Когда трава была зеленее, а С++ еще слишком молод, в чистом С вообще не было boolean, поэтому использовался int, который использовался в качестве flag переменных.
    При этом 0+1 = true, 1+1 = true, 2+1 = true (все верно)
    Но при этом 1-0=false (верно), однако 2-1=true, 3-1=true.

    Поэтому никогда никто не использовал декремент для подобных значений - иначе это могло привести к ошибке. Собственно инкремент тоже теоретически мог однажды переполниться...

    Когда появился boolean, то для совместимости сохранили возможность инкремента boolean, но с самого начала это считалось deprecated.

    The value obtained by applying a postfix ++ is the value that the operand had before applying the operator. [Note: the value obtained is a copy of the original value ] The operand shall be a modifiable lvalue. The type of the operand shall be an arithmetic type or a pointer to a complete object type. After the result is noted, the value of the object is modified by adding 1 to it, unless the object is of type bool, in which case it is set to true. [Note: this use is deprecated, see annex D. ]


    Кстати это в 2015 году уже официально отменили:
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p...
    "The ++ operator for bool was deprecated in the original 1998 C++ standard, and it is past time to formally remove it.
    Ответ написан
    Комментировать
  • Какое время жизни объекта в std::unique_ptr?

    terrier
    @terrier
    Хотите еще более клевую штуку покажу?
    int main(int argc, char *argv[])
    {
        ttt *t = new ttt();
        t->foo();
        delete t;
    
        t->foo();
    
        return 0;
    }

    Выводит
    Alive 0x55d7770d0c20
    Removing
    Alive 0x55d7770d0c20
    ( собирал чем попало ).
    При вызове деструктора для объекта никто не обязан как-то его "разрушать", скажем занулять область памяти, где он лежал. Это просто договоренность с программистом, что объект удален и обращаться к нему не надо. Что будет если обратиться? Undefined behaviour, частный случай которого мы с вами и наблюдаем.
    Ответ написан
    Комментировать
  • Заработать на программировании

    @raduetsya
    Простите за некропостинг, просто в голову идея поздно пришла.
    1. Пишем игру, как можно более интересную, но простейшую, с минимумом зависимостей, чтобы можно было хоть на флешке переносить.
    2. Кладем ее на рабочий стол на несколько компьютеров в компьютерном классе.
    3. На первом шаге не забываем вставить в игру DRM - для прохождения определенного участка нужно принести 50-100 рублей на кафедру информатики, отдать такому-то учителю, он скажет пароль.
    4. Сообщаем этому самому учителю о своих планах, говорим ему правильный пароль.
    5. Через неделю-две, если игра распространилась, приходим к этому учителю, забираем свои законные 100 рублей.
    ...
    6. Делаем еще одну игру, но на этот раз сетевую. Что-нибудь такое, во что можно играть на перемене с одноклассниками.
    7. Вставляем туда pay-to-win по старой схеме.
    8. Гребем свои сотни с кафедры, гордимся собой
    ...
    1024. Тебе 30, ты клепаешь интернет-магазины.
    1025. Находишь свои старые игры на старом харде. Играешь
    1026. "Купите игру или введите пароль: ____". Но ты не знаешь пароля.
    1027. Пытаешься разобраться в своем исходном коде.
    1028. В отчаянье возвращаешься в прошлое и отдаешь учителю те единственные полученные тобой 100 рублей за пароль к своей игре.
    Ответ написан
    Комментировать