C++11: Template programming
<p>I have some problem. What is meaning next code?</p>

<pre><code>template&lt;typename&gt; 
struct function_traits; // (1)

template&lt;typename ClassType,
             typename ReturnType,
             typename... Arguments&gt;
struct function_traits&lt;ReturnType(ClassType::*)(Arguments...) const&gt; { // (2)
        ...
};

template&lt;typename T&gt;
struct function_traits : public function_traits&lt;decltype(&amp;T::operator())&gt; {}; 
// (3) Why here inheritance?
</code></pre>

<p>Thanks! </p>