7
static
如果我的理解是正确的,C++中的inline
函数的局部变量保证存在,好像是一个单一的全局变量。模板的静态局部变量`inline`函数
如果inline
函数是一个模板,那么编译器可以生成函数的多个版本吗?
static
如果我的理解是正确的,C++中的inline
函数的局部变量保证存在,好像是一个单一的全局变量。模板的静态局部变量`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;
}
现在有办法在多个库(全球'inline'变量或模板'直列在多个翻译单元中可变)。没有标准化的链接。 –
@DieterLücking您是否认为'inline'变量提案被接受包含在下一个标准中? – xiver77
@ xiver77:没有线索 - 你能提供一个链接吗 –