Compiler Error C2754

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Compiler Error C2754.

specialization' : a partial specialization cannot have a dependent non-type template parameter

An attempt was made to partially specialize a template class that has a dependent non-type template parameter. This is not allowed.

The following sample generates C2754:

// C2754.cpp  
// compile with: /c  
  
template<class T, T t>  
struct A {};  
  
template<class T, int N>  
struct B {};  
  
template<class T> struct A<T,5> {};   // C2754  
template<> struct A<int,5> {};   // OK  
template<class T> struct B<T,5> {};   // OK  

Show: