title: Why string_view constructor doesn't take a pair of iterators
body: <p>Both string_ref in boost and string_span in GSL doesn't define constructor that takes a pair of iterator. What is the reason of this decision ?</p>
  
  <p>Usually it's not a big deal, I can just create string_ref like this :</p>
  
  <pre><code>boost::string_ref s(start, std::distance(start, finish));
  </code></pre>
  
  <p>but the reason I want constructor that take a pair of iterators is because I have code that look like this:</p>
  
  <pre><code>template&lt;typename Type, typename Iterator&gt;
  void func(const Iterator&amp; begin, const Iterator&amp; end)
  {
      Type s(begin, end);
      //do stuff with s
  }
  </code></pre>
  
  <p>Currently, I can call it like this :</p>
  
  <pre><code>func&lt;std::string&gt;(start, finish)
  </code></pre>
  
  <p>I want to change it to :</p>
  
  <pre><code>func&lt;boost::string_ref&gt;(start, finish) //compile error
  </code></pre>
  
  <p>but that code won't compile because the lack of constructor taking a pair of iterator in string_ref</p>