1

目前模板函数在 .cpp 文件中,但是这些模板需要在头文件中定义。但是,当我将它们移到标题中时,模板无法访问 .cpp 文件中的静态方法。我需要进行哪些更改才能使其正常工作?

这只是一个实用程序头和 cpp,与类无关。

4

2 回答 2

2

我会继续将所有需要的函数的声明放在头文件中(并static从它们的定义中删除)。如果你把它们放进去namespace FunctionName_impl_detail或类似的东西,你就不会出现名称冲突。如果您将注释放在不鼓励直接使用它们的声明附近,您可能不需要“隐藏”或“保护”它们。但是如果你想主要阻止其他代码使用它们,你可以让它们成为模板函数的某个类的成员privatestaticfriend

于 2013-06-25T05:30:52.533 回答
0

您应该在标题中定义静态方法。

模板类必须完全在头文件中定义,因为编译器基本上为每个模板实例创建一个新类,因此它必须在编译时访问完整的方法实现。

于 2013-06-25T04:47:04.220 回答