2016-10-25 1 views
-3

У меня есть подпись функции в моем файле .hpp и определении в моем .cpp-файле.Как определить встроенную функцию в файле .cpp с сигнатурой в .hpp?

Я получаю ошибку компоновщика каждый раз, когда я пытаюсь это сделать, но он уходит и работает отлично, как только я удаляю слово «inline».

+2

Пожалуйста, укажите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –

+0

Короткий ответ: вы не делаете – Slava

+0

Весь смысл 'inline' - позволить вам поместить определение функции в заголовок. Если вы пытаетесь использовать 'inline', чтобы сообщить компилятору встроить функцию, не беспокойтесь об этом; современные компиляторы будут встроенными функциями, которые они сочтут подходящими, независимо от того, даете ли вы ключевое слово 'inline'. – 0x5453

ответ

1

Встроенная функция должна быть определена в каждой единицы перевода, в которой используется odr. Если вы хотите, чтобы функция была встроенной, вам необходимо определить ее в заголовке. Если вы хотите объявить его в заголовке и определить его в файле .cpp, не помещайте его inline.

Смежные вопросы