Даже если у компилятора был плохой день, и почему-то не удалось выяснить, как оптимизировать его (это очень просто, как оптимизация) - без каких-либо элементов данных и без конструктора «удар производительности» для «создания объекта «было бы не более одной инструкции (плюс может быть еще пару для копирования объекта, если компилятор также не выясняет, как встроить вызов функции, который использует функтор), чтобы увеличить указатель стека (поскольку каждый объект должен имеют уникальный адрес). «Создание объектов» - . Требуется время , выделяющее память, через new
(потому что ОС должна быть подана в память для памяти, и она должна искать непрерывный блок, который не используется кем-то другим). Помещение вещей в стеке тривиально.
Почему не простая функция вместо функтора, так как в вашем функторе нет переменной-члена? – Chubsdad 2010-12-02 06:06:35
@ Chubdad: Из-за «Trick», упомянутого в ответе на этот вопрос. http://stackoverflow.com/questions/442026/function-overloading-by-return-type – nakiya 2010-12-02 06:08:49