close
Пространства имён
Варианты
Действия

Принцип нулевых накладных расходов

Материал из cppreference.com
 
 
Язык С++
Общие темы
Управление потоком
Операторы условного выполнения
if
Операторы итерации (циклы)
Операторы перехода
Функции
Объявление функции
Выражение лямбда-функции
Спецификатор inline
Спецификации динамических исключений (до C++17*)
Спецификатор noexcept (C++11)
Исключения
Пространства имён
Типы
Спецификаторы
decltype (C++11)
auto (C++11)
alignas (C++11)
Спецификаторы длительности хранения
Инициализация
Выражения
Альтернативные представления
Литералы
Логические - Целочисленные - С плавающей запятой
Символьные - Строковые - nullptr (C++11)
Определяемые пользователем (C++11)
Утилиты
Атрибуты (C++11)
Types
Объявление typedef
Объявление псевдонима типа (C++11)
Casts
Неявные преобразования - Явные преобразования
static_cast - dynamic_cast
const_cast - reinterpret_cast
Выделение памяти
Классы
Свойства функции класса
explicit (C++11)
static
Специальные функции-элементы
Шаблоны
Разное
 

Принцип нулевых накладных расходов это принцип дизайна C++, который гласит:

  1. Вы не платите за то, чем не пользуетесь.
  2. То, что вы используете, столь же эффективно, как и то, что вы могли бы разумно написать вручную.

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

Единственными двумя функциями языка, которые не следуют принципу нулевых издержек, являются идентификация типов во время выполнения и исключения, и именно поэтому большинство компиляторов включают опцию для их отключения.

Внешние ссылки

1.  Основы С++ - Бьерн Страуструп
2.  Исключения и альтернативы C++ - Бьерн Страуструп
3.  Дефрагментация C++ - Делаем Исключения и RTTI Более Доступными и Удобными в Использовании — Херб Саттер
4.  Бьерн Страуструп: C++ Подкаст об Искусственном Интеллекте (ИИ)