Microsoft KB Archive/241949

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

Article ID: 241949

Article Last Modified on 7/5/2005

-

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++ 6.0 Standard Edition

-



This article was previously published under Q241949



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.



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

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

Keywords: kbbug kblangcpp kbcpponly kbcompiler KB241949

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.