Так это не в 4 строки, а желтый заголовок. Можно взять готовую утилиту и сказать что это распознавание лиц в 0 строк. Сколько строк в реализации — не учитывается.
Threading частично (как в C#),
Regular expressions (со статичной компиляцией константных рв во время компиляции программы),
Smart pointers,
Wrapper reference
PS. Промахнулся, ответ OlegMax
1-2 — ранее это был размер строки без завершающего нуля, исправлю в статье.
3 — не вижу причин, почему бы std::string не сохранить 0, как вы подметили, для нее это нормально значение. Но все касательно SIZE, сказано выше.
а) — не так наглядно, и функция будет неверна, если кто то вдруг захочет передать туда неконстантную строку.
б) — для избежания получения 0 при шифровании, если значение окажется #FF, ну и в бинарнике будет выглядеть более странно.
в) — способ требует наличия constexpr конструктора, конструктор по умолчанию им не является.
Недавно пришлось скачать iTunes — нажимаю, выдается диалог на сохранение файла, после чего редирект на главную (вроде), и скачивание не начинается. Оказалось, надо было указать email в поле рядом. Think different.
Regular expressions (со статичной компиляцией константных рв во время компиляции программы),
Smart pointers,
Wrapper reference
PS. Промахнулся, ответ OlegMax
3 — не вижу причин, почему бы std::string не сохранить 0, как вы подметили, для нее это нормально значение. Но все касательно SIZE, сказано выше.
а) — не так наглядно, и функция будет неверна, если кто то вдруг захочет передать туда неконстантную строку.
б) — для избежания получения 0 при шифровании, если значение окажется #FF, ну и в бинарнике будет выглядеть более странно.
в) — способ требует наличия constexpr конструктора, конструктор по умолчанию им не является.