A huge effort has been made to port the library to as many compilers as possible.
</p>
<p>
Full support for built-in arrays require that the compiler supports class template
partial specialization. For non-conforming compilers there might be a chance
that it works anyway thanks to workarounds in the type traits library. Visual
C++ 6/7.0 has a limited support for arrays: as long as the arrays are of built-in
type it should work.
</p>
<p>
Notice also that some compilers cannot do function template ordering properly.
In that case one must rely of <aclass="link"href="reference/semantics/metafunctions.html"title="Metafunctions"><codeclass="computeroutput"><spanclass="identifier">range_iterator</span></code></a> and a single function
definition instead of overloaded versions for const and non-const arguments.
So if one cares about old compilers, one should not pass rvalues to the functions.
</p>
<p>
For maximum portability you should follow these guidelines:
do not pass rvalues to <aclass="link"href="reference/semantics/functions.html"title="Functions"><codeclass="computeroutput"><spanclass="identifier">begin</span></code></a><codeclass="computeroutput"><spanclass="special">()</span></code>,
<aclass="link"href="reference/semantics/functions.html"title="Functions"><codeclass="computeroutput"><spanclass="identifier">end</span></code></a><codeclass="computeroutput"><spanclass="special">()</span></code> and <aclass="link"href="utilities/iterator_range.html"title="Class iterator_range"><codeclass="computeroutput"><spanclass="identifier">iterator_range</span></code></a> Range constructors
and assignment operators,
</li>
<liclass="listitem">
use <aclass="link"href="reference/semantics/functions.html"title="Functions"><codeclass="computeroutput"><spanclass="identifier">const_begin</span></code></a><codeclass="computeroutput"><spanclass="special">()</span></code> and <aclass="link"href="reference/semantics/functions.html"title="Functions"><codeclass="computeroutput"><spanclass="identifier">const_end</span></code></a><codeclass="computeroutput"><spanclass="special">()</span></code>
whenever your code by intention is read-only; this will also solve most rvalue