C++ 自由模板函数需要是静态的和内联的吗?

C++ 自由模板函数需要是静态的和内联的吗?,c++,templates,C++,Templates,鉴于此代码 //在头文件中 模板 内联静态无效my_func(T var) { std::cout默认情况下,所有函数模板都是内联的,因此不需要关键字 在将my#func转换为模板之前,static关键字可能是不必要的,现在仍然是。标记一个自由函数static会给出它的名称内部链接,但因为它是在标题中声明的,在这里没有多大作用。任何翻译单元都可以简单地包含您的h在.cpp文件中,static函数更有用,它主要用于将函数标记为内部函数,并防止其他翻译单元调用它。如果需要内部链接,则仍然需要stat

鉴于此代码

//在头文件中
模板
内联静态无效my_func(T var)
{

std::cout默认情况下,所有函数模板都是内联的,因此不需要关键字


在将
my#func
转换为模板之前,
static
关键字可能是不必要的,现在仍然是。标记一个自由函数
static
会给出它的名称内部链接,但因为它是在标题中声明的,在这里没有多大作用。任何翻译单元都可以简单地
包含
您的h在.cpp文件中,
static
函数更有用,它主要用于将函数标记为内部函数,并防止其他翻译单元调用它。

如果需要内部链接,则仍然需要
static
关键字。具有
static
函数头文件中的内联有点奇怪。函数模板是隐式内联的。啊,默认情况下,关于模板内联的部分是我缺少的-谢谢:)