title: Insert an element to a lemon graph library map without copying
body: <p>I'm using <a href="https://lemon.cs.elte.hu/trac/lemon" rel="nofollow">Lemon Graph Library</a> and I want to add an item to a lemon map without copying it or asigning. Here is the code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;lemon/list_graph.h&gt;
  #include &lt;lemon/maps.h&gt;
  
  using namespace lemon;
  using namespace std;
  
  typedef lemon::ListDigraph             LGraph;
  typedef lemon::ListDigraph::Arc        LArc;
  typedef lemon::ListDigraph::Node       LNode;
  
  class MyNode {
  public:
      CrossRefMap&lt;LGraph, LArc, std::string&gt; inputs;
  
      MyNode(const LGraph&amp; graph) : inputs(graph) { }
  };
  
  
  int main(){
      LGraph graph;
      LGraph::NodeMap&lt;MyNode&gt; nodes(graph);
  
      LNode n = graph.addNode();
      nodes[n] = MyNode(graph); // error: object of type 'MyNode' cannot be assigned because its copy assignment operator is implicitly deleted
  
      return 0;
  }
  </code></pre>
  
  <p>The main problem here is the CrossRefMap which needs initialization in constructor and has has no copy consturctor or assignment operator. I could use pointer to this structure instead, but this solution doesn't satisfy me. How can I solve this problem? Any suggestions will be appreciated. ;)</p>