CodeView Does Not Use Default Arguments for Functions (85510)



The information in this article applies to:

  • Microsoft CodeView for MS-DOS 4.0
  • Microsoft CodeView for MS-DOS 4.01
  • Microsoft CodeView for MS-DOS 4.05
  • Microsoft CodeView for MS-DOS 4.1
  • Microsoft CodeView for Windows 4.0
  • Microsoft CodeView for Windows 4.01
  • Microsoft CodeView for Windows 4.1

This article was previously published under Q85510

SUMMARY

Microsoft CodeView versions 4.0 and later, which support debugging C++ programs, do not correctly evaluate functions that use default arguments. When an expression is used that requires CodeView to evaluate a function with a default argument, the following error message is displayed:
CXX0047: Error: argument list does not match a function

MORE INFORMATION

The sample code below contains a function that has a default argument. In the program, the function PrintOut() can be called either with a void parameter list or with a character pointer. When the following command is executed from CodeView's command window
   ? PrintOut("This is a string constant")
				
the function is called and "This is a string constant" is printed to the output screen. When the function PrintOut() is called with no parameters, for example
   ? PrintOut()
				
the error CXX0047 is generated. This occurs only when using the "?" command in CodeView to force a function to be evaluated.

Default arguments are supported only in C++ programs.

Sample Code

/* Compile options needed: /Od /Zi
*/ 

#include <iostream.h>

void PrintOut (char *String = "This is a default argument.");

void main (void)
{
   PrintOut();
   PrintOut( "This is not a default argument.");
}

void PrintOut (char *String)
{
   cout << String << endl;
}

				

Modification Type:MajorLast Reviewed:10/23/2003
Keywords:kbBug kbDebug kberrmsg KB85510