我可以将 pragma `Inline` 放在正文中而不是规范中吗?

Can I put pragma `Inline` in the body instead of the spec?

Ada 信息交换所 states the following:

The use of pragma Inline does have its disadvantages. It can create compilation dependencies on the body; that is, when the specification uses a pragma Inline, both the specification and corresponding body may need to be compiled before the specification can be used.

将pragma Inline放在正文中可以避免这个问题吗?

优点是规范中的 Inline 允许跨单元内联,这可以是非常强大的 运行 时间优化。

当您在速度较慢或内核较少的计算机上编译时,您提到的缺点更重要。 然后是 运行 时间与编译时间的权衡。

请注意,在 GNAT 上,跨单元内联是通过单个开关 (-gnatn) 启用的,所以不要害怕 Inline pragma creating compilation dependencies:你可以切换使用该开关打开或关闭整个机制。