Microsoft KB Archive/263600

= BUG: Nested Class Does Not See typedef in the Enclosing Class =

Article ID: 263600

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 6.0 Enterprise Edition
 * Microsoft Visual C++ 6.0 Professional Edition
 * Microsoft Visual C++ 6.0 Standard Edition

-



This article was previously published under Q263600



SYMPTOMS
According to the ANSI C++ Standard, a nested class should find a symbol in its enclosing class's scope before it finds it in global scope. However, when the code is compiled with Microsoft C++ compiler, the global scope is searched ahead of the enclosing class's scope.

Please refer to the sample code in the &quot;More Information&quot; section for details.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.



Steps to Reproduce Behavior
The following sample code demonstrates the bug: // Test.cpp // Compiler option needed: /GX

using std::cout; using std::endl;
 * 1) include

struct Target { static void test {   cout << &quot;BUG: Nested class doesn't see typedef in the enclosing class.&quot; << endl; } };

struct CorrectTarget { static void test {   cout << &quot;Good: Nested class CORRECTLY finds 'Target' as typedef in the enclosing class.&quot; << endl; } };

struct Tester { typedef CorrectTarget Target;

struct Inner {   static void test {     Target::test; } }; };

void main { Tester::Inner::test; }

Program output: BUG: Nested class doesn't see typedef in the enclosing class.

Keywords: kbbug kbcpponly kbcompiler KB263600

-

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

© Microsoft Corporation. All rights reserved.