Мне известно, что ключевое слово inline
имеет полезные свойства, например. для хранения специализированных шаблонов внутри файла заголовка.
С другой стороны, я часто читал, что inline
почти бесполезен в качестве подсказки для компилятора для фактически встроенных функций.
Кроме того, ключевое слово не может использоваться внутри файла cpp, поскольку компилятор хочет проверить функции, помеченные ключевым словом inline
, когда они вызывают.
Поэтому я немного запутался в "автоматических" встроенных возможностях современных компиляторов (а именно gcc 4.43). Когда я определяю функцию внутри cpp, может ли компилятор встраивать его в любом случае, если он считает, что вложение имеет смысл для функции или я лишу его возможности оптимизации? (Что было бы хорошо для большинства функций, но важно знать, что маленькие называются очень часто)