gpt4 book ai didi

c++ - 如何在头文件库中定义(非方法)函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:21 24 4
gpt4 key购买 nike

在编写头文件库(如 Boost )时,是否可以定义自由 float (非方法)函数而不 (1) 膨胀生成的二进制文件和 (2) 引发“未使用”警告?

当我在一个头文件中定义一个函数时,该函数包含在多个源文件中,而这些源文件又链接到同一个二进制文件中,链接器提示重新定义。解决这个问题的一种方法是使函数静态化,但这会在每个翻译单元中重现代码(顺便说一句,链接器可以安全地删除这些代码吗?)。此外,这会触发有关函数未使用的编译器警告。

我试图在 Boost 中寻找一个自由 float 函数的例子,但找不到。将所有内容都包含在一个类(或模板)中的诀窍是什么?

最佳答案

如果您真的想定义函数(而不是声明它),则需要使用 inline 来防止链接器错误。

否则,您可以在头文件中声明函数并在源文件中单独提供其实现。

关于c++ - 如何在头文件库中定义(非方法)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1568807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com