Nuestro marco de registro, como la mayoría de los marcos de registro, utiliza la macro __FUNCTION__
preprocesador para insertar la función actual en los archivos de registro para que nuestro registro se parece a:¿Hay alguna buena forma de registrar nombres de funciones cuando se encuentra dentro de una lambda?
L4 T11332 609661594 [PreProcessorFunctions::RegenerateLinkIDs] [ENTER]
L4 T11332 609661594 [PreProcessorFunctions::RegenerateLinkIDs] [EXIT]
L4 T11332 609661594 [ConfigMerger::ValidateConfigObject] [ENTER]
L3 T11332 609661594 [ConfigMerger::ValidateConfigObject] Configuration Exists: 1
Como hemos empezado a utilizar C++ 11 más , me he dado cuenta de que labmdas producen precisa sin embargo inútil __FUNCTION__
de salida:
L4 T9604 609661594 [`anonymous-namespace'::<lambda1>::operator()] Writing EMX config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\EMXConfiguration.xml
L4 T11332 609661594 [`anonymous-namespace'::<lambda3>::operator()] Writing Auditing config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\Auditing.xml
L4 T11960 609661594 [`anonymous-namespace'::<lambda2>::operator()] Writing UEM config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\Configuration.xml
Como se puede ver, todo ámbito de la clase se ha perdido y todo lo que ahora sabemos es que esta declaración de registro vino de una lambda en el anonimato. ¿Alguien tiene una buena estrategia para cerrar la función adjunta? Esto parece ser lo más útil para iniciar sesión ...
http://stackoverflow.com/questions/4434282/visual-c-equivalent-of-file-line-and-pretty-function ¿Qué significa '__FUNCSIG__' para lambdas? – BoBTFish
Haha, VS2012 muestra: 'wmain :: :: operator()' –
Benj
Al menos muestra la función adjunta ... – Benj