Cannot use typedefs inherited from std::unary_function
<pre><code>prog.cpp:9:13: error: ‘result_type’ does not name a type
prog.cpp:9:13: note: (perhaps ‘typename std::unary_function&lt;_Arg, _Result&gt;::result_type’ was intended)
</code></pre>

<p>Compiler:
<a href="http://ideone.com/vttG8W" rel="nofollow">http://ideone.com/vttG8W</a></p>

<p>Why cannot I use result_type directly?</p>

<pre><code>#include &lt;functional&gt;

using namespace std;

template &lt;typename ARGUEMENT, typename RESULT&gt;
class FunctorBase : public std::unary_function&lt;ARGUEMENT, RESULT&gt;
{
public:
    virtual result_type operator () (argument_type) = 0;
        FunctorBase() {}
        virtual ~FunctorBase() {}
};

int main()
{
    FunctorBase&lt;int&amp;, void&gt;();
}
</code></pre>
