«Инонирование» и «дублирующие символы» - это разные вещи. А inline
Ключевые слова явно допускают несколько определений (то есть он освобождает вас от правила однократного определения), поэтому платформа (компилятор и линкер) должна знать, как обрабатывать и дедуплизировать это.
(Это происходит все время для функций членов класса, которые определены в заголовках.)
Если ты просто хочешь генерация кода Чтобы произойти, вы можете где -нибудь сохранить адрес функции:
auto fp = my_inline;
Таким образом, компилятор должен генерировать определение функции, чтобы иметь возможность дать ему адрес. Но даже если вы делаете это в каждом блоке перевода, вы не получите ошибку линкера, так как это будет посвящено во время ссылки. Требование о том, чтобы все определения были идентичны, убедительно, что это четко определен.