ode>cref</code>. 
Any argument can be wrapped with these functions to get the desired type. 
The mechanism does not compromise const correctness since a const object wrapped with <code>ref</code> results in a tuple element with const reference type (see the fifth code line below).
For example:

<pre><code>A a; B b; const A ca = a;
make_tuple(cref(a), b);      // creates tuple&lt;const A&amp;, B&gt;
make_tuple(ref(a), b);       // creates tuple&lt;A&amp;, B&gt;
make_tuple(ref(a), cref(b)); // creates tuple&l