boost :: associative_property_map () error de compilación

Al usar este enlace en el sitio web de boost, puedo compilar el códigoaquí. e incluso obtener la respuesta (ejemplo). Pero cuando hago lo mismo definiendo en una clase, obtengo el siguiente error:

#include < as usual in the code >

class Test{

 std::map<std::string, std::string> name2address;
 boost::const_associative_property_map< std::map<std::string, std::string> >
                  address_map(name2address);


};

El error es el siguiente:

error: ‘name2address’ is not a type

Tengo que usar typedef y typename de la siguiente manera para compilar el código correctamente. pero todavía no puedo usar (insertar, o la función foo (como se proporciona en el ejemplo)

Por favor ayuda, aquí está el código usando typedefs

class Test{
  typedef typename std::map<std::string, std::string> name2address;
  boost::const_associative_property_map< std::map<std::string, std::string> >
                address_map(name2address);

 };

Tengo que pasar este mapa de propiedad asociativa a otra clase, donde puedo usar las funciones de obtener y poner como de costumbre. ¿Cómo abordaría eso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta