Чтобы снизить количество ошибочных ответов, убедитесь, что вы понимаете, что на самом деле означает ключевое слово inline
. Вот хорошее описание: inline vs static vs extern .
Итак, мой вопрос, почему бы не отметить каждое определение функции встроенным
? т.е. в идеале, единственная единица компиляции - main.cpp
. Или, возможно, еще несколько для функций, которые не могут быть определены в файле заголовка (идиома pimpl и т. Д.).
Теория, лежащая в основе этого странного запроса, заключается в том, что он предоставит оптимизатору максимум информации для работы. Конечно, он может встраивать реализации функций, но он также может выполнять «кросс-модульную» оптимизацию, поскольку существует только один модуль. Есть ли другие преимущества?
Кто-нибудь пробовал это в реальном приложении? Увеличилась производительность? уменьшение?!?
Каковы недостатки маркировки всех определений функций inline
?
Все эти недостатки влияют только на разработчика. Каковы недостатки времени выполнения?