Depuración de datos en 'espacios de nombres anónimos' (C ++)
Recientemente, obtuve un archivo de volcado de un cliente. Podría rastrear el problema a una clase que podría contener datos incorrectos, pero solo obtuve un puntero de vacío a la clase, no un puntero real (el puntero de vacío provino de una propiedad de ventana, por lo tanto era un puntero de vacío) . Desafortunadamente, la clase a la que quería enviar el puntero estaba en un espacio de nombres anónimo, como este:
namespace
{
class MyClass
{
...
};
}
...
void *ptr = ...
// I know ptr points to an instance of MyClass,
// and at this location I want to cast ptr to (MyClass *) in the debugger.
Usando "ptr" en la ventana de visualización si Visual Studio 2005 solo muestra el valor del puntero. Si utilizo "(MyClass *) ptr", el depurador me dice que no puede acceder a él.
¿Cómo puedo convertir el ptr a un puntero de MyClass?
Nota: eventualmente podría usar un espacio de nombres de nombre tonto (como el nombre del archivo de origen), y luego usar un "espacio de nombres de uso", pero esperaría mejores soluciones.