模板内联函数的静态局部变量
如果我的理解是正确的,C ++中的inline
函数的static
局部变量保证存在,好像是一个单一的全局变量。
如果inline
函数是一个模板,那么编译器可以生成多个版本的函数,这同样适用吗?
下面的文章应该很好地回答你的问题:http://www.geeksforgeeks.org/templates-and-static-variables-in-c/
简而言之:编译器为每个模板生成一个静态变量。
如果你想为所有模板使用相同的变量,你可以尝试如下所示:
int& hack()
{
static int i = 10;
return i;
}
template <typename T>
void fun(const T& x)
{
int &i = hack();
cout << ++i;
return;
}
链接地址: http://www.djcxy.com/p/85485.html