c++ - 如何在 test.h 中使用 test.cpp 中的静态方法创建模板函数

标签 c++ templates static

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

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

最佳答案

我会继续将所有需要的函数的声明放在头文件中(并从它们的定义中删除 static)。如果将它们放在 namespace FunctionName_impl_detail 或类似的地方,就不会发生名称冲突。如果您在声明附近放置注释以阻止直接使用它们,您可能不需要“隐藏”或“保护”它们。但是如果你想主要防止其他代码使用它们,你可以将它们设为 privatestatic 某个类的成员,该类的 friend 是模板功能。

关于c++ - 如何在 test.h 中使用 test.cpp 中的静态方法创建模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17289320/

相关文章:

c++ - 从模板化类虚函数中调用的模板函数不正确

在不知道结构实现的情况下在 C 中创建结构的静态实例

c++ - 编译器找到头文件但找不到 cpp 文件?

c++ - Windows 套接字通知接收器

c++ - 如何将 std::vector<const unsigned char> 转换为 const std::vector<unsigned char>?

c++ - 以错误的顺序运行包含大量 INSERT 语句和一个 SELECT 语句的查询

C++ 模板特化,以类作为返回类型,以枚举作为参数

c++ - SFML: Vector2<double> 无法编译

java - 在同一个类中有静态和非静态方法是错误的吗?

c++ - 为什么我不能在 C++ 中初始化静态字段