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:沒有線索 - 你能提供一個鏈接嗎 –