BUG: C2059 Error on Out-Of-Class Definition of Member Templates

Article translations Article translations
Article ID: 241949 - View products that this article applies to.
This article was previously published under Q241949
Expand all | Collapse all

On This Page

SYMPTOMS

The following error message appears if you define a member template class or function outside the class:
error C2059: syntax error : ''template<''
error C2065: 'T' : undeclared identifier

CAUSE

The compiler does not support out-of-class definition of member template functions and classes. Please refer to the C++ Standard, section 14.5.2, for information on member templates.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

The following code example demonstrates the error:
//test.cpp
// compiler option needed: none

template<class T> class string {
public:
	template<class T2> int compare(const T2&);
	template<class T2> string(const string<T2>& s) {}  // inline definition OK 
	//  ...
};
 
template <class T> template<class T2> int string<T>::compare(const T2& s)
				// error C2059 and C2065 
{
	//  ...		// Out-of-class-definition		
}


				

Properties

Article ID: 241949 - Last Review: July 5, 2005 - Revision: 1.1
APPLIES TO
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Keywords: 
kbbug kblangcpp kbcpponly kbcompiler KB241949

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com