次の方法で共有


コンパイラ エラー C2970

'class' : テンプレート パラメーター 'param' : 'arg' : 内部リンケージがあるオブジェクトを含む表現を、非型引数として使用することはできません

静的変数の名前またはアドレスをテンプレート引数として使用することはできません。 テンプレート クラスは、コンパイル時に評価できる const 値を受け取る必要があります。

次の例では 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;