Article: Q138847
Product(s): Microsoft C Compiler
Version(s): 4.0,4.1,4.2,5.0,6.0
Operating System(s):
Keyword(s): kbLangCPP kbVC kbVC500bug kbVC600bug
Last Modified: 07-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, versions 4.0, 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition, versions 4.2, 5.0, 6.0
- Microsoft Visual C++, 32-bit Professional Edition, versions 4.2, 5.0, 6.0
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0
- Microsoft Visual C++.NET (2002)
-------------------------------------------------------------------------------
SYMPTOMS
========
When you compile the code shows in the "Sample Code to Reproduce Problem"
section of this article, Visual C++ reports the following error:
error C2572: 'member' : redefinition of default parameter : parameter 1
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
MORE INFORMATION
================
The error occurs only when a function pointer is a static member of a class, and
the function pointer type is a function that has a default argument. The error
is reported for the line where the static member is defined.
Sample Code to Reproduce Problem
--------------------------------
/* Compile options needed: none
*/
typedef void (*function_ptr)( int default_arg = 0 );
class my_class
{
public:
static function_ptr member;
};
function_ptr my_class::member; // error will be reported for this line
Additional query words: kbVC400bug
======================================================================
Keywords : kbLangCPP kbVC kbVC500bug kbVC600bug
Technology : kbVCsearch kbVC400 kbAudDeveloper kbVC410 kbVC420 kbVC500 kbVC600 kbVC32bitSearch kbVCNET kbVC500Search
Version : :4.0,4.1,4.2,5.0,6.0
Issue type : kbbug
=============================================================================