模板内联函数的静态局部变量

如果我的理解是正确的,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

上一篇: Static Local Variable of a Template `inline` Function

下一篇: what causes android emulator work slow