Inserir no boost :: BIMAP usando o mapa de propriedades associativas BOOST ::… falhou

Com referência à minha pergunta anterior sobre boost :: bimaps e boost associative property maps interfaceaqui, Quero usar as funções auxiliar Put e Get para meu bimap.

Com referência a um código de amostra fornecidoaqui, Tentei adicionar o seguinte e recebo um longo erro de compilação para declaração falhou ... Aqui está o código:

#include <boost/bimap.hpp> 
#include <boost/property_map/property_map.hpp> 
#include <boost/bimap/property_map/set_support.hpp>
#include <iostream> 

using namespace boost; 

int main() 
{
  typedef int vertex_descriptor_t;
  typedef boost::bimaps::bimap< vertex_descriptor_t, size_t > vd_idx_bimap_t;
  typedef boost::associative_property_map<vd_idx_bimap_t::left_map>   asso_vd_idx_bimap_t;

  // define bimap
  vd_idx_bimap_t        my_bimap;
  asso_vd_idx_bimap_t   my_asso_bimap(my_bimap.left);

  typedef typename vd_idx_bimap_t::value_type value_type;    
  my_bimap.insert( value_type( 1, 100 ) );
  // print bimap
  for(auto t = my_bimap.left.begin(); t != my_bimap.left.end(); ++t)
      std::cout << t->first << " " << t->second <<  "\n";

  int z = 1;
  std::cout << "value = " << get ( my_bimap.left, z ) << std::endl;    // prints correctly value = 100


  // ERROR here . 
  boost::put( my_asso_bimap, 2, 19 );

 } 

Dá erro como: (uma lista longa. Mas acabei de colocar um trecho)

  cannot convert âboost::bimaps::detail::non_mutable_data_unique_map_view_access<Derived, Tag, BimapType>::operator[](const CompatibleKey&)::BIMAP_STATIC_ERROR__OPERATOR_BRACKET_IS_NOT_SUPPORTED360::assert_arg<long unsigned int>()â (type âmpl_::failed************ (boost::bimaps::detai

Há também um erro que me dá erro na linha número 364 do arquivo (property_map.hpp) no impulso

  put(const put_get_helper<Reference, PropertyMap>& pa, K k, const V& v)
 {
   static_cast<const PropertyMap&>(pa)[k] = v;
  }

Entendo o erro de que o mapa associativo não pode alterar os dados, pois faz referência à visualização de mapa esquerda. mas Como uso as funções de colocação e obtenção de ajuda?

Posso usar as funções GET (my_bimap.left, z), mas não consigo usar a função PUT. Eu queria usar o mapa de propriedades associativas para obter e colocar funções para operar no bimap real, para que eu não precise usar insert (value_type ()) ...

Espero ter clareza suficiente para o meu problema. Por favor sugira.

questionAnswers(1)

yourAnswerToTheQuestion