puedo necesitar reconsiderar mi diseño en general un poco más, pero tal como está, parece que es posible que quiera hacer algo como:¿Se puede usar un boost :: shared_ptr como clave para un mapa?
class A;
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
He intentado esto, y lo hace parecer que funciona en un caso simple (el compilador no se quejó, y las pruebas simples parecen funcionar). Pero estoy teniendo dudas sobre este enfoque. Sospecho que hay algunos problemas allí que no conozco.
Entonces, ¿es válido lo anterior en un sentido práctico? ¿O hay algún error del que no estoy consciente cuando hago esto?
¿Qué no funciona? –
@Sam, el hecho de que aún no haya descubierto un problema no significa que no lo sea. Creo que es una gran idea preguntar sobre posibles problemas para un uso no estándar como este. –
Gracias a todos por sus respuestas. Como algunos de ustedes señalaron, es principalmente un síntoma de un mal diseño; Estaba tratando de resolver un problema en el lugar equivocado. Desde entonces, he reexaminado mi diseño y no necesitaré hacer el mal mapa sobre el que hice preguntas. Las respuestas sobre por qué esta es una mala idea también fueron realmente esclarecedoras; Sabía en mi instinto que no haría exactamente lo que quería hacer; No podía ver por qué hasta ahora. (De hecho, lo que estaba tratando de hacer no funcionaría con el mapa que he modelado anteriormente) – Taeolas