Возможный дубликат:
Когда следует писать ключевое слово 'inline' для функции/метода?
Итак, это вопрос, который прослушивал меня какое-то время, и я не могу получить окончательный ответ. Я понимаю, что хороший компилятор, как правило, понимает, когда он безопасен и выгоден для встроенной функции, и, если оптимизация включена, он будет встроить все такие функции в погоду, которую они явно идентифицируют как встроенные функции программистом или нет. Кроме того, компилятор будет распознавать, когда не является безопасным/разумным для встроенной функции и просто игнорирует запрос программистов на встроенные функции в таких случаях.
Таким образом, я хотел бы знать, в чем преимущество явного указания функции как строки? Пока включена оптимизация, компилятор выполнит все функции, которые он считает разумными, и только те функции.
Я нашел несколько дискуссий вокруг встроенной защиты от множества определений из-за вложенных h файлов, но, безусловно, # ifdefine'''ий исходный код заголовка лучше практикуется и снова отображает использование ключевого слова inline void?