Мне недавно рассказали в обзоре кода (более старым и более умным разработчиком С++), чтобы переписать класс, который я написал, превратив его в набор статических методов. Он оправдал это, сказав, что хотя мой объект действительно содержит очень небольшое количество внутреннего состояния, его можно было бы получить во время выполнения в любом случае, и если бы я изменился на статические методы, я бы избегал затрат на напыщенные объекты повсюду.
Теперь я сделал это изменение, но это заставило меня задуматься, какова стоимость создания экземпляра на С++? Я знаю, что на управляемых языках есть все затраты на сбор мусора, который был бы значительным. Однако мой объект С++ был просто в стеке, он не содержал каких-либо виртуальных методов, поэтому не было бы затрат на поиск функции времени исполнения. Я использовал новый механизм удаления С++ 11 для удаления операторов копирования/присваивания по умолчанию, поэтому никакого копирования не было. Это был простой объект с конструктором, который выполнял небольшую работу (обязательно в любом случае со статическими методами) и деструктор, который ничего не делал. В любом случае, скажите мне, что такое instation consts? (Рецензент немного запугивает, и я не хочу выглядеть глупо, спрашивая его!); -)