<div dir="ltr">Hi Fellows, <div><br></div><div><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:13px;line-height:18.200000762939453px;background-color:rgb(246,247,246)">
What is the design pattern behind GraphTraits? Any C++ reference explaining this pattern? From the look of the code, it passes me as a very complicated design. For example, how does the partial specialization makes the inverse of an inverse falls back to the original graph:</p>
<p style="margin:0px 0px 2px;word-break:break-word;min-height:15px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:13px;line-height:18.200000762939453px;background-color:rgb(246,247,246)">
</p><pre class="" style="padding:10px;font-family:Monaco,Menlo,Consolas,'Courier New',monospace;font-size:13px;color:rgb(51,51,51);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin:8px;line-height:1.25;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;background-color:rgb(246,247,246);border:1px solid rgb(198,201,204);background-image:-webkit-linear-gradient(top,rgb(248,248,249) 0%,rgb(236,240,243) 100%)">
<span class="" style="color:rgb(0,0,0)"> </span><span class="" style="color:rgb(0,0,136)">template</span><span class="" style="color:rgb(102,102,0)"><</span><span class="" style="color:rgb(0,0,136)">class</span><span class="" style="color:rgb(0,0,0)"> T</span><span class="" style="color:rgb(102,102,0)">></span><span class="" style="color:rgb(0,0,0)">
</span><span class="" style="color:rgb(0,0,136)">struct</span><span class="" style="color:rgb(0,0,0)"> </span><span class="" style="color:rgb(102,0,102)">GraphTraits</span><span class="" style="color:rgb(102,102,0)"><</span><span class="" style="color:rgb(102,0,102)">Inverse</span><span class="" style="color:rgb(102,102,0)"><</span><span class="" style="color:rgb(102,0,102)">Inverse</span><span class="" style="color:rgb(102,102,0)"><</span><span class="" style="color:rgb(0,0,0)">T</span><span class="" style="color:rgb(102,102,0)">></span><span class="" style="color:rgb(0,0,0)"> </span><span class="" style="color:rgb(102,102,0)">></span><span class="" style="color:rgb(0,0,0)"> </span><span class="" style="color:rgb(102,102,0)">></span><span class="" style="color:rgb(0,0,0)"> </span><span class="" style="color:rgb(102,102,0)">{</span><span class="" style="color:rgb(0,0,0)">
</span><span class="" style="color:rgb(102,102,0)">...</span><span class="" style="color:rgb(0,0,0)">
</span><span class="" style="color:rgb(102,102,0)">}</span></pre></div></div>