c++ stl map c++11 bimap

¿Hay una alternativa de Boost.Bimap en c++ 11?



stl c++11 (2)

Mi opinión es que gran parte del trabajo que se realiza en las bibliotecas de Boost es hacer que funcionen con otras bibliotecas / STL.

Si no necesita esa capacidad, puede usar una clase con std::map<X*, Y*> y std::map<Y*, X*> . Luego, tenga métodos como los siguientes: add(X,Y) , remove(X,Y) , get_left(X) y get_right(Y) .

Si desea almacenar copias, add(X,Y) podría asignar memoria, y remove(X,Y) puede desasignar. Además, puede definir un destructor que llame a remove(X,Y) en el resto de los elementos.

¿Existe una alternativa utilizable al bimap de Boost en C ++ 0x?

Me gustaría evitar Boost, pero abrazar completamente C ++ 11. De ser necesario, una versión reducida del bimap de Boost funcionaría para mí (necesito un bimap constante para cambiar entre enumeraciones y cadenas correspondientes) en todo mi programa. El mapa será una constante de tiempo de compilación, por lo que quizás incluso dos mapas mantenidos manualmente no sean la solución óptima.

¡Gracias!

ACTUALIZACIÓN: encontré esto en The Code Project, pero parece que las licencias pueden ser un problema: http://www.codeproject.com/KB/stl/bimap.aspx?fid=12042&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=151#xx0xx

Solo estoy buscando una solución limpia y fácil (un encabezado / archivo fuente o poco más, ya que dos mapas duplicados son igual de buenos en mi caso).


Respuesta corta: no.

Respuesta larga: no.

Debe tenerse en cuenta que el soporte de C ++ 1 4 para los comparadores transparentes elimina la necesidad de Boost.Bimap 90% del tiempo * : cuando necesita borrar cualquier propiedad dada de un objeto (almacenado o computado), a menudo de todos modos, un identificador único simple, comparable al bit, inherente a / presente en el objeto. Con comparadores transparentes, puede comparar un objeto con cualquier valor posible, discriminado solo por tipo, siempre que dicho valor pueda obtenerse / computarse a partir de un objeto sin mutarlo.

* una estimación, no una estadística