BUG: C2065: Undeclared Identifier Creating a STL Function ObjectLast reviewed: December 1, 1997Article ID: Q177431 |
The information in this article applies to:
SYMPTOMSCreating the STL function object “binder2nd” causes the compiler to generate the following error C2065:
'identifier' : undeclared identifierIt is the “std::multiples<int>(): line that causes the namespace to be lost.
RESOLUTIONOne of the following methods can be used to work around this problem:
STATUSMicrosoft has confirmed this to be a bug in the Microsoft product listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.
MORE INFORMATIONThe following sample demonstrates the problem and the first workaround.
Sample Code
/* * Compiler Options: /GX */ #include <algorithm> #include <functional> #include <iostream> #define BUG //Workaround: Comment the line above. //Uncomment the line below. //#define WORKAROUND #ifdef WORKAROUND using namespace std ; #endif int main() { #ifdef BUG std::binder2nd< std::multiplies<int> > times_two(std::multiplies<int>(), 2); #endif #ifdef WORKAROUND binder2nd< multiplies<int> > times_two(multiplies<int>(), 2); #endif int n = times_two(4) ; std::cout << "n = " << n << std::endl ; return 0 ; }The following sample demonstrates the problem and the second workaround.
Sample Code
/* * Compiler Options: /GX */ #include <algorithm> #include <functional> #include <iostream> #define BUG //Workaround: Comment the line above. //Uncomment the line below. //#define WORKAROUND int main() { #ifdef BUG std::binder2nd< std::multiplies<int> > times_two(std::multiplies<int>(), 2); #endif #ifdef WORKAROUND std::multiplies<int> mi ; std::binder2nd< std::multiplies<int> > times_two(mi, 2); #endif int n = times_two(4) ; std::cout << "n = " << n << std::endl ; return 0 ; } REFERENCESPlease see the following help topics in the Microsoft Visual C++ online documentation for more information on ”binder2nd”:
TITLE: binder2nd URL: mk:@ivt:vclang/STDLIBBLD/FUNCTIO2_BINDER2ND.HTM TITLE: Visual C++ 4.2 Standard Template Library Tutorial URL: mk:@ivt:tatech/F1/DB/S4249.HTM#sec58 Keywords : CPPIss CPPLngIss STLIss vcbuglist500 kbbuglist Version : WINNT:5.0 Platform : winnt Issue type : kbbug Solution Type : kbfix |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |