title: how to write a template converts vector to Json::Value (jsoncpp)
body: <p>i wrote a template(like below) but it fails to compile</p>
  
  <pre><code>template&lt;class t, template&lt;typename&gt; class iterable&gt;
  Json::Value iterable2json(const iterable&lt;t&gt;&amp; cont)
  {
      Json::Value v;
      for(const t&amp; elt : cont)
      {
          v.append(elt);
      }
      return v;
  }
  
  std::vector&lt;int&gt; vec{1,2,3};
  Json::Value v = iterable2json(vec)
  </code></pre>
  
  <p>error C3312: no callable 'begin' function found for type 'const std::_Vector_val&lt;_Val_types>'</p>
  
  <p>with[ _Val_types=std::_Simple_types ]</p>
  
  <p>see reference to function template instantiation 'Json::Value iterable2json,std::_Vector_val>(const std::_Vector_val&lt;_Val_types> &amp;)' being compiled</p>
  
  <p>with[ _Value_type=int, _Val_types=std::_Simple_types ]</p>
  
  <p>error C3312: no callable 'end' function found for type 'const std::_Vector_val&lt;_Val_types>'</p>
  
  <p>with[ _Val_types=std::_Simple_types ]</p>
  
  <p>error C2065: 'elt' : undeclared identifier</p>