Реализация оператора in в С++
std::unordered_map<std::string, std::string> some_map =
{
{ "black", "white" },
{ "cat", "dog" },
{ "day", "night" }
};
if (auto res = "cat" in some_map)
{
res->second = "fish";
}
std::unordered_map<std::string, std::string> some_map =
{
{ "black", "white" },
{ "cat", "dog" },
{ "day", "night" }
};
if (auto res = "cat" in some_map)
{
res->second = "fish";
}
Сделал второй пост с доказательствами и опровержением заявлений Burger King. Читать здесь.
fennikami
Я предоставил видео-доказательство того, что поля ввода данных (в том числе — банковских карт) не скрываются + видео отправляется каждый раз при запуске (в чем вы сами можете убедиться, отследив трафик приложения).
Таким образом я имею опровержение официального ответа Burger King о том, что «личная информация скрыта» и того, что якобы используется выборка на 10% пользователей.
Стоит отметить, что ни в одном из официальных видео Burger King (где они якобы демонстрируют скрытие личных данных) не показано меню привязки банковской карты.
В этом видео оно показано.
Также хочу отметить, что после публикации оргинального расследования — на мой блог начались хакерские атаки (брутфорс админки, поиск эксплоитов, попытка DDoS).
Я готовлю второй пост на эту тему.
Stay tuned, больше информации — в моем блоге.

Банальная ситуация. Есть старый компьютер, который уже устарел, но используется для простых задач. Вкладывать в него какие-то деньги на апгрейд не хочется, а покупать новый системный блок не целесообразно. Но хочется, чтобы старый ПК работал бесшумно, не грелся и не был сборником пыли. И самое главное, без каких либо вложений денежных средств. 
Глава из книги "Современное программирование на C++" называется "В сто первый раз об интеллектуальных указателях". Все бы ничего, но книга была издана в 2001 году, так стоит ли в очередной раз возвращаться к этой теме? Мне кажется что как раз сейчас и стоит. За эти пятнадцать лет поменялась сама точка зрения, тот угол под которым мы смотрим на проблему. В те далекие времена только-только вышла первая де-факто стандартная реализация — boost::shared_ptr<>, до этого каждый писал себе реализацию по потребности и как минимум представлял себе детали, сильные и слабые стороны своего кода. Все книги по C++ в то время обязательно описывали одну из вариаций умных указателей в мельчайших деталях.
Сейчас нам дан стандарт, и это хорошо. Но с другой стороны, уже не требуется понимать что там внутри, вместо этого достаточно три раза повторить мантру "используйте умные указатели везде где вы бы использовали обычные указатели", и это уже не так хорошо. Я подозреваю что далеко не все отдают себе отчет что данный стандарт — лишь один из возможных вариантов интерфейса, не говоря уже о разнице между реализациями различных вендоров. При выборе стандарта был сделан выбор между различными возможностями учитывающий разные факторы, но, оптимальный или нет, этот выбор очевидно не единственен.
А еще на stackoverflow например снова и снова задается вопрос — "потокобезопасны ли умные указатели из стандартной библиотеки?". Ответы даются обычно категоричные, но какие-то мало информативные. Если бы я например не знал о чем идет речь, то наверное бы не понял. И кстати, все сравнительно новые книги описывающие новый стандарт C++ этому вопросу тоже уделяют мало внимания.
Так давайте же попробуем сорвать покровы и разберемся с деталями.
Не так давно у меня произошёл очередной разговор с коллегой на извечную тему: "по ссылке, или по значению". В результате возникла данная статья. В ней я хочу изложить результаты моего исследования по этой и смежным темам. Далее будут рассмотрены:
Осторожно! Статья содержит большое количество кода на C++ и ассемблере (Intel ASM с комментариями), а также множество таблиц с оценками производительности. Всё написанное актуально для x86-64 System V ABI, который используется во всех современных Unix операционных системах, к примеру, в Linux и macOS.

Нынче программист может не найти работу в двух случаях: он либо клинический дятел и неадекват, либо хочет в качестве оклада звездолёт. Во всех остальных случаях "в девках" он долго не задерживается. Однако вопрос "кто кого на***л?" интересует обе стороны "противостояния". Так же всем хочется знать цену вопроса и как бы расширить целевую аудиторию, побыстрее найти наилучшее предложение и отвадить всяких отмороженных. Ну и, конечно же, есть чисто-программерское "чтобы внутренний перфекционист был спокоен". Обо всём этом по чуть-чуть и поразмышляю в текстовой форме.

В данной теме я рассмотрю четыре вида метаданных, которые могут быть прикреплены к файлу или каталогу средствами файловой системы NTFS. Я опишу, в каких целях можно использовать тот или иной тип метаданных, приведу пример его применения в какой-либо технологии Microsoft или стороннем программном обеспечении.
В разработке существует множество ситуаций, когда вам надо выразить что-то с помощью "optional" — объекта, который может содержать какое-либо значение, а может и не содержать. Вы можете реализовать опциональный тип с помощью нескольких вариантов, но с помощью C++17 вы сможете реализовать это с помощью наиболее удобного варианта: std::optional.
Сегодня я приготовил для вас одну задачу по рефакторингу, на который вы сможете научиться тому, как применять новую возможность C++17.
Давайте быстро погрузимся в код.
Представим, что есть функция, которая принимает объект ObjSelection, представляющий из себя, например, текущую позицию указателя мыши. Функция сканирует выделение и находит количество анимированных объектов, есть ли там гражданские юниты и есть ли там военные юниты.

Давайте возьмём пару от двух типов <YourType, bool> — что вы можете сделать с композицией подобного рода?
В этой статье я расскажу вам про std::optional — новый вспомогательный тип, добавленный в C++17. Это обёртка для вашего типа и флаг показывает, инициализировано ваше значение или нет. Давайте посмотрим, где это может быть полезно.
Добавлением логических флагов к другим типам вы можете достичь то, что называется "Nullable типы". Как было сказано ранее, флаг используется для обозначения того, доступно значение или нет. Такая обёртка выразительно представляет объект, который может быть пустым (не через комментарии :).

Китайское государство развёртывает обширную систему ранжирования, которая будет отслеживать поведение его огромного населения и выставлять оценки жителям на основе их «социального кредита».

