Microsoft KB Archive/242190

= BUG: Full Koenig Lookup Works Only for Operators =

Article ID: 242190

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 5.0 Enterprise Edition
 * Microsoft Visual C++ 5.0 Professional Edition
 * 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 Q242190



SYMPTOMS
Argument-dependent name lookup, also known as Koenig lookup, works only for operators and not regular functions in a namespace.



CAUSE
The compiler does not fully support argument-dependent name lookup as specified in the C++ Standard. Please refer to the C++ Standard, section 3.4.2, for information on argument-dependent name lookup.



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 code example demonstrates the error: //test.cpp // compiler option needed:/GX namespace N1 { struct T1 { };   void g(T1) { }   T1 operator+( T1 x, T1 y) { std::cout<< "In N1::+" <<std::endl; return y;   } }
 * 1) include

int main { N1::T1 t1 ,t2; g(t1); // error C2065: 'g' : undeclared identifier t1 + t2; // works fine calls N1::operator+ return 0; }

Keywords: kbbug kblangcpp kbcpponly kbcompiler KB242190

-

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

© Microsoft Corporation. All rights reserved.