<分区>
static
如果我的理解是正确的,C++ 中 inline
函数的局部变量保证像单个全局变量一样存在。
如果 inline
函数是一个模板,编译器可以生成该函数的多个版本,这是否同样适用?
<分区>
static
如果我的理解是正确的,C++ 中 inline
函数的局部变量保证像单个全局变量一样存在。
如果 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;
}
关于c++ - 模板 `inline` 函数的静态局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581479/