Pregunta

Tengo una clase de envoltorio que delega su trabajo a un pimpl, y el pimpl es un puntero a una clase de base / interfaz sin datos especializados en varias formas diferentes.

Me gusta esto:

class Base
{
    void doStuff=0;
};

class Derived
{
    int x,y;
    void doStuff()
    {
        x = (x+y*2)*x; //whatever
    }
};

class Wrapper
{
    Base*   _pimpl;
    void doStuff()
    {
        _pimpl->doStuff();
    }
};

Esto funciona bien la mayoría de las veces, pero al entrar en el depurador no puedo ver x, y de la clase Derivada (porque podría ser cualquier cosa). Normalmente esto es irrelevante, pero cuando algo sale mal al ver el estado de Derived puede ser importante, pero pimpl oscurece demasiado el estado (sin embargo, esa es la idea original de un pimpl, así que supongo que realmente no puedo quejarme). >

Ahora tengo una función tostring () que imprime el estado para fines de depuración, pero me preguntaba si hay una solución mejor, para depurar este tipo de construcción en VisualStudio en particular, pero una solución general sería mejor.

Gracias

¿Fue útil?

Solución

Solo sigue expandiendo el árbol en la ventana de Autos o en una de las ventanas de Vigilancia:

texto alternativo http://www.freeimagehosting.net/uploads/626b4a37ee.png

Otros consejos

¿Ha intentado convertir la variable en Derived * en la ventana de visualización?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top