Microsoft KB Archive/155386

= FIX: C1001 in Compiler File MSC1.CPP at Line 1089 =

Article ID: 155386

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 4.2 Enterprise Edition
 * Microsoft Visual C++ 4.2 Professional Edition

-



This article was previously published under Q155386



SYMPTOMS
When defining a template function and a nontemplate function of the same name such that the nontemplate version is defined within a namespace, you may encounter the following error:

  test.cpp(28) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1089)



RESOLUTION
There are three ways to work around this problem:


 * 1) Change the name of one of the functions involved. -or-


 * 1) Move the using directive to local function scope. See the sample code below. -or-


 * 1) Instead of a using directive, use the scope resolution operator to reference objects in the namespace. See the sample code below.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ version 5.0.



Sample Code
/* Compile options needed: None */   template int test1( T x)   { return 1; }

namespace A{

int test1(int) {          return 1; };  }

int test2 {      return test1(1); }

using namespace A; // comment out this line for workarounds 2 & 3.

void main {  //  using namespace A;  // uncomment this line for workaround 2 test1(1); // A::test1(1);        // uncomment this line for workaround 3 }

Additional query words: kbVC420bug

Keywords: kbbug kbfix kbvc500fix kbcpponly kbcompiler KB155386

-

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

© Microsoft Corporation. All rights reserved.