title: Copy the address of all elements using std::copy
body: <p>I'm trying to obtain the address of all elements of a given collection and copy them to a std::set. Basically, instead of</p>
  
  <pre><code>std::set&lt;T&gt; s1;
  std::copy(first1, last1, std::inserter(s1, s1.begin()));
  </code></pre>
  
  <p>I'd like to insert their addresses. Something like:</p>
  
  <pre><code>std::set&lt;std::add_pointer&lt;T&gt;&gt; s1;
  std::copy(reference_iterator(first1), reference_iterator(last1), 
      std::inserter(s1, s1.begin()));
  </code></pre>
  
  <p>Here, reference_iterator would be an iterator returning the address of its element, instead of the element, something opposed to what the boost indirect_iterator does.
  Is there any standard way to do it? Many thanks.</p>