建議使用 Visual Studio 2017

編譯器錯誤 C2970

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

'class': 樣板參數 'param': 'arg': 運算式包含具有內部連結的物件不能做為型別引數

您無法使用的名稱或位址的靜態變數做為樣板引數。 此樣板類別必須要有一個可在編譯時期評估的常數值。

下列範例會產生 C2970:

// C2970.cpp  
// compile with: /c  
static int si;  
// could declare nonstatic to resolve all errors  
// int si;  
  
template <int i>   
class X {};  
  
template <int *pi>   
class Y {};  
  
X<si> anX;   // C2970 cannot use static variable in templates  
  
// this would also work  
const int i = 10;  
X<i> anX2;  

顯示: