Comments 8
Обычно вердикт, это компромисс между аргументами "за" и аргументами "против". Т.е. он должен отвечать на вопрос - почему так, а не иначе. А здесь - вердикт (худо-бедно верный) сам по себе, аргументы сами по себе.
Ещё раз скажу, что нужно учитывать, что Гугл - это гигантская корпорация, которая может позволить себе программировать в плохом стиле.
Гугл — это гигантская корпорация, которая может позволить себе программировать в плохом стиле.
Предположим, но зачем им это делать? Разве должно быть не наоборот? В смысле, если "хороший стиль" даёт выигрыш в 1% (для примера и не важно чего именно: скорости, поддерживаемости или чего-то ещё), то на объёмах гугла разве это не будет куда более заметно, чем в мелком стартапе?
Стиль, он позволяет снизить трудозатраты на поддержку, сопровождение, доработку и т.д. По опыту - для крупных компаний проще нанять пару-тройку-десяток разработчиков, чем заморачиваться со стилем (что не так просто, как кажется).
std::unique_ptr реализует передачу владения через семантику перемещения C++11, которая является новой и может затруднить понимание кода.
А ничего, что с момента введения семантики перемещения прошло уже больше 10 лет?
Реалии таковы что 80% разработчиков на C++ с 3 годами коммерческого опыта (не институт) не могут написать шаблон использующий SFINAE (хотя и в курсе что такое существует) и будут избегать самописных шаблонов в принципе, обычно с аргументацией о поддерживаемости другими людьми. Прошло уже больше 20 лет.
А я попросту откажусь писать шаблон с SFINAE. Максимум согласен на std::enable_if
, но не более того. Считаю, что это крайне неудобный и плохо читаемый костыль, для которого есть хорошие альтернативы в виде constexpr и концептов.
Руководство Google по стилю в C++. Часть 6