“内在”和“重复的符号”是不同的东西。这 inline
关键字明确允许多个定义(即它免除您的一个定义规则),因此平台(编译器和链接器)必须知道如何处理和重复此功能。
(这一直在标题中定义的类成员函数的所有时间发生。)
如果你只想 代码生成 要发生,您可以将功能的地址存储在某个地方:
auto fp = my_inline;
这样,编译器必须生成函数的定义,以便能够给它一个地址。但是,即使您在每个翻译单元中执行此操作,也不会收到链接器错误,因为这将在链接时间进行重复。所有定义都是相同的要求,请确保这是明确定义的。