如何摆脱完全专用的函数模板的多个定义

How to get rid of multiple definitions of fully specialized function templates?

本文关键字:函数模板 定义 专用 何摆脱      更新时间:2023-10-16

我在链接我的一个C++应用程序的对象时遇到问题。源文件全部编译为目标文件,但其中许多文件依赖于具有完全专用函数模板的同一库。链接器在尝试将它们全部链接在一起时会抱怨。我明白为什么会这样,但我明白如何解决它。

我找到了这个,它准确地解释了这个问题,但论坛线程从未达到 OP 要求解决方案的地步。窝囊,窝囊。

如何编译所有源文件,但只从库中获取一次专用函数?

问题是专业化在标头中也有实现,这是错误的。

应将实现移动到源文件,或将方法标记为 inline