mapa con tipo de valor incompleto

Estoy recibiendo un error con lo siguiente:

class Test
{
    std::map<std::string,Test> test;
};

El error es "El campo tiene un tipo incompleto 'Prueba'". Leí algunos hilos y sugerí que esto podría ser un error en la versión de libcxx que se incluye con xcode, pero no me sorprendería en absoluto si tuviera que cambiarlo a:

class Test
{
    std::map<std::string,std::shared_ptr<Test>> test;
};

Solo quería volver a comprobar que este es definitivamente un error correcto y no un error.

¡Aclamaciones!

Respuestas a la pregunta(1)

Su respuesta a la pregunta