ta muallif kitobidan iqtiboslar  Красивый C++: 30 главных правил чистого, безопасного и быстрого кода

Например, гипотетически вы инженер-программист, а не инженер-электронщик. На уровне 1, физическом уровне, вы чувствовали бы себя очень некомфортно, и вам было бы гораздо удобнее работать на уровне 7, прикладном уровне. Возможно, вы слышали термин «full-stack-инженер». Такой инженер способен продуктивно работать на всех уровнях. Но это мифическое создание вряд ли встречается в реальности.
1 kishiga yoqdi
Fikr bildirish
Сергей
Сергейiqtibos olmoqda4 oy oldin
Однако это не мешает вам реализовать необходимые инструменты самостоятельно. Подробное описание можно найти в технической спецификации, ссылка на которую приводилась в сноске выше. Найдите тег [scopeguard], известный как стабильный индекс. Там вы отыщете полное описание, как должны работать эти четыре класса и функция, не являющаяся членом. На чтение у вас уйдет не более 15 минут, а сама реализация займет меньше времени, чем вы думаете.
Fikr bildirish
В рамках x64 ABI существует соглашение по умолчанию о быстром вызове с четырьмя регистрами. Функция с четырьмя параметрами будет выполняться немного быстрее, чем функция, принимающая класс по ссылке.
Fikr bildirish
Эта книга посвящена приемам написания хорошего кода. Поэтому первый совет — придерживайтесь стандарта ISO C++. Но что это означает на практике?
Fikr bildirish
Все примеры кода доступны на сайте Compiler Explorer. Мэтт Годболт (Matt Godbolt)
Fikr bildirish
Сергей
Сергейiqtibos olmoqda5 oy oldin
Наконец, хотелось бы отметить, что, обнаружив в своем коде передачу функции нескольких входных/выходных параметров, вы можете быть уверены, что упустили из виду некоторую абстракцию. Возможно, вы пытаетесь выполнить своеобразную двойную (или более) диспетчеризацию и смоделировать взаимодействия нескольких классов, что в принципе не совсем правильно.
Fikr bildirish
Язык C++ гарантирует обратную совместимость: код, написанный 50 лет назад на C, будет компилироваться и сегодня.
Fikr bildirish
Например, несмотря на допустимость заполнять список инициализации конструктора в любом порядке, никогда не следует этого делать.
Fikr bildirish
Сергей
Сергейiqtibos olmoqda5 oy oldin
Владеть чем-то означает нести ответственность за что-то.
Fikr bildirish
Сергей
Сергейiqtibos olmoqda5 oy oldin
Тип gsl::owner определяется просто: если T является указателем, то gsl::owner становится псевдонимом T, иначе определение аннулируется.
Fikr bildirish