ata, const slice &amp;s);
    template&lt;class V&gt;
    const vector_slice&lt;const V&gt; project (const V &amp;data, const slice &amp;s);
    template&lt;class V&gt;
    vector_slice&lt;V&gt; project (vector_slice&lt;V&gt; &amp;data, const range &amp;r);
    template&lt;class V&gt;
    const vector_slice&lt;V&gt; project (const vector_slice&lt;V&gt; &amp;data, const range &amp;r);
    template&lt;class V&gt;
    vector_slice&lt;V&gt; project (vector_slice&lt;V&gt; &amp;data, const slice &amp;s);
    temp