Article: Q192629
Product(s): Microsoft C Compiler
Version(s): 5.0,6.0
Operating System(s):
Keyword(s): kbClassView kbide kbVC500 kbVC500bug kbVC600 kbVC600bug kbGrpDSTools kbNoUpdate
Last Modified: 10-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition, versions 5.0, 6.0
- Microsoft Visual C++, 32-bit Professional Edition, versions 5.0, 6.0
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
The following error occurs when trying to add member functions to template
classes using ClassView:
Unable to create the implementation of this function
RESOLUTION
==========
To add member functions to a template class, you must manually enter the
functions into the source files.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
This problem was corrected in Microsoft Visual C++ .NET.
MORE INFORMATION
================
Steps to Reproduce Behavior
---------------------------
1. Create a default MFC AppWizard (exe).
2. Add a generic class to the project:
a. Select the project in ClassView.
b. Right-click the mouse and select New Class.
c. Select Generic from the Class Type combo box.
d. Give the class a name, such as CMyGenericClass, and click OK.
3. Edit this generic class declaration, constructor definition, and destructor
definition by adding the template keyword along with the type list, for
example:
//generic class declaration:
template <class c> class CMyGenericClass {
public:
CMyGenericClass();
virtual ~CMyGenericClass();
};
//constructor and destructor definitions:
template <class c> CMyGenericClass<c>::CMyGenericClass()
{
}
template <class c> CMyGenericClass<c>::~CMyGenericClass()
{
}
4. In ClassView, right-click CMyGenericClass and select "Add Member Function."
5. Enter the function name and return type. Click OK. A dialog box is displayed
indicating the following error:
Unable to create the implementation of this function
In Visual C++ 6.0, you do not have the ability to jump to a template function
declaration from ClassView unless the template function is defined inside the
class declaration (inline).
For additional information, please see the following article in the Microsoft
Knowledge Base:
Q154112 ClassView Cannot Find Template Member Function Definition
Additional query words: kbDSupport
======================================================================
Keywords : kbClassView kbide kbVC500 kbVC500bug kbVC600 kbVC600bug kbGrpDSTools kbNoUpdate
Technology : kbVCsearch kbAudDeveloper kbVC500 kbVC600 kbVC32bitSearch kbVC500Search
Version : :5.0,6.0
Issue type : kbbug
Solution Type : kbfix
=============================================================================