コンパイラ エラー 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;