ring(&quot;same?&quot;), 2, A());
tuple&lt;std::string, long, A&gt; t2(std::string(&quot;same?&quot;), 2, A());
tuple&lt;std::string, long, A&gt; t3(std::string(&quot;different&quot;), 3, A());

bool operator==(A, A) { std::cout &lt;&lt; &quot;All the same to me...&quot;; return true; }

t1 == t2; 		// true
t1 == t3;               // false, does not print &quot;All the...&quot;
</code></pre>


<h2><a name = "tiers">Tiers</a></h2>

<p>
<i>Tiers</i> are tuples, where all elements are of non-const reference ty