FIX: Undocumented Functions in Type Safe Collection Classes (154482)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 4.2
This article was previously published under Q154482 SYMPTOMS
MFC 4.2 in Visual C++ 4.2 added some additional wrapper functions for the
template type safe collection classes, such as CTypedPtrList,
CTypedPtrArray and CTypedPtrMap. The newly-added functions help to make
these classes fully type safe to use. However, the added functions are not
documented in the Visual C++ Online Documentation.
STATUS
Microsoft has confirmed this to be a problem in the Microsoft products
listed at the beginning of this article. This problem was fixed in Visual
C++ version 5.0.
MORE INFORMATION
Following is a full list of the functions added to the template type safe
collection classes:
CTypedPtrList
template<class BASE_CLASS, class TYPE>
class CTypedPtrList : public BASE_CLASS
// Add a new element before head or after tail of the list
POSITION AddHead( TYPE newElement );
POSITION AddTail( TYPE newElement );
// Add another list of elements before head or after tail
void AddHead( CTypedPtrList<BASE_CLASS,TYPE> *pNewList );
void AddTail( CTypedPtrList<BASE_CLASS,TYPE> *pNewList );
// Modify an element at a given position
void SetAt( POSITION pos, TYPE newElement );
CTypedPtrArray
template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS
// Set the array element at the specified index
void SetAt( int nIndex, TYPE ptr );
// Potentially growing the array
void SetAtGrow( int nIndex, TYPE newElement );
int Add( TYPE newElement );
int Append( const CTypedPtrArray<BASE_CLASS, TYPE>& src );
void copy( const CTypedPtrArray<BASE_CLASS, TYPE>& src );
// Operations that move elements around
void InsertAt( int nIndex, TYPE newElement, int nCount=1 );
void InsertAt( int nStartIndex,
CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray );
CTypedPtrMap
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
// Add a new key (key,value) pair
void SetAt( KEY key, VALUE newValue );
// removing existing (key,?) pair
BOOL RemoveKey( KEY key );
For detailed information about these functions, please refer to the
corresponding documentation for the functions in BASE_CLASS (the template
parameter for each of the above template classes). For instance, if you
have CTypedPtrMap<CMap,MyKey,MyValue>, then refer to the documentation for
CMap for the functions listed above under CTypedPtrMap.
You can also look at \msdev\mfc\include\afxtempl.h header file for the
implementation of these functions.
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbBug kbDocs kbfix kbNoUpdate kbVC500fix KB154482 |
---|
|